diff --git a/examples/statement-playground/index.ts b/examples/statement-playground/index.ts index 552b7e6..45ecc53 100644 --- a/examples/statement-playground/index.ts +++ b/examples/statement-playground/index.ts @@ -28,7 +28,7 @@ const stmt1: Statement = { } // SIGN AND SUBMIT STATEMENT -const signed1 = alice.sign(stmt1) +const signed1 = await alice.sign(stmt1) await sdk.submit(signed1) console.log( diff --git a/examples/statement-playground/package.json b/examples/statement-playground/package.json index efc6fd9..41b499d 100644 --- a/examples/statement-playground/package.json +++ b/examples/statement-playground/package.json @@ -5,10 +5,10 @@ "private": true, "dependencies": { "@polkadot-api/sdk-statement": "workspace:*", - "@polkadot-api/substrate-bindings": "^0.16.3", + "@polkadot-api/substrate-bindings": "^0.16.5", "@polkadot-api/substrate-client": "^0.4.7", "@polkadot-api/utils": "^0.2.0", - "@polkadot-api/ws-provider": "^0.6.1", + "@polkadot-api/ws-provider": "^0.7.4", "@scure/sr25519": "^0.3.0" }, "devDependencies": { diff --git a/packages/sdk-statement/CHANGELOG.md b/packages/sdk-statement/CHANGELOG.md index a53b1eb..266979e 100644 --- a/packages/sdk-statement/CHANGELOG.md +++ b/packages/sdk-statement/CHANGELOG.md @@ -2,7 +2,17 @@ ## Unreleased -## 0.1.0 2025-09-29 +## 0.2.0 - 2025-11-26 + +### Changed + +- `StatementSigner.sign` is now async + +### Removed + +- Remove unwanted exports + +## 0.1.0 - 2025-09-29 ### Added diff --git a/packages/sdk-statement/package.json b/packages/sdk-statement/package.json index fa4f5a6..5ccc147 100644 --- a/packages/sdk-statement/package.json +++ b/packages/sdk-statement/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot-api/sdk-statement", - "version": "0.1.0", + "version": "0.2.0", "sideEffects": false, "author": "Carlo Sala (https://github.com/carlosala)", "repository": { @@ -42,7 +42,7 @@ }, "license": "MIT", "dependencies": { - "@polkadot-api/substrate-bindings": "^0.16.3", + "@polkadot-api/substrate-bindings": "^0.16.5", "@polkadot-api/utils": "^0.2.0" } } diff --git a/packages/sdk-statement/src/index.ts b/packages/sdk-statement/src/index.ts index b172a6e..6e6f715 100644 --- a/packages/sdk-statement/src/index.ts +++ b/packages/sdk-statement/src/index.ts @@ -1,4 +1,4 @@ export * from "./codec" export * from "./statement-sdk" export * from "./signer" -export * from "./utils" +export { stringToTopic } from "./utils" diff --git a/packages/sdk-statement/src/signer.ts b/packages/sdk-statement/src/signer.ts index 1ec714b..be06de8 100644 --- a/packages/sdk-statement/src/signer.ts +++ b/packages/sdk-statement/src/signer.ts @@ -4,14 +4,14 @@ import { SignedStatement, Statement, statementCodec } from "./codec" export const getStatementSigner = ( publicKey: Uint8Array, type: "ed25519" | "sr25519" | "ecdsa", - signFn: (payload: Uint8Array) => Uint8Array, + signFn: (payload: Uint8Array) => Promise | Uint8Array, ) => ({ publicKey, - sign: (stmt: Statement): SignedStatement => { + sign: async (stmt: Statement): Promise => { if (stmt.proof) throw new Error("Statement already signed") const encoded = statementCodec.enc(stmt) const compactLen = compact.enc(compact.dec(encoded)).length - const signature = signFn(encoded.slice(compactLen)) + const signature = await signFn(encoded.slice(compactLen)) const result = statementCodec.dec(encoded) result.proof = Enum(type, { signature: Binary.fromBytes(signature), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 782c39c..bb4c730 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,10 +31,10 @@ importers: version: 5.9.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)) + version: 5.1.4(typescript@5.9.2)(vite@7.1.7(@types/node@24.10.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.5.2) + version: 3.2.4(@types/node@24.10.1) examples/governance: dependencies: @@ -142,8 +142,8 @@ importers: specifier: workspace:* version: link:../../packages/sdk-statement '@polkadot-api/substrate-bindings': - specifier: ^0.16.3 - version: 0.16.3 + specifier: ^0.16.5 + version: 0.16.5 '@polkadot-api/substrate-client': specifier: ^0.4.7 version: 0.4.7 @@ -151,8 +151,8 @@ importers: specifier: ^0.2.0 version: 0.2.0 '@polkadot-api/ws-provider': - specifier: ^0.6.1 - version: 0.6.1 + specifier: ^0.7.4 + version: 0.7.4 '@scure/sr25519': specifier: ^0.3.0 version: 0.3.0 @@ -162,7 +162,7 @@ importers: devDependencies: '@types/bun': specifier: latest - version: 1.2.23(@types/react@19.1.12) + version: 1.3.3 packages/common-utils: devDependencies: @@ -293,8 +293,8 @@ importers: packages/sdk-statement: dependencies: '@polkadot-api/substrate-bindings': - specifier: ^0.16.3 - version: 0.16.3 + specifier: ^0.16.5 + version: 0.16.5 '@polkadot-api/utils': specifier: ^0.2.0 version: 0.2.0 @@ -559,6 +559,9 @@ packages: '@polkadot-api/json-rpc-provider-proxy@0.2.4': resolution: {integrity: sha512-nuGoY9QpBAiRU7xmXN3nugFvPcnSu3IxTLm1OWcNTGlZ1LW5bvdQHz3JLk56+Jlyb3GJ971hqdg2DJsMXkKCOg==} + '@polkadot-api/json-rpc-provider-proxy@0.2.7': + resolution: {integrity: sha512-+HM4JQXzO2GPUD2++4GOLsmFL6LO8RoLvig0HgCLuypDgfdZMlwd8KnyGHjRnVEHA5X+kvXbk84TDcAXVxTazQ==} + '@polkadot-api/json-rpc-provider@0.0.4': resolution: {integrity: sha512-9cDijLIxzHOBuq6yHqpqjJ9jBmXrctjc1OFqU+tQrS96adQze3mTIH6DTgfb/0LMrqxzxffz1HQGrIlEH00WrA==} @@ -619,6 +622,9 @@ packages: '@polkadot-api/substrate-bindings@0.16.3': resolution: {integrity: sha512-KN/nghI3SM0t7WsULwLRB3s4DnWogGCi5TuvXB0yPkkiB5GJugMPuHTTUxDkWmjZ0vLUFlmkaZ/sfFf0tvo8xQ==} + '@polkadot-api/substrate-bindings@0.16.5': + resolution: {integrity: sha512-QFgNlBmtLtiUGTCTurxcE6UZrbI2DaQ5/gyIiC2FYfEhStL8tl20b09FRYHcSjY+lxN42Rcf9HVX+MCFWLYlpQ==} + '@polkadot-api/substrate-client@0.4.7': resolution: {integrity: sha512-Mmx9VKincVqfVQmq89gzDk4DN3uKwf8CxoqYvq+EiPUZ1QmMUc7X4QMwG1MXIlYdnm5LSXzn+2Jn8ik8xMgL+w==} @@ -631,6 +637,9 @@ packages: '@polkadot-api/ws-provider@0.6.1': resolution: {integrity: sha512-2IagL7ywt/cqBlZo0DyVzcKfDm9QP1GzTkqVIXaLvw0RLwbSrwZI5MveYN8eqzCdQQfHeQeN/v6dgAjSVKYHug==} + '@polkadot-api/ws-provider@0.7.4': + resolution: {integrity: sha512-mkk2p8wPht+ljU1xULCPMsLpNF7NHuGaufuDCIZZgopALaZpfVFJxc3qa9s6Xv8X3hM+TRoC5WknuD1ykRY99A==} + '@polkadot-labs/hdkd-helpers@0.0.26': resolution: {integrity: sha512-mp3GCSiOQeh4aPt+DYBQq6UnX/tKgYUH5F75knjW3ATSA90ifEEWWjRan0Bddt4QKYKamaDGadK9GbVREgzQFw==} @@ -830,6 +839,9 @@ packages: '@types/bun@1.2.23': resolution: {integrity: sha512-le8ueOY5b6VKYf19xT3McVbXqLqmxzPXHsQT/q9JHgikJ2X22wyTW3g3ohz2ZMnp7dod6aduIiq8A14Xyimm0A==} + '@types/bun@1.3.3': + resolution: {integrity: sha512-ogrKbJ2X5N0kWLLFKeytG0eHDleBYtngtlbu9cyBKFtNL3cnpDZkNdQj8flVf6WTZUX5ulI9AY1oa7ljhSrp+g==} + '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} @@ -839,6 +851,9 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/node@24.10.1': + resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} + '@types/node@24.5.2': resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} @@ -951,6 +966,9 @@ packages: peerDependencies: '@types/react': ^19 + bun-types@1.3.3: + resolution: {integrity: sha512-z3Xwlg7j2l9JY27x5Qn3Wlyos8YAp0kKRlrePAOjgjMGS5IG6E7Jnlx736vH9UVI4wUICwwhC9anYL++XeOgTQ==} + bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1014,8 +1032,8 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -1622,6 +1640,9 @@ packages: undici-types@7.12.0: resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} @@ -1634,8 +1655,8 @@ packages: resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==} engines: {node: '>=18.12.0'} - use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2007,6 +2028,8 @@ snapshots: '@polkadot-api/json-rpc-provider-proxy@0.2.4': {} + '@polkadot-api/json-rpc-provider-proxy@0.2.7': {} + '@polkadot-api/json-rpc-provider@0.0.4': {} '@polkadot-api/known-chains@0.9.11': {} @@ -2110,6 +2133,13 @@ snapshots: '@scure/base': 2.0.0 scale-ts: 1.6.1 + '@polkadot-api/substrate-bindings@0.16.5': + dependencies: + '@noble/hashes': 2.0.1 + '@polkadot-api/utils': 0.2.0 + '@scure/base': 2.0.0 + scale-ts: 1.6.1 + '@polkadot-api/substrate-client@0.4.7': dependencies: '@polkadot-api/json-rpc-provider': 0.0.4 @@ -2130,6 +2160,16 @@ snapshots: - bufferutil - utf-8-validate + '@polkadot-api/ws-provider@0.7.4': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/json-rpc-provider-proxy': 0.2.7 + '@types/ws': 8.18.1 + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@polkadot-labs/hdkd-helpers@0.0.26': dependencies: '@noble/curves': 2.0.1 @@ -2147,7 +2187,7 @@ snapshots: '@rx-state/core': 0.1.4(rxjs@7.8.2) react: 19.0.0 rxjs: 7.8.2 - use-sync-external-store: 1.5.0(react@19.0.0) + use-sync-external-store: 1.6.0(react@19.0.0) '@react-rxjs/utils@0.9.7(@react-rxjs/core@0.10.7(react@19.0.0)(rxjs@7.8.2))(react@19.0.0)(rxjs@7.8.2)': dependencies: @@ -2285,6 +2325,10 @@ snapshots: transitivePeerDependencies: - '@types/react' + '@types/bun@1.3.3': + dependencies: + bun-types: 1.3.3 + '@types/chai@5.2.2': dependencies: '@types/deep-eql': 4.0.2 @@ -2293,6 +2337,10 @@ snapshots: '@types/estree@1.0.8': {} + '@types/node@24.10.1': + dependencies: + undici-types: 7.16.0 + '@types/node@24.5.2': dependencies: undici-types: 7.12.0 @@ -2301,13 +2349,13 @@ snapshots: '@types/react@19.1.12': dependencies: - csstype: 3.1.3 + csstype: 3.2.3 '@types/resolve@1.20.2': {} '@types/ws@8.18.1': dependencies: - '@types/node': 24.5.2 + '@types/node': 24.10.1 '@vitest/expect@3.2.4': dependencies: @@ -2317,13 +2365,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.7(@types/node@24.5.2))': + '@vitest/mocker@3.2.4(vite@7.1.7(@types/node@24.10.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.7(@types/node@24.5.2) + vite: 7.1.7(@types/node@24.10.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -2392,6 +2440,10 @@ snapshots: '@types/node': 24.5.2 '@types/react': 19.1.12 + bun-types@1.3.3: + dependencies: + '@types/node': 24.10.1 + bundle-require@5.1.0(esbuild@0.25.10): dependencies: esbuild: 0.25.10 @@ -2443,7 +2495,7 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - csstype@3.1.3: {} + csstype@3.2.3: {} debug@4.4.3: dependencies: @@ -3066,6 +3118,8 @@ snapshots: undici-types@7.12.0: {} + undici-types@7.16.0: {} + unicorn-magic@0.1.0: {} unicorn-magic@0.3.0: {} @@ -3075,7 +3129,7 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 - use-sync-external-store@1.5.0(react@19.0.0): + use-sync-external-store@1.6.0(react@19.0.0): dependencies: react: 19.0.0 @@ -3103,13 +3157,13 @@ snapshots: - utf-8-validate - zod - vite-node@3.2.4(@types/node@24.5.2): + vite-node@3.2.4(@types/node@24.10.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.7(@types/node@24.5.2) + vite: 7.1.7(@types/node@24.10.1) transitivePeerDependencies: - '@types/node' - jiti @@ -3124,17 +3178,29 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)): + vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.7(@types/node@24.10.1)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.2) optionalDependencies: - vite: 7.1.7(@types/node@24.5.2) + vite: 7.1.7(@types/node@24.10.1) transitivePeerDependencies: - supports-color - typescript + vite@7.1.7(@types/node@24.10.1): + dependencies: + esbuild: 0.25.10 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.3 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.10.1 + fsevents: 2.3.3 + vite@7.1.7(@types/node@24.5.2): dependencies: esbuild: 0.25.10 @@ -3147,11 +3213,11 @@ snapshots: '@types/node': 24.5.2 fsevents: 2.3.3 - vitest@3.2.4(@types/node@24.5.2): + vitest@3.2.4(@types/node@24.10.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.7(@types/node@24.5.2)) + '@vitest/mocker': 3.2.4(vite@7.1.7(@types/node@24.10.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -3169,11 +3235,11 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.7(@types/node@24.5.2) - vite-node: 3.2.4(@types/node@24.5.2) + vite: 7.1.7(@types/node@24.10.1) + vite-node: 3.2.4(@types/node@24.10.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.10.1 transitivePeerDependencies: - jiti - less