quantumcoin 7.0.11 → 7.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README-SDK.md +828 -807
  2. package/README.md +17 -0
  3. package/config.d.ts +50 -50
  4. package/examples/example-generated-sdk-js/README.md +65 -0
  5. package/examples/example-generated-sdk-js/examples/_test-wallet.js +17 -0
  6. package/examples/example-generated-sdk-js/examples/deploy.js +41 -0
  7. package/examples/example-generated-sdk-js/examples/events.js +36 -0
  8. package/examples/example-generated-sdk-js/examples/read-operations.js +46 -0
  9. package/examples/example-generated-sdk-js/examples/write-operations.js +44 -0
  10. package/examples/example-generated-sdk-js/index.d.ts +1 -0
  11. package/examples/example-generated-sdk-js/index.js +15 -0
  12. package/examples/example-generated-sdk-js/package-lock.json +59 -0
  13. package/examples/example-generated-sdk-js/package.json +22 -0
  14. package/examples/example-generated-sdk-js/src/SimpleERC20.d.ts +19 -0
  15. package/examples/example-generated-sdk-js/src/SimpleERC20.js +353 -0
  16. package/examples/example-generated-sdk-js/src/SimpleERC20__factory.d.ts +10 -0
  17. package/examples/example-generated-sdk-js/src/SimpleERC20__factory.js +29 -0
  18. package/examples/example-generated-sdk-js/src/index.d.ts +4 -0
  19. package/examples/example-generated-sdk-js/src/index.js +5 -0
  20. package/examples/example-generated-sdk-js/src/quantumcoin-shims.d.ts +23 -0
  21. package/examples/example-generated-sdk-js/src/types.d.ts +3 -0
  22. package/examples/example-generated-sdk-js/src/types.js +3 -0
  23. package/examples/example-generated-sdk-js/test/e2e/SimpleERC20.e2e.test.js +78 -0
  24. package/examples/example-generated-sdk-ts/README.md +65 -0
  25. package/examples/example-generated-sdk-ts/examples/_test-wallet.js +17 -0
  26. package/examples/example-generated-sdk-ts/examples/deploy.js +41 -0
  27. package/examples/example-generated-sdk-ts/examples/events.js +36 -0
  28. package/examples/example-generated-sdk-ts/examples/read-operations.js +46 -0
  29. package/examples/example-generated-sdk-ts/examples/write-operations.js +44 -0
  30. package/examples/example-generated-sdk-ts/index.d.ts +1 -0
  31. package/examples/example-generated-sdk-ts/index.js +15 -0
  32. package/examples/example-generated-sdk-ts/package-lock.json +59 -0
  33. package/examples/example-generated-sdk-ts/package.json +23 -0
  34. package/examples/example-generated-sdk-ts/src/SimpleERC20.ts +334 -0
  35. package/examples/example-generated-sdk-ts/src/SimpleERC20__factory.ts +28 -0
  36. package/examples/example-generated-sdk-ts/src/index.ts +4 -0
  37. package/examples/example-generated-sdk-ts/src/quantumcoin-shims.d.ts +23 -0
  38. package/examples/example-generated-sdk-ts/src/types.ts +4 -0
  39. package/examples/example-generated-sdk-ts/test/e2e/SimpleERC20.e2e.test.js +78 -0
  40. package/examples/example-generated-sdk-ts/tsconfig.json +14 -0
  41. package/examples/package-lock.json +1 -1
  42. package/examples/sdk-generator-erc20.inline.json +251 -251
  43. package/generate-sdk.js +1825 -1823
  44. package/package.json +1 -1
  45. package/src/abi/fragments.d.ts +42 -42
  46. package/src/abi/index.d.ts +13 -13
  47. package/src/contract/index.d.ts +9 -9
  48. package/src/errors/index.d.ts +92 -92
  49. package/src/generator/index.d.ts +11 -4
  50. package/src/generator/index.js +33 -5
  51. package/src/internal/hex.d.ts +68 -61
  52. package/src/internal/hex.js +36 -0
  53. package/src/providers/json-rpc-provider.d.ts +12 -12
  54. package/src/providers/provider.js +3 -3
  55. package/src/utils/address.d.ts +58 -58
  56. package/src/utils/encoding.d.ts +120 -120
  57. package/src/utils/hashing.js +298 -298
  58. package/src/utils/index.d.ts +63 -63
  59. package/src/utils/index.js +14 -14
  60. package/src/utils/result.d.ts +57 -57
  61. package/src/utils/rlp.d.ts +12 -12
  62. package/src/utils/units.d.ts +29 -29
  63. package/src/wallet/index.d.ts +10 -10
  64. package/src/wallet/wallet.d.ts +192 -187
  65. package/src/wallet/wallet.js +630 -610
  66. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/README.md +83 -0
  67. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/artifacts/AllSolidityTypes.abi.json +12544 -0
  68. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/artifacts/AllSolidityTypes.bin +1 -0
  69. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/_test-wallet.js +17 -0
  70. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/_test-wallet.ts +10 -0
  71. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/deploy.js +41 -0
  72. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/deploy.ts +41 -0
  73. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/events.js +36 -0
  74. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/events.ts +36 -0
  75. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/offline-signing.js +82 -0
  76. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/offline-signing.ts +80 -0
  77. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/read-operations.js +46 -0
  78. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/read-operations.ts +44 -0
  79. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/write-operations.js +44 -0
  80. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/write-operations.ts +44 -0
  81. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/index.d.ts +1 -0
  82. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/index.js +21 -0
  83. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/package-lock.json +597 -0
  84. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/package.json +25 -0
  85. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes.d.ts +1280 -0
  86. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes.js +14021 -0
  87. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes__factory.d.ts +11 -0
  88. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes__factory.js +29 -0
  89. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/index.d.ts +4 -0
  90. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/index.js +5 -0
  91. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/quantumcoin-shims.d.ts +25 -0
  92. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/types.d.ts +3 -0
  93. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/types.js +3 -0
  94. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/test/e2e/AllSolidityTypes.e2e.test.js +77 -0
  95. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/test/e2e/AllSolidityTypes.extra.test.js +195 -0
  96. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/README.md +83 -0
  97. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/artifacts/AllSolidityTypes.abi.json +12544 -0
  98. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/artifacts/AllSolidityTypes.bin +1 -0
  99. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/_test-wallet.js +17 -0
  100. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/_test-wallet.ts +10 -0
  101. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/deploy.js +41 -0
  102. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/deploy.ts +41 -0
  103. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/events.js +36 -0
  104. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/events.ts +36 -0
  105. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/offline-signing.js +82 -0
  106. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/offline-signing.ts +80 -0
  107. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/read-operations.js +46 -0
  108. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/read-operations.ts +44 -0
  109. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/write-operations.js +44 -0
  110. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/write-operations.ts +44 -0
  111. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/index.d.ts +1 -0
  112. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/index.js +21 -0
  113. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/package-lock.json +597 -0
  114. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/package.json +26 -0
  115. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/AllSolidityTypes.ts +13940 -0
  116. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/AllSolidityTypes__factory.ts +29 -0
  117. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/index.ts +4 -0
  118. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/quantumcoin-shims.d.ts +25 -0
  119. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/types.ts +4 -0
  120. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/test/e2e/AllSolidityTypes.e2e.test.js +77 -0
  121. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/test/e2e/AllSolidityTypes.extra.test.js +195 -0
  122. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/tsconfig.json +18 -0
  123. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/README.md +74 -0
  124. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/artifacts/SimpleERC20.abi.json +245 -0
  125. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/artifacts/SimpleERC20.bin +1 -0
  126. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/_test-wallet.js +17 -0
  127. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/_test-wallet.ts +10 -0
  128. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/deploy.js +41 -0
  129. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/deploy.ts +41 -0
  130. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/events.js +36 -0
  131. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/events.ts +36 -0
  132. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/offline-signing.js +82 -0
  133. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/offline-signing.ts +80 -0
  134. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/read-operations.js +46 -0
  135. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/read-operations.ts +44 -0
  136. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/write-operations.js +44 -0
  137. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/write-operations.ts +44 -0
  138. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/index.d.ts +1 -0
  139. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/index.js +16 -0
  140. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/package-lock.json +597 -0
  141. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/package.json +25 -0
  142. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20.d.ts +24 -0
  143. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20.js +372 -0
  144. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20__factory.d.ts +10 -0
  145. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20__factory.js +29 -0
  146. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/index.d.ts +4 -0
  147. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/index.js +5 -0
  148. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/quantumcoin-shims.d.ts +25 -0
  149. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/types.d.ts +3 -0
  150. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/types.js +3 -0
  151. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/test/e2e/SimpleERC20.e2e.test.js +90 -0
  152. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/README.md +74 -0
  153. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/artifacts/SimpleERC20.abi.json +245 -0
  154. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/artifacts/SimpleERC20.bin +1 -0
  155. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/_test-wallet.js +17 -0
  156. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/_test-wallet.ts +10 -0
  157. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/deploy.js +41 -0
  158. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/deploy.ts +41 -0
  159. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/events.js +36 -0
  160. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/events.ts +36 -0
  161. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/offline-signing.js +82 -0
  162. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/offline-signing.ts +80 -0
  163. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/read-operations.js +46 -0
  164. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/read-operations.ts +44 -0
  165. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/write-operations.js +44 -0
  166. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/write-operations.ts +44 -0
  167. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/index.d.ts +1 -0
  168. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/index.js +16 -0
  169. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/package-lock.json +597 -0
  170. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/package.json +26 -0
  171. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/SimpleERC20.ts +355 -0
  172. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/SimpleERC20__factory.ts +28 -0
  173. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/index.ts +4 -0
  174. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/quantumcoin-shims.d.ts +25 -0
  175. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/types.ts +4 -0
  176. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/test/e2e/SimpleERC20.e2e.test.js +90 -0
  177. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/tsconfig.json +18 -0
  178. package/test/e2e/generator-interface.e2e.test.js +163 -0
  179. package/test/e2e/generator-interface.e2e.test.ts +158 -0
  180. package/test/e2e/signing-context-and-fee.e2e.test.js +141 -141
  181. package/test/e2e/signing-context-and-fee.e2e.test.ts +128 -128
  182. package/test/integration/provider.test.js +88 -88
  183. package/test/unit/address-wallet.test.js +892 -751
  184. package/test/unit/address-wallet.test.ts +877 -736
  185. package/test/unit/generator.test.js +48 -1
  186. package/test/unit/generator.test.ts +48 -1
  187. package/test/unit/hashing.test.js +64 -64
  188. package/test/unit/hashing.test.ts +63 -63
  189. package/test/unit/internal-hex.test.js +32 -1
  190. package/test/unit/internal-hex.test.ts +32 -1
  191. package/test/unit/providers.test.js +51 -1
  192. package/test/unit/providers.test.ts +53 -0
  193. package/SPEC.md +0 -3784
  194. package/examples/node_modules/.bin/esbuild +0 -16
  195. package/examples/node_modules/.bin/esbuild.cmd +0 -17
  196. package/examples/node_modules/.bin/esbuild.ps1 +0 -28
  197. package/examples/node_modules/.bin/sdkgen +0 -16
  198. package/examples/node_modules/.bin/sdkgen.cmd +0 -17
  199. package/examples/node_modules/.bin/sdkgen.ps1 +0 -28
  200. package/examples/node_modules/.bin/tsx +0 -16
  201. package/examples/node_modules/.bin/tsx.cmd +0 -17
  202. package/examples/node_modules/.bin/tsx.ps1 +0 -28
  203. package/examples/node_modules/.package-lock.json +0 -235
  204. package/examples/node_modules/@esbuild/win32-x64/README.md +0 -3
  205. package/examples/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
  206. package/examples/node_modules/@esbuild/win32-x64/package.json +0 -20
  207. package/examples/node_modules/esbuild/LICENSE.md +0 -21
  208. package/examples/node_modules/esbuild/README.md +0 -3
  209. package/examples/node_modules/esbuild/bin/esbuild +0 -223
  210. package/examples/node_modules/esbuild/install.js +0 -289
  211. package/examples/node_modules/esbuild/lib/main.d.ts +0 -716
  212. package/examples/node_modules/esbuild/lib/main.js +0 -2532
  213. package/examples/node_modules/esbuild/package.json +0 -49
  214. package/examples/node_modules/get-tsconfig/LICENSE +0 -21
  215. package/examples/node_modules/get-tsconfig/README.md +0 -235
  216. package/examples/node_modules/get-tsconfig/dist/index.cjs +0 -7
  217. package/examples/node_modules/get-tsconfig/dist/index.d.cts +0 -2088
  218. package/examples/node_modules/get-tsconfig/dist/index.d.mts +0 -2088
  219. package/examples/node_modules/get-tsconfig/dist/index.mjs +0 -7
  220. package/examples/node_modules/get-tsconfig/package.json +0 -46
  221. package/examples/node_modules/quantum-coin-js-sdk/.github/workflows/publish-npmjs.yaml +0 -22
  222. package/examples/node_modules/quantum-coin-js-sdk/LICENSE +0 -21
  223. package/examples/node_modules/quantum-coin-js-sdk/LICENSE-wasm_exec.js.txt +0 -30
  224. package/examples/node_modules/quantum-coin-js-sdk/README.md +0 -1665
  225. package/examples/node_modules/quantum-coin-js-sdk/example/README.md +0 -14
  226. package/examples/node_modules/quantum-coin-js-sdk/example/conversion-example.js +0 -19
  227. package/examples/node_modules/quantum-coin-js-sdk/example/example-create-contract.js +0 -396
  228. package/examples/node_modules/quantum-coin-js-sdk/example/example-encode-decode-rlp.js +0 -225
  229. package/examples/node_modules/quantum-coin-js-sdk/example/example-event-pack-unpack.js +0 -391
  230. package/examples/node_modules/quantum-coin-js-sdk/example/example-misc.js +0 -101
  231. package/examples/node_modules/quantum-coin-js-sdk/example/example-rpc-send-signRawTransaction.js +0 -318
  232. package/examples/node_modules/quantum-coin-js-sdk/example/example-rpc-send.js +0 -116
  233. package/examples/node_modules/quantum-coin-js-sdk/example/example-send.js +0 -70
  234. package/examples/node_modules/quantum-coin-js-sdk/example/example-token-pack-unpack.js +0 -961
  235. package/examples/node_modules/quantum-coin-js-sdk/example/example-wallet-version4.js +0 -35
  236. package/examples/node_modules/quantum-coin-js-sdk/example/example-wallet.js +0 -43
  237. package/examples/node_modules/quantum-coin-js-sdk/example/example.js +0 -405
  238. package/examples/node_modules/quantum-coin-js-sdk/example/package-lock.json +0 -134
  239. package/examples/node_modules/quantum-coin-js-sdk/example/package.json +0 -15
  240. package/examples/node_modules/quantum-coin-js-sdk/index.d.ts +0 -1024
  241. package/examples/node_modules/quantum-coin-js-sdk/index.js +0 -3062
  242. package/examples/node_modules/quantum-coin-js-sdk/package.json +0 -34
  243. package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-32.json +0 -1
  244. package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-36.json +0 -1
  245. package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-48.json +0 -1
  246. package/examples/node_modules/quantum-coin-js-sdk/tests/generate-verify-vectors.js +0 -91
  247. package/examples/node_modules/quantum-coin-js-sdk/tests/non-transactional.preinit.test.js +0 -41
  248. package/examples/node_modules/quantum-coin-js-sdk/tests/non-transactional.test.js +0 -686
  249. package/examples/node_modules/quantum-coin-js-sdk/tests/sign-raw-keytype5-context-null.test.js +0 -107
  250. package/examples/node_modules/quantum-coin-js-sdk/tests/sign-raw-transaction.test.js +0 -196
  251. package/examples/node_modules/quantum-coin-js-sdk/tests/sign-verify.test.js +0 -311
  252. package/examples/node_modules/quantum-coin-js-sdk/tests/transactional.relay.test.js +0 -131
  253. package/examples/node_modules/quantum-coin-js-sdk/tests/transactional.rpc.test.js +0 -103
  254. package/examples/node_modules/quantum-coin-js-sdk/tests/verify-vectors.json +0 -95035
  255. package/examples/node_modules/quantum-coin-js-sdk/wasmBase64.d.ts +0 -9
  256. package/examples/node_modules/quantum-coin-js-sdk/wasmBase64.js +0 -16
  257. package/examples/node_modules/quantum-coin-js-sdk/wasm_exec.d.ts +0 -0
  258. package/examples/node_modules/quantum-coin-js-sdk/wasm_exec.js +0 -587
  259. package/examples/node_modules/resolve-pkg-maps/LICENSE +0 -21
  260. package/examples/node_modules/resolve-pkg-maps/README.md +0 -216
  261. package/examples/node_modules/resolve-pkg-maps/dist/index.cjs +0 -1
  262. package/examples/node_modules/resolve-pkg-maps/dist/index.d.cts +0 -11
  263. package/examples/node_modules/resolve-pkg-maps/dist/index.d.mts +0 -11
  264. package/examples/node_modules/resolve-pkg-maps/dist/index.mjs +0 -1
  265. package/examples/node_modules/resolve-pkg-maps/package.json +0 -42
  266. package/examples/node_modules/seed-words/.github/workflows/publish-npmjs.yaml +0 -22
  267. package/examples/node_modules/seed-words/BUILD.md +0 -7
  268. package/examples/node_modules/seed-words/LICENSE +0 -121
  269. package/examples/node_modules/seed-words/README.md +0 -67
  270. package/examples/node_modules/seed-words/dist/seedwords.d.ts +0 -39
  271. package/examples/node_modules/seed-words/package.json +0 -27
  272. package/examples/node_modules/seed-words/seedwords.js +0 -315
  273. package/examples/node_modules/seed-words/seedwords.txt +0 -65536
  274. package/examples/node_modules/seed-words/tsconfig.json +0 -21
  275. package/examples/node_modules/tsx/LICENSE +0 -21
  276. package/examples/node_modules/tsx/README.md +0 -32
  277. package/examples/node_modules/tsx/dist/cjs/api/index.cjs +0 -1
  278. package/examples/node_modules/tsx/dist/cjs/api/index.d.cts +0 -35
  279. package/examples/node_modules/tsx/dist/cjs/api/index.d.mts +0 -35
  280. package/examples/node_modules/tsx/dist/cjs/api/index.mjs +0 -1
  281. package/examples/node_modules/tsx/dist/cjs/index.cjs +0 -1
  282. package/examples/node_modules/tsx/dist/cjs/index.mjs +0 -1
  283. package/examples/node_modules/tsx/dist/cli.cjs +0 -54
  284. package/examples/node_modules/tsx/dist/cli.mjs +0 -55
  285. package/examples/node_modules/tsx/dist/client-BQVF1NaW.mjs +0 -1
  286. package/examples/node_modules/tsx/dist/client-D6NvIMSC.cjs +0 -1
  287. package/examples/node_modules/tsx/dist/esm/api/index.cjs +0 -1
  288. package/examples/node_modules/tsx/dist/esm/api/index.d.cts +0 -35
  289. package/examples/node_modules/tsx/dist/esm/api/index.d.mts +0 -35
  290. package/examples/node_modules/tsx/dist/esm/api/index.mjs +0 -1
  291. package/examples/node_modules/tsx/dist/esm/index.cjs +0 -2
  292. package/examples/node_modules/tsx/dist/esm/index.mjs +0 -2
  293. package/examples/node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs +0 -1
  294. package/examples/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs +0 -1
  295. package/examples/node_modules/tsx/dist/index-7AaEi15b.mjs +0 -14
  296. package/examples/node_modules/tsx/dist/index-BWFBUo6r.cjs +0 -1
  297. package/examples/node_modules/tsx/dist/index-gbaejti9.mjs +0 -1
  298. package/examples/node_modules/tsx/dist/index-gckBtVBf.cjs +0 -14
  299. package/examples/node_modules/tsx/dist/lexer-DQCqS3nf.mjs +0 -3
  300. package/examples/node_modules/tsx/dist/lexer-DgIbo0BU.cjs +0 -3
  301. package/examples/node_modules/tsx/dist/loader.cjs +0 -1
  302. package/examples/node_modules/tsx/dist/loader.mjs +0 -1
  303. package/examples/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs +0 -1
  304. package/examples/node_modules/tsx/dist/node-features-roYmp9jK.cjs +0 -1
  305. package/examples/node_modules/tsx/dist/package-CeBgXWuR.mjs +0 -1
  306. package/examples/node_modules/tsx/dist/package-Dxt5kIHw.cjs +0 -1
  307. package/examples/node_modules/tsx/dist/patch-repl.cjs +0 -1
  308. package/examples/node_modules/tsx/dist/patch-repl.mjs +0 -1
  309. package/examples/node_modules/tsx/dist/preflight.cjs +0 -1
  310. package/examples/node_modules/tsx/dist/preflight.mjs +0 -1
  311. package/examples/node_modules/tsx/dist/register-2sWVXuRQ.cjs +0 -1
  312. package/examples/node_modules/tsx/dist/register-B7jrtLTO.mjs +0 -1
  313. package/examples/node_modules/tsx/dist/register-CFH5oNdT.mjs +0 -4
  314. package/examples/node_modules/tsx/dist/register-D46fvsV_.cjs +0 -4
  315. package/examples/node_modules/tsx/dist/repl.cjs +0 -3
  316. package/examples/node_modules/tsx/dist/repl.mjs +0 -3
  317. package/examples/node_modules/tsx/dist/require-D4F1Lv60.cjs +0 -1
  318. package/examples/node_modules/tsx/dist/require-DQxpCAr4.mjs +0 -1
  319. package/examples/node_modules/tsx/dist/suppress-warnings.cjs +0 -1
  320. package/examples/node_modules/tsx/dist/suppress-warnings.mjs +0 -1
  321. package/examples/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs +0 -1
  322. package/examples/node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs +0 -1
  323. package/examples/node_modules/tsx/dist/types-Cxp8y2TL.d.ts +0 -5
  324. package/examples/node_modules/tsx/package.json +0 -68
@@ -1,391 +0,0 @@
1
- const qcsdk = require('quantum-coin-js-sdk');
2
-
3
- /**
4
- * Example: Event Log Encode/Decode Operations
5
- *
6
- * This example demonstrates how to use encodeEventLog and decodeEventLog
7
- * to encode and decode Ethereum event logs according to the ABI specification.
8
- */
9
-
10
- // Configuration
11
- var clientConfigVal = new qcsdk.Config("https://sdk.readrelay.quantumcoinapi.com", "https://sdk.writerelay.quantumcoinapi.com", 123123, "", ""); //Mainnet
12
- //Mainnet Block Explorer: https://scan.quantumcoin.org
13
-
14
- /**
15
- * Example 1: Basic Transfer Event (ERC20)
16
- * Transfer(address indexed from, address indexed to, uint256 value)
17
- */
18
- async function example1_TransferEvent() {
19
- console.log("\n=== Example 1: Transfer Event ===");
20
-
21
- const transferABI = JSON.stringify([{
22
- "name": "Transfer",
23
- "type": "event",
24
- "anonymous": false,
25
- "inputs": [
26
- {"name": "from", "type": "address", "indexed": true},
27
- {"name": "to", "type": "address", "indexed": true},
28
- {"name": "value", "type": "uint256", "indexed": false}
29
- ]
30
- }]);
31
-
32
- const fromAddress = "0xd51773b5dde3f8e4d29ae42b5046510e2a11fd0c8e4175853d6227896eb445c6";
33
- const toAddress = "0x1Bd75060B22686a9f32Af80BC02348c1BAeDBba06f47ad723885c92a6566B65d";
34
- const value = "1000000000000000000"; // 1 token (18 decimals)
35
-
36
- // Encode the event
37
- const encodeResult = qcsdk.encodeEventLog(transferABI, "Transfer", fromAddress, toAddress, value);
38
-
39
- if (encodeResult.error) {
40
- console.error("Encode error:", encodeResult.error);
41
- return;
42
- }
43
-
44
- console.log("Encoded Transfer Event:");
45
- console.log(" Topics:", encodeResult.result.topics);
46
- console.log(" Data:", encodeResult.result.data);
47
- console.log(" Number of topics:", encodeResult.result.topics.length);
48
- console.log(" Expected: 3 topics (event signature + from + to)");
49
-
50
- // Decode the event back
51
- const decodeResult = qcsdk.decodeEventLog(
52
- transferABI,
53
- "Transfer",
54
- encodeResult.result.topics,
55
- encodeResult.result.data
56
- );
57
-
58
- if (decodeResult.error) {
59
- console.error("Decode error:", decodeResult.error);
60
- return;
61
- }
62
-
63
- const decoded = JSON.parse(decodeResult.result);
64
- console.log("\nDecoded Transfer Event:");
65
- console.log(" From:", decoded.from);
66
- console.log(" To:", decoded.to);
67
- console.log(" Value:", decoded.value);
68
- console.log(" Verification:",
69
- decoded.from.toLowerCase() === fromAddress.toLowerCase() &&
70
- decoded.to.toLowerCase() === toAddress.toLowerCase() &&
71
- decoded.value === value ? "✓ Match" : "✗ Mismatch"
72
- );
73
- }
74
-
75
- /**
76
- * Example 2: Event with All Indexed Parameters
77
- * Approval(address indexed owner, address indexed spender, uint256 indexed value)
78
- */
79
- async function example2_AllIndexedEvent() {
80
- console.log("\n=== Example 2: All Indexed Event (Approval) ===");
81
-
82
- const approvalABI = JSON.stringify([{
83
- "name": "Approval",
84
- "type": "event",
85
- "anonymous": false,
86
- "inputs": [
87
- {"name": "owner", "type": "address", "indexed": true},
88
- {"name": "spender", "type": "address", "indexed": true},
89
- {"name": "value", "type": "uint256", "indexed": true}
90
- ]
91
- }]);
92
-
93
- const owner = "0xd51773b5dde3f8e4d29ae42b5046510e2a11fd0c8e4175853d6227896eb445c6";
94
- const spender = "0x1Bd75060B22686a9f32Af80BC02348c1BAeDBba06f47ad723885c92a6566B65d";
95
- const value = "5000000000000000000"; // 5 tokens
96
-
97
- // Encode the event
98
- const encodeResult = qcsdk.encodeEventLog(approvalABI, "Approval", owner, spender, value);
99
-
100
- if (encodeResult.error) {
101
- console.error("Encode error:", encodeResult.error);
102
- return;
103
- }
104
-
105
- console.log("Encoded Approval Event:");
106
- console.log(" Topics:", encodeResult.result.topics);
107
- console.log(" Data:", encodeResult.result.data);
108
- console.log(" Number of topics:", encodeResult.result.topics.length);
109
- console.log(" Expected: 4 topics (event signature + owner + spender + value)");
110
- console.log(" Data should be empty (0x) since all parameters are indexed");
111
-
112
- // Decode the event back
113
- const decodeResult = qcsdk.decodeEventLog(
114
- approvalABI,
115
- "Approval",
116
- encodeResult.result.topics,
117
- encodeResult.result.data
118
- );
119
-
120
- if (decodeResult.error) {
121
- console.error("Decode error:", decodeResult.error);
122
- return;
123
- }
124
-
125
- const decoded = JSON.parse(decodeResult.result);
126
- console.log("\nDecoded Approval Event:");
127
- console.log(" Owner:", decoded.owner);
128
- console.log(" Spender:", decoded.spender);
129
- console.log(" Value:", decoded.value);
130
- }
131
-
132
- /**
133
- * Example 3: Event with All Non-Indexed Parameters
134
- * ValueChanged(uint256 newValue, string message)
135
- */
136
- async function example3_AllNonIndexedEvent() {
137
- console.log("\n=== Example 3: All Non-Indexed Event ===");
138
-
139
- const valueChangedABI = JSON.stringify([{
140
- "name": "ValueChanged",
141
- "type": "event",
142
- "anonymous": false,
143
- "inputs": [
144
- {"name": "newValue", "type": "uint256", "indexed": false},
145
- {"name": "message", "type": "string", "indexed": false}
146
- ]
147
- }]);
148
-
149
- const newValue = "42";
150
- const message = "Hello, Quantum Coin!";
151
-
152
- // Encode the event
153
- const encodeResult = qcsdk.encodeEventLog(valueChangedABI, "ValueChanged", newValue, message);
154
-
155
- if (encodeResult.error) {
156
- console.error("Encode error:", encodeResult.error);
157
- return;
158
- }
159
-
160
- console.log("Encoded ValueChanged Event:");
161
- console.log(" Topics:", encodeResult.result.topics);
162
- console.log(" Data:", encodeResult.result.data);
163
- console.log(" Number of topics:", encodeResult.result.topics.length);
164
- console.log(" Expected: 1 topic (event signature only)");
165
- console.log(" Data contains both parameters");
166
-
167
- // Decode the event back
168
- const decodeResult = qcsdk.decodeEventLog(
169
- valueChangedABI,
170
- "ValueChanged",
171
- encodeResult.result.topics,
172
- encodeResult.result.data
173
- );
174
-
175
- if (decodeResult.error) {
176
- console.error("Decode error:", decodeResult.error);
177
- return;
178
- }
179
-
180
- const decoded = JSON.parse(decodeResult.result);
181
- console.log("\nDecoded ValueChanged Event:");
182
- console.log(" New Value:", decoded.newValue);
183
- console.log(" Message:", decoded.message);
184
- console.log(" Verification:",
185
- decoded.newValue === newValue &&
186
- decoded.message === message ? "✓ Match" : "✗ Mismatch"
187
- );
188
- }
189
-
190
- /**
191
- * Example 4: Event with Indexed String
192
- * StringEvent(string indexed message)
193
- * Note: Indexed strings are hashed, so we can't recover the original value
194
- */
195
- async function example4_IndexedStringEvent() {
196
- console.log("\n=== Example 4: Indexed String Event ===");
197
-
198
- const stringEventABI = JSON.stringify([{
199
- "name": "StringEvent",
200
- "type": "event",
201
- "anonymous": false,
202
- "inputs": [
203
- {"name": "message", "type": "string", "indexed": true}
204
- ]
205
- }]);
206
-
207
- const message = "Hello, World!";
208
-
209
- // Encode the event
210
- const encodeResult = qcsdk.encodeEventLog(stringEventABI, "StringEvent", message);
211
-
212
- if (encodeResult.error) {
213
- console.error("Encode error:", encodeResult.error);
214
- return;
215
- }
216
-
217
- console.log("Encoded StringEvent:");
218
- console.log(" Original message:", message);
219
- console.log(" Topics:", encodeResult.result.topics);
220
- console.log(" Data:", encodeResult.result.data);
221
- console.log(" Number of topics:", encodeResult.result.topics.length);
222
- console.log(" Expected: 2 topics (event signature + hashed string)");
223
-
224
- // Decode the event back
225
- const decodeResult = qcsdk.decodeEventLog(
226
- stringEventABI,
227
- "StringEvent",
228
- encodeResult.result.topics,
229
- encodeResult.result.data
230
- );
231
-
232
- if (decodeResult.error) {
233
- console.error("Decode error:", decodeResult.error);
234
- return;
235
- }
236
-
237
- const decoded = JSON.parse(decodeResult.result);
238
- console.log("\nDecoded StringEvent:");
239
- console.log(" Message (hash):", decoded.message);
240
- console.log(" Note: Indexed strings return the hash, not the original value");
241
- console.log(" This is expected behavior for indexed dynamic types");
242
- }
243
-
244
- /**
245
- * Example 5: Anonymous Event
246
- * AnonymousEvent(uint256 value)
247
- */
248
- async function example5_AnonymousEvent() {
249
- console.log("\n=== Example 5: Anonymous Event ===");
250
-
251
- const anonymousABI = JSON.stringify([{
252
- "name": "AnonymousEvent",
253
- "type": "event",
254
- "anonymous": true,
255
- "inputs": [
256
- {"name": "value", "type": "uint256", "indexed": false}
257
- ]
258
- }]);
259
-
260
- const value = "12345";
261
-
262
- // Encode the event
263
- const encodeResult = qcsdk.encodeEventLog(anonymousABI, "AnonymousEvent", value);
264
-
265
- if (encodeResult.error) {
266
- console.error("Encode error:", encodeResult.error);
267
- return;
268
- }
269
-
270
- console.log("Encoded AnonymousEvent:");
271
- console.log(" Topics:", encodeResult.result.topics);
272
- console.log(" Data:", encodeResult.result.data);
273
- console.log(" Number of topics:", encodeResult.result.topics.length);
274
- console.log(" Expected: 0 topics (anonymous events have no signature topic)");
275
-
276
- // Decode the event back
277
- const decodeResult = qcsdk.decodeEventLog(
278
- anonymousABI,
279
- "AnonymousEvent",
280
- encodeResult.result.topics,
281
- encodeResult.result.data
282
- );
283
-
284
- if (decodeResult.error) {
285
- console.error("Decode error:", decodeResult.error);
286
- return;
287
- }
288
-
289
- const decoded = JSON.parse(decodeResult.result);
290
- console.log("\nDecoded AnonymousEvent:");
291
- console.log(" Value:", decoded.value);
292
- console.log(" Verification:", decoded.value === value ? "✓ Match" : "✗ Mismatch");
293
- }
294
-
295
- /**
296
- * Example 6: Complex Event with Mixed Types
297
- * ComplexEvent(address indexed owner, uint256 indexed tokenId, string name, uint256[] amounts)
298
- */
299
- async function example6_ComplexEvent() {
300
- console.log("\n=== Example 6: Complex Event with Mixed Types ===");
301
-
302
- const complexABI = JSON.stringify([{
303
- "name": "ComplexEvent",
304
- "type": "event",
305
- "anonymous": false,
306
- "inputs": [
307
- {"name": "owner", "type": "address", "indexed": true},
308
- {"name": "tokenId", "type": "uint256", "indexed": true},
309
- {"name": "name", "type": "string", "indexed": false},
310
- {"name": "amounts", "type": "uint256[]", "indexed": false}
311
- ]
312
- }]);
313
-
314
- const owner = "0xd51773b5dde3f8e4d29ae42b5046510e2a11fd0c8e4175853d6227896eb445c6";
315
- const tokenId = "1";
316
- const name = "My Token";
317
- const amounts = ["100", "200", "300"];
318
-
319
- // Encode the event
320
- const encodeResult = qcsdk.encodeEventLog(complexABI, "ComplexEvent", owner, tokenId, name, amounts);
321
-
322
- if (encodeResult.error) {
323
- console.error("Encode error:", encodeResult.error);
324
- return;
325
- }
326
-
327
- console.log("Encoded ComplexEvent:");
328
- console.log(" Topics:", encodeResult.result.topics);
329
- console.log(" Data:", encodeResult.result.data);
330
- console.log(" Number of topics:", encodeResult.result.topics.length);
331
- console.log(" Expected: 3 topics (event signature + owner + tokenId)");
332
- console.log(" Data contains name and amounts array");
333
-
334
- // Decode the event back
335
- const decodeResult = qcsdk.decodeEventLog(
336
- complexABI,
337
- "ComplexEvent",
338
- encodeResult.result.topics,
339
- encodeResult.result.data
340
- );
341
-
342
- if (decodeResult.error) {
343
- console.error("Decode error:", decodeResult.error);
344
- return;
345
- }
346
-
347
- const decoded = JSON.parse(decodeResult.result);
348
- console.log("\nDecoded ComplexEvent:");
349
- console.log(" Owner:", decoded.owner);
350
- console.log(" Token ID:", decoded.tokenId);
351
- console.log(" Name:", decoded.name);
352
- console.log(" Amounts:", decoded.amounts);
353
- console.log(" Verification:",
354
- decoded.owner.toLowerCase() === owner.toLowerCase() &&
355
- decoded.tokenId === tokenId &&
356
- decoded.name === name &&
357
- JSON.stringify(decoded.amounts) === JSON.stringify(amounts) ? "✓ Match" : "✗ Mismatch"
358
- );
359
- }
360
-
361
- /**
362
- * Main function to run all examples
363
- */
364
- async function runExamples() {
365
- console.log("==========================================");
366
- console.log("Event Log Encode/Decode Examples");
367
- console.log("==========================================");
368
-
369
- try {
370
- // Initialize SDK
371
- await qcsdk.initialize(clientConfigVal);
372
- console.log("SDK initialized successfully");
373
-
374
- // Run examples
375
- await example1_TransferEvent();
376
- await example2_AllIndexedEvent();
377
- await example3_AllNonIndexedEvent();
378
- await example4_IndexedStringEvent();
379
- await example5_AnonymousEvent();
380
- await example6_ComplexEvent();
381
-
382
- console.log("\n==========================================");
383
- console.log("All examples completed successfully!");
384
- console.log("==========================================");
385
- } catch (error) {
386
- console.error("Error running examples:", error);
387
- }
388
- }
389
-
390
- // Run the examples
391
- runExamples().catch(console.error);
@@ -1,101 +0,0 @@
1
- const qcsdk = require('quantum-coin-js-sdk');
2
- const ethers = require('ethers');
3
-
4
- var clientConfigVal = new qcsdk.Config("https://sdk.readrelay.quantumcoinapi.com", "https://sdk.writerelay.quantumcoinapi.com", 123123, "", ""); //Mainnet
5
-
6
- //Initialize the client configuration
7
- //var clientConfigVal = new qcsdk.Config("https://t4-relayread.quantumcoin.org", "https://t4-relaywrite.quantumcoin.org", 310324, "", ""); //Testnet T4
8
- //Testnet T4 Block Explorer: https://t4.scan.quantumcoin.org
9
-
10
- //For mainnet, use the following configuration
11
- //var clientConfigVal = new qcsdk.Config("https://sdk.readrelay.quantumcoinapi.com", "https://sdk.writerelay.quantumcoinapi.com", 123123, "", ""); //Mainnet
12
- //Mainnet Block Explorer: https://scan.quantumcoin.org
13
-
14
- //Local testing configuration
15
- //var clientConfigVal = new qcsdk.Config("http://127.0.0.1:9090", "http://127.0.0.1:9091", 123123, "", ""); //local testing
16
- //Mainnet Block Explorer: https://scan.quantumcoin.org
17
-
18
- //Initialize the SDK
19
- qcsdk.initialize(clientConfigVal).then((initResult) => {
20
- if (initResult === false) {
21
- console.error("Initialize failed");
22
- return;
23
- }
24
-
25
- const digestHashBase64 = "aGkgdGhlcmVvY2tjaGFpbmJiYmJiYmJiYmJiYmJiYmI=";
26
- const signatureBase64 = "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";
27
-
28
- let digest = base64ToBytes(digestHashBase64);
29
- let signature = base64ToBytes(signatureBase64);
30
-
31
- let publicKey = qcsdk.publicKeyFromSignature(digest, signature);
32
- console.log("publicKeyFromSignature publicKey length: " + publicKey.length);
33
-
34
- // Wallet and signing demo: use CIRCL (newWallet + hybrideds) when available
35
- const g = typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : {};
36
- const circl = g.circl;
37
- const walletExample = qcsdk.newWallet();
38
- if (typeof walletExample === 'object' && walletExample != null && circl && circl.hybrideds) {
39
- console.log("walletExample.privateKey length " + walletExample.privateKey.length);
40
- let publicKey2 = qcsdk.publicKeyFromPrivateKey(walletExample.privateKey);
41
- console.log("publicKeyFromPrivateKey publicKey length: " + publicKey2.length);
42
- let publicKey2Bytes = hexToBytes(publicKey2);
43
- if (publicKey2Bytes.length !== walletExample.publicKey.length) {
44
- throw new Error("public key length compare failed S");
45
- }
46
- for (let i = 0; i < publicKey2Bytes.length; i++) {
47
- if (publicKey2Bytes[i] !== walletExample.publicKey[i]) {
48
- throw new Error("public key compare failed A");
49
- }
50
- }
51
-
52
- let utf8Encode = new TextEncoder();
53
- let message = utf8Encode.encode("verifyverifyverifyverifyverifyok");
54
- const privU8 = walletExample.privateKey instanceof Uint8Array ? walletExample.privateKey : new Uint8Array(walletExample.privateKey);
55
- const sigRes = circl.hybrideds.signCompact(privU8, message);
56
- if (sigRes && sigRes.error) throw new Error("CIRCL sign failed: " + sigRes.error);
57
- let quantumSig = sigRes.result instanceof Uint8Array ? Array.from(sigRes.result) : sigRes.result;
58
-
59
- let combinedSignatureHex = qcsdk.combinePublicKeySignature(walletExample.publicKey, quantumSig);
60
- if (combinedSignatureHex === null) {
61
- throw new Error("combinePublicKeySignature combine failed");
62
- }
63
- let combinedSignatureBytes = hexToBytes(combinedSignatureHex);
64
- let publicKeySigHex = qcsdk.publicKeyFromSignature(message, combinedSignatureBytes);
65
- let publicKeySigBytes = hexToBytes(publicKeySigHex);
66
- if (publicKeySigBytes.length !== walletExample.publicKey.length) {
67
- throw new Error("public key length compare failed B");
68
- }
69
- for (let i = 0; i < publicKeySigBytes.length; i++) {
70
- if (publicKeySigBytes[i] !== walletExample.publicKey[i]) {
71
- throw new Error("public key compare failed B");
72
- }
73
- }
74
- } else {
75
- console.log("CIRCL not loaded or newWallet failed; skipping wallet/signing demo.");
76
- }
77
- });
78
-
79
- function base64ToBytes(base64) {
80
- const binString = atob(base64);
81
- return Uint8Array.from(binString, (m) => m.codePointAt(0));
82
- }
83
-
84
- // Convert a hex string to a byte array
85
- function hexToBytes(hex) {
86
- let bytes = [];
87
- for (let c = 0; c < hex.length; c += 2)
88
- bytes.push(parseInt(hex.substr(c, 2), 16));
89
- return bytes;
90
- }
91
-
92
- // Convert a byte array to a hex string
93
- function bytesToHex(bytes) {
94
- let hex = [];
95
- for (let i = 0; i < bytes.length; i++) {
96
- let current = bytes[i] < 0 ? bytes[i] + 256 : bytes[i];
97
- hex.push((current >>> 4).toString(16));
98
- hex.push((current & 0xF).toString(16));
99
- }
100
- return hex.join("");
101
- }