quantumcoin 7.0.14 → 8.0.0

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 (414) hide show
  1. package/README-SDK.md +46 -0
  2. package/README.md +1 -1
  3. package/generate-sdk.js +8 -6
  4. package/package.json +22 -4
  5. package/src/abi/interface.d.ts +133 -128
  6. package/src/abi/js-abi-coder.d.ts +8 -8
  7. package/src/constants.d.ts +61 -61
  8. package/src/contract/contract-factory.d.ts +28 -28
  9. package/src/contract/contract.d.ts +121 -113
  10. package/src/contract/index.d.ts +1 -0
  11. package/src/errors/index.d.ts +10 -2
  12. package/src/errors/index.js +1 -1
  13. package/src/generator/index.d.ts +109 -81
  14. package/src/index.d.ts +126 -122
  15. package/src/internal/event-emitter.d.ts +76 -0
  16. package/src/internal/event-emitter.js +144 -0
  17. package/src/internal/hex.d.ts +27 -4
  18. package/src/internal/hex.js +7 -3
  19. package/src/providers/extra-providers.d.ts +141 -139
  20. package/src/providers/extra-providers.js +15 -1
  21. package/src/providers/index.d.ts +18 -17
  22. package/src/providers/json-rpc-provider.d.ts +1 -0
  23. package/src/providers/provider.d.ts +233 -206
  24. package/src/providers/provider.js +41 -1
  25. package/src/utils/encoding.js +16 -4
  26. package/src/utils/fixednumber.d.ts +57 -57
  27. package/src/utils/hashing.d.ts +79 -76
  28. package/src/utils/hashing.js +68 -177
  29. package/src/utils/index.d.ts +1 -1
  30. package/src/utils/rlp.js +1 -1
  31. package/src/wallet/wallet.d.ts +54 -19
  32. package/src/wallet/wallet.js +48 -10
  33. package/.github/workflows/publish-npmjs.yaml +0 -22
  34. package/.gitignore +0 -15
  35. package/examples/AllSolidityTypes.sol +0 -184
  36. package/examples/SimpleIERC20.sol +0 -74
  37. package/examples/events.js +0 -41
  38. package/examples/events.ts +0 -35
  39. package/examples/example-generated-sdk-js/README.md +0 -65
  40. package/examples/example-generated-sdk-js/examples/_test-wallet.js +0 -17
  41. package/examples/example-generated-sdk-js/examples/deploy.js +0 -41
  42. package/examples/example-generated-sdk-js/examples/events.js +0 -36
  43. package/examples/example-generated-sdk-js/examples/read-operations.js +0 -46
  44. package/examples/example-generated-sdk-js/examples/write-operations.js +0 -44
  45. package/examples/example-generated-sdk-js/index.d.ts +0 -1
  46. package/examples/example-generated-sdk-js/index.js +0 -15
  47. package/examples/example-generated-sdk-js/package-lock.json +0 -59
  48. package/examples/example-generated-sdk-js/package.json +0 -22
  49. package/examples/example-generated-sdk-js/src/SimpleERC20.d.ts +0 -19
  50. package/examples/example-generated-sdk-js/src/SimpleERC20.js +0 -353
  51. package/examples/example-generated-sdk-js/src/SimpleERC20__factory.d.ts +0 -10
  52. package/examples/example-generated-sdk-js/src/SimpleERC20__factory.js +0 -29
  53. package/examples/example-generated-sdk-js/src/index.d.ts +0 -4
  54. package/examples/example-generated-sdk-js/src/index.js +0 -5
  55. package/examples/example-generated-sdk-js/src/quantumcoin-shims.d.ts +0 -23
  56. package/examples/example-generated-sdk-js/src/types.d.ts +0 -3
  57. package/examples/example-generated-sdk-js/src/types.js +0 -3
  58. package/examples/example-generated-sdk-js/test/e2e/SimpleERC20.e2e.test.js +0 -78
  59. package/examples/example-generated-sdk-ts/README.md +0 -65
  60. package/examples/example-generated-sdk-ts/examples/_test-wallet.js +0 -17
  61. package/examples/example-generated-sdk-ts/examples/deploy.js +0 -41
  62. package/examples/example-generated-sdk-ts/examples/events.js +0 -36
  63. package/examples/example-generated-sdk-ts/examples/read-operations.js +0 -46
  64. package/examples/example-generated-sdk-ts/examples/write-operations.js +0 -44
  65. package/examples/example-generated-sdk-ts/index.d.ts +0 -1
  66. package/examples/example-generated-sdk-ts/index.js +0 -15
  67. package/examples/example-generated-sdk-ts/package-lock.json +0 -59
  68. package/examples/example-generated-sdk-ts/package.json +0 -23
  69. package/examples/example-generated-sdk-ts/src/SimpleERC20.ts +0 -334
  70. package/examples/example-generated-sdk-ts/src/SimpleERC20__factory.ts +0 -28
  71. package/examples/example-generated-sdk-ts/src/index.ts +0 -4
  72. package/examples/example-generated-sdk-ts/src/quantumcoin-shims.d.ts +0 -23
  73. package/examples/example-generated-sdk-ts/src/types.ts +0 -4
  74. package/examples/example-generated-sdk-ts/test/e2e/SimpleERC20.e2e.test.js +0 -78
  75. package/examples/example-generated-sdk-ts/tsconfig.json +0 -14
  76. package/examples/example-generator-sdk-js.js +0 -100
  77. package/examples/example-generator-sdk-js.ts +0 -77
  78. package/examples/example-generator-sdk-ts.js +0 -100
  79. package/examples/example-generator-sdk-ts.ts +0 -77
  80. package/examples/example.js +0 -67
  81. package/examples/example.ts +0 -56
  82. package/examples/node_modules/.bin/esbuild +0 -16
  83. package/examples/node_modules/.bin/esbuild.cmd +0 -17
  84. package/examples/node_modules/.bin/esbuild.ps1 +0 -28
  85. package/examples/node_modules/.bin/sdkgen +0 -16
  86. package/examples/node_modules/.bin/sdkgen.cmd +0 -17
  87. package/examples/node_modules/.bin/sdkgen.ps1 +0 -28
  88. package/examples/node_modules/.bin/tsx +0 -16
  89. package/examples/node_modules/.bin/tsx.cmd +0 -17
  90. package/examples/node_modules/.bin/tsx.ps1 +0 -28
  91. package/examples/node_modules/.package-lock.json +0 -144
  92. package/examples/node_modules/@esbuild/win32-x64/README.md +0 -3
  93. package/examples/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
  94. package/examples/node_modules/@esbuild/win32-x64/package.json +0 -20
  95. package/examples/node_modules/esbuild/LICENSE.md +0 -21
  96. package/examples/node_modules/esbuild/README.md +0 -3
  97. package/examples/node_modules/esbuild/bin/esbuild +0 -223
  98. package/examples/node_modules/esbuild/install.js +0 -289
  99. package/examples/node_modules/esbuild/lib/main.d.ts +0 -716
  100. package/examples/node_modules/esbuild/lib/main.js +0 -2532
  101. package/examples/node_modules/esbuild/package.json +0 -49
  102. package/examples/node_modules/get-tsconfig/LICENSE +0 -21
  103. package/examples/node_modules/get-tsconfig/README.md +0 -235
  104. package/examples/node_modules/get-tsconfig/dist/index.cjs +0 -7
  105. package/examples/node_modules/get-tsconfig/dist/index.d.cts +0 -2088
  106. package/examples/node_modules/get-tsconfig/dist/index.d.mts +0 -2088
  107. package/examples/node_modules/get-tsconfig/dist/index.mjs +0 -7
  108. package/examples/node_modules/get-tsconfig/package.json +0 -46
  109. package/examples/node_modules/quantum-coin-js-sdk/LICENSE +0 -21
  110. package/examples/node_modules/quantum-coin-js-sdk/LICENSE-wasm_exec.js.txt +0 -30
  111. package/examples/node_modules/quantum-coin-js-sdk/README.md +0 -1675
  112. package/examples/node_modules/quantum-coin-js-sdk/example/README.md +0 -14
  113. package/examples/node_modules/quantum-coin-js-sdk/example/conversion-example.js +0 -19
  114. package/examples/node_modules/quantum-coin-js-sdk/example/example-create-contract.js +0 -396
  115. package/examples/node_modules/quantum-coin-js-sdk/example/example-encode-decode-rlp.js +0 -225
  116. package/examples/node_modules/quantum-coin-js-sdk/example/example-event-pack-unpack.js +0 -391
  117. package/examples/node_modules/quantum-coin-js-sdk/example/example-misc.js +0 -101
  118. package/examples/node_modules/quantum-coin-js-sdk/example/example-rpc-send-signRawTransaction.js +0 -318
  119. package/examples/node_modules/quantum-coin-js-sdk/example/example-rpc-send.js +0 -116
  120. package/examples/node_modules/quantum-coin-js-sdk/example/example-send.js +0 -70
  121. package/examples/node_modules/quantum-coin-js-sdk/example/example-token-pack-unpack.js +0 -961
  122. package/examples/node_modules/quantum-coin-js-sdk/example/example-wallet-version4.js +0 -35
  123. package/examples/node_modules/quantum-coin-js-sdk/example/example-wallet.js +0 -43
  124. package/examples/node_modules/quantum-coin-js-sdk/example/example.js +0 -405
  125. package/examples/node_modules/quantum-coin-js-sdk/example/package-lock.json +0 -134
  126. package/examples/node_modules/quantum-coin-js-sdk/example/package.json +0 -15
  127. package/examples/node_modules/quantum-coin-js-sdk/index.d.ts +0 -1031
  128. package/examples/node_modules/quantum-coin-js-sdk/index.js +0 -3144
  129. package/examples/node_modules/quantum-coin-js-sdk/package.json +0 -34
  130. package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-32.json +0 -1
  131. package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-36.json +0 -1
  132. package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-48.json +0 -1
  133. package/examples/node_modules/quantum-coin-js-sdk/tests/generate-verify-vectors.js +0 -91
  134. package/examples/node_modules/quantum-coin-js-sdk/tests/non-transactional.preinit.test.js +0 -41
  135. package/examples/node_modules/quantum-coin-js-sdk/tests/non-transactional.test.js +0 -1389
  136. package/examples/node_modules/quantum-coin-js-sdk/tests/sign-raw-keytype5-context-null.test.js +0 -107
  137. package/examples/node_modules/quantum-coin-js-sdk/tests/sign-raw-transaction.test.js +0 -196
  138. package/examples/node_modules/quantum-coin-js-sdk/tests/sign-verify.test.js +0 -311
  139. package/examples/node_modules/quantum-coin-js-sdk/tests/transactional.relay.test.js +0 -131
  140. package/examples/node_modules/quantum-coin-js-sdk/tests/transactional.rpc.test.js +0 -103
  141. package/examples/node_modules/quantum-coin-js-sdk/tests/verify-vectors.json +0 -95035
  142. package/examples/node_modules/quantum-coin-js-sdk/wasmBase64.d.ts +0 -9
  143. package/examples/node_modules/quantum-coin-js-sdk/wasmBase64.js +0 -16
  144. package/examples/node_modules/quantum-coin-js-sdk/wasm_exec.d.ts +0 -0
  145. package/examples/node_modules/quantum-coin-js-sdk/wasm_exec.js +0 -587
  146. package/examples/node_modules/resolve-pkg-maps/LICENSE +0 -21
  147. package/examples/node_modules/resolve-pkg-maps/README.md +0 -216
  148. package/examples/node_modules/resolve-pkg-maps/dist/index.cjs +0 -1
  149. package/examples/node_modules/resolve-pkg-maps/dist/index.d.cts +0 -11
  150. package/examples/node_modules/resolve-pkg-maps/dist/index.d.mts +0 -11
  151. package/examples/node_modules/resolve-pkg-maps/dist/index.mjs +0 -1
  152. package/examples/node_modules/resolve-pkg-maps/package.json +0 -42
  153. package/examples/node_modules/seed-words/.github/workflows/publish-npmjs.yaml +0 -22
  154. package/examples/node_modules/seed-words/BUILD.md +0 -7
  155. package/examples/node_modules/seed-words/LICENSE +0 -121
  156. package/examples/node_modules/seed-words/README.md +0 -67
  157. package/examples/node_modules/seed-words/dist/seedwords.d.ts +0 -39
  158. package/examples/node_modules/seed-words/package.json +0 -27
  159. package/examples/node_modules/seed-words/seedwords.js +0 -315
  160. package/examples/node_modules/seed-words/seedwords.txt +0 -65536
  161. package/examples/node_modules/seed-words/tsconfig.json +0 -21
  162. package/examples/node_modules/tsx/LICENSE +0 -21
  163. package/examples/node_modules/tsx/README.md +0 -32
  164. package/examples/node_modules/tsx/dist/cjs/api/index.cjs +0 -1
  165. package/examples/node_modules/tsx/dist/cjs/api/index.d.cts +0 -35
  166. package/examples/node_modules/tsx/dist/cjs/api/index.d.mts +0 -35
  167. package/examples/node_modules/tsx/dist/cjs/api/index.mjs +0 -1
  168. package/examples/node_modules/tsx/dist/cjs/index.cjs +0 -1
  169. package/examples/node_modules/tsx/dist/cjs/index.mjs +0 -1
  170. package/examples/node_modules/tsx/dist/cli.cjs +0 -54
  171. package/examples/node_modules/tsx/dist/cli.mjs +0 -55
  172. package/examples/node_modules/tsx/dist/client-BQVF1NaW.mjs +0 -1
  173. package/examples/node_modules/tsx/dist/client-D6NvIMSC.cjs +0 -1
  174. package/examples/node_modules/tsx/dist/esm/api/index.cjs +0 -1
  175. package/examples/node_modules/tsx/dist/esm/api/index.d.cts +0 -35
  176. package/examples/node_modules/tsx/dist/esm/api/index.d.mts +0 -35
  177. package/examples/node_modules/tsx/dist/esm/api/index.mjs +0 -1
  178. package/examples/node_modules/tsx/dist/esm/index.cjs +0 -2
  179. package/examples/node_modules/tsx/dist/esm/index.mjs +0 -2
  180. package/examples/node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs +0 -1
  181. package/examples/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs +0 -1
  182. package/examples/node_modules/tsx/dist/index-7AaEi15b.mjs +0 -14
  183. package/examples/node_modules/tsx/dist/index-BWFBUo6r.cjs +0 -1
  184. package/examples/node_modules/tsx/dist/index-gbaejti9.mjs +0 -1
  185. package/examples/node_modules/tsx/dist/index-gckBtVBf.cjs +0 -14
  186. package/examples/node_modules/tsx/dist/lexer-DQCqS3nf.mjs +0 -3
  187. package/examples/node_modules/tsx/dist/lexer-DgIbo0BU.cjs +0 -3
  188. package/examples/node_modules/tsx/dist/loader.cjs +0 -1
  189. package/examples/node_modules/tsx/dist/loader.mjs +0 -1
  190. package/examples/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs +0 -1
  191. package/examples/node_modules/tsx/dist/node-features-roYmp9jK.cjs +0 -1
  192. package/examples/node_modules/tsx/dist/package-CeBgXWuR.mjs +0 -1
  193. package/examples/node_modules/tsx/dist/package-Dxt5kIHw.cjs +0 -1
  194. package/examples/node_modules/tsx/dist/patch-repl.cjs +0 -1
  195. package/examples/node_modules/tsx/dist/patch-repl.mjs +0 -1
  196. package/examples/node_modules/tsx/dist/preflight.cjs +0 -1
  197. package/examples/node_modules/tsx/dist/preflight.mjs +0 -1
  198. package/examples/node_modules/tsx/dist/register-2sWVXuRQ.cjs +0 -1
  199. package/examples/node_modules/tsx/dist/register-B7jrtLTO.mjs +0 -1
  200. package/examples/node_modules/tsx/dist/register-CFH5oNdT.mjs +0 -4
  201. package/examples/node_modules/tsx/dist/register-D46fvsV_.cjs +0 -4
  202. package/examples/node_modules/tsx/dist/repl.cjs +0 -3
  203. package/examples/node_modules/tsx/dist/repl.mjs +0 -3
  204. package/examples/node_modules/tsx/dist/require-D4F1Lv60.cjs +0 -1
  205. package/examples/node_modules/tsx/dist/require-DQxpCAr4.mjs +0 -1
  206. package/examples/node_modules/tsx/dist/suppress-warnings.cjs +0 -1
  207. package/examples/node_modules/tsx/dist/suppress-warnings.mjs +0 -1
  208. package/examples/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs +0 -1
  209. package/examples/node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs +0 -1
  210. package/examples/node_modules/tsx/dist/types-Cxp8y2TL.d.ts +0 -5
  211. package/examples/node_modules/tsx/package.json +0 -68
  212. package/examples/offline-signing.js +0 -77
  213. package/examples/offline-signing.ts +0 -65
  214. package/examples/package-lock.json +0 -596
  215. package/examples/package.json +0 -32
  216. package/examples/read-operations.js +0 -32
  217. package/examples/read-operations.ts +0 -31
  218. package/examples/sdk-generator-erc20.inline.json +0 -251
  219. package/examples/solidity-types.ts +0 -43
  220. package/examples/wallet-offline.js +0 -36
  221. package/examples/wallet-offline.ts +0 -26
  222. package/scripts/copy-declarations.js +0 -31
  223. package/scripts/run-all-one-by-one.js +0 -151
  224. package/test/e2e/all-solidity-types.dynamic.test.js +0 -207
  225. package/test/e2e/all-solidity-types.dynamic.test.ts +0 -191
  226. package/test/e2e/all-solidity-types.fixtures.js +0 -231
  227. package/test/e2e/all-solidity-types.generated-sdks.e2e.test.js +0 -387
  228. package/test/e2e/all-solidity-types.generated-sdks.e2e.test.ts +0 -350
  229. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/README.md +0 -83
  230. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/artifacts/AllSolidityTypes.abi.json +0 -12544
  231. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/artifacts/AllSolidityTypes.bin +0 -1
  232. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/_test-wallet.js +0 -17
  233. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/_test-wallet.ts +0 -10
  234. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/deploy.js +0 -41
  235. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/deploy.ts +0 -41
  236. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/events.js +0 -36
  237. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/events.ts +0 -36
  238. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/offline-signing.js +0 -82
  239. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/offline-signing.ts +0 -80
  240. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/read-operations.js +0 -46
  241. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/read-operations.ts +0 -44
  242. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/write-operations.js +0 -44
  243. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/write-operations.ts +0 -44
  244. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/index.d.ts +0 -1
  245. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/index.js +0 -21
  246. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/package-lock.json +0 -597
  247. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/package.json +0 -25
  248. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes.d.ts +0 -1280
  249. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes.js +0 -14021
  250. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes__factory.d.ts +0 -11
  251. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes__factory.js +0 -31
  252. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/index.d.ts +0 -4
  253. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/index.js +0 -5
  254. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/quantumcoin-shims.d.ts +0 -25
  255. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/types.d.ts +0 -3
  256. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/types.js +0 -3
  257. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/test/e2e/AllSolidityTypes.e2e.test.js +0 -77
  258. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/test/e2e/AllSolidityTypes.extra.test.js +0 -195
  259. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/README.md +0 -83
  260. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/artifacts/AllSolidityTypes.abi.json +0 -12544
  261. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/artifacts/AllSolidityTypes.bin +0 -1
  262. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/_test-wallet.js +0 -17
  263. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/_test-wallet.ts +0 -10
  264. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/deploy.js +0 -41
  265. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/deploy.ts +0 -41
  266. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/events.js +0 -36
  267. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/events.ts +0 -36
  268. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/offline-signing.js +0 -82
  269. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/offline-signing.ts +0 -80
  270. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/read-operations.js +0 -46
  271. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/read-operations.ts +0 -44
  272. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/write-operations.js +0 -44
  273. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/write-operations.ts +0 -44
  274. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/index.d.ts +0 -1
  275. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/index.js +0 -21
  276. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/package-lock.json +0 -597
  277. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/package.json +0 -26
  278. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/AllSolidityTypes.ts +0 -13940
  279. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/AllSolidityTypes__factory.ts +0 -31
  280. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/index.ts +0 -4
  281. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/quantumcoin-shims.d.ts +0 -25
  282. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/types.ts +0 -4
  283. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/test/e2e/AllSolidityTypes.e2e.test.js +0 -77
  284. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/test/e2e/AllSolidityTypes.extra.test.js +0 -195
  285. package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/tsconfig.json +0 -18
  286. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/README.md +0 -74
  287. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/artifacts/SimpleERC20.abi.json +0 -245
  288. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/artifacts/SimpleERC20.bin +0 -1
  289. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/_test-wallet.js +0 -17
  290. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/_test-wallet.ts +0 -10
  291. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/deploy.js +0 -41
  292. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/deploy.ts +0 -41
  293. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/events.js +0 -36
  294. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/events.ts +0 -36
  295. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/offline-signing.js +0 -82
  296. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/offline-signing.ts +0 -80
  297. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/read-operations.js +0 -46
  298. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/read-operations.ts +0 -44
  299. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/write-operations.js +0 -44
  300. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/write-operations.ts +0 -44
  301. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/index.d.ts +0 -1
  302. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/index.js +0 -16
  303. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/package-lock.json +0 -597
  304. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/package.json +0 -25
  305. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20.d.ts +0 -24
  306. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20.js +0 -378
  307. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20__factory.d.ts +0 -10
  308. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20__factory.js +0 -31
  309. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/index.d.ts +0 -4
  310. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/index.js +0 -5
  311. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/quantumcoin-shims.d.ts +0 -25
  312. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/types.d.ts +0 -3
  313. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/types.js +0 -3
  314. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/test/e2e/SimpleERC20.e2e.test.js +0 -90
  315. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/README.md +0 -74
  316. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/artifacts/SimpleERC20.abi.json +0 -245
  317. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/artifacts/SimpleERC20.bin +0 -1
  318. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/_test-wallet.js +0 -17
  319. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/_test-wallet.ts +0 -10
  320. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/deploy.js +0 -41
  321. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/deploy.ts +0 -41
  322. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/events.js +0 -36
  323. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/events.ts +0 -36
  324. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/offline-signing.js +0 -82
  325. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/offline-signing.ts +0 -80
  326. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/read-operations.js +0 -46
  327. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/read-operations.ts +0 -44
  328. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/write-operations.js +0 -44
  329. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/write-operations.ts +0 -44
  330. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/index.d.ts +0 -1
  331. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/index.js +0 -16
  332. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/package-lock.json +0 -597
  333. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/package.json +0 -26
  334. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/SimpleERC20.ts +0 -361
  335. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/SimpleERC20__factory.ts +0 -30
  336. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/index.ts +0 -4
  337. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/quantumcoin-shims.d.ts +0 -25
  338. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/types.ts +0 -4
  339. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/test/e2e/SimpleERC20.e2e.test.js +0 -90
  340. package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/tsconfig.json +0 -18
  341. package/test/e2e/generator-interface.e2e.test.js +0 -165
  342. package/test/e2e/generator-interface.e2e.test.ts +0 -160
  343. package/test/e2e/helpers.js +0 -59
  344. package/test/e2e/signing-context-and-fee.e2e.test.js +0 -141
  345. package/test/e2e/signing-context-and-fee.e2e.test.ts +0 -128
  346. package/test/e2e/simple-erc20.generated-sdks.e2e.test.js +0 -168
  347. package/test/e2e/simple-erc20.generated-sdks.e2e.test.ts +0 -141
  348. package/test/e2e/transactional.test.js +0 -245
  349. package/test/e2e/transactional.test.ts +0 -208
  350. package/test/e2e/typed-generator.e2e.test.js +0 -407
  351. package/test/e2e/typed-generator.e2e.test.ts +0 -337
  352. package/test/fixtures/ConstructorParam.sol +0 -23
  353. package/test/fixtures/MultiContracts.sol +0 -37
  354. package/test/fixtures/SimpleStorage.sol +0 -18
  355. package/test/fixtures/StakingContract.abi.json +0 -1
  356. package/test/integration/ipc-provider.test.js +0 -49
  357. package/test/integration/ipc-provider.test.ts +0 -44
  358. package/test/integration/provider.test.js +0 -88
  359. package/test/integration/provider.test.ts +0 -85
  360. package/test/integration/ws-provider.test.js +0 -41
  361. package/test/integration/ws-provider.test.ts +0 -38
  362. package/test/security/abi-decoder-bounds.test.js +0 -122
  363. package/test/security/contract-overrides.test.js +0 -112
  364. package/test/security/generator-injection.test.js +0 -195
  365. package/test/security/malformed-input.test.js +0 -330
  366. package/test/security/malformed-input.test.ts +0 -35
  367. package/test/security/rpc-numeric-bounds.test.js +0 -81
  368. package/test/security/rpc-trust.test.js +0 -202
  369. package/test/unit/_encrypted-output.txt +0 -6
  370. package/test/unit/_log-encrypted-jsons.js +0 -45
  371. package/test/unit/_write-keystore-fixture.js +0 -16
  372. package/test/unit/abi-interface.test.js +0 -110
  373. package/test/unit/abi-interface.test.ts +0 -109
  374. package/test/unit/address-wallet.test.js +0 -923
  375. package/test/unit/address-wallet.test.ts +0 -877
  376. package/test/unit/browser-provider.test.js +0 -85
  377. package/test/unit/browser-provider.test.ts +0 -79
  378. package/test/unit/contract.test.js +0 -85
  379. package/test/unit/contract.test.ts +0 -83
  380. package/test/unit/encoding-units-rlp.test.js +0 -127
  381. package/test/unit/encoding-units-rlp.test.ts +0 -91
  382. package/test/unit/errors.test.js +0 -77
  383. package/test/unit/errors.test.ts +0 -76
  384. package/test/unit/filter-by-blockhash.test.js +0 -55
  385. package/test/unit/filter-by-blockhash.test.ts +0 -54
  386. package/test/unit/fixednumber.test.js +0 -656
  387. package/test/unit/fixednumber.test.ts +0 -660
  388. package/test/unit/fixtures/encrypted-keystores-48-32-36.js +0 -9
  389. package/test/unit/generate-contract-cli.test.js +0 -42
  390. package/test/unit/generate-contract-cli.test.ts +0 -41
  391. package/test/unit/generate-sdk-artifacts-json.test.js +0 -113
  392. package/test/unit/generate-sdk-artifacts-json.test.ts +0 -110
  393. package/test/unit/generator.test.js +0 -149
  394. package/test/unit/generator.test.ts +0 -148
  395. package/test/unit/hashing.test.js +0 -64
  396. package/test/unit/hashing.test.ts +0 -63
  397. package/test/unit/init.test.js +0 -39
  398. package/test/unit/init.test.ts +0 -38
  399. package/test/unit/interface.test.js +0 -56
  400. package/test/unit/interface.test.ts +0 -54
  401. package/test/unit/internal-hex.test.js +0 -81
  402. package/test/unit/internal-hex.test.ts +0 -80
  403. package/test/unit/populate-transaction.test.js +0 -98
  404. package/test/unit/populate-transaction.test.ts +0 -64
  405. package/test/unit/providers.test.js +0 -252
  406. package/test/unit/providers.test.ts +0 -251
  407. package/test/unit/result.test.js +0 -80
  408. package/test/unit/result.test.ts +0 -79
  409. package/test/unit/solidity-types.test.js +0 -49
  410. package/test/unit/solidity-types.test.ts +0 -39
  411. package/test/unit/utils.test.js +0 -57
  412. package/test/unit/utils.test.ts +0 -56
  413. package/test/verbose-logger.js +0 -74
  414. package/tsconfig.build.json +0 -14
@@ -1,407 +0,0 @@
1
- /**
2
- * @testCategory e2e
3
- * @blockchainRequired write
4
- * @transactional true
5
- *
6
- * End-to-end test for the typed contract generator:
7
- * - Compiles a Solidity contract with a constructor parameter
8
- * - Generates a standalone typed-contract package into a temp folder
9
- * - Runs `npm install`
10
- * - Verifies tests/examples were generated
11
- * - Runs the generated package tests against the provided JSON-RPC URL
12
- */
13
-
14
- const { describe, it } = require("node:test");
15
- const assert = require("node:assert/strict");
16
- const fs = require("node:fs");
17
- const path = require("node:path");
18
- const os = require("node:os");
19
- const { execFileSync, spawnSync } = require("node:child_process");
20
-
21
- const { getRpcUrl, getChainId, getSolcPath, assertSolcExists, logE2eConfig } = require("./helpers");
22
- const { logSuite, logTest } = require("../verbose-logger");
23
-
24
- function getNpmCmd() {
25
- return process.platform === "win32" ? "npm.cmd" : "npm";
26
- }
27
-
28
- function run(cmd, args, cwd, env) {
29
- const res = spawnSync(cmd, args, {
30
- cwd,
31
- env,
32
- encoding: "utf8",
33
- stdio: "pipe",
34
- shell: false,
35
- windowsHide: true,
36
- });
37
- if (res.error) throw res.error;
38
- return res;
39
- }
40
-
41
- function _quoteIfNeeded(s) {
42
- if (typeof s !== "string") return s;
43
- return /[ \t"]/g.test(s) ? `"${s.replace(/"/g, '\\"')}"` : s;
44
- }
45
-
46
- function runNpm(args, cwd, env) {
47
- if (process.platform === "win32") {
48
- const cmd = `${getNpmCmd()} ${args.map(_quoteIfNeeded).join(" ")}`;
49
- return run("cmd.exe", ["/d", "/s", "/c", cmd], cwd, env);
50
- }
51
- return run(getNpmCmd(), args, cwd, env);
52
- }
53
-
54
- function compileSolidity({ solcPath, solPath, contractName }) {
55
- const out = execFileSync(solcPath, ["--optimize", "--combined-json", "abi,bin", solPath], { encoding: "utf8" });
56
- const parsed = JSON.parse(out);
57
- const key = Object.keys(parsed.contracts || {}).find((k) => k.endsWith(`:${contractName}`));
58
- if (!key) throw new Error(`Compiled contract ${contractName} not found in solc output`);
59
- const c = parsed.contracts[key];
60
- const abi = JSON.parse(c.abi);
61
- const bin = c.bin || "";
62
- return { abi, bin };
63
- }
64
-
65
- describe("typed contract generator package e2e", () => {
66
- it("generates a package and runs its transactional tests", async (t) => {
67
- logSuite("typed contract generator package e2e");
68
- logTest("generates a package and runs its transactional tests", {});
69
- const rpcUrl = getRpcUrl();
70
- if (!rpcUrl) {
71
- t.skip("QC_RPC_URL not provided");
72
- return;
73
- }
74
- logE2eConfig();
75
- const chainId = getChainId();
76
- const solcPath = getSolcPath();
77
- assertSolcExists(solcPath);
78
-
79
- const repoRoot = path.resolve(__dirname, "..", "..");
80
- const fixtureSol = path.join(repoRoot, "test", "fixtures", "ConstructorParam.sol");
81
- const contractName = "ConstructorParam";
82
-
83
- const tmpBase = fs.mkdtempSync(path.join(os.tmpdir(), "qcgen-"));
84
- const pkgName = `qcgen-${Date.now()}`;
85
- const pkgDir = tmpBase;
86
- const pkgRoot = path.join(pkgDir, pkgName);
87
-
88
- let succeeded = false;
89
- try {
90
- // 1) Compile fixture to ABI + BIN
91
- const { abi, bin } = compileSolidity({ solcPath, solPath: fixtureSol, contractName });
92
-
93
- const abiPath = path.join(tmpBase, `${contractName}.abi.json`);
94
- const binPath = path.join(tmpBase, `${contractName}.bin`);
95
- fs.writeFileSync(abiPath, JSON.stringify(abi, null, 2), "utf8");
96
- fs.writeFileSync(binPath, bin.trim().startsWith("0x") ? bin.trim() : `0x${bin.trim()}`, "utf8");
97
-
98
- // 2) Generate package
99
- const generatorCli = path.join(repoRoot, "generate-sdk.js");
100
- const gen = run(
101
- process.execPath,
102
- [
103
- generatorCli,
104
- "--abi",
105
- abiPath,
106
- "--bin",
107
- binPath,
108
- "--name",
109
- contractName,
110
- "--create-package",
111
- "--package-dir",
112
- pkgDir,
113
- "--package-name",
114
- pkgName,
115
- "--package-description",
116
- "Temporary typed-contract package generated by quantumcoin.js e2e tests",
117
- "--package-author",
118
- "quantumcoin.js test",
119
- "--package-license",
120
- "MIT",
121
- "--package-version",
122
- "0.0.1",
123
- "--non-interactive",
124
- ],
125
- repoRoot,
126
- process.env,
127
- );
128
- assert.equal(gen.status, 0, `generator failed:\n${gen.stdout}\n${gen.stderr}`);
129
-
130
- // 3) Verify expected files exist
131
- assert.ok(fs.existsSync(path.join(pkgRoot, "package.json")));
132
- assert.ok(fs.existsSync(path.join(pkgRoot, "tsconfig.json")));
133
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", `${contractName}.ts`)));
134
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", `${contractName}__factory.ts`)));
135
- assert.ok(fs.existsSync(path.join(pkgRoot, "test", "e2e", `${contractName}.e2e.test.js`)));
136
- assert.ok(fs.existsSync(path.join(pkgRoot, "examples", "deploy.js")));
137
- assert.ok(fs.existsSync(path.join(pkgRoot, "examples", "read-operations.js")));
138
- assert.ok(fs.existsSync(path.join(pkgRoot, "examples", "write-operations.js")));
139
- assert.ok(fs.existsSync(path.join(pkgRoot, "examples", "events.js")));
140
- assert.ok(fs.existsSync(path.join(pkgRoot, "index.js")));
141
- assert.ok(fs.existsSync(path.join(pkgRoot, "index.d.ts")));
142
- assert.ok(fs.existsSync(path.join(pkgRoot, "README.md")));
143
-
144
- // This test uses ABI+BIN input, so Solidity source comments are not available here.
145
- // Ensure the doc build ran and included the contract name.
146
- const readme = fs.readFileSync(path.join(pkgRoot, "README.md"), "utf8");
147
- assert.ok(readme.includes(contractName));
148
-
149
- // 4) Install deps (generator runs install+build, but keep this idempotent)
150
- if (!fs.existsSync(path.join(pkgRoot, "node_modules"))) {
151
- const install = runNpm(["install", "--no-fund", "--no-audit"], pkgRoot, process.env);
152
- assert.equal(install.status, 0, `npm install failed:\n${install.stdout}\n${install.stderr}`);
153
- }
154
-
155
- // 5) Run generated tests against the configured chain
156
- const env = {
157
- ...process.env,
158
- QC_RPC_URL: rpcUrl,
159
- QC_CHAIN_ID: String(chainId),
160
- };
161
- const testRun = runNpm(["test"], pkgRoot, env);
162
- assert.equal(testRun.status, 0, `generated package tests failed:\n${testRun.stdout}\n${testRun.stderr}`);
163
-
164
- succeeded = true;
165
- } finally {
166
- // Keep artifacts on failure for debugging.
167
- if (succeeded) {
168
- fs.rmSync(tmpBase, { recursive: true, force: true });
169
- } else {
170
- // eslint-disable-next-line no-console
171
- console.error("Generated package kept at:", pkgRoot);
172
- }
173
- }
174
- }, { timeout: 1_800_000 });
175
-
176
- it("generates a package from artifacts JSON input (multiple contracts) and runs its transactional tests", async (t) => {
177
- const rpcUrl = getRpcUrl();
178
- if (!rpcUrl) {
179
- t.skip("QC_RPC_URL not provided");
180
- return;
181
- }
182
-
183
- const chainId = getChainId();
184
- const solcPath = getSolcPath();
185
- assertSolcExists(solcPath);
186
-
187
- const repoRoot = path.resolve(__dirname, "..", "..");
188
- const fixtureCtorSol = path.join(repoRoot, "test", "fixtures", "ConstructorParam.sol");
189
- const fixtureMultiSol = path.join(repoRoot, "test", "fixtures", "MultiContracts.sol");
190
-
191
- const tmpBase = fs.mkdtempSync(path.join(os.tmpdir(), "qcgen-json-"));
192
- const pkgName = `qcgen-json-${Date.now()}`;
193
- const pkgDir = tmpBase;
194
- const pkgRoot = path.join(pkgDir, pkgName);
195
-
196
- let succeeded = false;
197
- try {
198
- // Compile 2 contracts into ABI+BIN pairs
199
- const ctorName = "ConstructorParam";
200
- const alphaName = "Alpha";
201
-
202
- const { abi: ctorAbi, bin: ctorBin } = compileSolidity({ solcPath, solPath: fixtureCtorSol, contractName: ctorName });
203
- const { abi: alphaAbi, bin: alphaBin } = compileSolidity({ solcPath, solPath: fixtureMultiSol, contractName: alphaName });
204
-
205
- const ctorAbiPath = path.join(tmpBase, `${ctorName}.abi.json`);
206
- const ctorBinPath = path.join(tmpBase, `${ctorName}.bin`);
207
- fs.writeFileSync(ctorAbiPath, JSON.stringify(ctorAbi, null, 2), "utf8");
208
- fs.writeFileSync(ctorBinPath, ctorBin.trim().startsWith("0x") ? ctorBin.trim() : `0x${ctorBin.trim()}`, "utf8");
209
-
210
- const alphaAbiPath = path.join(tmpBase, `${alphaName}.abi.json`);
211
- const alphaBinPath = path.join(tmpBase, `${alphaName}.bin`);
212
- fs.writeFileSync(alphaAbiPath, JSON.stringify(alphaAbi, null, 2), "utf8");
213
- fs.writeFileSync(alphaBinPath, alphaBin.trim().startsWith("0x") ? alphaBin.trim() : `0x${alphaBin.trim()}`, "utf8");
214
-
215
- const artifactsJsonPath = path.join(tmpBase, "artifacts.json");
216
- fs.writeFileSync(
217
- artifactsJsonPath,
218
- JSON.stringify(
219
- [
220
- { abi: path.basename(alphaAbiPath), bin: path.basename(alphaBinPath) },
221
- { abi: path.basename(ctorAbiPath), bin: path.basename(ctorBinPath) },
222
- ],
223
- null,
224
- 2,
225
- ),
226
- "utf8",
227
- );
228
-
229
- // Generate package using artifacts JSON input
230
- const generatorCli = path.join(repoRoot, "generate-sdk.js");
231
- const gen = run(
232
- process.execPath,
233
- [
234
- generatorCli,
235
- "--artifacts-json",
236
- artifactsJsonPath,
237
- "--create-package",
238
- "--package-dir",
239
- pkgDir,
240
- "--package-name",
241
- pkgName,
242
- "--package-description",
243
- "Temporary typed-contract package generated from artifacts JSON input",
244
- "--package-author",
245
- "quantumcoin.js test",
246
- "--package-license",
247
- "MIT",
248
- "--package-version",
249
- "0.0.1",
250
- "--non-interactive",
251
- ],
252
- repoRoot,
253
- process.env,
254
- );
255
- assert.equal(gen.status, 0, `generator failed:\n${gen.stdout}\n${gen.stderr}`);
256
-
257
- // Verify multiple contracts were generated
258
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "Alpha.ts")));
259
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "Alpha__factory.ts")));
260
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "ConstructorParam.ts")));
261
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "ConstructorParam__factory.ts")));
262
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "index.ts")));
263
- assert.ok(fs.existsSync(path.join(pkgRoot, "index.js")));
264
- assert.ok(fs.existsSync(path.join(pkgRoot, "index.d.ts")));
265
- assert.ok(fs.existsSync(path.join(pkgRoot, "README.md")));
266
-
267
- // Verify tests exist for each contract
268
- assert.ok(fs.existsSync(path.join(pkgRoot, "test", "e2e", "Alpha.e2e.test.js")));
269
- assert.ok(fs.existsSync(path.join(pkgRoot, "test", "e2e", "ConstructorParam.e2e.test.js")));
270
- assert.ok(fs.existsSync(path.join(pkgRoot, "test", "e2e", "all-contracts.e2e.test.js")));
271
-
272
- // Multi-contract packages use per-contract example filenames.
273
- assert.ok(fs.existsSync(path.join(pkgRoot, "examples", "deploy-Alpha.js")));
274
- assert.ok(fs.existsSync(path.join(pkgRoot, "examples", "deploy-ConstructorParam.js")));
275
-
276
- const readme = fs.readFileSync(path.join(pkgRoot, "README.md"), "utf8");
277
- assert.ok(readme.includes("Alpha"));
278
- assert.ok(readme.includes("ConstructorParam"));
279
-
280
- // Install deps + run tests against chain
281
- if (!fs.existsSync(path.join(pkgRoot, "node_modules"))) {
282
- const install = runNpm(["install", "--no-fund", "--no-audit"], pkgRoot, process.env);
283
- assert.equal(install.status, 0, `npm install failed:\n${install.stdout}\n${install.stderr}`);
284
- }
285
-
286
- const env = {
287
- ...process.env,
288
- QC_RPC_URL: rpcUrl,
289
- QC_CHAIN_ID: String(chainId),
290
- };
291
- const testRun = runNpm(["test"], pkgRoot, env);
292
- assert.equal(testRun.status, 0, `generated package tests failed:\n${testRun.stdout}\n${testRun.stderr}`);
293
-
294
- succeeded = true;
295
- } finally {
296
- if (succeeded) {
297
- fs.rmSync(tmpBase, { recursive: true, force: true });
298
- } else {
299
- // eslint-disable-next-line no-console
300
- console.error("Generated package kept at:", pkgRoot);
301
- }
302
- }
303
- }, { timeout: 1_800_000 });
304
-
305
- it("generates a package from Solidity input (multiple contracts) and runs its transactional tests", async (t) => {
306
- const rpcUrl = getRpcUrl();
307
- if (!rpcUrl) {
308
- t.skip("QC_RPC_URL not provided");
309
- return;
310
- }
311
-
312
- const chainId = getChainId();
313
- const solcPath = getSolcPath();
314
- assertSolcExists(solcPath);
315
-
316
- const repoRoot = path.resolve(__dirname, "..", "..");
317
- const fixtureSol = path.join(repoRoot, "test", "fixtures", "MultiContracts.sol");
318
-
319
- const tmpBase = fs.mkdtempSync(path.join(os.tmpdir(), "qcgen-sol-"));
320
- const pkgName = `qcgen-sol-${Date.now()}`;
321
- const pkgDir = tmpBase;
322
- const pkgRoot = path.join(pkgDir, pkgName);
323
-
324
- let succeeded = false;
325
- try {
326
- // Generate package directly from Solidity sources
327
- const generatorCli = path.join(repoRoot, "generate-sdk.js");
328
- const gen = run(
329
- process.execPath,
330
- [
331
- generatorCli,
332
- "--sol",
333
- fixtureSol,
334
- "--solc",
335
- solcPath,
336
- "--create-package",
337
- "--package-dir",
338
- pkgDir,
339
- "--package-name",
340
- pkgName,
341
- "--package-description",
342
- "Temporary typed-contract package generated from Solidity input",
343
- "--package-author",
344
- "quantumcoin.js test",
345
- "--package-license",
346
- "MIT",
347
- "--package-version",
348
- "0.0.1",
349
- "--non-interactive",
350
- ],
351
- repoRoot,
352
- process.env,
353
- );
354
- assert.equal(gen.status, 0, `generator failed:\n${gen.stdout}\n${gen.stderr}`);
355
-
356
- // Verify multiple contracts were generated
357
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "Alpha.ts")));
358
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "Alpha__factory.ts")));
359
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "Beta.ts")));
360
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "Beta__factory.ts")));
361
- assert.ok(fs.existsSync(path.join(pkgRoot, "src", "index.ts")));
362
- assert.ok(fs.existsSync(path.join(pkgRoot, "index.js")));
363
- assert.ok(fs.existsSync(path.join(pkgRoot, "index.d.ts")));
364
- assert.ok(fs.existsSync(path.join(pkgRoot, "README.md")));
365
-
366
- // Verify artifacts were emitted
367
- assert.ok(fs.existsSync(path.join(pkgRoot, "artifacts", "Alpha.abi.json")));
368
- assert.ok(fs.existsSync(path.join(pkgRoot, "artifacts", "Alpha.bin")));
369
- assert.ok(fs.existsSync(path.join(pkgRoot, "artifacts", "Beta.abi.json")));
370
- assert.ok(fs.existsSync(path.join(pkgRoot, "artifacts", "Beta.bin")));
371
-
372
- // Verify tests exist for each contract
373
- assert.ok(fs.existsSync(path.join(pkgRoot, "test", "e2e", "Alpha.e2e.test.js")));
374
- assert.ok(fs.existsSync(path.join(pkgRoot, "test", "e2e", "Beta.e2e.test.js")));
375
- assert.ok(fs.existsSync(path.join(pkgRoot, "test", "e2e", "all-contracts.e2e.test.js")));
376
-
377
- // Verify Solidity comments were propagated into generated TS
378
- const alphaTs = fs.readFileSync(path.join(pkgRoot, "src", "Alpha.ts"), "utf8");
379
- assert.ok(alphaTs.includes("Alpha contract for multi-contract generator test."));
380
- assert.ok(alphaTs.includes("Set a new value in Alpha."));
381
-
382
- // Install deps + run tests against chain
383
- if (!fs.existsSync(path.join(pkgRoot, "node_modules"))) {
384
- const install = runNpm(["install", "--no-fund", "--no-audit"], pkgRoot, process.env);
385
- assert.equal(install.status, 0, `npm install failed:\n${install.stdout}\n${install.stderr}`);
386
- }
387
-
388
- const env = {
389
- ...process.env,
390
- QC_RPC_URL: rpcUrl,
391
- QC_CHAIN_ID: String(chainId),
392
- };
393
- const testRun = runNpm(["test"], pkgRoot, env);
394
- assert.equal(testRun.status, 0, `generated package tests failed:\n${testRun.stdout}\n${testRun.stderr}`);
395
-
396
- succeeded = true;
397
- } finally {
398
- if (succeeded) {
399
- fs.rmSync(tmpBase, { recursive: true, force: true });
400
- } else {
401
- // eslint-disable-next-line no-console
402
- console.error("Generated package kept at:", pkgRoot);
403
- }
404
- }
405
- }, { timeout: 1_800_000 });
406
- });
407
-