quantumcoin 6.14.5 → 7.0.2

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 (1296) hide show
  1. package/.github/workflows/publish-npmjs.yaml +22 -0
  2. package/.gitignore +15 -0
  3. package/{LICENSE.md → LICENSE} +21 -21
  4. package/README-SDK.md +756 -0
  5. package/README.md +152 -132
  6. package/SPEC.md +3845 -0
  7. package/config.d.ts +50 -0
  8. package/config.js +115 -0
  9. package/examples/AllSolidityTypes.sol +184 -0
  10. package/examples/SimpleIERC20.sol +74 -0
  11. package/examples/events.js +35 -0
  12. package/examples/example-generator-sdk-js.js +95 -0
  13. package/examples/example-generator-sdk-ts.js +95 -0
  14. package/examples/example.js +61 -0
  15. package/examples/package-lock.json +57 -0
  16. package/examples/package.json +16 -0
  17. package/examples/read-operations.js +27 -0
  18. package/examples/sdk-generator-erc20.inline.json +251 -0
  19. package/examples/solidity-types.ts +43 -0
  20. package/examples/wallet-offline.js +29 -0
  21. package/generate-sdk.js +1383 -0
  22. package/index.js +12 -0
  23. package/package.json +61 -116
  24. package/src/abi/fragments.d.ts +42 -0
  25. package/src/abi/fragments.js +63 -0
  26. package/src/abi/index.d.ts +13 -0
  27. package/src/abi/index.js +9 -0
  28. package/src/abi/interface.d.ts +132 -0
  29. package/src/abi/interface.js +590 -0
  30. package/src/abi/js-abi-coder.js +474 -0
  31. package/src/constants.d.ts +61 -0
  32. package/src/constants.js +94 -0
  33. package/src/contract/contract-factory.d.ts +28 -0
  34. package/src/contract/contract-factory.js +105 -0
  35. package/src/contract/contract.d.ts +105 -0
  36. package/src/contract/contract.js +312 -0
  37. package/src/contract/index.d.ts +9 -0
  38. package/src/contract/index.js +9 -0
  39. package/src/errors/index.d.ts +92 -0
  40. package/src/errors/index.js +188 -0
  41. package/src/generator/index.js +1201 -0
  42. package/src/index.d.ts +127 -0
  43. package/src/index.js +41 -0
  44. package/src/internal/hex.d.ts +61 -0
  45. package/src/internal/hex.js +144 -0
  46. package/src/providers/extra-providers.d.ts +128 -0
  47. package/src/providers/extra-providers.js +575 -0
  48. package/src/providers/index.d.ts +16 -0
  49. package/src/providers/index.js +10 -0
  50. package/src/providers/json-rpc-provider.d.ts +12 -0
  51. package/src/providers/json-rpc-provider.js +79 -0
  52. package/src/providers/provider.d.ts +196 -0
  53. package/src/providers/provider.js +359 -0
  54. package/src/types/index.d.ts +462 -0
  55. package/src/types/index.js +9 -0
  56. package/src/utils/address.d.ts +72 -0
  57. package/src/utils/address.js +182 -0
  58. package/src/utils/encoding.d.ts +120 -0
  59. package/src/utils/encoding.js +306 -0
  60. package/src/utils/hashing.d.ts +76 -0
  61. package/src/utils/hashing.js +298 -0
  62. package/src/utils/index.d.ts +55 -0
  63. package/src/utils/index.js +13 -0
  64. package/src/utils/result.d.ts +57 -0
  65. package/src/utils/result.js +128 -0
  66. package/src/utils/rlp.d.ts +12 -0
  67. package/src/utils/rlp.js +200 -0
  68. package/src/utils/units.d.ts +29 -0
  69. package/src/utils/units.js +107 -0
  70. package/src/wallet/index.d.ts +10 -0
  71. package/src/wallet/index.js +8 -0
  72. package/src/wallet/wallet.d.ts +160 -0
  73. package/src/wallet/wallet.js +489 -0
  74. package/test/e2e/all-solidity-types.dynamic.test.js +200 -0
  75. package/test/e2e/all-solidity-types.fixtures.js +231 -0
  76. package/test/e2e/all-solidity-types.generated-sdks.e2e.test.js +361 -0
  77. package/test/e2e/helpers.js +47 -0
  78. package/test/e2e/simple-erc20.generated-sdks.e2e.test.js +144 -0
  79. package/test/e2e/transactional.test.js +191 -0
  80. package/test/e2e/typed-generator.e2e.test.js +402 -0
  81. package/test/fixtures/ConstructorParam.sol +23 -0
  82. package/test/fixtures/MultiContracts.sol +37 -0
  83. package/test/fixtures/SimpleStorage.sol +18 -0
  84. package/test/fixtures/StakingContract.abi.json +1 -0
  85. package/test/integration/ipc-provider.test.js +44 -0
  86. package/test/integration/provider.test.js +72 -0
  87. package/test/integration/ws-provider.test.js +33 -0
  88. package/test/security/malformed-input.test.js +31 -0
  89. package/test/unit/abi-interface.test.js +98 -0
  90. package/test/unit/address-wallet.test.js +257 -0
  91. package/test/unit/browser-provider.test.js +82 -0
  92. package/test/unit/contract.test.js +82 -0
  93. package/test/unit/encoding-units-rlp.test.js +89 -0
  94. package/test/unit/errors.test.js +74 -0
  95. package/test/unit/filter-by-blockhash.test.js +52 -0
  96. package/test/unit/generate-contract-cli.test.js +39 -0
  97. package/test/unit/generate-sdk-artifacts-json.test.js +110 -0
  98. package/test/unit/generator.test.js +98 -0
  99. package/test/unit/hashing.test.js +54 -0
  100. package/test/unit/init.test.js +36 -0
  101. package/test/unit/interface.test.js +53 -0
  102. package/test/unit/internal-hex.test.js +47 -0
  103. package/test/unit/providers.test.js +144 -0
  104. package/test/unit/result.test.js +77 -0
  105. package/test/unit/solidity-types.test.js +46 -0
  106. package/test/unit/utils.test.js +54 -0
  107. package/CHANGELOG.md +0 -442
  108. package/FUNDING.json +0 -10
  109. package/SECURITY.md +0 -34
  110. package/dist/README.md +0 -22
  111. package/dist/quantumcoin.js +0 -20940
  112. package/dist/quantumcoin.js.map +0 -1
  113. package/dist/quantumcoin.min.js +0 -1
  114. package/dist/quantumcoin.umd.js +0 -21117
  115. package/dist/quantumcoin.umd.js.map +0 -1
  116. package/dist/quantumcoin.umd.min.js +0 -1
  117. package/dist/wordlists-extra.js +0 -1500
  118. package/dist/wordlists-extra.js.map +0 -1
  119. package/dist/wordlists-extra.min.js +0 -1
  120. package/lib.commonjs/README.md +0 -16
  121. package/lib.commonjs/_version.d.ts +0 -5
  122. package/lib.commonjs/_version.d.ts.map +0 -1
  123. package/lib.commonjs/_version.js +0 -9
  124. package/lib.commonjs/_version.js.map +0 -1
  125. package/lib.commonjs/abi/abi-coder.d.ts +0 -61
  126. package/lib.commonjs/abi/abi-coder.d.ts.map +0 -1
  127. package/lib.commonjs/abi/abi-coder.js +0 -210
  128. package/lib.commonjs/abi/abi-coder.js.map +0 -1
  129. package/lib.commonjs/abi/bytes32.d.ts +0 -15
  130. package/lib.commonjs/abi/bytes32.d.ts.map +0 -1
  131. package/lib.commonjs/abi/bytes32.js +0 -45
  132. package/lib.commonjs/abi/bytes32.js.map +0 -1
  133. package/lib.commonjs/abi/coders/abstract-coder.d.ts +0 -124
  134. package/lib.commonjs/abi/coders/abstract-coder.d.ts.map +0 -1
  135. package/lib.commonjs/abi/coders/abstract-coder.js +0 -472
  136. package/lib.commonjs/abi/coders/abstract-coder.js.map +0 -1
  137. package/lib.commonjs/abi/coders/address.d.ts +0 -13
  138. package/lib.commonjs/abi/coders/address.d.ts.map +0 -1
  139. package/lib.commonjs/abi/coders/address.js +0 -33
  140. package/lib.commonjs/abi/coders/address.js.map +0 -1
  141. package/lib.commonjs/abi/coders/anonymous.d.ts +0 -15
  142. package/lib.commonjs/abi/coders/anonymous.d.ts.map +0 -1
  143. package/lib.commonjs/abi/coders/anonymous.js +0 -27
  144. package/lib.commonjs/abi/coders/anonymous.js.map +0 -1
  145. package/lib.commonjs/abi/coders/array.d.ts +0 -25
  146. package/lib.commonjs/abi/coders/array.d.ts.map +0 -1
  147. package/lib.commonjs/abi/coders/array.js +0 -165
  148. package/lib.commonjs/abi/coders/array.js.map +0 -1
  149. package/lib.commonjs/abi/coders/boolean.d.ts +0 -13
  150. package/lib.commonjs/abi/coders/boolean.d.ts.map +0 -1
  151. package/lib.commonjs/abi/coders/boolean.js +0 -25
  152. package/lib.commonjs/abi/coders/boolean.js.map +0 -1
  153. package/lib.commonjs/abi/coders/bytes.d.ts +0 -19
  154. package/lib.commonjs/abi/coders/bytes.d.ts.map +0 -1
  155. package/lib.commonjs/abi/coders/bytes.js +0 -39
  156. package/lib.commonjs/abi/coders/bytes.js.map +0 -1
  157. package/lib.commonjs/abi/coders/fixed-bytes.d.ts +0 -15
  158. package/lib.commonjs/abi/coders/fixed-bytes.d.ts.map +0 -1
  159. package/lib.commonjs/abi/coders/fixed-bytes.js +0 -32
  160. package/lib.commonjs/abi/coders/fixed-bytes.js.map +0 -1
  161. package/lib.commonjs/abi/coders/null.d.ts +0 -12
  162. package/lib.commonjs/abi/coders/null.d.ts.map +0 -1
  163. package/lib.commonjs/abi/coders/null.js +0 -28
  164. package/lib.commonjs/abi/coders/null.js.map +0 -1
  165. package/lib.commonjs/abi/coders/number.d.ts +0 -16
  166. package/lib.commonjs/abi/coders/number.d.ts.map +0 -1
  167. package/lib.commonjs/abi/coders/number.js +0 -49
  168. package/lib.commonjs/abi/coders/number.js.map +0 -1
  169. package/lib.commonjs/abi/coders/string.d.ts +0 -13
  170. package/lib.commonjs/abi/coders/string.d.ts.map +0 -1
  171. package/lib.commonjs/abi/coders/string.js +0 -25
  172. package/lib.commonjs/abi/coders/string.js.map +0 -1
  173. package/lib.commonjs/abi/coders/tuple.d.ts +0 -16
  174. package/lib.commonjs/abi/coders/tuple.d.ts.map +0 -1
  175. package/lib.commonjs/abi/coders/tuple.js +0 -67
  176. package/lib.commonjs/abi/coders/tuple.js.map +0 -1
  177. package/lib.commonjs/abi/fragments.d.ts +0 -466
  178. package/lib.commonjs/abi/fragments.d.ts.map +0 -1
  179. package/lib.commonjs/abi/fragments.js +0 -1331
  180. package/lib.commonjs/abi/fragments.js.map +0 -1
  181. package/lib.commonjs/abi/index.d.ts +0 -18
  182. package/lib.commonjs/abi/index.d.ts.map +0 -1
  183. package/lib.commonjs/abi/index.js +0 -40
  184. package/lib.commonjs/abi/index.js.map +0 -1
  185. package/lib.commonjs/abi/interface.d.ts +0 -382
  186. package/lib.commonjs/abi/interface.d.ts.map +0 -1
  187. package/lib.commonjs/abi/interface.js +0 -1110
  188. package/lib.commonjs/abi/interface.js.map +0 -1
  189. package/lib.commonjs/abi/typed.d.ts +0 -570
  190. package/lib.commonjs/abi/typed.d.ts.map +0 -1
  191. package/lib.commonjs/abi/typed.js +0 -606
  192. package/lib.commonjs/abi/typed.js.map +0 -1
  193. package/lib.commonjs/address/address.d.ts +0 -36
  194. package/lib.commonjs/address/address.d.ts.map +0 -1
  195. package/lib.commonjs/address/address.js +0 -133
  196. package/lib.commonjs/address/address.js.map +0 -1
  197. package/lib.commonjs/address/checks.d.ts +0 -81
  198. package/lib.commonjs/address/checks.d.ts.map +0 -1
  199. package/lib.commonjs/address/checks.js +0 -120
  200. package/lib.commonjs/address/checks.js.map +0 -1
  201. package/lib.commonjs/address/contract-address.d.ts +0 -48
  202. package/lib.commonjs/address/contract-address.d.ts.map +0 -1
  203. package/lib.commonjs/address/contract-address.js +0 -74
  204. package/lib.commonjs/address/contract-address.js.map +0 -1
  205. package/lib.commonjs/address/index.d.ts +0 -49
  206. package/lib.commonjs/address/index.d.ts.map +0 -1
  207. package/lib.commonjs/address/index.js +0 -28
  208. package/lib.commonjs/address/index.js.map +0 -1
  209. package/lib.commonjs/constants/addresses.d.ts +0 -7
  210. package/lib.commonjs/constants/addresses.d.ts.map +0 -1
  211. package/lib.commonjs/constants/addresses.js +0 -10
  212. package/lib.commonjs/constants/addresses.js.map +0 -1
  213. package/lib.commonjs/constants/hashes.d.ts +0 -7
  214. package/lib.commonjs/constants/hashes.d.ts.map +0 -1
  215. package/lib.commonjs/constants/hashes.js +0 -10
  216. package/lib.commonjs/constants/hashes.js.map +0 -1
  217. package/lib.commonjs/constants/index.d.ts +0 -10
  218. package/lib.commonjs/constants/index.d.ts.map +0 -1
  219. package/lib.commonjs/constants/index.js +0 -22
  220. package/lib.commonjs/constants/index.js.map +0 -1
  221. package/lib.commonjs/constants/numbers.d.ts +0 -31
  222. package/lib.commonjs/constants/numbers.d.ts.map +0 -1
  223. package/lib.commonjs/constants/numbers.js +0 -34
  224. package/lib.commonjs/constants/numbers.js.map +0 -1
  225. package/lib.commonjs/constants/strings.d.ts +0 -13
  226. package/lib.commonjs/constants/strings.d.ts.map +0 -1
  227. package/lib.commonjs/constants/strings.js +0 -17
  228. package/lib.commonjs/constants/strings.js.map +0 -1
  229. package/lib.commonjs/contract/contract.d.ts +0 -168
  230. package/lib.commonjs/contract/contract.d.ts.map +0 -1
  231. package/lib.commonjs/contract/contract.js +0 -960
  232. package/lib.commonjs/contract/contract.js.map +0 -1
  233. package/lib.commonjs/contract/factory.d.ts +0 -62
  234. package/lib.commonjs/contract/factory.d.ts.map +0 -1
  235. package/lib.commonjs/contract/factory.js +0 -116
  236. package/lib.commonjs/contract/factory.js.map +0 -1
  237. package/lib.commonjs/contract/index.d.ts +0 -13
  238. package/lib.commonjs/contract/index.d.ts.map +0 -1
  239. package/lib.commonjs/contract/index.js +0 -24
  240. package/lib.commonjs/contract/index.js.map +0 -1
  241. package/lib.commonjs/contract/types.d.ts +0 -193
  242. package/lib.commonjs/contract/types.d.ts.map +0 -1
  243. package/lib.commonjs/contract/types.js +0 -6
  244. package/lib.commonjs/contract/types.js.map +0 -1
  245. package/lib.commonjs/contract/wrappers.d.ts +0 -143
  246. package/lib.commonjs/contract/wrappers.d.ts.map +0 -1
  247. package/lib.commonjs/contract/wrappers.js +0 -186
  248. package/lib.commonjs/contract/wrappers.js.map +0 -1
  249. package/lib.commonjs/crypto/crypto-browser.d.ts +0 -15
  250. package/lib.commonjs/crypto/crypto-browser.d.ts.map +0 -1
  251. package/lib.commonjs/crypto/crypto-browser.js +0 -55
  252. package/lib.commonjs/crypto/crypto-browser.js.map +0 -1
  253. package/lib.commonjs/crypto/crypto.d.ts +0 -2
  254. package/lib.commonjs/crypto/crypto.d.ts.map +0 -1
  255. package/lib.commonjs/crypto/crypto.js +0 -9
  256. package/lib.commonjs/crypto/crypto.js.map +0 -1
  257. package/lib.commonjs/crypto/hmac.d.ts +0 -25
  258. package/lib.commonjs/crypto/hmac.d.ts.map +0 -1
  259. package/lib.commonjs/crypto/hmac.js +0 -51
  260. package/lib.commonjs/crypto/hmac.js.map +0 -1
  261. package/lib.commonjs/crypto/index.d.ts +0 -25
  262. package/lib.commonjs/crypto/index.d.ts.map +0 -1
  263. package/lib.commonjs/crypto/index.js +0 -49
  264. package/lib.commonjs/crypto/index.js.map +0 -1
  265. package/lib.commonjs/crypto/keccak.d.ts +0 -35
  266. package/lib.commonjs/crypto/keccak.d.ts.map +0 -1
  267. package/lib.commonjs/crypto/keccak.js +0 -52
  268. package/lib.commonjs/crypto/keccak.js.map +0 -1
  269. package/lib.commonjs/crypto/pbkdf2.d.ts +0 -35
  270. package/lib.commonjs/crypto/pbkdf2.d.ts.map +0 -1
  271. package/lib.commonjs/crypto/pbkdf2.js +0 -53
  272. package/lib.commonjs/crypto/pbkdf2.js.map +0 -1
  273. package/lib.commonjs/crypto/random.d.ts +0 -14
  274. package/lib.commonjs/crypto/random.d.ts.map +0 -1
  275. package/lib.commonjs/crypto/random.js +0 -38
  276. package/lib.commonjs/crypto/random.js.map +0 -1
  277. package/lib.commonjs/crypto/ripemd160.d.ts +0 -25
  278. package/lib.commonjs/crypto/ripemd160.d.ts.map +0 -1
  279. package/lib.commonjs/crypto/ripemd160.js +0 -42
  280. package/lib.commonjs/crypto/ripemd160.js.map +0 -1
  281. package/lib.commonjs/crypto/scrypt.d.ts +0 -82
  282. package/lib.commonjs/crypto/scrypt.d.ts.map +0 -1
  283. package/lib.commonjs/crypto/scrypt.js +0 -104
  284. package/lib.commonjs/crypto/scrypt.js.map +0 -1
  285. package/lib.commonjs/crypto/sha2.d.ts +0 -47
  286. package/lib.commonjs/crypto/sha2.d.ts.map +0 -1
  287. package/lib.commonjs/crypto/sha2.js +0 -76
  288. package/lib.commonjs/crypto/sha2.js.map +0 -1
  289. package/lib.commonjs/crypto/signature.d.ts +0 -72
  290. package/lib.commonjs/crypto/signature.d.ts.map +0 -1
  291. package/lib.commonjs/crypto/signature.js +0 -118
  292. package/lib.commonjs/crypto/signature.js.map +0 -1
  293. package/lib.commonjs/crypto/signing-key.d.ts +0 -63
  294. package/lib.commonjs/crypto/signing-key.d.ts.map +0 -1
  295. package/lib.commonjs/crypto/signing-key.js +0 -105
  296. package/lib.commonjs/crypto/signing-key.js.map +0 -1
  297. package/lib.commonjs/hash/authorization.d.ts +0 -18
  298. package/lib.commonjs/hash/authorization.d.ts.map +0 -1
  299. package/lib.commonjs/hash/authorization.js +0 -30
  300. package/lib.commonjs/hash/authorization.js.map +0 -1
  301. package/lib.commonjs/hash/id.d.ts +0 -13
  302. package/lib.commonjs/hash/id.d.ts.map +0 -1
  303. package/lib.commonjs/hash/id.js +0 -21
  304. package/lib.commonjs/hash/id.js.map +0 -1
  305. package/lib.commonjs/hash/index.d.ts +0 -15
  306. package/lib.commonjs/hash/index.d.ts.map +0 -1
  307. package/lib.commonjs/hash/index.js +0 -30
  308. package/lib.commonjs/hash/index.js.map +0 -1
  309. package/lib.commonjs/hash/message.d.ts +0 -36
  310. package/lib.commonjs/hash/message.d.ts.map +0 -1
  311. package/lib.commonjs/hash/message.js +0 -56
  312. package/lib.commonjs/hash/message.js.map +0 -1
  313. package/lib.commonjs/hash/namehash.d.ts +0 -20
  314. package/lib.commonjs/hash/namehash.d.ts.map +0 -1
  315. package/lib.commonjs/hash/namehash.js +0 -91
  316. package/lib.commonjs/hash/namehash.js.map +0 -1
  317. package/lib.commonjs/hash/solidity.d.ts +0 -31
  318. package/lib.commonjs/hash/solidity.d.ts.map +0 -1
  319. package/lib.commonjs/hash/solidity.js +0 -109
  320. package/lib.commonjs/hash/solidity.js.map +0 -1
  321. package/lib.commonjs/hash/typed-data.d.ts +0 -150
  322. package/lib.commonjs/hash/typed-data.d.ts.map +0 -1
  323. package/lib.commonjs/hash/typed-data.js +0 -524
  324. package/lib.commonjs/hash/typed-data.js.map +0 -1
  325. package/lib.commonjs/index.d.ts +0 -11
  326. package/lib.commonjs/index.d.ts.map +0 -1
  327. package/lib.commonjs/index.js +0 -15
  328. package/lib.commonjs/index.js.map +0 -1
  329. package/lib.commonjs/package.json +0 -12
  330. package/lib.commonjs/providers/abstract-provider.d.ts +0 -451
  331. package/lib.commonjs/providers/abstract-provider.d.ts.map +0 -1
  332. package/lib.commonjs/providers/abstract-provider.js +0 -1409
  333. package/lib.commonjs/providers/abstract-provider.js.map +0 -1
  334. package/lib.commonjs/providers/abstract-signer.d.ts +0 -69
  335. package/lib.commonjs/providers/abstract-signer.d.ts.map +0 -1
  336. package/lib.commonjs/providers/abstract-signer.js +0 -249
  337. package/lib.commonjs/providers/abstract-signer.js.map +0 -1
  338. package/lib.commonjs/providers/community.d.ts +0 -29
  339. package/lib.commonjs/providers/community.d.ts.map +0 -1
  340. package/lib.commonjs/providers/community.js +0 -40
  341. package/lib.commonjs/providers/community.js.map +0 -1
  342. package/lib.commonjs/providers/contracts.d.ts +0 -36
  343. package/lib.commonjs/providers/contracts.d.ts.map +0 -1
  344. package/lib.commonjs/providers/contracts.js +0 -3
  345. package/lib.commonjs/providers/contracts.js.map +0 -1
  346. package/lib.commonjs/providers/default-provider.d.ts +0 -41
  347. package/lib.commonjs/providers/default-provider.d.ts.map +0 -1
  348. package/lib.commonjs/providers/default-provider.js +0 -92
  349. package/lib.commonjs/providers/default-provider.js.map +0 -1
  350. package/lib.commonjs/providers/ens-resolver.d.ts +0 -147
  351. package/lib.commonjs/providers/ens-resolver.d.ts.map +0 -1
  352. package/lib.commonjs/providers/ens-resolver.js +0 -502
  353. package/lib.commonjs/providers/ens-resolver.js.map +0 -1
  354. package/lib.commonjs/providers/format.d.ts +0 -15
  355. package/lib.commonjs/providers/format.d.ts.map +0 -1
  356. package/lib.commonjs/providers/format.js +0 -298
  357. package/lib.commonjs/providers/format.js.map +0 -1
  358. package/lib.commonjs/providers/formatting.d.ts +0 -318
  359. package/lib.commonjs/providers/formatting.d.ts.map +0 -1
  360. package/lib.commonjs/providers/formatting.js +0 -10
  361. package/lib.commonjs/providers/formatting.js.map +0 -1
  362. package/lib.commonjs/providers/index.d.ts +0 -41
  363. package/lib.commonjs/providers/index.d.ts.map +0 -1
  364. package/lib.commonjs/providers/index.js +0 -64
  365. package/lib.commonjs/providers/index.js.map +0 -1
  366. package/lib.commonjs/providers/network.d.ts +0 -99
  367. package/lib.commonjs/providers/network.d.ts.map +0 -1
  368. package/lib.commonjs/providers/network.js +0 -269
  369. package/lib.commonjs/providers/network.js.map +0 -1
  370. package/lib.commonjs/providers/pagination.d.ts +0 -6
  371. package/lib.commonjs/providers/pagination.d.ts.map +0 -1
  372. package/lib.commonjs/providers/pagination.js +0 -3
  373. package/lib.commonjs/providers/pagination.js.map +0 -1
  374. package/lib.commonjs/providers/plugin-fallback.d.ts +0 -13
  375. package/lib.commonjs/providers/plugin-fallback.d.ts.map +0 -1
  376. package/lib.commonjs/providers/plugin-fallback.js +0 -31
  377. package/lib.commonjs/providers/plugin-fallback.js.map +0 -1
  378. package/lib.commonjs/providers/plugins-network.d.ts +0 -170
  379. package/lib.commonjs/providers/plugins-network.d.ts.map +0 -1
  380. package/lib.commonjs/providers/plugins-network.js +0 -216
  381. package/lib.commonjs/providers/plugins-network.js.map +0 -1
  382. package/lib.commonjs/providers/provider-browser.d.ts +0 -108
  383. package/lib.commonjs/providers/provider-browser.d.ts.map +0 -1
  384. package/lib.commonjs/providers/provider-browser.js +0 -204
  385. package/lib.commonjs/providers/provider-browser.js.map +0 -1
  386. package/lib.commonjs/providers/provider-fallback.d.ts +0 -115
  387. package/lib.commonjs/providers/provider-fallback.d.ts.map +0 -1
  388. package/lib.commonjs/providers/provider-fallback.js +0 -624
  389. package/lib.commonjs/providers/provider-fallback.js.map +0 -1
  390. package/lib.commonjs/providers/provider-ipcsocket-browser.d.ts +0 -3
  391. package/lib.commonjs/providers/provider-ipcsocket-browser.d.ts.map +0 -1
  392. package/lib.commonjs/providers/provider-ipcsocket-browser.js +0 -6
  393. package/lib.commonjs/providers/provider-ipcsocket-browser.js.map +0 -1
  394. package/lib.commonjs/providers/provider-ipcsocket.d.ts +0 -21
  395. package/lib.commonjs/providers/provider-ipcsocket.d.ts.map +0 -1
  396. package/lib.commonjs/providers/provider-ipcsocket.js +0 -72
  397. package/lib.commonjs/providers/provider-ipcsocket.js.map +0 -1
  398. package/lib.commonjs/providers/provider-jsonrpc.d.ts +0 -360
  399. package/lib.commonjs/providers/provider-jsonrpc.d.ts.map +0 -1
  400. package/lib.commonjs/providers/provider-jsonrpc.js +0 -979
  401. package/lib.commonjs/providers/provider-jsonrpc.js.map +0 -1
  402. package/lib.commonjs/providers/provider-socket.d.ts +0 -113
  403. package/lib.commonjs/providers/provider-socket.d.ts.map +0 -1
  404. package/lib.commonjs/providers/provider-socket.js +0 -309
  405. package/lib.commonjs/providers/provider-socket.js.map +0 -1
  406. package/lib.commonjs/providers/provider-websocket.d.ts +0 -37
  407. package/lib.commonjs/providers/provider-websocket.d.ts.map +0 -1
  408. package/lib.commonjs/providers/provider-websocket.js +0 -80
  409. package/lib.commonjs/providers/provider-websocket.js.map +0 -1
  410. package/lib.commonjs/providers/provider.d.ts +0 -1223
  411. package/lib.commonjs/providers/provider.d.ts.map +0 -1
  412. package/lib.commonjs/providers/provider.js +0 -1321
  413. package/lib.commonjs/providers/provider.js.map +0 -1
  414. package/lib.commonjs/providers/signer-noncemanager.d.ts +0 -38
  415. package/lib.commonjs/providers/signer-noncemanager.d.ts.map +0 -1
  416. package/lib.commonjs/providers/signer-noncemanager.js +0 -78
  417. package/lib.commonjs/providers/signer-noncemanager.js.map +0 -1
  418. package/lib.commonjs/providers/signer.d.ts +0 -131
  419. package/lib.commonjs/providers/signer.d.ts.map +0 -1
  420. package/lib.commonjs/providers/signer.js +0 -3
  421. package/lib.commonjs/providers/signer.js.map +0 -1
  422. package/lib.commonjs/providers/subscriber-connection.d.ts +0 -25
  423. package/lib.commonjs/providers/subscriber-connection.d.ts.map +0 -1
  424. package/lib.commonjs/providers/subscriber-connection.js +0 -56
  425. package/lib.commonjs/providers/subscriber-connection.js.map +0 -1
  426. package/lib.commonjs/providers/subscriber-filterid.d.ts +0 -64
  427. package/lib.commonjs/providers/subscriber-filterid.d.ts.map +0 -1
  428. package/lib.commonjs/providers/subscriber-filterid.js +0 -180
  429. package/lib.commonjs/providers/subscriber-filterid.js.map +0 -1
  430. package/lib.commonjs/providers/subscriber-polling.d.ts +0 -100
  431. package/lib.commonjs/providers/subscriber-polling.d.ts.map +0 -1
  432. package/lib.commonjs/providers/subscriber-polling.js +0 -303
  433. package/lib.commonjs/providers/subscriber-polling.js.map +0 -1
  434. package/lib.commonjs/providers/ws-browser.d.ts +0 -3
  435. package/lib.commonjs/providers/ws-browser.d.ts.map +0 -1
  436. package/lib.commonjs/providers/ws-browser.js +0 -19
  437. package/lib.commonjs/providers/ws-browser.js.map +0 -1
  438. package/lib.commonjs/providers/ws.d.ts +0 -2
  439. package/lib.commonjs/providers/ws.d.ts.map +0 -1
  440. package/lib.commonjs/providers/ws.js +0 -6
  441. package/lib.commonjs/providers/ws.js.map +0 -1
  442. package/lib.commonjs/quantumcoin.d.ts +0 -24
  443. package/lib.commonjs/quantumcoin.d.ts.map +0 -1
  444. package/lib.commonjs/quantumcoin.js +0 -199
  445. package/lib.commonjs/quantumcoin.js.map +0 -1
  446. package/lib.commonjs/transaction/accesslist.d.ts +0 -6
  447. package/lib.commonjs/transaction/accesslist.d.ts.map +0 -1
  448. package/lib.commonjs/transaction/accesslist.js +0 -41
  449. package/lib.commonjs/transaction/accesslist.js.map +0 -1
  450. package/lib.commonjs/transaction/address.d.ts +0 -15
  451. package/lib.commonjs/transaction/address.d.ts.map +0 -1
  452. package/lib.commonjs/transaction/address.js +0 -39
  453. package/lib.commonjs/transaction/address.js.map +0 -1
  454. package/lib.commonjs/transaction/authorization.d.ts +0 -3
  455. package/lib.commonjs/transaction/authorization.d.ts.map +0 -1
  456. package/lib.commonjs/transaction/authorization.js +0 -16
  457. package/lib.commonjs/transaction/authorization.js.map +0 -1
  458. package/lib.commonjs/transaction/index.d.ts +0 -40
  459. package/lib.commonjs/transaction/index.d.ts.map +0 -1
  460. package/lib.commonjs/transaction/index.js +0 -19
  461. package/lib.commonjs/transaction/index.js.map +0 -1
  462. package/lib.commonjs/transaction/transaction.d.ts +0 -400
  463. package/lib.commonjs/transaction/transaction.d.ts.map +0 -1
  464. package/lib.commonjs/transaction/transaction.js +0 -1115
  465. package/lib.commonjs/transaction/transaction.js.map +0 -1
  466. package/lib.commonjs/utils/base58.d.ts +0 -23
  467. package/lib.commonjs/utils/base58.d.ts.map +0 -1
  468. package/lib.commonjs/utils/base58.js +0 -68
  469. package/lib.commonjs/utils/base58.js.map +0 -1
  470. package/lib.commonjs/utils/base64-browser.d.ts +0 -4
  471. package/lib.commonjs/utils/base64-browser.d.ts.map +0 -1
  472. package/lib.commonjs/utils/base64-browser.js +0 -24
  473. package/lib.commonjs/utils/base64-browser.js.map +0 -1
  474. package/lib.commonjs/utils/base64.d.ts +0 -40
  475. package/lib.commonjs/utils/base64.d.ts.map +0 -1
  476. package/lib.commonjs/utils/base64.js +0 -58
  477. package/lib.commonjs/utils/base64.js.map +0 -1
  478. package/lib.commonjs/utils/data.d.ts +0 -93
  479. package/lib.commonjs/utils/data.d.ts.map +0 -1
  480. package/lib.commonjs/utils/data.js +0 -184
  481. package/lib.commonjs/utils/data.js.map +0 -1
  482. package/lib.commonjs/utils/errors.d.ts +0 -512
  483. package/lib.commonjs/utils/errors.d.ts.map +0 -1
  484. package/lib.commonjs/utils/errors.js +0 -235
  485. package/lib.commonjs/utils/errors.js.map +0 -1
  486. package/lib.commonjs/utils/events.d.ts +0 -77
  487. package/lib.commonjs/utils/events.d.ts.map +0 -1
  488. package/lib.commonjs/utils/events.js +0 -46
  489. package/lib.commonjs/utils/events.js.map +0 -1
  490. package/lib.commonjs/utils/fetch.d.ts +0 -363
  491. package/lib.commonjs/utils/fetch.d.ts.map +0 -1
  492. package/lib.commonjs/utils/fetch.js +0 -858
  493. package/lib.commonjs/utils/fetch.js.map +0 -1
  494. package/lib.commonjs/utils/fixednumber.d.ts +0 -252
  495. package/lib.commonjs/utils/fixednumber.d.ts.map +0 -1
  496. package/lib.commonjs/utils/fixednumber.js +0 -530
  497. package/lib.commonjs/utils/fixednumber.js.map +0 -1
  498. package/lib.commonjs/utils/geturl-browser.d.ts +0 -4
  499. package/lib.commonjs/utils/geturl-browser.d.ts.map +0 -1
  500. package/lib.commonjs/utils/geturl-browser.js +0 -67
  501. package/lib.commonjs/utils/geturl-browser.js.map +0 -1
  502. package/lib.commonjs/utils/geturl.d.ts +0 -10
  503. package/lib.commonjs/utils/geturl.d.ts.map +0 -1
  504. package/lib.commonjs/utils/geturl.js +0 -120
  505. package/lib.commonjs/utils/geturl.js.map +0 -1
  506. package/lib.commonjs/utils/index.d.ts +0 -30
  507. package/lib.commonjs/utils/index.d.ts.map +0 -1
  508. package/lib.commonjs/utils/index.js +0 -78
  509. package/lib.commonjs/utils/index.js.map +0 -1
  510. package/lib.commonjs/utils/maths.d.ts +0 -66
  511. package/lib.commonjs/utils/maths.d.ts.map +0 -1
  512. package/lib.commonjs/utils/maths.js +0 -229
  513. package/lib.commonjs/utils/maths.js.map +0 -1
  514. package/lib.commonjs/utils/properties.d.ts +0 -23
  515. package/lib.commonjs/utils/properties.d.ts.map +0 -1
  516. package/lib.commonjs/utils/properties.js +0 -59
  517. package/lib.commonjs/utils/properties.js.map +0 -1
  518. package/lib.commonjs/utils/rlp-decode.d.ts +0 -6
  519. package/lib.commonjs/utils/rlp-decode.d.ts.map +0 -1
  520. package/lib.commonjs/utils/rlp-decode.js +0 -83
  521. package/lib.commonjs/utils/rlp-decode.js.map +0 -1
  522. package/lib.commonjs/utils/rlp-encode.d.ts +0 -6
  523. package/lib.commonjs/utils/rlp-encode.d.ts.map +0 -1
  524. package/lib.commonjs/utils/rlp-encode.js +0 -53
  525. package/lib.commonjs/utils/rlp-encode.js.map +0 -1
  526. package/lib.commonjs/utils/rlp.d.ts +0 -17
  527. package/lib.commonjs/utils/rlp.d.ts.map +0 -1
  528. package/lib.commonjs/utils/rlp.js +0 -14
  529. package/lib.commonjs/utils/rlp.js.map +0 -1
  530. package/lib.commonjs/utils/units.d.ts +0 -24
  531. package/lib.commonjs/utils/units.d.ts.map +0 -1
  532. package/lib.commonjs/utils/units.js +0 -90
  533. package/lib.commonjs/utils/units.js.map +0 -1
  534. package/lib.commonjs/utils/utf8.d.ts +0 -96
  535. package/lib.commonjs/utils/utf8.d.ts.map +0 -1
  536. package/lib.commonjs/utils/utf8.js +0 -227
  537. package/lib.commonjs/utils/utf8.js.map +0 -1
  538. package/lib.commonjs/utils/uuid.d.ts +0 -8
  539. package/lib.commonjs/utils/uuid.d.ts.map +0 -1
  540. package/lib.commonjs/utils/uuid.js +0 -34
  541. package/lib.commonjs/utils/uuid.js.map +0 -1
  542. package/lib.commonjs/wallet/base-wallet.d.ts +0 -57
  543. package/lib.commonjs/wallet/base-wallet.d.ts.map +0 -1
  544. package/lib.commonjs/wallet/base-wallet.js +0 -127
  545. package/lib.commonjs/wallet/base-wallet.js.map +0 -1
  546. package/lib.commonjs/wallet/index.d.ts +0 -23
  547. package/lib.commonjs/wallet/index.d.ts.map +0 -1
  548. package/lib.commonjs/wallet/index.js +0 -30
  549. package/lib.commonjs/wallet/index.js.map +0 -1
  550. package/lib.commonjs/wallet/json-keystore.d.ts +0 -40
  551. package/lib.commonjs/wallet/json-keystore.d.ts.map +0 -1
  552. package/lib.commonjs/wallet/json-keystore.js +0 -90
  553. package/lib.commonjs/wallet/json-keystore.js.map +0 -1
  554. package/lib.commonjs/wallet/utils.d.ts +0 -8
  555. package/lib.commonjs/wallet/utils.d.ts.map +0 -1
  556. package/lib.commonjs/wallet/utils.js +0 -149
  557. package/lib.commonjs/wallet/utils.js.map +0 -1
  558. package/lib.commonjs/wallet/wallet.d.ts +0 -62
  559. package/lib.commonjs/wallet/wallet.d.ts.map +0 -1
  560. package/lib.commonjs/wallet/wallet.js +0 -109
  561. package/lib.commonjs/wallet/wallet.js.map +0 -1
  562. package/lib.commonjs/wordlists/bit-reader.d.ts +0 -5
  563. package/lib.commonjs/wordlists/bit-reader.d.ts.map +0 -1
  564. package/lib.commonjs/wordlists/bit-reader.js +0 -36
  565. package/lib.commonjs/wordlists/bit-reader.js.map +0 -1
  566. package/lib.commonjs/wordlists/decode-owl.d.ts +0 -9
  567. package/lib.commonjs/wordlists/decode-owl.d.ts.map +0 -1
  568. package/lib.commonjs/wordlists/decode-owl.js +0 -60
  569. package/lib.commonjs/wordlists/decode-owl.js.map +0 -1
  570. package/lib.commonjs/wordlists/decode-owla.d.ts +0 -5
  571. package/lib.commonjs/wordlists/decode-owla.d.ts.map +0 -1
  572. package/lib.commonjs/wordlists/decode-owla.js +0 -32
  573. package/lib.commonjs/wordlists/decode-owla.js.map +0 -1
  574. package/lib.commonjs/wordlists/generation/encode-latin.d.ts +0 -25
  575. package/lib.commonjs/wordlists/generation/encode-latin.d.ts.map +0 -1
  576. package/lib.commonjs/wordlists/generation/encode-latin.js +0 -351
  577. package/lib.commonjs/wordlists/generation/encode-latin.js.map +0 -1
  578. package/lib.commonjs/wordlists/index.d.ts +0 -25
  579. package/lib.commonjs/wordlists/index.d.ts.map +0 -1
  580. package/lib.commonjs/wordlists/index.js +0 -33
  581. package/lib.commonjs/wordlists/index.js.map +0 -1
  582. package/lib.commonjs/wordlists/lang-cz.d.ts +0 -23
  583. package/lib.commonjs/wordlists/lang-cz.d.ts.map +0 -1
  584. package/lib.commonjs/wordlists/lang-cz.js +0 -35
  585. package/lib.commonjs/wordlists/lang-cz.js.map +0 -1
  586. package/lib.commonjs/wordlists/lang-en.d.ts +0 -23
  587. package/lib.commonjs/wordlists/lang-en.d.ts.map +0 -1
  588. package/lib.commonjs/wordlists/lang-en.js +0 -35
  589. package/lib.commonjs/wordlists/lang-en.js.map +0 -1
  590. package/lib.commonjs/wordlists/lang-es.d.ts +0 -23
  591. package/lib.commonjs/wordlists/lang-es.d.ts.map +0 -1
  592. package/lib.commonjs/wordlists/lang-es.js +0 -36
  593. package/lib.commonjs/wordlists/lang-es.js.map +0 -1
  594. package/lib.commonjs/wordlists/lang-fr.d.ts +0 -23
  595. package/lib.commonjs/wordlists/lang-fr.d.ts.map +0 -1
  596. package/lib.commonjs/wordlists/lang-fr.js +0 -36
  597. package/lib.commonjs/wordlists/lang-fr.js.map +0 -1
  598. package/lib.commonjs/wordlists/lang-it.d.ts +0 -23
  599. package/lib.commonjs/wordlists/lang-it.d.ts.map +0 -1
  600. package/lib.commonjs/wordlists/lang-it.js +0 -35
  601. package/lib.commonjs/wordlists/lang-it.js.map +0 -1
  602. package/lib.commonjs/wordlists/lang-ja.d.ts +0 -27
  603. package/lib.commonjs/wordlists/lang-ja.d.ts.map +0 -1
  604. package/lib.commonjs/wordlists/lang-ja.js +0 -158
  605. package/lib.commonjs/wordlists/lang-ja.js.map +0 -1
  606. package/lib.commonjs/wordlists/lang-ko.d.ts +0 -25
  607. package/lib.commonjs/wordlists/lang-ko.d.ts.map +0 -1
  608. package/lib.commonjs/wordlists/lang-ko.js +0 -93
  609. package/lib.commonjs/wordlists/lang-ko.js.map +0 -1
  610. package/lib.commonjs/wordlists/lang-pt.d.ts +0 -23
  611. package/lib.commonjs/wordlists/lang-pt.d.ts.map +0 -1
  612. package/lib.commonjs/wordlists/lang-pt.js +0 -35
  613. package/lib.commonjs/wordlists/lang-pt.js.map +0 -1
  614. package/lib.commonjs/wordlists/lang-zh.d.ts +0 -32
  615. package/lib.commonjs/wordlists/lang-zh.d.ts.map +0 -1
  616. package/lib.commonjs/wordlists/lang-zh.js +0 -96
  617. package/lib.commonjs/wordlists/lang-zh.js.map +0 -1
  618. package/lib.commonjs/wordlists/wordlist-owl.d.ts +0 -32
  619. package/lib.commonjs/wordlists/wordlist-owl.d.ts.map +0 -1
  620. package/lib.commonjs/wordlists/wordlist-owl.js +0 -70
  621. package/lib.commonjs/wordlists/wordlist-owl.js.map +0 -1
  622. package/lib.commonjs/wordlists/wordlist-owla.d.ts +0 -30
  623. package/lib.commonjs/wordlists/wordlist-owla.d.ts.map +0 -1
  624. package/lib.commonjs/wordlists/wordlist-owla.js +0 -40
  625. package/lib.commonjs/wordlists/wordlist-owla.js.map +0 -1
  626. package/lib.commonjs/wordlists/wordlist.d.ts +0 -47
  627. package/lib.commonjs/wordlists/wordlist.d.ts.map +0 -1
  628. package/lib.commonjs/wordlists/wordlist.js +0 -46
  629. package/lib.commonjs/wordlists/wordlist.js.map +0 -1
  630. package/lib.commonjs/wordlists/wordlists-browser.d.ts +0 -3
  631. package/lib.commonjs/wordlists/wordlists-browser.d.ts.map +0 -1
  632. package/lib.commonjs/wordlists/wordlists-browser.js +0 -8
  633. package/lib.commonjs/wordlists/wordlists-browser.js.map +0 -1
  634. package/lib.commonjs/wordlists/wordlists-extra.d.ts +0 -9
  635. package/lib.commonjs/wordlists/wordlists-extra.d.ts.map +0 -1
  636. package/lib.commonjs/wordlists/wordlists-extra.js +0 -20
  637. package/lib.commonjs/wordlists/wordlists-extra.js.map +0 -1
  638. package/lib.commonjs/wordlists/wordlists.d.ts +0 -16
  639. package/lib.commonjs/wordlists/wordlists.d.ts.map +0 -1
  640. package/lib.commonjs/wordlists/wordlists.js +0 -38
  641. package/lib.commonjs/wordlists/wordlists.js.map +0 -1
  642. package/lib.esm/README.md +0 -16
  643. package/lib.esm/_version.d.ts +0 -5
  644. package/lib.esm/_version.d.ts.map +0 -1
  645. package/lib.esm/_version.js +0 -6
  646. package/lib.esm/_version.js.map +0 -1
  647. package/lib.esm/abi/abi-coder.d.ts +0 -61
  648. package/lib.esm/abi/abi-coder.d.ts.map +0 -1
  649. package/lib.esm/abi/abi-coder.js +0 -206
  650. package/lib.esm/abi/abi-coder.js.map +0 -1
  651. package/lib.esm/abi/bytes32.d.ts +0 -15
  652. package/lib.esm/abi/bytes32.d.ts.map +0 -1
  653. package/lib.esm/abi/bytes32.js +0 -40
  654. package/lib.esm/abi/bytes32.js.map +0 -1
  655. package/lib.esm/abi/coders/abstract-coder.d.ts +0 -124
  656. package/lib.esm/abi/coders/abstract-coder.d.ts.map +0 -1
  657. package/lib.esm/abi/coders/abstract-coder.js +0 -466
  658. package/lib.esm/abi/coders/abstract-coder.js.map +0 -1
  659. package/lib.esm/abi/coders/address.d.ts +0 -13
  660. package/lib.esm/abi/coders/address.d.ts.map +0 -1
  661. package/lib.esm/abi/coders/address.js +0 -29
  662. package/lib.esm/abi/coders/address.js.map +0 -1
  663. package/lib.esm/abi/coders/anonymous.d.ts +0 -15
  664. package/lib.esm/abi/coders/anonymous.d.ts.map +0 -1
  665. package/lib.esm/abi/coders/anonymous.js +0 -23
  666. package/lib.esm/abi/coders/anonymous.js.map +0 -1
  667. package/lib.esm/abi/coders/array.d.ts +0 -25
  668. package/lib.esm/abi/coders/array.d.ts.map +0 -1
  669. package/lib.esm/abi/coders/array.js +0 -159
  670. package/lib.esm/abi/coders/array.js.map +0 -1
  671. package/lib.esm/abi/coders/boolean.d.ts +0 -13
  672. package/lib.esm/abi/coders/boolean.d.ts.map +0 -1
  673. package/lib.esm/abi/coders/boolean.js +0 -21
  674. package/lib.esm/abi/coders/boolean.js.map +0 -1
  675. package/lib.esm/abi/coders/bytes.d.ts +0 -19
  676. package/lib.esm/abi/coders/bytes.d.ts.map +0 -1
  677. package/lib.esm/abi/coders/bytes.js +0 -34
  678. package/lib.esm/abi/coders/bytes.js.map +0 -1
  679. package/lib.esm/abi/coders/fixed-bytes.d.ts +0 -15
  680. package/lib.esm/abi/coders/fixed-bytes.d.ts.map +0 -1
  681. package/lib.esm/abi/coders/fixed-bytes.js +0 -28
  682. package/lib.esm/abi/coders/fixed-bytes.js.map +0 -1
  683. package/lib.esm/abi/coders/null.d.ts +0 -12
  684. package/lib.esm/abi/coders/null.d.ts.map +0 -1
  685. package/lib.esm/abi/coders/null.js +0 -24
  686. package/lib.esm/abi/coders/null.js.map +0 -1
  687. package/lib.esm/abi/coders/number.d.ts +0 -16
  688. package/lib.esm/abi/coders/number.d.ts.map +0 -1
  689. package/lib.esm/abi/coders/number.js +0 -45
  690. package/lib.esm/abi/coders/number.js.map +0 -1
  691. package/lib.esm/abi/coders/string.d.ts +0 -13
  692. package/lib.esm/abi/coders/string.d.ts.map +0 -1
  693. package/lib.esm/abi/coders/string.js +0 -21
  694. package/lib.esm/abi/coders/string.js.map +0 -1
  695. package/lib.esm/abi/coders/tuple.d.ts +0 -16
  696. package/lib.esm/abi/coders/tuple.d.ts.map +0 -1
  697. package/lib.esm/abi/coders/tuple.js +0 -63
  698. package/lib.esm/abi/coders/tuple.js.map +0 -1
  699. package/lib.esm/abi/fragments.d.ts +0 -466
  700. package/lib.esm/abi/fragments.d.ts.map +0 -1
  701. package/lib.esm/abi/fragments.js +0 -1319
  702. package/lib.esm/abi/fragments.js.map +0 -1
  703. package/lib.esm/abi/index.d.ts +0 -18
  704. package/lib.esm/abi/index.d.ts.map +0 -1
  705. package/lib.esm/abi/index.js +0 -17
  706. package/lib.esm/abi/index.js.map +0 -1
  707. package/lib.esm/abi/interface.d.ts +0 -382
  708. package/lib.esm/abi/interface.d.ts.map +0 -1
  709. package/lib.esm/abi/interface.js +0 -1101
  710. package/lib.esm/abi/interface.js.map +0 -1
  711. package/lib.esm/abi/typed.d.ts +0 -570
  712. package/lib.esm/abi/typed.d.ts.map +0 -1
  713. package/lib.esm/abi/typed.js +0 -602
  714. package/lib.esm/abi/typed.js.map +0 -1
  715. package/lib.esm/address/address.d.ts +0 -36
  716. package/lib.esm/address/address.d.ts.map +0 -1
  717. package/lib.esm/address/address.js +0 -129
  718. package/lib.esm/address/address.js.map +0 -1
  719. package/lib.esm/address/checks.d.ts +0 -81
  720. package/lib.esm/address/checks.d.ts.map +0 -1
  721. package/lib.esm/address/checks.js +0 -114
  722. package/lib.esm/address/checks.js.map +0 -1
  723. package/lib.esm/address/contract-address.d.ts +0 -48
  724. package/lib.esm/address/contract-address.d.ts.map +0 -1
  725. package/lib.esm/address/contract-address.js +0 -69
  726. package/lib.esm/address/contract-address.js.map +0 -1
  727. package/lib.esm/address/index.d.ts +0 -49
  728. package/lib.esm/address/index.d.ts.map +0 -1
  729. package/lib.esm/address/index.js +0 -19
  730. package/lib.esm/address/index.js.map +0 -1
  731. package/lib.esm/constants/addresses.d.ts +0 -7
  732. package/lib.esm/constants/addresses.d.ts.map +0 -1
  733. package/lib.esm/constants/addresses.js +0 -7
  734. package/lib.esm/constants/addresses.js.map +0 -1
  735. package/lib.esm/constants/hashes.d.ts +0 -7
  736. package/lib.esm/constants/hashes.d.ts.map +0 -1
  737. package/lib.esm/constants/hashes.js +0 -7
  738. package/lib.esm/constants/hashes.js.map +0 -1
  739. package/lib.esm/constants/index.d.ts +0 -10
  740. package/lib.esm/constants/index.d.ts.map +0 -1
  741. package/lib.esm/constants/index.js +0 -10
  742. package/lib.esm/constants/index.js.map +0 -1
  743. package/lib.esm/constants/numbers.d.ts +0 -31
  744. package/lib.esm/constants/numbers.d.ts.map +0 -1
  745. package/lib.esm/constants/numbers.js +0 -31
  746. package/lib.esm/constants/numbers.js.map +0 -1
  747. package/lib.esm/constants/strings.d.ts +0 -13
  748. package/lib.esm/constants/strings.d.ts.map +0 -1
  749. package/lib.esm/constants/strings.js +0 -14
  750. package/lib.esm/constants/strings.js.map +0 -1
  751. package/lib.esm/contract/contract.d.ts +0 -168
  752. package/lib.esm/contract/contract.d.ts.map +0 -1
  753. package/lib.esm/contract/contract.js +0 -953
  754. package/lib.esm/contract/contract.js.map +0 -1
  755. package/lib.esm/contract/factory.d.ts +0 -62
  756. package/lib.esm/contract/factory.d.ts.map +0 -1
  757. package/lib.esm/contract/factory.js +0 -112
  758. package/lib.esm/contract/factory.js.map +0 -1
  759. package/lib.esm/contract/index.d.ts +0 -13
  760. package/lib.esm/contract/index.d.ts.map +0 -1
  761. package/lib.esm/contract/index.js +0 -12
  762. package/lib.esm/contract/index.js.map +0 -1
  763. package/lib.esm/contract/types.d.ts +0 -193
  764. package/lib.esm/contract/types.d.ts.map +0 -1
  765. package/lib.esm/contract/types.js +0 -5
  766. package/lib.esm/contract/types.js.map +0 -1
  767. package/lib.esm/contract/wrappers.d.ts +0 -143
  768. package/lib.esm/contract/wrappers.d.ts.map +0 -1
  769. package/lib.esm/contract/wrappers.js +0 -177
  770. package/lib.esm/contract/wrappers.js.map +0 -1
  771. package/lib.esm/crypto/crypto-browser.d.ts +0 -15
  772. package/lib.esm/crypto/crypto-browser.d.ts.map +0 -1
  773. package/lib.esm/crypto/crypto-browser.js +0 -48
  774. package/lib.esm/crypto/crypto-browser.js.map +0 -1
  775. package/lib.esm/crypto/crypto.d.ts +0 -2
  776. package/lib.esm/crypto/crypto.d.ts.map +0 -1
  777. package/lib.esm/crypto/crypto.js +0 -2
  778. package/lib.esm/crypto/crypto.js.map +0 -1
  779. package/lib.esm/crypto/hmac.d.ts +0 -25
  780. package/lib.esm/crypto/hmac.d.ts.map +0 -1
  781. package/lib.esm/crypto/hmac.js +0 -47
  782. package/lib.esm/crypto/hmac.js.map +0 -1
  783. package/lib.esm/crypto/index.d.ts +0 -25
  784. package/lib.esm/crypto/index.d.ts.map +0 -1
  785. package/lib.esm/crypto/index.js +0 -36
  786. package/lib.esm/crypto/index.js.map +0 -1
  787. package/lib.esm/crypto/keccak.d.ts +0 -35
  788. package/lib.esm/crypto/keccak.d.ts.map +0 -1
  789. package/lib.esm/crypto/keccak.js +0 -48
  790. package/lib.esm/crypto/keccak.js.map +0 -1
  791. package/lib.esm/crypto/pbkdf2.d.ts +0 -35
  792. package/lib.esm/crypto/pbkdf2.d.ts.map +0 -1
  793. package/lib.esm/crypto/pbkdf2.js +0 -49
  794. package/lib.esm/crypto/pbkdf2.js.map +0 -1
  795. package/lib.esm/crypto/random.d.ts +0 -14
  796. package/lib.esm/crypto/random.d.ts.map +0 -1
  797. package/lib.esm/crypto/random.js +0 -34
  798. package/lib.esm/crypto/random.js.map +0 -1
  799. package/lib.esm/crypto/ripemd160.d.ts +0 -25
  800. package/lib.esm/crypto/ripemd160.d.ts.map +0 -1
  801. package/lib.esm/crypto/ripemd160.js +0 -38
  802. package/lib.esm/crypto/ripemd160.js.map +0 -1
  803. package/lib.esm/crypto/scrypt.d.ts +0 -82
  804. package/lib.esm/crypto/scrypt.d.ts.map +0 -1
  805. package/lib.esm/crypto/scrypt.js +0 -99
  806. package/lib.esm/crypto/scrypt.js.map +0 -1
  807. package/lib.esm/crypto/sha2.d.ts +0 -47
  808. package/lib.esm/crypto/sha2.d.ts.map +0 -1
  809. package/lib.esm/crypto/sha2.js +0 -71
  810. package/lib.esm/crypto/sha2.js.map +0 -1
  811. package/lib.esm/crypto/signature.d.ts +0 -72
  812. package/lib.esm/crypto/signature.d.ts.map +0 -1
  813. package/lib.esm/crypto/signature.js +0 -114
  814. package/lib.esm/crypto/signature.js.map +0 -1
  815. package/lib.esm/crypto/signing-key.d.ts +0 -63
  816. package/lib.esm/crypto/signing-key.d.ts.map +0 -1
  817. package/lib.esm/crypto/signing-key.js +0 -101
  818. package/lib.esm/crypto/signing-key.js.map +0 -1
  819. package/lib.esm/hash/authorization.d.ts +0 -18
  820. package/lib.esm/hash/authorization.d.ts.map +0 -1
  821. package/lib.esm/hash/authorization.js +0 -25
  822. package/lib.esm/hash/authorization.js.map +0 -1
  823. package/lib.esm/hash/id.d.ts +0 -13
  824. package/lib.esm/hash/id.d.ts.map +0 -1
  825. package/lib.esm/hash/id.js +0 -17
  826. package/lib.esm/hash/id.js.map +0 -1
  827. package/lib.esm/hash/index.d.ts +0 -15
  828. package/lib.esm/hash/index.d.ts.map +0 -1
  829. package/lib.esm/hash/index.js +0 -13
  830. package/lib.esm/hash/index.js.map +0 -1
  831. package/lib.esm/hash/message.d.ts +0 -36
  832. package/lib.esm/hash/message.d.ts.map +0 -1
  833. package/lib.esm/hash/message.js +0 -51
  834. package/lib.esm/hash/message.js.map +0 -1
  835. package/lib.esm/hash/namehash.d.ts +0 -20
  836. package/lib.esm/hash/namehash.d.ts.map +0 -1
  837. package/lib.esm/hash/namehash.js +0 -84
  838. package/lib.esm/hash/namehash.js.map +0 -1
  839. package/lib.esm/hash/solidity.d.ts +0 -31
  840. package/lib.esm/hash/solidity.d.ts.map +0 -1
  841. package/lib.esm/hash/solidity.js +0 -103
  842. package/lib.esm/hash/solidity.js.map +0 -1
  843. package/lib.esm/hash/typed-data.d.ts +0 -150
  844. package/lib.esm/hash/typed-data.d.ts.map +0 -1
  845. package/lib.esm/hash/typed-data.js +0 -519
  846. package/lib.esm/hash/typed-data.js.map +0 -1
  847. package/lib.esm/index.d.ts +0 -11
  848. package/lib.esm/index.d.ts.map +0 -1
  849. package/lib.esm/index.js +0 -11
  850. package/lib.esm/index.js.map +0 -1
  851. package/lib.esm/package.json +0 -12
  852. package/lib.esm/providers/abstract-provider.d.ts +0 -451
  853. package/lib.esm/providers/abstract-provider.d.ts.map +0 -1
  854. package/lib.esm/providers/abstract-provider.js +0 -1404
  855. package/lib.esm/providers/abstract-provider.js.map +0 -1
  856. package/lib.esm/providers/abstract-signer.d.ts +0 -69
  857. package/lib.esm/providers/abstract-signer.d.ts.map +0 -1
  858. package/lib.esm/providers/abstract-signer.js +0 -244
  859. package/lib.esm/providers/abstract-signer.js.map +0 -1
  860. package/lib.esm/providers/community.d.ts +0 -29
  861. package/lib.esm/providers/community.d.ts.map +0 -1
  862. package/lib.esm/providers/community.js +0 -36
  863. package/lib.esm/providers/community.js.map +0 -1
  864. package/lib.esm/providers/contracts.d.ts +0 -36
  865. package/lib.esm/providers/contracts.d.ts.map +0 -1
  866. package/lib.esm/providers/contracts.js +0 -2
  867. package/lib.esm/providers/contracts.js.map +0 -1
  868. package/lib.esm/providers/default-provider.d.ts +0 -41
  869. package/lib.esm/providers/default-provider.d.ts.map +0 -1
  870. package/lib.esm/providers/default-provider.js +0 -88
  871. package/lib.esm/providers/default-provider.js.map +0 -1
  872. package/lib.esm/providers/ens-resolver.d.ts +0 -147
  873. package/lib.esm/providers/ens-resolver.d.ts.map +0 -1
  874. package/lib.esm/providers/ens-resolver.js +0 -496
  875. package/lib.esm/providers/ens-resolver.js.map +0 -1
  876. package/lib.esm/providers/format.d.ts +0 -15
  877. package/lib.esm/providers/format.d.ts.map +0 -1
  878. package/lib.esm/providers/format.js +0 -283
  879. package/lib.esm/providers/format.js.map +0 -1
  880. package/lib.esm/providers/formatting.d.ts +0 -318
  881. package/lib.esm/providers/formatting.d.ts.map +0 -1
  882. package/lib.esm/providers/formatting.js +0 -9
  883. package/lib.esm/providers/formatting.js.map +0 -1
  884. package/lib.esm/providers/index.d.ts +0 -41
  885. package/lib.esm/providers/index.d.ts.map +0 -1
  886. package/lib.esm/providers/index.js +0 -31
  887. package/lib.esm/providers/index.js.map +0 -1
  888. package/lib.esm/providers/network.d.ts +0 -99
  889. package/lib.esm/providers/network.d.ts.map +0 -1
  890. package/lib.esm/providers/network.js +0 -265
  891. package/lib.esm/providers/network.js.map +0 -1
  892. package/lib.esm/providers/pagination.d.ts +0 -6
  893. package/lib.esm/providers/pagination.d.ts.map +0 -1
  894. package/lib.esm/providers/pagination.js +0 -2
  895. package/lib.esm/providers/pagination.js.map +0 -1
  896. package/lib.esm/providers/plugin-fallback.d.ts +0 -13
  897. package/lib.esm/providers/plugin-fallback.d.ts.map +0 -1
  898. package/lib.esm/providers/plugin-fallback.js +0 -26
  899. package/lib.esm/providers/plugin-fallback.js.map +0 -1
  900. package/lib.esm/providers/plugins-network.d.ts +0 -170
  901. package/lib.esm/providers/plugins-network.d.ts.map +0 -1
  902. package/lib.esm/providers/plugins-network.js +0 -208
  903. package/lib.esm/providers/plugins-network.js.map +0 -1
  904. package/lib.esm/providers/provider-browser.d.ts +0 -108
  905. package/lib.esm/providers/provider-browser.d.ts.map +0 -1
  906. package/lib.esm/providers/provider-browser.js +0 -200
  907. package/lib.esm/providers/provider-browser.js.map +0 -1
  908. package/lib.esm/providers/provider-fallback.d.ts +0 -115
  909. package/lib.esm/providers/provider-fallback.d.ts.map +0 -1
  910. package/lib.esm/providers/provider-fallback.js +0 -620
  911. package/lib.esm/providers/provider-fallback.js.map +0 -1
  912. package/lib.esm/providers/provider-ipcsocket-browser.d.ts +0 -3
  913. package/lib.esm/providers/provider-ipcsocket-browser.d.ts.map +0 -1
  914. package/lib.esm/providers/provider-ipcsocket-browser.js +0 -3
  915. package/lib.esm/providers/provider-ipcsocket-browser.js.map +0 -1
  916. package/lib.esm/providers/provider-ipcsocket.d.ts +0 -21
  917. package/lib.esm/providers/provider-ipcsocket.d.ts.map +0 -1
  918. package/lib.esm/providers/provider-ipcsocket.js +0 -68
  919. package/lib.esm/providers/provider-ipcsocket.js.map +0 -1
  920. package/lib.esm/providers/provider-jsonrpc.d.ts +0 -360
  921. package/lib.esm/providers/provider-jsonrpc.d.ts.map +0 -1
  922. package/lib.esm/providers/provider-jsonrpc.js +0 -972
  923. package/lib.esm/providers/provider-jsonrpc.js.map +0 -1
  924. package/lib.esm/providers/provider-socket.d.ts +0 -113
  925. package/lib.esm/providers/provider-socket.d.ts.map +0 -1
  926. package/lib.esm/providers/provider-socket.js +0 -301
  927. package/lib.esm/providers/provider-socket.js.map +0 -1
  928. package/lib.esm/providers/provider-websocket.d.ts +0 -37
  929. package/lib.esm/providers/provider-websocket.d.ts.map +0 -1
  930. package/lib.esm/providers/provider-websocket.js +0 -76
  931. package/lib.esm/providers/provider-websocket.js.map +0 -1
  932. package/lib.esm/providers/provider.d.ts +0 -1223
  933. package/lib.esm/providers/provider.d.ts.map +0 -1
  934. package/lib.esm/providers/provider.js +0 -1312
  935. package/lib.esm/providers/provider.js.map +0 -1
  936. package/lib.esm/providers/signer-noncemanager.d.ts +0 -38
  937. package/lib.esm/providers/signer-noncemanager.d.ts.map +0 -1
  938. package/lib.esm/providers/signer-noncemanager.js +0 -74
  939. package/lib.esm/providers/signer-noncemanager.js.map +0 -1
  940. package/lib.esm/providers/signer.d.ts +0 -131
  941. package/lib.esm/providers/signer.d.ts.map +0 -1
  942. package/lib.esm/providers/signer.js +0 -2
  943. package/lib.esm/providers/signer.js.map +0 -1
  944. package/lib.esm/providers/subscriber-connection.d.ts +0 -25
  945. package/lib.esm/providers/subscriber-connection.d.ts.map +0 -1
  946. package/lib.esm/providers/subscriber-connection.js +0 -52
  947. package/lib.esm/providers/subscriber-connection.js.map +0 -1
  948. package/lib.esm/providers/subscriber-filterid.d.ts +0 -64
  949. package/lib.esm/providers/subscriber-filterid.d.ts.map +0 -1
  950. package/lib.esm/providers/subscriber-filterid.js +0 -174
  951. package/lib.esm/providers/subscriber-filterid.js.map +0 -1
  952. package/lib.esm/providers/subscriber-polling.d.ts +0 -100
  953. package/lib.esm/providers/subscriber-polling.d.ts.map +0 -1
  954. package/lib.esm/providers/subscriber-polling.js +0 -293
  955. package/lib.esm/providers/subscriber-polling.js.map +0 -1
  956. package/lib.esm/providers/ws-browser.d.ts +0 -3
  957. package/lib.esm/providers/ws-browser.d.ts.map +0 -1
  958. package/lib.esm/providers/ws-browser.js +0 -16
  959. package/lib.esm/providers/ws-browser.js.map +0 -1
  960. package/lib.esm/providers/ws.d.ts +0 -2
  961. package/lib.esm/providers/ws.d.ts.map +0 -1
  962. package/lib.esm/providers/ws.js +0 -2
  963. package/lib.esm/providers/ws.js.map +0 -1
  964. package/lib.esm/quantumcoin.d.ts +0 -24
  965. package/lib.esm/quantumcoin.d.ts.map +0 -1
  966. package/lib.esm/quantumcoin.js +0 -22
  967. package/lib.esm/quantumcoin.js.map +0 -1
  968. package/lib.esm/transaction/accesslist.d.ts +0 -6
  969. package/lib.esm/transaction/accesslist.d.ts.map +0 -1
  970. package/lib.esm/transaction/accesslist.js +0 -37
  971. package/lib.esm/transaction/accesslist.js.map +0 -1
  972. package/lib.esm/transaction/address.d.ts +0 -15
  973. package/lib.esm/transaction/address.d.ts.map +0 -1
  974. package/lib.esm/transaction/address.js +0 -34
  975. package/lib.esm/transaction/address.js.map +0 -1
  976. package/lib.esm/transaction/authorization.d.ts +0 -3
  977. package/lib.esm/transaction/authorization.d.ts.map +0 -1
  978. package/lib.esm/transaction/authorization.js +0 -12
  979. package/lib.esm/transaction/authorization.js.map +0 -1
  980. package/lib.esm/transaction/index.d.ts +0 -40
  981. package/lib.esm/transaction/index.d.ts.map +0 -1
  982. package/lib.esm/transaction/index.js +0 -11
  983. package/lib.esm/transaction/index.js.map +0 -1
  984. package/lib.esm/transaction/transaction.d.ts +0 -400
  985. package/lib.esm/transaction/transaction.d.ts.map +0 -1
  986. package/lib.esm/transaction/transaction.js +0 -1111
  987. package/lib.esm/transaction/transaction.js.map +0 -1
  988. package/lib.esm/utils/base58.d.ts +0 -23
  989. package/lib.esm/utils/base58.d.ts.map +0 -1
  990. package/lib.esm/utils/base58.js +0 -63
  991. package/lib.esm/utils/base58.js.map +0 -1
  992. package/lib.esm/utils/base64-browser.d.ts +0 -4
  993. package/lib.esm/utils/base64-browser.d.ts.map +0 -1
  994. package/lib.esm/utils/base64-browser.js +0 -19
  995. package/lib.esm/utils/base64-browser.js.map +0 -1
  996. package/lib.esm/utils/base64.d.ts +0 -40
  997. package/lib.esm/utils/base64.d.ts.map +0 -1
  998. package/lib.esm/utils/base64.js +0 -53
  999. package/lib.esm/utils/base64.js.map +0 -1
  1000. package/lib.esm/utils/data.d.ts +0 -93
  1001. package/lib.esm/utils/data.d.ts.map +0 -1
  1002. package/lib.esm/utils/data.js +0 -170
  1003. package/lib.esm/utils/data.js.map +0 -1
  1004. package/lib.esm/utils/errors.d.ts +0 -512
  1005. package/lib.esm/utils/errors.d.ts.map +0 -1
  1006. package/lib.esm/utils/errors.js +0 -224
  1007. package/lib.esm/utils/errors.js.map +0 -1
  1008. package/lib.esm/utils/events.d.ts +0 -77
  1009. package/lib.esm/utils/events.d.ts.map +0 -1
  1010. package/lib.esm/utils/events.js +0 -42
  1011. package/lib.esm/utils/events.js.map +0 -1
  1012. package/lib.esm/utils/fetch.d.ts +0 -363
  1013. package/lib.esm/utils/fetch.d.ts.map +0 -1
  1014. package/lib.esm/utils/fetch.js +0 -852
  1015. package/lib.esm/utils/fetch.js.map +0 -1
  1016. package/lib.esm/utils/fixednumber.d.ts +0 -252
  1017. package/lib.esm/utils/fixednumber.d.ts.map +0 -1
  1018. package/lib.esm/utils/fixednumber.js +0 -526
  1019. package/lib.esm/utils/fixednumber.js.map +0 -1
  1020. package/lib.esm/utils/geturl-browser.d.ts +0 -4
  1021. package/lib.esm/utils/geturl-browser.d.ts.map +0 -1
  1022. package/lib.esm/utils/geturl-browser.js +0 -62
  1023. package/lib.esm/utils/geturl-browser.js.map +0 -1
  1024. package/lib.esm/utils/geturl.d.ts +0 -10
  1025. package/lib.esm/utils/geturl.d.ts.map +0 -1
  1026. package/lib.esm/utils/geturl.js +0 -114
  1027. package/lib.esm/utils/geturl.js.map +0 -1
  1028. package/lib.esm/utils/index.d.ts +0 -30
  1029. package/lib.esm/utils/index.d.ts.map +0 -1
  1030. package/lib.esm/utils/index.js +0 -22
  1031. package/lib.esm/utils/index.js.map +0 -1
  1032. package/lib.esm/utils/maths.d.ts +0 -66
  1033. package/lib.esm/utils/maths.d.ts.map +0 -1
  1034. package/lib.esm/utils/maths.js +0 -215
  1035. package/lib.esm/utils/maths.js.map +0 -1
  1036. package/lib.esm/utils/properties.d.ts +0 -23
  1037. package/lib.esm/utils/properties.d.ts.map +0 -1
  1038. package/lib.esm/utils/properties.js +0 -54
  1039. package/lib.esm/utils/properties.js.map +0 -1
  1040. package/lib.esm/utils/rlp-decode.d.ts +0 -6
  1041. package/lib.esm/utils/rlp-decode.d.ts.map +0 -1
  1042. package/lib.esm/utils/rlp-decode.js +0 -79
  1043. package/lib.esm/utils/rlp-decode.js.map +0 -1
  1044. package/lib.esm/utils/rlp-encode.d.ts +0 -6
  1045. package/lib.esm/utils/rlp-encode.d.ts.map +0 -1
  1046. package/lib.esm/utils/rlp-encode.js +0 -49
  1047. package/lib.esm/utils/rlp-encode.js.map +0 -1
  1048. package/lib.esm/utils/rlp.d.ts +0 -17
  1049. package/lib.esm/utils/rlp.d.ts.map +0 -1
  1050. package/lib.esm/utils/rlp.js +0 -9
  1051. package/lib.esm/utils/rlp.js.map +0 -1
  1052. package/lib.esm/utils/units.d.ts +0 -24
  1053. package/lib.esm/utils/units.d.ts.map +0 -1
  1054. package/lib.esm/utils/units.js +0 -83
  1055. package/lib.esm/utils/units.js.map +0 -1
  1056. package/lib.esm/utils/utf8.d.ts +0 -96
  1057. package/lib.esm/utils/utf8.d.ts.map +0 -1
  1058. package/lib.esm/utils/utf8.js +0 -221
  1059. package/lib.esm/utils/utf8.js.map +0 -1
  1060. package/lib.esm/utils/uuid.d.ts +0 -8
  1061. package/lib.esm/utils/uuid.d.ts.map +0 -1
  1062. package/lib.esm/utils/uuid.js +0 -30
  1063. package/lib.esm/utils/uuid.js.map +0 -1
  1064. package/lib.esm/wallet/base-wallet.d.ts +0 -57
  1065. package/lib.esm/wallet/base-wallet.d.ts.map +0 -1
  1066. package/lib.esm/wallet/base-wallet.js +0 -123
  1067. package/lib.esm/wallet/base-wallet.js.map +0 -1
  1068. package/lib.esm/wallet/index.d.ts +0 -23
  1069. package/lib.esm/wallet/index.d.ts.map +0 -1
  1070. package/lib.esm/wallet/index.js +0 -22
  1071. package/lib.esm/wallet/index.js.map +0 -1
  1072. package/lib.esm/wallet/json-keystore.d.ts +0 -40
  1073. package/lib.esm/wallet/json-keystore.d.ts.map +0 -1
  1074. package/lib.esm/wallet/json-keystore.js +0 -84
  1075. package/lib.esm/wallet/json-keystore.js.map +0 -1
  1076. package/lib.esm/wallet/utils.d.ts +0 -8
  1077. package/lib.esm/wallet/utils.d.ts.map +0 -1
  1078. package/lib.esm/wallet/utils.js +0 -142
  1079. package/lib.esm/wallet/utils.js.map +0 -1
  1080. package/lib.esm/wallet/wallet.d.ts +0 -62
  1081. package/lib.esm/wallet/wallet.d.ts.map +0 -1
  1082. package/lib.esm/wallet/wallet.js +0 -105
  1083. package/lib.esm/wallet/wallet.js.map +0 -1
  1084. package/lib.esm/wordlists/bit-reader.d.ts +0 -5
  1085. package/lib.esm/wordlists/bit-reader.d.ts.map +0 -1
  1086. package/lib.esm/wordlists/bit-reader.js +0 -32
  1087. package/lib.esm/wordlists/bit-reader.js.map +0 -1
  1088. package/lib.esm/wordlists/decode-owl.d.ts +0 -9
  1089. package/lib.esm/wordlists/decode-owl.d.ts.map +0 -1
  1090. package/lib.esm/wordlists/decode-owl.js +0 -55
  1091. package/lib.esm/wordlists/decode-owl.js.map +0 -1
  1092. package/lib.esm/wordlists/decode-owla.d.ts +0 -5
  1093. package/lib.esm/wordlists/decode-owla.d.ts.map +0 -1
  1094. package/lib.esm/wordlists/decode-owla.js +0 -28
  1095. package/lib.esm/wordlists/decode-owla.js.map +0 -1
  1096. package/lib.esm/wordlists/generation/encode-latin.d.ts +0 -25
  1097. package/lib.esm/wordlists/generation/encode-latin.d.ts.map +0 -1
  1098. package/lib.esm/wordlists/generation/encode-latin.js +0 -344
  1099. package/lib.esm/wordlists/generation/encode-latin.js.map +0 -1
  1100. package/lib.esm/wordlists/index.d.ts +0 -25
  1101. package/lib.esm/wordlists/index.d.ts.map +0 -1
  1102. package/lib.esm/wordlists/index.js +0 -25
  1103. package/lib.esm/wordlists/index.js.map +0 -1
  1104. package/lib.esm/wordlists/lang-cz.d.ts +0 -23
  1105. package/lib.esm/wordlists/lang-cz.d.ts.map +0 -1
  1106. package/lib.esm/wordlists/lang-cz.js +0 -31
  1107. package/lib.esm/wordlists/lang-cz.js.map +0 -1
  1108. package/lib.esm/wordlists/lang-en.d.ts +0 -23
  1109. package/lib.esm/wordlists/lang-en.d.ts.map +0 -1
  1110. package/lib.esm/wordlists/lang-en.js +0 -31
  1111. package/lib.esm/wordlists/lang-en.js.map +0 -1
  1112. package/lib.esm/wordlists/lang-es.d.ts +0 -23
  1113. package/lib.esm/wordlists/lang-es.d.ts.map +0 -1
  1114. package/lib.esm/wordlists/lang-es.js +0 -32
  1115. package/lib.esm/wordlists/lang-es.js.map +0 -1
  1116. package/lib.esm/wordlists/lang-fr.d.ts +0 -23
  1117. package/lib.esm/wordlists/lang-fr.d.ts.map +0 -1
  1118. package/lib.esm/wordlists/lang-fr.js +0 -32
  1119. package/lib.esm/wordlists/lang-fr.js.map +0 -1
  1120. package/lib.esm/wordlists/lang-it.d.ts +0 -23
  1121. package/lib.esm/wordlists/lang-it.d.ts.map +0 -1
  1122. package/lib.esm/wordlists/lang-it.js +0 -31
  1123. package/lib.esm/wordlists/lang-it.js.map +0 -1
  1124. package/lib.esm/wordlists/lang-ja.d.ts +0 -27
  1125. package/lib.esm/wordlists/lang-ja.d.ts.map +0 -1
  1126. package/lib.esm/wordlists/lang-ja.js +0 -154
  1127. package/lib.esm/wordlists/lang-ja.js.map +0 -1
  1128. package/lib.esm/wordlists/lang-ko.d.ts +0 -25
  1129. package/lib.esm/wordlists/lang-ko.d.ts.map +0 -1
  1130. package/lib.esm/wordlists/lang-ko.js +0 -89
  1131. package/lib.esm/wordlists/lang-ko.js.map +0 -1
  1132. package/lib.esm/wordlists/lang-pt.d.ts +0 -23
  1133. package/lib.esm/wordlists/lang-pt.d.ts.map +0 -1
  1134. package/lib.esm/wordlists/lang-pt.js +0 -31
  1135. package/lib.esm/wordlists/lang-pt.js.map +0 -1
  1136. package/lib.esm/wordlists/lang-zh.d.ts +0 -32
  1137. package/lib.esm/wordlists/lang-zh.d.ts.map +0 -1
  1138. package/lib.esm/wordlists/lang-zh.js +0 -92
  1139. package/lib.esm/wordlists/lang-zh.js.map +0 -1
  1140. package/lib.esm/wordlists/wordlist-owl.d.ts +0 -32
  1141. package/lib.esm/wordlists/wordlist-owl.d.ts.map +0 -1
  1142. package/lib.esm/wordlists/wordlist-owl.js +0 -66
  1143. package/lib.esm/wordlists/wordlist-owl.js.map +0 -1
  1144. package/lib.esm/wordlists/wordlist-owla.d.ts +0 -30
  1145. package/lib.esm/wordlists/wordlist-owla.d.ts.map +0 -1
  1146. package/lib.esm/wordlists/wordlist-owla.js +0 -36
  1147. package/lib.esm/wordlists/wordlist-owla.js.map +0 -1
  1148. package/lib.esm/wordlists/wordlist.d.ts +0 -47
  1149. package/lib.esm/wordlists/wordlist.d.ts.map +0 -1
  1150. package/lib.esm/wordlists/wordlist.js +0 -42
  1151. package/lib.esm/wordlists/wordlist.js.map +0 -1
  1152. package/lib.esm/wordlists/wordlists-browser.d.ts +0 -3
  1153. package/lib.esm/wordlists/wordlists-browser.d.ts.map +0 -1
  1154. package/lib.esm/wordlists/wordlists-browser.js +0 -5
  1155. package/lib.esm/wordlists/wordlists-browser.js.map +0 -1
  1156. package/lib.esm/wordlists/wordlists-extra.d.ts +0 -9
  1157. package/lib.esm/wordlists/wordlists-extra.d.ts.map +0 -1
  1158. package/lib.esm/wordlists/wordlists-extra.js +0 -9
  1159. package/lib.esm/wordlists/wordlists-extra.js.map +0 -1
  1160. package/lib.esm/wordlists/wordlists.d.ts +0 -16
  1161. package/lib.esm/wordlists/wordlists.d.ts.map +0 -1
  1162. package/lib.esm/wordlists/wordlists.js +0 -35
  1163. package/lib.esm/wordlists/wordlists.js.map +0 -1
  1164. package/rollup.config.mjs +0 -50
  1165. package/src.ts/_version.ts +0 -6
  1166. package/src.ts/abi/abi-coder.ts +0 -237
  1167. package/src.ts/abi/bytes32.ts +0 -45
  1168. package/src.ts/abi/coders/abstract-coder.ts +0 -541
  1169. package/src.ts/abi/coders/address.ts +0 -36
  1170. package/src.ts/abi/coders/anonymous.ts +0 -29
  1171. package/src.ts/abi/coders/array.ts +0 -199
  1172. package/src.ts/abi/coders/boolean.ts +0 -27
  1173. package/src.ts/abi/coders/bytes.ts +0 -43
  1174. package/src.ts/abi/coders/fixed-bytes.ts +0 -37
  1175. package/src.ts/abi/coders/null.ts +0 -28
  1176. package/src.ts/abi/coders/number.ts +0 -63
  1177. package/src.ts/abi/coders/string.ts +0 -29
  1178. package/src.ts/abi/coders/tuple.ts +0 -69
  1179. package/src.ts/abi/fragments.ts +0 -1617
  1180. package/src.ts/abi/index.ts +0 -41
  1181. package/src.ts/abi/interface.ts +0 -1271
  1182. package/src.ts/abi/typed.ts +0 -796
  1183. package/src.ts/address/address.ts +0 -148
  1184. package/src.ts/address/checks.ts +0 -123
  1185. package/src.ts/address/contract-address.ts +0 -80
  1186. package/src.ts/address/index.ts +0 -57
  1187. package/src.ts/constants/addresses.ts +0 -8
  1188. package/src.ts/constants/hashes.ts +0 -7
  1189. package/src.ts/constants/index.ts +0 -16
  1190. package/src.ts/constants/numbers.ts +0 -35
  1191. package/src.ts/constants/strings.ts +0 -16
  1192. package/src.ts/contract/contract.ts +0 -1120
  1193. package/src.ts/contract/factory.ts +0 -143
  1194. package/src.ts/contract/index.ts +0 -31
  1195. package/src.ts/contract/types.ts +0 -236
  1196. package/src.ts/contract/wrappers.ts +0 -225
  1197. package/src.ts/crypto/crypto-browser.ts +0 -64
  1198. package/src.ts/crypto/crypto.ts +0 -4
  1199. package/src.ts/crypto/hmac.ts +0 -51
  1200. package/src.ts/crypto/index.ts +0 -59
  1201. package/src.ts/crypto/keccak.ts +0 -54
  1202. package/src.ts/crypto/pbkdf2.ts +0 -55
  1203. package/src.ts/crypto/random.ts +0 -36
  1204. package/src.ts/crypto/ripemd160.ts +0 -43
  1205. package/src.ts/crypto/scrypt.ts +0 -114
  1206. package/src.ts/crypto/sha2.ts +0 -78
  1207. package/src.ts/crypto/signature.ts +0 -145
  1208. package/src.ts/crypto/signing-key.ts +0 -126
  1209. package/src.ts/hash/authorization.ts +0 -38
  1210. package/src.ts/hash/id.ts +0 -17
  1211. package/src.ts/hash/index.ts +0 -18
  1212. package/src.ts/hash/message.ts +0 -51
  1213. package/src.ts/hash/namehash.ts +0 -101
  1214. package/src.ts/hash/solidity.ts +0 -117
  1215. package/src.ts/hash/typed-data.ts +0 -658
  1216. package/src.ts/index.ts +0 -12
  1217. package/src.ts/providers/abstract-provider.ts +0 -1761
  1218. package/src.ts/providers/abstract-signer.ts +0 -314
  1219. package/src.ts/providers/community.ts +0 -49
  1220. package/src.ts/providers/contracts.ts +0 -42
  1221. package/src.ts/providers/default-provider.ts +0 -96
  1222. package/src.ts/providers/ens-resolver.ts +0 -606
  1223. package/src.ts/providers/format.ts +0 -320
  1224. package/src.ts/providers/formatting.ts +0 -418
  1225. package/src.ts/providers/index.ts +0 -125
  1226. package/src.ts/providers/network.ts +0 -327
  1227. package/src.ts/providers/pagination.ts +0 -8
  1228. package/src.ts/providers/plugin-fallback.ts +0 -35
  1229. package/src.ts/providers/plugins-network.ts +0 -281
  1230. package/src.ts/providers/provider-browser.ts +0 -334
  1231. package/src.ts/providers/provider-fallback.ts +0 -801
  1232. package/src.ts/providers/provider-ipcsocket-browser.ts +0 -3
  1233. package/src.ts/providers/provider-ipcsocket.ts +0 -81
  1234. package/src.ts/providers/provider-jsonrpc.ts +0 -1334
  1235. package/src.ts/providers/provider-socket.ts +0 -352
  1236. package/src.ts/providers/provider-websocket.ts +0 -103
  1237. package/src.ts/providers/provider.ts +0 -2136
  1238. package/src.ts/providers/signer-noncemanager.ts +0 -98
  1239. package/src.ts/providers/signer.ts +0 -166
  1240. package/src.ts/providers/subscriber-connection.ts +0 -74
  1241. package/src.ts/providers/subscriber-filterid.ts +0 -199
  1242. package/src.ts/providers/subscriber-polling.ts +0 -321
  1243. package/src.ts/providers/ws-browser.ts +0 -11
  1244. package/src.ts/providers/ws.ts +0 -3
  1245. package/src.ts/quantumcoin.ts +0 -219
  1246. package/src.ts/thirdparty.d.ts +0 -16
  1247. package/src.ts/transaction/accesslist.ts +0 -43
  1248. package/src.ts/transaction/address.ts +0 -35
  1249. package/src.ts/transaction/authorization.ts +0 -14
  1250. package/src.ts/transaction/index.ts +0 -51
  1251. package/src.ts/transaction/transaction.ts +0 -1349
  1252. package/src.ts/utils/base58.ts +0 -73
  1253. package/src.ts/utils/base64-browser.ts +0 -25
  1254. package/src.ts/utils/base64.ts +0 -56
  1255. package/src.ts/utils/data.ts +0 -199
  1256. package/src.ts/utils/errors.ts +0 -793
  1257. package/src.ts/utils/events.ts +0 -105
  1258. package/src.ts/utils/fetch.ts +0 -970
  1259. package/src.ts/utils/fixednumber.ts +0 -643
  1260. package/src.ts/utils/geturl-browser.ts +0 -81
  1261. package/src.ts/utils/geturl.ts +0 -134
  1262. package/src.ts/utils/index.ts +0 -95
  1263. package/src.ts/utils/maths.ts +0 -240
  1264. package/src.ts/utils/properties.ts +0 -60
  1265. package/src.ts/utils/rlp-decode.ts +0 -104
  1266. package/src.ts/utils/rlp-encode.ts +0 -64
  1267. package/src.ts/utils/rlp.ts +0 -20
  1268. package/src.ts/utils/test.txt +0 -0
  1269. package/src.ts/utils/units.ts +0 -91
  1270. package/src.ts/utils/utf8.ts +0 -325
  1271. package/src.ts/utils/uuid.ts +0 -36
  1272. package/src.ts/wallet/base-wallet.ts +0 -160
  1273. package/src.ts/wallet/index.ts +0 -32
  1274. package/src.ts/wallet/json-keystore.ts +0 -108
  1275. package/src.ts/wallet/utils.ts +0 -147
  1276. package/src.ts/wallet/wallet.ts +0 -138
  1277. package/src.ts/wordlists/bit-reader.ts +0 -35
  1278. package/src.ts/wordlists/decode-owl.ts +0 -58
  1279. package/src.ts/wordlists/decode-owla.ts +0 -33
  1280. package/src.ts/wordlists/generation/encode-latin.ts +0 -370
  1281. package/src.ts/wordlists/index.ts +0 -26
  1282. package/src.ts/wordlists/lang-cz.ts +0 -33
  1283. package/src.ts/wordlists/lang-en.ts +0 -33
  1284. package/src.ts/wordlists/lang-es.ts +0 -35
  1285. package/src.ts/wordlists/lang-fr.ts +0 -34
  1286. package/src.ts/wordlists/lang-it.ts +0 -33
  1287. package/src.ts/wordlists/lang-ja.ts +0 -181
  1288. package/src.ts/wordlists/lang-ko.ts +0 -104
  1289. package/src.ts/wordlists/lang-pt.ts +0 -34
  1290. package/src.ts/wordlists/lang-zh.ts +0 -112
  1291. package/src.ts/wordlists/wordlist-owl.ts +0 -77
  1292. package/src.ts/wordlists/wordlist-owla.ts +0 -41
  1293. package/src.ts/wordlists/wordlist.ts +0 -59
  1294. package/src.ts/wordlists/wordlists-browser.ts +0 -8
  1295. package/src.ts/wordlists/wordlists-extra.ts +0 -9
  1296. package/src.ts/wordlists/wordlists.ts +0 -38
@@ -0,0 +1,1201 @@
1
+ /**
2
+ * @fileoverview Typed contract generator (SPEC.md section 15).
3
+ *
4
+ * Supports generating:
5
+ * - TypeScript source (`.ts`)
6
+ * - JavaScript source (`.js`) + TypeScript declaration files (`.d.ts`)
7
+ *
8
+ * It is designed to be invoked by `generate-sdk.js` (CLI) and
9
+ * can also be imported as a library.
10
+ */
11
+
12
+ const fs = require("node:fs");
13
+ const path = require("node:path");
14
+
15
+ function _ensureDir(p) {
16
+ fs.mkdirSync(p, { recursive: true });
17
+ }
18
+
19
+ function _readJson(filePath) {
20
+ return JSON.parse(fs.readFileSync(filePath, "utf8"));
21
+ }
22
+
23
+ function _stripArraySuffixes(s) {
24
+ let out = String(s || "");
25
+ while (out.endsWith("]")) {
26
+ out = out.slice(0, out.lastIndexOf("["));
27
+ }
28
+ return out;
29
+ }
30
+
31
+ function _parseArray(type) {
32
+ const t = String(type || "");
33
+ const idx = t.lastIndexOf("[");
34
+ if (idx < 0 || !t.endsWith("]")) return null;
35
+ const inner = t.slice(0, idx);
36
+ const bracket = t.slice(idx + 1, t.length - 1); // "" => dynamic
37
+ const fixedLen = bracket.length ? Number(bracket) : null;
38
+ return { inner, fixedLen: fixedLen != null && Number.isFinite(fixedLen) ? fixedLen : null };
39
+ }
40
+
41
+ function _tupleBaseNameFromInternalType(contractName, internalType) {
42
+ const raw = String(internalType || "");
43
+ if (!raw) return null;
44
+ const cleaned = _stripArraySuffixes(raw);
45
+ const m = cleaned.match(/struct\s+([A-Za-z0-9_]+)\.([A-Za-z0-9_]+)/);
46
+ if (m && m[2]) return m[2];
47
+ // Some compilers omit "struct" keyword.
48
+ const m2 = cleaned.match(/^([A-Za-z0-9_]+)\.([A-Za-z0-9_]+)$/);
49
+ if (m2 && m2[2]) return m2[2];
50
+ // Fallback: last segment
51
+ const parts = cleaned.split(".");
52
+ const last = parts[parts.length - 1];
53
+ if (last && last !== contractName) return last;
54
+ return null;
55
+ }
56
+
57
+ function _tupleKey(param) {
58
+ /** @param {any} p */
59
+ function norm(p) {
60
+ const out = {
61
+ name: String(p && p.name ? p.name : ""),
62
+ type: String(p && p.type ? p.type : ""),
63
+ internalType: String(p && p.internalType ? p.internalType : ""),
64
+ components: [],
65
+ };
66
+ const comps = Array.isArray(p && p.components) ? p.components : [];
67
+ out.components = comps.map((c) => norm(c));
68
+ return out;
69
+ }
70
+ return JSON.stringify(norm(param || {}));
71
+ }
72
+
73
+ function _collectTupleRegistry(contractName, abi) {
74
+ const byKey = new Map(); // key -> baseName
75
+ const usedNames = new Map(); // baseName -> key
76
+ let counter = 0;
77
+
78
+ /** @param {any} param */
79
+ function ensureTuple(param) {
80
+ const key = _tupleKey(param);
81
+ if (byKey.has(key)) return byKey.get(key);
82
+
83
+ const suggested =
84
+ _tupleBaseNameFromInternalType(contractName, param && param.internalType) || `${contractName}Tuple${++counter}`;
85
+ let baseName = suggested;
86
+ if (usedNames.has(baseName) && usedNames.get(baseName) !== key) {
87
+ let n = 1;
88
+ while (usedNames.has(`${suggested}_${n}`) && usedNames.get(`${suggested}_${n}`) !== key) n++;
89
+ baseName = `${suggested}_${n}`;
90
+ }
91
+ byKey.set(key, baseName);
92
+ usedNames.set(baseName, key);
93
+
94
+ // Recurse to nested tuples.
95
+ const comps = Array.isArray(param && param.components) ? param.components : [];
96
+ for (const c of comps) visitParam(c);
97
+ return baseName;
98
+ }
99
+
100
+ /** @param {any} param */
101
+ function visitParam(param) {
102
+ const type = String(param && param.type ? param.type : "");
103
+ if (!type) return;
104
+ const arr = _parseArray(type);
105
+ if (arr) {
106
+ visitParam({ ...(param || {}), type: arr.inner });
107
+ return;
108
+ }
109
+ if (type === "tuple") {
110
+ ensureTuple(param);
111
+ return;
112
+ }
113
+ }
114
+
115
+ for (const f of abi || []) {
116
+ if (!f || typeof f !== "object") continue;
117
+ const inputs = Array.isArray(f.inputs) ? f.inputs : [];
118
+ const outputs = Array.isArray(f.outputs) ? f.outputs : [];
119
+ for (const p of inputs) visitParam(p);
120
+ for (const p of outputs) visitParam(p);
121
+ }
122
+
123
+ return { byKey };
124
+ }
125
+
126
+ function _solParamToTs(param, mode, tupleReg) {
127
+ const type = String(param && param.type ? param.type : "");
128
+ const m = mode === "output" ? "output" : "input";
129
+
130
+ const arr = _parseArray(type);
131
+ if (arr) {
132
+ const innerParam = { ...(param || {}), type: arr.inner };
133
+ const innerTs = _solParamToTs(innerParam, mode, tupleReg);
134
+ if (arr.fixedLen != null) return `Types.SolFixedArray<${innerTs}, ${arr.fixedLen}>`;
135
+ return `Types.SolArray<${innerTs}>`;
136
+ }
137
+
138
+ if (type === "tuple") {
139
+ const key = _tupleKey(param);
140
+ const baseName = tupleReg && tupleReg.byKey ? tupleReg.byKey.get(key) : null;
141
+ const n = baseName || "Tuple";
142
+ return `${n}${m === "input" ? "Input" : "Output"}`;
143
+ }
144
+
145
+ // Elementary types (hard typed)
146
+ if (type === "address") return m === "input" ? "Types.AddressLike" : "Types.SolAddress";
147
+ if (type === "bool") return "boolean";
148
+ if (type === "string") return "string";
149
+ if (type === "bytes") return m === "input" ? "Types.BytesLike" : "Types.HexString";
150
+
151
+ const mBytesN = type.match(/^bytes(\d+)$/);
152
+ if (mBytesN) {
153
+ const n = Number(mBytesN[1]);
154
+ if (n === 32) return m === "input" ? "Types.Bytes32Like" : "Types.Bytes32";
155
+ if (Number.isFinite(n) && n >= 1 && n <= 32) return m === "input" ? `Types.Bytes${n}Like` : `Types.Bytes${n}`;
156
+ }
157
+
158
+ const mUint = type === "uint" ? ["uint", "256"] : type.match(/^uint(\d+)$/);
159
+ if (mUint) {
160
+ const bits = type === "uint" ? 256 : Number(mUint[1]);
161
+ const b = Number.isFinite(bits) ? bits : 256;
162
+ return m === "input" ? `Types.Uint${b}Like` : `Types.Uint${b}`;
163
+ }
164
+
165
+ const mInt = type === "int" ? ["int", "256"] : type.match(/^int(\d+)$/);
166
+ if (mInt) {
167
+ const bits = type === "int" ? 256 : Number(mInt[1]);
168
+ const b = Number.isFinite(bits) ? bits : 256;
169
+ return m === "input" ? `Types.Int${b}Like` : `Types.Int${b}`;
170
+ }
171
+
172
+ // Fallback (unknown type)
173
+ return "any";
174
+ }
175
+
176
+ function _solParamToJsDoc(param, mode, tupleReg) {
177
+ const type = String(param && param.type ? param.type : "");
178
+ const m = mode === "output" ? "output" : "input";
179
+
180
+ const arr = _parseArray(type);
181
+ if (arr) {
182
+ const innerParam = { ...(param || {}), type: arr.inner };
183
+ const inner = _solParamToJsDoc(innerParam, mode, tupleReg);
184
+ return `Array<${inner}>`;
185
+ }
186
+
187
+ if (type === "tuple") {
188
+ const key = _tupleKey(param);
189
+ const baseName = tupleReg && tupleReg.byKey ? tupleReg.byKey.get(key) : null;
190
+ const n = baseName || "Tuple";
191
+ return `${n}${m === "input" ? "Input" : "Output"}`;
192
+ }
193
+
194
+ if (type === "address") {
195
+ return m === "input" ? `import("quantumcoin/types").AddressLike` : `import("quantumcoin/types").SolAddress`;
196
+ }
197
+ if (type === "bool") return "boolean";
198
+ if (type === "string") return "string";
199
+ if (type === "bytes") {
200
+ return m === "input" ? `import("quantumcoin/types").BytesLike` : `import("quantumcoin/types").HexString`;
201
+ }
202
+
203
+ const mBytesN = type.match(/^bytes(\d+)$/);
204
+ if (mBytesN) {
205
+ const n = Number(mBytesN[1]);
206
+ if (n === 32) {
207
+ return m === "input" ? `import("quantumcoin/types").Bytes32Like` : `import("quantumcoin/types").Bytes32`;
208
+ }
209
+ if (Number.isFinite(n) && n >= 1 && n <= 32) {
210
+ return m === "input"
211
+ ? `import("quantumcoin/types").Bytes${n}Like`
212
+ : `import("quantumcoin/types").Bytes${n}`;
213
+ }
214
+ }
215
+
216
+ const mUint = type === "uint" ? ["uint", "256"] : type.match(/^uint(\d+)$/);
217
+ if (mUint) {
218
+ const bits = type === "uint" ? 256 : Number(mUint[1]);
219
+ const b = Number.isFinite(bits) ? bits : 256;
220
+ return m === "input"
221
+ ? `import("quantumcoin/types").Uint${b}Like`
222
+ : `import("quantumcoin/types").Uint${b}`;
223
+ }
224
+
225
+ const mInt = type === "int" ? ["int", "256"] : type.match(/^int(\d+)$/);
226
+ if (mInt) {
227
+ const bits = type === "int" ? 256 : Number(mInt[1]);
228
+ const b = Number.isFinite(bits) ? bits : 256;
229
+ return m === "input"
230
+ ? `import("quantumcoin/types").Int${b}Like`
231
+ : `import("quantumcoin/types").Int${b}`;
232
+ }
233
+
234
+ return "any";
235
+ }
236
+
237
+ function _renderTupleTypeDefs(contractName, abi, tupleReg) {
238
+ const lines = [];
239
+ void contractName;
240
+
241
+ function _findTupleParamByKey(key) {
242
+ /** @param {any} p */
243
+ function walkParam(p) {
244
+ if (!p || typeof p !== "object") return null;
245
+ const t = String(p.type || "");
246
+ if (!t) return null;
247
+ const arr = _parseArray(t);
248
+ if (arr) return walkParam({ ...(p || {}), type: arr.inner });
249
+ if (t === "tuple") {
250
+ if (_tupleKey(p) === key) return p;
251
+ const comps = Array.isArray(p.components) ? p.components : [];
252
+ for (const c of comps) {
253
+ const found = walkParam(c);
254
+ if (found) return found;
255
+ }
256
+ }
257
+ return null;
258
+ }
259
+
260
+ for (const f of abi || []) {
261
+ if (!f || typeof f !== "object") continue;
262
+ const inputs = Array.isArray(f.inputs) ? f.inputs : [];
263
+ const outputs = Array.isArray(f.outputs) ? f.outputs : [];
264
+ for (const p of inputs) {
265
+ const found = walkParam(p);
266
+ if (found) return found;
267
+ }
268
+ for (const p of outputs) {
269
+ const found = walkParam(p);
270
+ if (found) return found;
271
+ }
272
+ }
273
+ return null;
274
+ }
275
+
276
+ /** @param {any} param */
277
+ function tupleFields(param, mode) {
278
+ const comps = Array.isArray(param && param.components) ? param.components : [];
279
+ const fields = [];
280
+ for (let i = 0; i < comps.length; i++) {
281
+ const c = comps[i];
282
+ const field = _safeIdent((c && c.name) || `field${i}`);
283
+ fields.push(` ${field}: ${_solParamToTs(c, mode, tupleReg)};`);
284
+ }
285
+ return fields;
286
+ }
287
+
288
+ // Render each known tuple once (as Input + Output).
289
+ for (const [key, baseName] of tupleReg.byKey.entries()) {
290
+ const param = _findTupleParamByKey(key);
291
+ if (!param) continue;
292
+
293
+ lines.push(`export type ${baseName}Input = {`);
294
+ lines.push(...tupleFields(param, "input"));
295
+ lines.push(`};`);
296
+ lines.push(``);
297
+ lines.push(`export type ${baseName}Output = {`);
298
+ lines.push(...tupleFields(param, "output"));
299
+ lines.push(`};`);
300
+ lines.push(``);
301
+ }
302
+
303
+ return lines.length ? lines.join("\n") + "\n" : "";
304
+ }
305
+
306
+ function _renderTupleJsDocTypeDefs(contractName, abi, tupleReg) {
307
+ void contractName;
308
+ if (!tupleReg || !tupleReg.byKey || tupleReg.byKey.size === 0) return "";
309
+
310
+ const lines = [];
311
+
312
+ /** @param {string} key */
313
+ function findTupleParamByKey(key) {
314
+ /** @param {any} p */
315
+ function walkParam(p) {
316
+ if (!p || typeof p !== "object") return null;
317
+ const t = String(p.type || "");
318
+ if (!t) return null;
319
+ const arr = _parseArray(t);
320
+ if (arr) return walkParam({ ...(p || {}), type: arr.inner });
321
+ if (t === "tuple") {
322
+ if (_tupleKey(p) === key) return p;
323
+ const comps = Array.isArray(p.components) ? p.components : [];
324
+ for (const c of comps) {
325
+ const found = walkParam(c);
326
+ if (found) return found;
327
+ }
328
+ }
329
+ return null;
330
+ }
331
+
332
+ for (const f of abi || []) {
333
+ if (!f || typeof f !== "object") continue;
334
+ const inputs = Array.isArray(f.inputs) ? f.inputs : [];
335
+ const outputs = Array.isArray(f.outputs) ? f.outputs : [];
336
+ for (const p of inputs) {
337
+ const found = walkParam(p);
338
+ if (found) return found;
339
+ }
340
+ for (const p of outputs) {
341
+ const found = walkParam(p);
342
+ if (found) return found;
343
+ }
344
+ }
345
+ return null;
346
+ }
347
+
348
+ function renderTypedef(typeName, tupleParam, mode) {
349
+ const comps = Array.isArray(tupleParam && tupleParam.components) ? tupleParam.components : [];
350
+ lines.push("/**");
351
+ lines.push(` * @typedef {Object} ${typeName}`);
352
+ for (let i = 0; i < comps.length; i++) {
353
+ const c = comps[i];
354
+ const field = _safeIdent((c && c.name) || `field${i}`);
355
+ lines.push(` * @property {${_solParamToJsDoc(c, mode, tupleReg)}} ${field}`);
356
+ }
357
+ lines.push(" */");
358
+ lines.push("");
359
+ }
360
+
361
+ for (const [key, baseName] of tupleReg.byKey.entries()) {
362
+ const param = findTupleParamByKey(key);
363
+ if (!param) continue;
364
+ renderTypedef(`${baseName}Input`, param, "input");
365
+ renderTypedef(`${baseName}Output`, param, "output");
366
+ }
367
+
368
+ return lines.join("\n");
369
+ }
370
+
371
+ function _cap(s) {
372
+ return s ? s[0].toUpperCase() + s.slice(1) : s;
373
+ }
374
+
375
+ function _safeIdent(name) {
376
+ return (name || "arg").replace(/[^a-zA-Z0-9_]/g, "_");
377
+ }
378
+
379
+ function _findConstructor(abi) {
380
+ const ctor = abi.find((f) => f && f.type === "constructor");
381
+ return ctor || { type: "constructor", inputs: [] };
382
+ }
383
+
384
+ function _solTypeToTestValueExpr(param) {
385
+ const type = typeof param === "string" ? param : String(param && param.type ? param.type : "");
386
+ const internalType = typeof param === "object" && param ? String(param.internalType || "") : "";
387
+
388
+ // Arrays (dynamic or fixed)
389
+ if (type.endsWith("]")) {
390
+ const inner = type.slice(0, type.lastIndexOf("["));
391
+ const bracket = type.slice(type.lastIndexOf("[") + 1, type.length - 1);
392
+ const isFixed = bracket.length > 0;
393
+ const fixedLen = isFixed ? Number(bracket) : 0;
394
+ const elemParam = { ...(param || {}), type: inner };
395
+
396
+ const elemExpr = _solTypeToTestValueExpr(elemParam);
397
+ if (isFixed && Number.isFinite(fixedLen) && fixedLen > 0) {
398
+ // Fixed arrays MUST match the exact declared length.
399
+ // Use Array(len).fill(expr) to keep source size reasonable.
400
+ return `Array(${fixedLen}).fill(${elemExpr})`;
401
+ }
402
+ return `[${elemExpr}]`;
403
+ }
404
+
405
+ if (type === "address") return "wallet.address";
406
+ if (type === "bool") return "true";
407
+ if (type === "string") return JSON.stringify("hello");
408
+ if (type === "bytes") return JSON.stringify("0x1234");
409
+
410
+ // Fixed-size bytes
411
+ const mBytesN = type.match(/^bytes(\d+)$/);
412
+ if (mBytesN) {
413
+ const n = Number(mBytesN[1]);
414
+ if (Number.isFinite(n) && n >= 1 && n <= 32) return JSON.stringify(`0x${"11".repeat(n)}`);
415
+ }
416
+
417
+ // NOTE: quantum-coin-js-sdk WASM interop does not accept BigInt values directly.
418
+ // Use plain numbers/strings for ints/uints.
419
+ // Enums are ABI-encoded as uints but Solidity will revert if the value is out of range.
420
+ if (type.startsWith("uint") && /\benum\b/.test(internalType)) return "1";
421
+ if (type.startsWith("uint")) return "123";
422
+ if (type.startsWith("int")) return "-123";
423
+
424
+ // Tuple / struct
425
+ if (type === "tuple") {
426
+ const comps = Array.isArray(param && param.components) ? param.components : [];
427
+ if (comps.length === 0) return "{}";
428
+ const fields = comps.map((c, idx) => {
429
+ const name = c && typeof c.name === "string" && c.name ? c.name : `field${idx}`;
430
+ return `${JSON.stringify(name)}: ${_solTypeToTestValueExpr(c)}`;
431
+ });
432
+ return `{ ${fields.join(", ")} }`;
433
+ }
434
+
435
+ // Fallback
436
+ return "undefined";
437
+ }
438
+
439
+ function _isSupportedType(type) {
440
+ if (type.endsWith("]")) return _isSupportedType(type.slice(0, type.lastIndexOf("[")));
441
+ return (
442
+ type === "address" ||
443
+ type === "bool" ||
444
+ type === "string" ||
445
+ type === "bytes" ||
446
+ type === "bytes32" ||
447
+ type.startsWith("uint") ||
448
+ type.startsWith("int")
449
+ );
450
+ }
451
+
452
+ function _allSupportedParams(inputs) {
453
+ return (inputs || []).every((i) => i && typeof i.type === "string" && _isSupportedType(i.type));
454
+ }
455
+
456
+ function _typesTs() {
457
+ return (
458
+ `// Auto-generated by quantumcoin-sdk-generator\n\n` +
459
+ `// Re-export ALL Solidity-related types from quantumcoin.\n` +
460
+ `export type * from "quantumcoin/types";\n`
461
+ );
462
+ }
463
+
464
+ function _typesJs() {
465
+ return `// Auto-generated by quantumcoin-sdk-generator\n\n` + `module.exports = {};\n`;
466
+ }
467
+
468
+ function _typesDts() {
469
+ return (
470
+ `// Auto-generated by quantumcoin-sdk-generator\n\n` +
471
+ `export type * from "quantumcoin/types";\n`
472
+ );
473
+ }
474
+
475
+ function _renderContractTs({ contractName, abi, bytecode, docs }) {
476
+ const functions = (abi || []).filter((f) => f && f.type === "function");
477
+ const tupleReg = _collectTupleRegistry(contractName, abi);
478
+
479
+ const contractTsLines = [];
480
+ contractTsLines.push(`// Auto-generated by quantumcoin-sdk-generator`);
481
+ contractTsLines.push(`import { Contract, ContractTransactionResponse, ContractRunner, TransactionResponse } from "quantumcoin";`);
482
+ contractTsLines.push(`import type * as Types from "./types";`);
483
+ contractTsLines.push(``);
484
+ contractTsLines.push(_renderTupleTypeDefs(contractName, abi, tupleReg).trimEnd());
485
+ contractTsLines.push(``);
486
+ contractTsLines.push(`/**`);
487
+ contractTsLines.push(` * ${contractName} - A typed contract interface for ${contractName}`);
488
+ if (docs && typeof docs.contract === "string" && docs.contract.trim()) {
489
+ contractTsLines.push(` *`);
490
+ for (const line of docs.contract.split(/\r?\n/g)) {
491
+ const t = line.trim();
492
+ if (!t) continue;
493
+ contractTsLines.push(` * ${t}`);
494
+ }
495
+ }
496
+ contractTsLines.push(` */`);
497
+ contractTsLines.push(`export class ${contractName} extends Contract {`);
498
+ contractTsLines.push(` static readonly abi = ${JSON.stringify(abi, null, 2)} as const;`);
499
+ contractTsLines.push(` static readonly bytecode = ${JSON.stringify(bytecode)};`);
500
+ contractTsLines.push(``);
501
+ contractTsLines.push(` static connect(address: string, runner?: ContractRunner): ${contractName} {`);
502
+ contractTsLines.push(` return new ${contractName}(address, runner);`);
503
+ contractTsLines.push(` }`);
504
+ contractTsLines.push(``);
505
+ contractTsLines.push(` constructor(address: string, runner?: ContractRunner, _deployTx?: TransactionResponse) {`);
506
+ contractTsLines.push(` super(address, ${contractName}.abi as any, runner as any, ${contractName}.bytecode);`);
507
+ contractTsLines.push(` // @ts-expect-error internal attach`);
508
+ contractTsLines.push(` this._deployTx = _deployTx;`);
509
+ contractTsLines.push(` }`);
510
+
511
+ for (const fn of functions) {
512
+ const name = fn.name;
513
+ const inputs = fn.inputs || [];
514
+ const outputs = fn.outputs || [];
515
+ const argsSig = inputs
516
+ .map((p, i) => `${_safeIdent(p.name || `arg${i}`)}: ${_solParamToTs(p, "input", tupleReg)}`)
517
+ .join(", ");
518
+ const argsNames = inputs.map((p, i) => _safeIdent(p.name || `arg${i}`)).join(", ");
519
+
520
+ const mut = fn.stateMutability || "";
521
+ const isView = mut === "view" || mut === "pure";
522
+
523
+ let returnTs;
524
+ if (isView) {
525
+ if (outputs.length === 0) returnTs = "Promise<void>";
526
+ else if (outputs.length === 1) returnTs = `Promise<${_solParamToTs(outputs[0], "output", tupleReg)}>`;
527
+ else returnTs = `Promise<[${outputs.map((o) => _solParamToTs(o, "output", tupleReg)).join(", ")}]>`;
528
+ } else {
529
+ returnTs = "Promise<ContractTransactionResponse>";
530
+ }
531
+
532
+ contractTsLines.push(``);
533
+ contractTsLines.push(` /**`);
534
+ contractTsLines.push(` * ${name}`);
535
+ const fnDoc = docs && docs.functions && typeof docs.functions[name] === "string" ? docs.functions[name] : "";
536
+ if (fnDoc && fnDoc.trim()) {
537
+ contractTsLines.push(` *`);
538
+ for (const line of fnDoc.split(/\r?\n/g)) {
539
+ const t = line.trim();
540
+ if (!t) continue;
541
+ contractTsLines.push(` * ${t}`);
542
+ }
543
+ }
544
+ contractTsLines.push(` */`);
545
+ if (isView) {
546
+ contractTsLines.push(` async ${name}(${argsSig}): ${returnTs} {`);
547
+ contractTsLines.push(` const res = await this.call(${JSON.stringify(name)}, [${argsNames}]);`);
548
+ if (outputs.length === 0) {
549
+ contractTsLines.push(` void res;`);
550
+ contractTsLines.push(` return;`);
551
+ } else if (outputs.length === 1) {
552
+ contractTsLines.push(` return (Array.isArray(res) ? res[0] : res) as unknown as ${_solParamToTs(outputs[0], "output", tupleReg)};`);
553
+ } else {
554
+ contractTsLines.push(
555
+ ` return res as unknown as [${outputs.map((o) => _solParamToTs(o, "output", tupleReg)).join(", ")}];`,
556
+ );
557
+ }
558
+ contractTsLines.push(` }`);
559
+ } else {
560
+ contractTsLines.push(` async ${name}(${argsSig}${argsSig ? ", " : ""}overrides?: any): ${returnTs} {`);
561
+ contractTsLines.push(` return this.send(${JSON.stringify(name)}, [${argsNames}], overrides);`);
562
+ contractTsLines.push(` }`);
563
+ }
564
+ }
565
+
566
+ contractTsLines.push(`}`);
567
+ return contractTsLines.join("\n") + "\n";
568
+ }
569
+
570
+ function _renderContractJs({ contractName, abi, bytecode, docs }) {
571
+ const functions = (abi || []).filter((f) => f && f.type === "function");
572
+ const tupleReg = _collectTupleRegistry(contractName, abi);
573
+
574
+ const lines = [];
575
+ lines.push(`// Auto-generated by quantumcoin-sdk-generator`);
576
+ lines.push(`const { Contract } = require("quantumcoin");`);
577
+ lines.push("");
578
+
579
+ const tupleDoc = _renderTupleJsDocTypeDefs(contractName, abi, tupleReg).trimEnd();
580
+ if (tupleDoc) {
581
+ lines.push(tupleDoc);
582
+ lines.push("");
583
+ }
584
+
585
+ lines.push("/**");
586
+ lines.push(` * ${contractName} - A typed contract interface for ${contractName}`);
587
+ if (docs && typeof docs.contract === "string" && docs.contract.trim()) {
588
+ lines.push(" *");
589
+ for (const line of docs.contract.split(/\r?\n/g)) {
590
+ const t = line.trim();
591
+ if (!t) continue;
592
+ lines.push(` * ${t}`);
593
+ }
594
+ }
595
+ lines.push(" */");
596
+ lines.push(`class ${contractName} extends Contract {`);
597
+ lines.push(` static abi = ${JSON.stringify(abi, null, 2)};`);
598
+ lines.push(` static bytecode = ${JSON.stringify(bytecode)};`);
599
+ lines.push("");
600
+ lines.push(` static connect(address, runner) {`);
601
+ lines.push(` return new ${contractName}(address, runner);`);
602
+ lines.push(` }`);
603
+ lines.push("");
604
+ lines.push(` constructor(address, runner, _deployTx) {`);
605
+ lines.push(` super(address, ${contractName}.abi, runner, ${contractName}.bytecode);`);
606
+ lines.push(` this._deployTx = _deployTx;`);
607
+ lines.push(` }`);
608
+
609
+ for (const fn of functions) {
610
+ const name = fn.name;
611
+ const inputs = fn.inputs || [];
612
+ const outputs = fn.outputs || [];
613
+ const argsNames = inputs.map((p, i) => _safeIdent(p.name || `arg${i}`)).join(", ");
614
+
615
+ const mut = fn.stateMutability || "";
616
+ const isView = mut === "view" || mut === "pure";
617
+
618
+ lines.push("");
619
+ lines.push(" /**");
620
+ lines.push(` * ${name}`);
621
+ const fnDoc = docs && docs.functions && typeof docs.functions[name] === "string" ? docs.functions[name] : "";
622
+ if (fnDoc && fnDoc.trim()) {
623
+ lines.push(" *");
624
+ for (const line of fnDoc.split(/\r?\n/g)) {
625
+ const t = line.trim();
626
+ if (!t) continue;
627
+ lines.push(` * ${t}`);
628
+ }
629
+ }
630
+ for (const p of inputs) {
631
+ const pName = _safeIdent(p.name || "arg");
632
+ lines.push(` * @param {${_solParamToJsDoc(p, "input", tupleReg)}} ${pName}`);
633
+ }
634
+ if (isView) {
635
+ if (outputs.length === 0) {
636
+ lines.push(` * @returns {Promise<void>}`);
637
+ } else if (outputs.length === 1) {
638
+ lines.push(` * @returns {Promise<${_solParamToJsDoc(outputs[0], "output", tupleReg)}>} `);
639
+ } else {
640
+ lines.push(
641
+ ` * @returns {Promise<[${outputs.map((o) => _solParamToJsDoc(o, "output", tupleReg)).join(", ")}]>}`,
642
+ );
643
+ }
644
+ } else {
645
+ lines.push(` * @returns {Promise<import("quantumcoin").ContractTransactionResponse>}`);
646
+ }
647
+ lines.push(" */");
648
+
649
+ if (isView) {
650
+ lines.push(` async ${name}(${argsNames}) {`);
651
+ lines.push(` const res = await this.call(${JSON.stringify(name)}, [${argsNames}]);`);
652
+ if (outputs.length === 0) {
653
+ lines.push(` return;`);
654
+ } else if (outputs.length === 1) {
655
+ lines.push(` return Array.isArray(res) ? res[0] : res;`);
656
+ } else {
657
+ lines.push(` return res;`);
658
+ }
659
+ lines.push(` }`);
660
+ } else {
661
+ lines.push(` async ${name}(${argsNames}${argsNames ? ", " : ""}overrides) {`);
662
+ lines.push(` return this.send(${JSON.stringify(name)}, [${argsNames}], overrides);`);
663
+ lines.push(` }`);
664
+ }
665
+ }
666
+
667
+ lines.push(`}`);
668
+ lines.push("");
669
+ lines.push(`module.exports = { ${contractName} };`);
670
+ lines.push("");
671
+ return lines.join("\n");
672
+ }
673
+
674
+ function _renderContractDts({ contractName, abi }) {
675
+ const functions = (abi || []).filter((f) => f && f.type === "function");
676
+ const tupleReg = _collectTupleRegistry(contractName, abi);
677
+ const lines = [];
678
+ lines.push(`// Auto-generated by quantumcoin-sdk-generator`);
679
+ lines.push(`import { Contract, ContractRunner, ContractTransactionResponse, TransactionResponse } from "quantumcoin";`);
680
+ lines.push(`import type * as Types from "./types";`);
681
+ lines.push("");
682
+ const tupleDefs = _renderTupleTypeDefs(contractName, abi, tupleReg).trimEnd();
683
+ if (tupleDefs) {
684
+ lines.push(tupleDefs);
685
+ lines.push("");
686
+ }
687
+ lines.push(`export declare class ${contractName} extends Contract {`);
688
+ lines.push(` static readonly abi: readonly any[];`);
689
+ lines.push(` static readonly bytecode: string;`);
690
+ lines.push(` static connect(address: string, runner?: ContractRunner): ${contractName};`);
691
+ lines.push(` constructor(address: string, runner?: ContractRunner, _deployTx?: TransactionResponse);`);
692
+
693
+ for (const fn of functions) {
694
+ const name = fn.name;
695
+ const inputs = fn.inputs || [];
696
+ const outputs = fn.outputs || [];
697
+
698
+ const argsSig = inputs.map((p, i) => `${_safeIdent(p.name || `arg${i}`)}: ${_solParamToTs(p, "input", tupleReg)}`).join(", ");
699
+
700
+ const mut = fn.stateMutability || "";
701
+ const isView = mut === "view" || mut === "pure";
702
+
703
+ let returnTs;
704
+ if (isView) {
705
+ if (outputs.length === 0) returnTs = "Promise<void>";
706
+ else if (outputs.length === 1) returnTs = `Promise<${_solParamToTs(outputs[0], "output", tupleReg)}>`;
707
+ else returnTs = `Promise<[${outputs.map((o) => _solParamToTs(o, "output", tupleReg)).join(", ")}]>`;
708
+ } else {
709
+ returnTs = "Promise<ContractTransactionResponse>";
710
+ }
711
+
712
+ if (isView) {
713
+ lines.push(` ${name}(${argsSig}): ${returnTs};`);
714
+ } else {
715
+ lines.push(` ${name}(${argsSig}${argsSig ? ", " : ""}overrides?: any): ${returnTs};`);
716
+ }
717
+ }
718
+
719
+ lines.push(`}`);
720
+ return lines.join("\n") + "\n";
721
+ }
722
+
723
+ function _renderFactoryTs({ contractName, abi }) {
724
+ const factoryName = `${contractName}__factory`;
725
+ const ctor = _findConstructor(abi);
726
+ const ctorInputs = (ctor && ctor.inputs) || [];
727
+ const tupleReg = _collectTupleRegistry(contractName, abi);
728
+
729
+ const factoryTsLines = [];
730
+ factoryTsLines.push(`// Auto-generated by quantumcoin-sdk-generator`);
731
+ factoryTsLines.push(`import { ContractFactory, ContractRunner, getCreateAddress } from "quantumcoin";`);
732
+ factoryTsLines.push(`import { ${contractName} } from "./${contractName}";`);
733
+ factoryTsLines.push(`import type * as Types from "./types";`);
734
+
735
+ // Import tuple input types used by the constructor (if any)
736
+ const ctorTupleTypes = new Set();
737
+ const visit = (p) => {
738
+ const t = String(p && p.type ? p.type : "");
739
+ const arr = _parseArray(t);
740
+ if (arr) return visit({ ...(p || {}), type: arr.inner });
741
+ if (t === "tuple") {
742
+ const key = _tupleKey(p);
743
+ const base = tupleReg.byKey.get(key);
744
+ if (base) ctorTupleTypes.add(`${base}Input`);
745
+ const comps = Array.isArray(p && p.components) ? p.components : [];
746
+ for (const c of comps) visit(c);
747
+ }
748
+ };
749
+ for (const p of ctorInputs) visit(p);
750
+ if (ctorTupleTypes.size) {
751
+ factoryTsLines.push(`import type { ${Array.from(ctorTupleTypes).sort().join(", ")} } from "./${contractName}";`);
752
+ }
753
+ factoryTsLines.push(``);
754
+ factoryTsLines.push(`export class ${factoryName} extends ContractFactory {`);
755
+ factoryTsLines.push(` constructor(runner: ContractRunner) {`);
756
+ factoryTsLines.push(` super(${contractName}.abi as any, ${contractName}.bytecode as any, runner as any);`);
757
+ factoryTsLines.push(` }`);
758
+ factoryTsLines.push(``);
759
+
760
+ // Typed deploy method (uses constructor args + optional overrides)
761
+ const deployArgsSig = ctorInputs
762
+ .map((p, i) => `${_safeIdent(p.name || `arg${i}`)}: ${_solParamToTs(p, "input", tupleReg)}`)
763
+ .join(", ");
764
+ const deployArgsNames = ctorInputs.map((p, i) => _safeIdent(p.name || `arg${i}`)).join(", ");
765
+
766
+ factoryTsLines.push(` async deploy(${deployArgsSig}${deployArgsSig ? ", " : ""}overrides?: any): Promise<${contractName}> {`);
767
+ factoryTsLines.push(` const signer: any = (this as any).signer;`);
768
+ factoryTsLines.push(` if (!signer) { throw new Error("missing signer"); }`);
769
+ factoryTsLines.push(` const from: string = signer.getAddress ? await signer.getAddress() : signer.address;`);
770
+ factoryTsLines.push(` const provider: any = signer.provider;`);
771
+ factoryTsLines.push(` if (!provider || !provider.getTransactionCount) { throw new Error("missing provider"); }`);
772
+ factoryTsLines.push(` let nonce: number;`);
773
+ factoryTsLines.push(` try { nonce = await provider.getTransactionCount(from, "pending"); } catch { nonce = await provider.getTransactionCount(from, "latest"); }`);
774
+ factoryTsLines.push(` const address = getCreateAddress({ from, nonce });`);
775
+ factoryTsLines.push(` const txReq: any = this.getDeployTransaction(${deployArgsNames});`);
776
+ factoryTsLines.push(` const tx = await signer.sendTransaction({ ...txReq, ...(overrides || {}), nonce });`);
777
+ factoryTsLines.push(` return new ${contractName}(address, signer as any, tx as any);`);
778
+ factoryTsLines.push(` }`);
779
+ factoryTsLines.push(``);
780
+
781
+ factoryTsLines.push(` static connect(address: string, runner?: ContractRunner): ${contractName} {`);
782
+ factoryTsLines.push(` return ${contractName}.connect(address, runner);`);
783
+ factoryTsLines.push(` }`);
784
+ factoryTsLines.push(`}`);
785
+
786
+ return factoryTsLines.join("\n") + "\n";
787
+ }
788
+
789
+ function _renderFactoryJs({ contractName, abi }) {
790
+ const factoryName = `${contractName}__factory`;
791
+ const ctor = _findConstructor(abi);
792
+ const ctorInputs = (ctor && ctor.inputs) || [];
793
+ const deployArgsNames = ctorInputs.map((p, i) => _safeIdent(p.name || `arg${i}`)).join(", ");
794
+
795
+ const lines = [];
796
+ lines.push(`// Auto-generated by quantumcoin-sdk-generator`);
797
+ lines.push(`const { ContractFactory, getCreateAddress } = require("quantumcoin");`);
798
+ lines.push(`const { ${contractName} } = require("./${contractName}");`);
799
+ lines.push("");
800
+ lines.push(`class ${factoryName} extends ContractFactory {`);
801
+ lines.push(` constructor(runner) {`);
802
+ lines.push(` super(${contractName}.abi, ${contractName}.bytecode, runner);`);
803
+ lines.push(` }`);
804
+ lines.push("");
805
+ lines.push(` async deploy(${deployArgsNames}${deployArgsNames ? ", " : ""}overrides) {`);
806
+ lines.push(` const signer = this.signer;`);
807
+ lines.push(` if (!signer) { throw new Error("missing signer"); }`);
808
+ lines.push(` const from = signer.getAddress ? await signer.getAddress() : signer.address;`);
809
+ lines.push(` const provider = signer.provider;`);
810
+ lines.push(` if (!provider || !provider.getTransactionCount) { throw new Error("missing provider"); }`);
811
+ lines.push(` let nonce;`);
812
+ lines.push(` try { nonce = await provider.getTransactionCount(from, "pending"); } catch { nonce = await provider.getTransactionCount(from, "latest"); }`);
813
+ lines.push(` const address = getCreateAddress({ from, nonce });`);
814
+ lines.push(` const txReq = this.getDeployTransaction(${deployArgsNames});`);
815
+ lines.push(` const tx = await signer.sendTransaction({ ...txReq, ...(overrides || {}), nonce });`);
816
+ lines.push(` return new ${contractName}(address, signer, tx);`);
817
+ lines.push(` }`);
818
+ lines.push("");
819
+ lines.push(` static connect(address, runner) {`);
820
+ lines.push(` return ${contractName}.connect(address, runner);`);
821
+ lines.push(` }`);
822
+ lines.push(`}`);
823
+ lines.push("");
824
+ lines.push(`module.exports = { ${factoryName} };`);
825
+ lines.push("");
826
+ return lines.join("\n");
827
+ }
828
+
829
+ function _renderFactoryDts({ contractName, abi }) {
830
+ const factoryName = `${contractName}__factory`;
831
+ const ctor = _findConstructor(abi);
832
+ const ctorInputs = (ctor && ctor.inputs) || [];
833
+ const tupleReg = _collectTupleRegistry(contractName, abi);
834
+ const deployArgsSig = ctorInputs.map((p, i) => `${_safeIdent(p.name || `arg${i}`)}: ${_solParamToTs(p, "input", tupleReg)}`).join(", ");
835
+
836
+ const lines = [];
837
+ lines.push(`// Auto-generated by quantumcoin-sdk-generator`);
838
+ lines.push(`import { ContractFactory, ContractRunner } from "quantumcoin";`);
839
+ lines.push(`import { ${contractName} } from "./${contractName}";`);
840
+ lines.push(`import type * as Types from "./types";`);
841
+
842
+ const ctorTupleTypes = new Set();
843
+ const visit = (p) => {
844
+ const t = String(p && p.type ? p.type : "");
845
+ const arr = _parseArray(t);
846
+ if (arr) return visit({ ...(p || {}), type: arr.inner });
847
+ if (t === "tuple") {
848
+ const key = _tupleKey(p);
849
+ const base = tupleReg.byKey.get(key);
850
+ if (base) ctorTupleTypes.add(`${base}Input`);
851
+ const comps = Array.isArray(p && p.components) ? p.components : [];
852
+ for (const c of comps) visit(c);
853
+ }
854
+ };
855
+ for (const p of ctorInputs) visit(p);
856
+ if (ctorTupleTypes.size) {
857
+ lines.push(`import type { ${Array.from(ctorTupleTypes).sort().join(", ")} } from "./${contractName}";`);
858
+ }
859
+ lines.push("");
860
+ lines.push(`export declare class ${factoryName} extends ContractFactory {`);
861
+ lines.push(` constructor(runner: ContractRunner);`);
862
+ lines.push(` deploy(${deployArgsSig}${deployArgsSig ? ", " : ""}overrides?: any): Promise<${contractName}>;`);
863
+ lines.push(` static connect(address: string, runner?: ContractRunner): ${contractName};`);
864
+ lines.push(`}`);
865
+ return lines.join("\n") + "\n";
866
+ }
867
+
868
+ function _renderIndexTs(contractNames) {
869
+ const lines = [];
870
+ lines.push(`// Auto-generated by quantumcoin-sdk-generator`);
871
+ lines.push(`export * from "./types";`);
872
+ for (const name of contractNames) {
873
+ lines.push(`export * from "./${name}";`);
874
+ lines.push(`export * from "./${name}__factory";`);
875
+ }
876
+ return lines.join("\n") + "\n";
877
+ }
878
+
879
+ function _renderIndexJs(contractNames) {
880
+ const lines = [];
881
+ lines.push(`// Auto-generated by quantumcoin-sdk-generator`);
882
+ lines.push("");
883
+ lines.push(`Object.assign(exports, require("./types"));`);
884
+ for (const name of contractNames) {
885
+ lines.push(`exports.${name} = require("./${name}").${name};`);
886
+ lines.push(`exports.${name}__factory = require("./${name}__factory").${name}__factory;`);
887
+ }
888
+ lines.push("");
889
+ return lines.join("\n");
890
+ }
891
+
892
+ function _renderIndexDts(contractNames) {
893
+ const lines = [];
894
+ lines.push(`// Auto-generated by quantumcoin-sdk-generator`);
895
+ lines.push(`export * from "./types";`);
896
+ for (const name of contractNames) {
897
+ lines.push(`export * from "./${name}";`);
898
+ lines.push(`export * from "./${name}__factory";`);
899
+ }
900
+ return lines.join("\n") + "\n";
901
+ }
902
+
903
+ /**
904
+ * Generate a transactional e2e test file (JavaScript) for the typed contract package.
905
+ * The test deploys the contract with constructor args (if any) and invokes one write method.
906
+ *
907
+ * @param {{ contractName: string, abi: any[] }} opts
908
+ * @returns {string}
909
+ */
910
+ function generateTransactionalTestJs(opts) {
911
+ const { contractName, abi } = opts;
912
+ const factoryName = `${contractName}__factory`;
913
+ const ctor = _findConstructor(abi);
914
+ const ctorInputs = ctor.inputs || [];
915
+
916
+ const ctorArgsExpr = ctorInputs.map((i) => _solTypeToTestValueExpr(i)).join(", ");
917
+
918
+ // ---------------------------------------------------------------------------
919
+ // ERC-20 style assertions (optional)
920
+ // ---------------------------------------------------------------------------
921
+ const fnByName = (name) => (abi || []).find((f) => f && f.type === "function" && f.name === name);
922
+ const nameFn = fnByName("name");
923
+ const supplyFn = fnByName("totalSupply") || fnByName("supply");
924
+ const balanceOfFn = fnByName("balanceOf");
925
+
926
+ const isViewNoArgs = (f) =>
927
+ !!(
928
+ f &&
929
+ f.type === "function" &&
930
+ (f.stateMutability === "view" || f.stateMutability === "pure") &&
931
+ (f.inputs || []).length === 0
932
+ );
933
+ const isViewBalanceOf = (f) =>
934
+ !!(
935
+ f &&
936
+ f.type === "function" &&
937
+ (f.stateMutability === "view" || f.stateMutability === "pure") &&
938
+ (f.inputs || []).length === 1 &&
939
+ (f.inputs[0].type || "") === "address"
940
+ );
941
+ const isStringOut = (f) => !!(f && (f.outputs || []).length === 1 && (f.outputs[0].type || "") === "string");
942
+ const isUintOut = (f) => !!(f && (f.outputs || []).length === 1 && String(f.outputs[0].type || "").startsWith("uint"));
943
+
944
+ const hasErc20Surface =
945
+ isViewNoArgs(nameFn) && isStringOut(nameFn) && isViewNoArgs(supplyFn) && isUintOut(supplyFn) && isViewBalanceOf(balanceOfFn) && isUintOut(balanceOfFn);
946
+
947
+ // Common ERC-20 constructor: (string name, string symbol, uint256 initialSupply)
948
+ const isErc20Ctor =
949
+ ctorInputs.length === 3 &&
950
+ (ctorInputs[0].type || "") === "string" &&
951
+ (ctorInputs[1].type || "") === "string" &&
952
+ String(ctorInputs[2].type || "").startsWith("uint");
953
+
954
+ const erc20TokenName = "TestToken";
955
+ const erc20TokenSymbol = "TT";
956
+ const erc20InitialSupply = 1000;
957
+ const deployArgsExpr = hasErc20Surface && isErc20Ctor ? `${JSON.stringify(erc20TokenName)}, ${JSON.stringify(erc20TokenSymbol)}, ${erc20InitialSupply}` : ctorArgsExpr;
958
+ const supplyMethodName = supplyFn && typeof supplyFn.name === "string" ? supplyFn.name : "totalSupply";
959
+ const erc20Assertions =
960
+ hasErc20Surface && isErc20Ctor
961
+ ? `// ERC-20 assertions (name / supply / balanceOf)
962
+ const nm = await contract.name();
963
+ assert.equal(nm, ${JSON.stringify(erc20TokenName)});
964
+
965
+ // Generated wrappers already unwrap single-return values to a hard type (bigint for uints).
966
+ const supply = await contract.${supplyMethodName}();
967
+ assert.equal(supply, ${erc20InitialSupply}n);
968
+
969
+ // Generated wrappers already unwrap single-return values to a hard type (bigint for uints).
970
+ const bal = await contract.balanceOf(wallet.address);
971
+ assert.equal(bal, ${erc20InitialSupply}n);
972
+ `
973
+ : "";
974
+
975
+ // Pick first view function with no inputs for state reads (optional).
976
+ const viewNoArg = (abi || []).find(
977
+ (f) => f && f.type === "function" && (f.stateMutability === "view" || f.stateMutability === "pure") && (f.inputs || []).length === 0,
978
+ );
979
+
980
+ // Pick first state-changing function with supported params (prefer 1-arg numeric setter patterns).
981
+ const writeFn =
982
+ (abi || []).find((f) => {
983
+ if (!f || f.type !== "function") return false;
984
+ if (f.stateMutability === "view" || f.stateMutability === "pure") return false;
985
+ if (!_allSupportedParams(f.inputs)) return false;
986
+ return f.name === "set" && (f.inputs || []).length === 1 && (f.inputs[0].type || "").startsWith("uint");
987
+ }) ||
988
+ (abi || []).find(
989
+ (f) => f && f.type === "function" && !(f.stateMutability === "view" || f.stateMutability === "pure") && _allSupportedParams(f.inputs),
990
+ );
991
+
992
+ const writeName = writeFn ? writeFn.name : null;
993
+ const writeArgsExpr =
994
+ writeFn && (writeFn.inputs || []).length === 1 && (writeFn.inputs[0].type || "").startsWith("uint")
995
+ ? "456"
996
+ : writeFn
997
+ ? (writeFn.inputs || []).map((i) => _solTypeToTestValueExpr(i)).join(", ")
998
+ : "";
999
+
1000
+ const canAssertValueChange =
1001
+ !!(
1002
+ viewNoArg &&
1003
+ (viewNoArg.outputs || []).length === 1 &&
1004
+ typeof viewNoArg.outputs[0].type === "string" &&
1005
+ (viewNoArg.outputs[0].type.startsWith("uint") || viewNoArg.outputs[0].type.startsWith("int")) &&
1006
+ writeFn &&
1007
+ (writeFn.inputs || []).length === 1 &&
1008
+ typeof writeFn.inputs[0].type === "string" &&
1009
+ (writeFn.inputs[0].type.startsWith("uint") || writeFn.inputs[0].type.startsWith("int"))
1010
+ );
1011
+
1012
+ return `/**
1013
+ * @testCategory e2e
1014
+ * @blockchainRequired write
1015
+ * @description Auto-generated transactional tests for ${contractName}
1016
+ *
1017
+ * WARNING:
1018
+ * - This test uses a HARDCODED TEST WALLET (encrypted JSON + passphrase).
1019
+ * - It assumes the wallet has funds on the target network.
1020
+ * - It will broadcast real transactions and change chain state.
1021
+ */
1022
+
1023
+ const { describe, it } = require("node:test");
1024
+ const assert = require("node:assert/strict");
1025
+
1026
+ const { Initialize } = require("quantumcoin/config");
1027
+ const { JsonRpcProvider, Wallet } = require("quantumcoin");
1028
+
1029
+ // NOTE: this test file lives at test/e2e/*.js, so package root is two levels up.
1030
+ // Require the package root so it works for both TS (dist) and JS (src) packages.
1031
+ const { ${contractName}, ${factoryName} } = require("../..");
1032
+
1033
+ // Hardcoded test wallet (test-only; never use for real funds)
1034
+ const TEST_WALLET_ENCRYPTED_JSON =
1035
+ ${JSON.stringify(
1036
+ "{\"address\":\"1a846abe71c8b989e8337c55d608be81c28ab3b2e40c83eaa2a68d516049aec6\",\"crypto\":{\"cipher\":\"aes-256-ctr\",\"ciphertext\":\"ab7e620dd66cb55ac201b9c6796de92bbb06f3681b5932eabe099871f1f7d79acabe30921a39ad13bfe74f42c515734882b6723760142aa3e26e011df514a534ae47bd15d86badd9c6f17c48d4c892711d54d441ee3a0ee0e5b060f816e79c7badd13ff4c235934b1986774223ecf6e8761388969bb239c759b54c8c70e6a2e27c93a4b70129c8159f461d271ae8f3573414c78b88e4d0abfa6365ed45456636d4ed971c7a0c6b84e6f0c2621e819268b135e2bcc169a54d1847b39e6ba2ae8ec969b69f330b7db9e785ed02204d5a1185915ae5338b0f40ef2a7f4d5aaf7563d502135e57f4eb89d5ec1efa5c77e374969d6cd85be625a2ed1225d68ecdd84067bfc69adb83ecd5c6050472eca28a5a646fcdd28077165c629975bec8a79fe1457cb53389b788b25e1f8eff8b2ca326d7dfcaba3f8839225a08057c018a458891fd2caa0d2b27632cffd80f592147ccec9a10dc8a08a48fb55047bff5cf85cda39eb089096bef63842fc3686412f298a54a9e4b0bf4ad36907ba373cbd6d32e7ac494af371da5aa9d38a3463220865114c4adc5e4ac258ba9c6af9fa2ddfd1aec2e16887e4b3977c69561df8599ac9d411c9dd2a4d57f92ea4e5c02aae3f49fb3bc83e16673e6c2dbe96bb181c8dfd0f9757ade2e4ff27215a836058c5ffeab042f6f97c7c02339f76a6284680e01b4bb733690eb3347fbfcc26614b8bf755f9dfce3fea9d4e4d15b164983201732c2e87593a86bca6da6972e128490338f76ae68135888070f4e59e90db54d23834769bdbda9769213faf5357f9167a224523975a946367b68f0cec98658575609f58bfd329e420a921c06713326e4cb20a0df1d77f37e78a320a637a96c604ca3fa89e24beb42313751b8f09b14f9c14c77e4fd13fc6382505d27c771bca0d821ec7c3765acffa99d83c50140a56b0b28101c762bd682fe55cb6f23cbeb3f421d7b36021010e45ac27160dd7ead99c864a1b550c7edb1246950fe32dcc049799f9085287f0a747a6ef7a023df46a23a22f3e833bbf8d404f84344870492658256ee1dfc40fda33bb8d48fc72d4520ba9fc820c9123104a045206809037709f2a5f6723fa77d6bac5a573823d4ec3a7f1cb786a52ee2697e622e5d75962fa554d1024a6c355e21f33a63b2b72e6c4742a8b1c373aa532b40518c38c90b5373c2eb8c9d7be2a9e16047a3ee09dc9a6849deac5183ace6cfe91a9bef2ffc0a7df6ccebfd4c858c84b0e0355650d7466971e66f1e3883013e5ad1be33199b1d110b79070ac1b745ccb14cf63a08f8cca3a21c9525e626ff5f0c34746e10750fb742ad51f11f2acae3676c2111853d7250d01b77821a6ba9e04400ba2c543ca9f2d701ae6f47bfad14ffe3039ee9e71f7b2401359ade9938750ddb9c5a8b018a7929ed8d0e717ff1861446ce17535e9b17c187711190aae3388bd9490837a636c25ed4d42d7079ad1a51e13292c683d5d012abcf46965c534b83ab53f2c1f0cf5830ef7582e06863a33c19a70511df632885d63245965047ea96b56f1af5b3b94a54999f784fb9574fdfcd7c1230e07a2aaa04acd3097b2b9f8ddba05ae9734491deb5c1a513c76ed276cb78bbf4839dae3156d76af444a5805129d5df791167a9c8576a1d7f760b2d2797c4658669608706fbd0ace1be2346f74862dfc9ef518e55632e43c043186e5d070deb34d12fb9e5aba84e5cb50213dc88efd39cc35bf42455aa82d5e3b707b3140be3b8623b34fdd81d08615c188ae8438a13881fdf6bf32f2cb9ff5fa625561040c6b71d4b8eccc90bc3b99650d28dd1ee63773e49664e3d48c484996b290943635a6f2eb1ce9796d3fa144a3f00ef82faaa32d6a413668f7b521517cb68b2b017fcf56c79326fa5e4060e643631ca3f0a0dc0ed718798b6f46b130d437c33f64039e887324b6f5e604b1669d613923794edbf04b1b3caea54793b52b44b170173a4f25c7ecef3b71e2aad76e556b1cb9f1d637ec52ececfa950dd31dbb6a60828a3ad34c1beffe09eb4785786d63bad10a0b0f66ea88c57380f38ea85f018dbd7f538cf1ee7624095b9a01ec5edd528f281168af020609e651ff316aa1320a710134ddfca600cc72174dcdb846d2aa29916488aa1b537b66da92e61af526debef4eb38c984569eaf549ff2129449269b492d030cd74d885f6f5785881cc4804b4a8a09ba4ff7aefe9074ac7d0c4f05d51fe4cc0ff7388a772092b9d02d70e5433a5cf3e02f46a6bd6b818d59a07ce3b9fbbf8b5faba74563bcc5240930c2d406c9aaee3e3ce0429bf68ac2b0a57adb09414cff50817d2a48fb9fa624ab863cb0c31a8b8dc5eaf6fa68cc1d7c6c685c5a33edd5c8933b9e8ab628ee428d0743699b2ff17f25586c7ce959280bb0b8c5342251f0a30b53dbc7bf1ee426ac9619c3560f811f2268ee37f189794e2e4b3db3a2fb2e34b649e504fb467438abfd1082619cc4a0b30d66beb831077812e418d2e2148db10cf4d4a29101ca52ec445b8d83519dd7de85a98e0beae9ee537096d3f1a55a7a80cdfa93d25f07c9f98e8af18cde19ec1f99c5dd4588b717a5039ddb7f177717caf0d0fd45420a70dbd6d3146890d9e450d5224146db4c33b779e3c3a04b976c052bad042ac57dd38be45407808c0fb0d7e2a8819e6cd53c6739e6612996ddaa6f066552590aa0343bc1e62b298ff2514a0cef8be21956c2e942816f7a3a3a0935eaf9b37251409ce444c986c3817e82835555fe18239f3ae33469d7965c2bde9991fde556bd07af01df52bbde0c35bb4ef48e3b5d0db53f8ca4ed35b83f760f0a1bc4ed9f86e85d6039a17df373c85402ef956f01db00eb39c4b74bd0660d29ee746714d9780d738e05c6cca414ce3d7b40dda8036a9eea9ab1388805f913eb19bdd3f09d9e161eaa50231bd9caba61971f194332dd28c696a60458c1c6c2cc5da8b1192611c7c553e9e12fe48ce46bbb891be8bb118721c86222e671ddd1da8f0ccb2b68e02f2014b4925e904e88369aaf7466bd7033a60c265d45955944916ecbdb84bf1b522b01b0149c632e04c568a7eb627c5bb90ece052ebcf79166c28b30d23fe52da0a5ab5dea83ca479a3e3b7a9cfbbfea04dbe6137c19d067317c2ec427a8c75a6b06bec6dcd5d5c0edc9aa80b9003b8e17c088b2f3db327d3e42630d82d20120240c3ba56232280787da4aabbf5bc95a864029f00710e195f2a76460a0317d10b552fe1bea097e41d49756c680a41d6ac186e62169b6b6cd7776ea84618b5b752328a5bacaa10aa122ff9b2698b43efe73d852a899db644863c8c9bc8068ea86ea843fd6fe36272b91cdc5d5317083ef3fd1e5462a0b0d0604dc57b3bbfceb0fca4cd349625dd7b25166af30efe5ee6a0af953a74d65f4736c59918ee55a3b0d9d9d42e04c7f8a77e479109f740e20c464d5d7e3d16805f47b61f403ff7f408c9e850d9baacd8067e544536a4953480b0f9ee9cd45f41ebd67b51f78788a6470cb1e5ca72ca346ce8a50d0ca0c921d5576a4455a1afb6d0bc688004712ee122cacdb29c51e84893324c27fa4a3f1917edf5352272b4c97579a6152e4b77663d0ab532915f2eeb6a862de8b696452321b660c3f2449673d086e95a7af28845a5259b763e0fcd09f72acf7b6c811066263060e5aa5b24658e880a01fd56bda4dad5ab604e129290f7d5489728f2a40968c6168b21cebbbcd11727cc9e9160c4e92e04387d3b0d62aab06a61f26daedd9fed11816ef2180172a47f47184ac4032b88758c98a2e0fb200f70e93ba695f5ebb7a1029610ad360d3b7fa1b4640b9dc674d3625eef786da93dff19bc7991b5d6193a3896664763fde479b5dfc04812111a80782854f2cf68ca7d82765cc9eb40fba4b44640710ed6e653abf9f07b466333f4fd22784d53cf40e17120f42caa841eaa24056b237827b0f47f7257c103c35027e9f503e5acfd023e7357b600d3084d361d5ee65ba319b45c153212a54e6fed85af7e43e0a926ebcbc2edf8de7e2ec9528f00bec262ad04d5c9dafccaea06a24748d28bf1799bae0e895543084539c50b5aaa4fb50d7431d6f0c8cee2a54aaf7ee7919b55bf40adb688632e5dbe273cea09e97b19c3d8e1f4de000deb66fa1942ad03a62d3252f51992244366c156000b49c297167a6cbdedea7ebae139d295f0ad298e0864249b905b7eb812886ec70ecdb286702274b5b8574149bf3866f9e46b997ff5ed622b169a0eb071347f18d530db1663906a28f4544ee4e004ab87b65476af30ede118052ff052b8dc986ca2c93dd5d4943266a579c7698ea014f688b3e8063a107feb162d392e2177b01bff77fb5abe5feebd0607158049a5a093325b7c9ee6b4dfa7a9f65c7c2fb628920d3603a1c2dad979eaa047cd661a268af1078c9788d720e64e4ce9d12e68de1e417ef2f293323681e1071f9220e1ee43d2e29d111b870ce3439f5100ecd4551ab65ee74aa1667e564957e9bc0ae1ea193980da2a0ec2698073388c85bec25ef447f0d5e93a5203fa44dff268e5cb799ed3b66e63d5e07b487e7534f24934c73a62a243e0151843a0fd3807711a101eaa7fc71f0ba68aebb9534d57cba41b094eebfb4c31cca8eddfa426f676aa347be8a7023a4e91ddb154b35cd4d5f7dbc2e5db491de99f33fc2cff2d57029ac950e1ccd681980af6a4e8969dfe39b3c7bfcbcf8fac92f1e6ec9fe572bfa6a7d65860eab2ed10ac01a71290b52e3148e84b7376a8605cd2bb0e8681ffc54691ce087685e33921bd44d36c78291713dce17569570f62137e6904f0d68cf53aa2ec395c389a75141f08114fb293ea63950e4ffee55ec6fc83cf44876b8e7f25cdd393ff87b9eda6eb746085b61a6900de191f0ce2cb388d61ece52e78bc47368194e8e00277e0d1631e6b9d4626ef76f8522582ccd5a40be3febc699bb510acc6271d55ff0f4cf3bb7669855a72efd9ca3e1056a2fe592a5bc877cce2b1f63b58383971da87873d2d1349cf5881242cdce4e7e2c5c514755746a0e0a7c2a6d9701cde005ae3420beb17c379a3516662253554f51f0423bb1844b0b90c54ed8177ceb0e1036a6609d836e748ca06c40ca64befadc6443ec286a0ce464678e8d11eb455f7bb305acebf6cb1f50e394a9bfeb752df1687831bac9cdd811f4f112ef6658d0f8799a866374ff96c5e2b79f30e7a74f8a2bc9ed1f88f01f30e30cb78ffb2bff10108f35e910ee3be4463e9e6f0ed910e8d598326e71dfa2277ffe5579d7fe9b6018bfe295b25219eae07b3b0270665c3fa00c3e0d180812b5cd62925585de84a7c48a9a86dba96544a251654d1966e082432dc85b6149cf21e91a46020ec32b66d28ba3b6a90c0617bc6fdd55aea819af2bcf84864ad60c28fe3c9f8339d0aee68b39d97f63b6e082835d86119cf9b9fdc8b827c847ce40aa10e1577a710132316845e825345e95bdf94d0c66ec65a6c4319fce4792313663b5f7a651a6710783e6ab71608ac6cbbf3af6911adf596ccf7c172b9bd5bceb6db379967b32b143bdd11d2ee12ddf64ecef6391e0f8570e6cddd3db95204919362b89b739fa94e7c1bfde799fd5e22aa25ca6ca42e30c08e23aae2385d99ebab441072a880dcefdab74a4c9bd39d363f6d1933d59400fca161d432aa00f23b1b1c19a154be8989699d549b66d44e39896f5523443bc6ddf4a65e91f1f3fb7b52318869a05856a4fc92f3694c81ed833c972fb918f7e5\",\"cipherparams\":{\"iv\":\"8c46d6162cd4c765759aedcbce2a5874\"},\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"n\":262144,\"p\":1,\"r\":8,\"salt\":\"82fb6cdc6917609135277badacf15baa31899d08b71a5a0fa33167167c161537\"},\"mac\":\"9187b17f7eca48e6b8c586b0cd790dbe0feb876ac8385f93faa7d5e22a3c8fc7\"},\"id\":\"92caf6ee-2d43-48c0-859e-ffa1e0e23312\",\"version\":3}",
1037
+ )};
1038
+ const TEST_WALLET_PASSPHRASE = "QuantumCoinExample123!";
1039
+
1040
+ describe("${contractName} transactional", () => {
1041
+ it("deploys and invokes contract", async (t) => {
1042
+ const rpcUrl = process.env.QC_RPC_URL;
1043
+ if (!rpcUrl) {
1044
+ t.skip("QC_RPC_URL not provided");
1045
+ return;
1046
+ }
1047
+
1048
+ const chainId = process.env.QC_CHAIN_ID ? Number(process.env.QC_CHAIN_ID) : 123123;
1049
+ await Initialize(null);
1050
+
1051
+ const provider = new JsonRpcProvider(rpcUrl, chainId);
1052
+ const wallet = Wallet.fromEncryptedJsonSync(TEST_WALLET_ENCRYPTED_JSON, TEST_WALLET_PASSPHRASE, provider);
1053
+
1054
+ const factory = new ${factoryName}(wallet);
1055
+ // Build deploy transaction + estimate gas (best-effort).
1056
+ const deployTxReq = factory.getDeployTransaction(${deployArgsExpr});
1057
+ let deployGasLimit = 600000;
1058
+ try {
1059
+ const est = await provider.estimateGas({ from: wallet.address, data: deployTxReq.data });
1060
+ deployGasLimit = Number(est + 200_000n);
1061
+ } catch {
1062
+ // Keep fallback. Some RPCs do not support estimateGas for create.
1063
+ deployGasLimit = 6_000_000;
1064
+ }
1065
+ // Some large contracts underestimate gas; apply a sane floor based on bytecode size.
1066
+ const bytecodeSize = (${contractName}.bytecode || "").length;
1067
+ if (bytecodeSize > 20000 && deployGasLimit < 6_000_000) deployGasLimit = 6_000_000;
1068
+
1069
+ const contract = await factory.deploy(${deployArgsExpr}${deployArgsExpr ? ", " : ""}{ gasLimit: deployGasLimit });
1070
+
1071
+ const deployTx = contract.deployTransaction();
1072
+ assert.ok(deployTx && deployTx.hash);
1073
+ const deployReceipt = await deployTx.wait(1, 600_000);
1074
+ assert.ok(deployReceipt);
1075
+ assert.ok(deployReceipt.blockNumber != null);
1076
+
1077
+ const code = await provider.getCode(contract.target, "latest");
1078
+ assert.ok(code && code !== "0x");
1079
+
1080
+ ${erc20Assertions ? erc20Assertions : `// (no ERC-20 surface detected for extra assertions)`}
1081
+
1082
+ ${viewNoArg ? `// Basic view call
1083
+ const before = await contract.${viewNoArg.name}();
1084
+ void before;` : `// No zero-arg view method detected; deployment is still validated.`}
1085
+
1086
+ ${writeName ? `// Write call + wait
1087
+ const tx = await contract.${writeName}(${writeArgsExpr}${writeArgsExpr ? ", " : ""}{ gasLimit: 200000 });
1088
+ await tx.wait(1, 600_000);` : `// No supported write method detected for auto invocation.`}
1089
+
1090
+ ${canAssertValueChange ? `// Assert value change (best-effort; normalize to BigInt)
1091
+ const after = await contract.${viewNoArg.name}();
1092
+ assert.equal(after, 456n);` : `// No compatible getter+setter pair detected for value assertions.`}
1093
+ }, { timeout: 900_000 });
1094
+ });
1095
+ `;
1096
+ }
1097
+
1098
+ /**
1099
+ * @typedef {Object} GenerateOptions
1100
+ * @property {string} abiPath
1101
+ * @property {string} binPath
1102
+ * @property {string} outDir
1103
+ * @property {string} contractName
1104
+ * @property {string=} packageName
1105
+ * @property {boolean=} createPackage
1106
+ * @property {Record<string,string>=} dependencies
1107
+ */
1108
+
1109
+ /**
1110
+ * Generate multiple typed contract files.
1111
+ * @param {{ outDir: string, artifacts: Array<{ contractName: string, abi: any[], bytecode: string }> }} opts
1112
+ * @returns {{ contracts: Array<{ contractFile: string, factoryFile: string }>, typesFile: string, indexFile: string }}
1113
+ */
1114
+ function generateFromArtifacts(opts) {
1115
+ _ensureDir(opts.outDir);
1116
+ const lang = (opts && opts.lang) || "ts"; // "ts" | "js"
1117
+ if (lang !== "ts" && lang !== "js") {
1118
+ throw new Error(`Unsupported generator lang: ${lang}`);
1119
+ }
1120
+
1121
+ const contractNames = opts.artifacts.map((a) => a.contractName);
1122
+
1123
+ const typesFile = path.join(opts.outDir, lang === "ts" ? `types.ts` : `types.js`);
1124
+ const indexFile = path.join(opts.outDir, lang === "ts" ? `index.ts` : `index.js`);
1125
+
1126
+ fs.writeFileSync(typesFile, lang === "ts" ? _typesTs() : _typesJs(), "utf8");
1127
+
1128
+ // For JS generation, we also emit .d.ts files (TS declarations) so JS packages remain typed.
1129
+ const typesDtsFile = lang === "js" ? path.join(opts.outDir, `types.d.ts`) : null;
1130
+ const indexDtsFile = lang === "js" ? path.join(opts.outDir, `index.d.ts`) : null;
1131
+ if (lang === "js") {
1132
+ fs.writeFileSync(typesDtsFile, _typesDts(), "utf8");
1133
+ }
1134
+
1135
+ const contracts = [];
1136
+ for (const a of opts.artifacts) {
1137
+ const contractFile = path.join(opts.outDir, `${a.contractName}.${lang === "ts" ? "ts" : "js"}`);
1138
+ const factoryFile = path.join(opts.outDir, `${a.contractName}__factory.${lang === "ts" ? "ts" : "js"}`);
1139
+ const contractDtsFile = lang === "js" ? path.join(opts.outDir, `${a.contractName}.d.ts`) : null;
1140
+ const factoryDtsFile = lang === "js" ? path.join(opts.outDir, `${a.contractName}__factory.d.ts`) : null;
1141
+
1142
+ if (lang === "ts") {
1143
+ fs.writeFileSync(
1144
+ contractFile,
1145
+ _renderContractTs({ contractName: a.contractName, abi: a.abi, bytecode: a.bytecode, docs: a.docs || null }),
1146
+ "utf8",
1147
+ );
1148
+ fs.writeFileSync(factoryFile, _renderFactoryTs({ contractName: a.contractName, abi: a.abi }), "utf8");
1149
+ } else {
1150
+ fs.writeFileSync(
1151
+ contractFile,
1152
+ _renderContractJs({ contractName: a.contractName, abi: a.abi, bytecode: a.bytecode, docs: a.docs || null }),
1153
+ "utf8",
1154
+ );
1155
+ fs.writeFileSync(factoryFile, _renderFactoryJs({ contractName: a.contractName, abi: a.abi }), "utf8");
1156
+ }
1157
+
1158
+ if (lang === "js") {
1159
+ fs.writeFileSync(contractDtsFile, _renderContractDts({ contractName: a.contractName, abi: a.abi }), "utf8");
1160
+ fs.writeFileSync(factoryDtsFile, _renderFactoryDts({ contractName: a.contractName, abi: a.abi }), "utf8");
1161
+ }
1162
+ contracts.push({ contractFile, factoryFile });
1163
+ }
1164
+
1165
+ fs.writeFileSync(indexFile, lang === "ts" ? _renderIndexTs(contractNames) : _renderIndexJs(contractNames), "utf8");
1166
+ if (lang === "js") {
1167
+ fs.writeFileSync(indexDtsFile, _renderIndexDts(contractNames), "utf8");
1168
+ }
1169
+
1170
+ if (lang === "js") {
1171
+ return { contracts, typesFile, indexFile, typesDtsFile, indexDtsFile };
1172
+ }
1173
+ return { contracts, typesFile, indexFile };
1174
+ }
1175
+
1176
+ /**
1177
+ * Generate typed contract files.
1178
+ * @param {GenerateOptions} opts
1179
+ * @returns {{ contractFile: string, factoryFile: string, typesFile: string, indexFile: string }}
1180
+ */
1181
+ function generate(opts) {
1182
+ const abi = _readJson(opts.abiPath);
1183
+ const bytecodeRaw = fs.readFileSync(opts.binPath, "utf8").trim();
1184
+ const bytecode = bytecodeRaw.startsWith("0x") ? bytecodeRaw : "0x" + bytecodeRaw;
1185
+
1186
+ _ensureDir(opts.outDir);
1187
+ const contractName = opts.contractName;
1188
+
1189
+ const res = generateFromArtifacts({
1190
+ outDir: opts.outDir,
1191
+ artifacts: [{ contractName, abi, bytecode }],
1192
+ lang: opts.lang || "ts",
1193
+ });
1194
+
1195
+ const contractFile = res.contracts[0].contractFile;
1196
+ const factoryFile = res.contracts[0].factoryFile;
1197
+ return { contractFile, factoryFile, typesFile: res.typesFile, indexFile: res.indexFile };
1198
+ }
1199
+
1200
+ module.exports = { generate, generateFromArtifacts, generateTransactionalTestJs };
1201
+