@pezkuwi/api-contract 16.5.8 → 16.5.10

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 (386) hide show
  1. package/base/util.d.ts +1 -1
  2. package/bundle-pezkuwi-api-contract.js +1 -1
  3. package/cjs/base/util.d.ts +1 -1
  4. package/cjs/packageInfo.js +1 -1
  5. package/package.json +12 -10
  6. package/packageInfo.js +1 -1
  7. package/build/Abi/index.d.ts +0 -31
  8. package/build/Abi/index.js +0 -359
  9. package/build/Abi/toLatestCompatible.d.ts +0 -15
  10. package/build/Abi/toLatestCompatible.js +0 -30
  11. package/build/Abi/toV1.d.ts +0 -3
  12. package/build/Abi/toV1.js +0 -21
  13. package/build/Abi/toV2.d.ts +0 -3
  14. package/build/Abi/toV2.js +0 -27
  15. package/build/Abi/toV3.d.ts +0 -3
  16. package/build/Abi/toV3.js +0 -10
  17. package/build/Abi/toV4.d.ts +0 -3
  18. package/build/Abi/toV4.js +0 -10
  19. package/build/LICENSE +0 -201
  20. package/build/README.md +0 -3
  21. package/build/augment.d.ts +0 -1
  22. package/build/augment.js +0 -1
  23. package/build/base/Base.d.ts +0 -13
  24. package/build/base/Base.js +0 -40
  25. package/build/base/Blueprint.d.ts +0 -24
  26. package/build/base/Blueprint.js +0 -51
  27. package/build/base/Code.d.ts +0 -22
  28. package/build/base/Code.js +0 -74
  29. package/build/base/Contract.d.ts +0 -25
  30. package/build/base/Contract.js +0 -127
  31. package/build/base/index.d.ts +0 -3
  32. package/build/base/index.js +0 -3
  33. package/build/base/mock.d.ts +0 -3
  34. package/build/base/mock.js +0 -38
  35. package/build/base/types.d.ts +0 -25
  36. package/build/base/types.js +0 -1
  37. package/build/base/util.d.ts +0 -16
  38. package/build/base/util.js +0 -33
  39. package/build/bundle-pezkuwi-api-contract.js +0 -1238
  40. package/build/bundle.d.ts +0 -4
  41. package/build/bundle.js +0 -4
  42. package/build/cjs/Abi/index.d.ts +0 -31
  43. package/build/cjs/Abi/index.js +0 -363
  44. package/build/cjs/Abi/toLatestCompatible.d.ts +0 -15
  45. package/build/cjs/Abi/toLatestCompatible.js +0 -36
  46. package/build/cjs/Abi/toV1.d.ts +0 -3
  47. package/build/cjs/Abi/toV1.js +0 -24
  48. package/build/cjs/Abi/toV2.d.ts +0 -3
  49. package/build/cjs/Abi/toV2.js +0 -30
  50. package/build/cjs/Abi/toV3.d.ts +0 -3
  51. package/build/cjs/Abi/toV3.js +0 -13
  52. package/build/cjs/Abi/toV4.d.ts +0 -3
  53. package/build/cjs/Abi/toV4.js +0 -13
  54. package/build/cjs/augment.d.ts +0 -1
  55. package/build/cjs/augment.js +0 -3
  56. package/build/cjs/base/Base.d.ts +0 -13
  57. package/build/cjs/base/Base.js +0 -44
  58. package/build/cjs/base/Blueprint.d.ts +0 -24
  59. package/build/cjs/base/Blueprint.js +0 -57
  60. package/build/cjs/base/Code.d.ts +0 -22
  61. package/build/cjs/base/Code.js +0 -80
  62. package/build/cjs/base/Contract.d.ts +0 -25
  63. package/build/cjs/base/Contract.js +0 -133
  64. package/build/cjs/base/index.d.ts +0 -3
  65. package/build/cjs/base/index.js +0 -14
  66. package/build/cjs/base/mock.d.ts +0 -3
  67. package/build/cjs/base/mock.js +0 -41
  68. package/build/cjs/base/types.d.ts +0 -25
  69. package/build/cjs/base/types.js +0 -2
  70. package/build/cjs/base/util.d.ts +0 -16
  71. package/build/cjs/base/util.js +0 -42
  72. package/build/cjs/bundle.d.ts +0 -4
  73. package/build/cjs/bundle.js +0 -10
  74. package/build/cjs/index.d.ts +0 -2
  75. package/build/cjs/index.js +0 -5
  76. package/build/cjs/package.json +0 -3
  77. package/build/cjs/packageDetect.d.ts +0 -1
  78. package/build/cjs/packageDetect.js +0 -7
  79. package/build/cjs/packageInfo.d.ts +0 -6
  80. package/build/cjs/packageInfo.js +0 -4
  81. package/build/cjs/promise/index.d.ts +0 -13
  82. package/build/cjs/promise/index.js +0 -23
  83. package/build/cjs/promise/types.d.ts +0 -3
  84. package/build/cjs/promise/types.js +0 -2
  85. package/build/cjs/rx/index.d.ts +0 -13
  86. package/build/cjs/rx/index.js +0 -23
  87. package/build/cjs/rx/types.d.ts +0 -3
  88. package/build/cjs/rx/types.js +0 -2
  89. package/build/cjs/types.d.ts +0 -79
  90. package/build/cjs/types.js +0 -2
  91. package/build/cjs/util.d.ts +0 -5
  92. package/build/cjs/util.js +0 -13
  93. package/build/index.d.ts +0 -2
  94. package/build/index.js +0 -2
  95. package/build/package.json +0 -408
  96. package/build/packageDetect.d.ts +0 -1
  97. package/build/packageDetect.js +0 -5
  98. package/build/packageInfo.d.ts +0 -6
  99. package/build/packageInfo.js +0 -1
  100. package/build/promise/index.d.ts +0 -13
  101. package/build/promise/index.js +0 -17
  102. package/build/promise/types.d.ts +0 -3
  103. package/build/promise/types.js +0 -1
  104. package/build/rx/index.d.ts +0 -13
  105. package/build/rx/index.js +0 -17
  106. package/build/rx/types.d.ts +0 -3
  107. package/build/rx/types.js +0 -1
  108. package/build/types.d.ts +0 -79
  109. package/build/types.js +0 -1
  110. package/build/util.d.ts +0 -5
  111. package/build/util.js +0 -10
  112. package/build-deno/Abi/index.ts +0 -475
  113. package/build-deno/Abi/toLatestCompatible.ts +0 -47
  114. package/build-deno/Abi/toV1.ts +0 -33
  115. package/build-deno/Abi/toV2.ts +0 -56
  116. package/build-deno/Abi/toV3.ts +0 -16
  117. package/build-deno/Abi/toV4.ts +0 -19
  118. package/build-deno/README.md +0 -3
  119. package/build-deno/augment.ts +0 -2
  120. package/build-deno/base/Base.ts +0 -50
  121. package/build-deno/base/Blueprint.ts +0 -88
  122. package/build-deno/base/Code.ts +0 -140
  123. package/build-deno/base/Contract.ts +0 -194
  124. package/build-deno/base/index.ts +0 -4
  125. package/build-deno/base/mock.ts +0 -46
  126. package/build-deno/base/types.ts +0 -38
  127. package/build-deno/base/util.ts +0 -54
  128. package/build-deno/bundle.ts +0 -6
  129. package/build-deno/checkTypes.manual.ts +0 -42
  130. package/build-deno/index.ts +0 -4
  131. package/build-deno/mod.ts +0 -2
  132. package/build-deno/packageDetect.ts +0 -9
  133. package/build-deno/packageInfo.ts +0 -3
  134. package/build-deno/promise/index.ts +0 -28
  135. package/build-deno/promise/types.ts +0 -5
  136. package/build-deno/rx/index.ts +0 -28
  137. package/build-deno/rx/types.ts +0 -5
  138. package/build-deno/test/contracts/index.ts +0 -18
  139. package/build-deno/test/contracts/ink/index.ts +0 -11
  140. package/build-deno/test/contracts/ink/v0/accumulator.wasm +0 -0
  141. package/build-deno/test/contracts/ink/v0/adder.wasm +0 -0
  142. package/build-deno/test/contracts/ink/v0/delegator.wasm +0 -0
  143. package/build-deno/test/contracts/ink/v0/dns.wasm +0 -0
  144. package/build-deno/test/contracts/ink/v0/erc20.wasm +0 -0
  145. package/build-deno/test/contracts/ink/v0/erc721.wasm +0 -0
  146. package/build-deno/test/contracts/ink/v0/flipper.wasm +0 -0
  147. package/build-deno/test/contracts/ink/v0/incrementer.wasm +0 -0
  148. package/build-deno/test/contracts/ink/v0/index.ts +0 -9
  149. package/build-deno/test/contracts/ink/v0/multisig_plain.wasm +0 -0
  150. package/build-deno/test/contracts/ink/v0/subber.wasm +0 -0
  151. package/build-deno/test/contracts/ink/v0/trait-flipper.wasm +0 -0
  152. package/build-deno/test/contracts/ink/v1/index.ts +0 -3
  153. package/build-deno/test/contracts/ink/v2/index.ts +0 -3
  154. package/build-deno/test/contracts/ink/v3/index.ts +0 -3
  155. package/build-deno/test/contracts/ink/v4/erc20.wasm +0 -0
  156. package/build-deno/test/contracts/ink/v4/flipper.wasm +0 -0
  157. package/build-deno/test/contracts/ink/v4/index.ts +0 -5
  158. package/build-deno/test/contracts/ink/v5/erc20.wasm +0 -0
  159. package/build-deno/test/contracts/ink/v5/flipper.wasm +0 -0
  160. package/build-deno/test/contracts/ink/v5/index.ts +0 -6
  161. package/build-deno/test/contracts/ink/v6/erc20.polkavm +0 -0
  162. package/build-deno/test/contracts/ink/v6/index.ts +0 -3
  163. package/build-deno/test/contracts/solang/index.ts +0 -5
  164. package/build-deno/test/contracts/solang/v0/index.ts +0 -2
  165. package/build-deno/test/contracts/solang/v0/ints256.sol +0 -13
  166. package/build-deno/test/contracts/solang/v0/ints256.wasm +0 -0
  167. package/build-deno/test/contracts/user/index.ts +0 -7
  168. package/build-deno/test/contracts/user/v0/assetTransfer.wasm +0 -0
  169. package/build-deno/test/contracts/user/v0/enumExample.wasm +0 -0
  170. package/build-deno/test/contracts/user/v0/index.ts +0 -5
  171. package/build-deno/test/contracts/user/v3/index.ts +0 -2
  172. package/build-deno/test/contracts/user/v4/index.ts +0 -2
  173. package/build-deno/test/contracts/util.ts +0 -12
  174. package/build-deno/types.ts +0 -95
  175. package/build-deno/util.ts +0 -18
  176. package/build-tsc/Abi/index.d.ts +0 -31
  177. package/build-tsc/Abi/toLatestCompatible.d.ts +0 -15
  178. package/build-tsc/Abi/toV1.d.ts +0 -3
  179. package/build-tsc/Abi/toV2.d.ts +0 -3
  180. package/build-tsc/Abi/toV3.d.ts +0 -3
  181. package/build-tsc/Abi/toV4.d.ts +0 -3
  182. package/build-tsc/augment.d.ts +0 -1
  183. package/build-tsc/base/Base.d.ts +0 -13
  184. package/build-tsc/base/Blueprint.d.ts +0 -24
  185. package/build-tsc/base/Code.d.ts +0 -22
  186. package/build-tsc/base/Contract.d.ts +0 -25
  187. package/build-tsc/base/index.d.ts +0 -3
  188. package/build-tsc/base/mock.d.ts +0 -3
  189. package/build-tsc/base/types.d.ts +0 -25
  190. package/build-tsc/base/util.d.ts +0 -16
  191. package/build-tsc/bundle.d.ts +0 -4
  192. package/build-tsc/index.d.ts +0 -2
  193. package/build-tsc/packageDetect.d.ts +0 -1
  194. package/build-tsc/packageInfo.d.ts +0 -6
  195. package/build-tsc/promise/index.d.ts +0 -13
  196. package/build-tsc/promise/types.d.ts +0 -3
  197. package/build-tsc/rx/index.d.ts +0 -13
  198. package/build-tsc/rx/types.d.ts +0 -3
  199. package/build-tsc/types.d.ts +0 -79
  200. package/build-tsc/util.d.ts +0 -5
  201. package/build-tsc-cjs/Abi/index.js +0 -363
  202. package/build-tsc-cjs/Abi/toLatestCompatible.js +0 -36
  203. package/build-tsc-cjs/Abi/toV1.js +0 -24
  204. package/build-tsc-cjs/Abi/toV2.js +0 -30
  205. package/build-tsc-cjs/Abi/toV3.js +0 -13
  206. package/build-tsc-cjs/Abi/toV4.js +0 -13
  207. package/build-tsc-cjs/augment.js +0 -3
  208. package/build-tsc-cjs/base/Base.js +0 -44
  209. package/build-tsc-cjs/base/Blueprint.js +0 -57
  210. package/build-tsc-cjs/base/Code.js +0 -80
  211. package/build-tsc-cjs/base/Contract.js +0 -133
  212. package/build-tsc-cjs/base/index.js +0 -14
  213. package/build-tsc-cjs/base/mock.js +0 -41
  214. package/build-tsc-cjs/base/types.js +0 -2
  215. package/build-tsc-cjs/base/util.js +0 -42
  216. package/build-tsc-cjs/bundle.js +0 -10
  217. package/build-tsc-cjs/index.js +0 -5
  218. package/build-tsc-cjs/packageDetect.js +0 -7
  219. package/build-tsc-cjs/packageInfo.js +0 -4
  220. package/build-tsc-cjs/promise/index.js +0 -23
  221. package/build-tsc-cjs/promise/types.js +0 -2
  222. package/build-tsc-cjs/rx/index.js +0 -23
  223. package/build-tsc-cjs/rx/types.js +0 -2
  224. package/build-tsc-cjs/types.js +0 -2
  225. package/build-tsc-cjs/util.js +0 -13
  226. package/build-tsc-esm/Abi/index.js +0 -359
  227. package/build-tsc-esm/Abi/toLatestCompatible.js +0 -30
  228. package/build-tsc-esm/Abi/toV1.js +0 -21
  229. package/build-tsc-esm/Abi/toV2.js +0 -27
  230. package/build-tsc-esm/Abi/toV3.js +0 -10
  231. package/build-tsc-esm/Abi/toV4.js +0 -10
  232. package/build-tsc-esm/augment.js +0 -1
  233. package/build-tsc-esm/base/Base.js +0 -40
  234. package/build-tsc-esm/base/Blueprint.js +0 -51
  235. package/build-tsc-esm/base/Code.js +0 -74
  236. package/build-tsc-esm/base/Contract.js +0 -127
  237. package/build-tsc-esm/base/index.js +0 -3
  238. package/build-tsc-esm/base/mock.js +0 -38
  239. package/build-tsc-esm/base/types.js +0 -1
  240. package/build-tsc-esm/base/util.js +0 -33
  241. package/build-tsc-esm/bundle.js +0 -4
  242. package/build-tsc-esm/index.js +0 -2
  243. package/build-tsc-esm/packageDetect.js +0 -5
  244. package/build-tsc-esm/packageInfo.js +0 -1
  245. package/build-tsc-esm/promise/index.js +0 -17
  246. package/build-tsc-esm/promise/types.js +0 -1
  247. package/build-tsc-esm/rx/index.js +0 -17
  248. package/build-tsc-esm/rx/types.js +0 -1
  249. package/build-tsc-esm/types.js +0 -1
  250. package/build-tsc-esm/util.js +0 -10
  251. package/src/Abi/Abi.spec.ts +0 -235
  252. package/src/Abi/index.ts +0 -477
  253. package/src/Abi/toLatestCompatible.spec.ts +0 -219
  254. package/src/Abi/toLatestCompatible.ts +0 -52
  255. package/src/Abi/toV1.ts +0 -35
  256. package/src/Abi/toV2.ts +0 -58
  257. package/src/Abi/toV3.ts +0 -18
  258. package/src/Abi/toV4.ts +0 -21
  259. package/src/augment.ts +0 -4
  260. package/src/base/Base.ts +0 -52
  261. package/src/base/Blueprint.ts +0 -90
  262. package/src/base/Code.spec.ts +0 -47
  263. package/src/base/Code.ts +0 -142
  264. package/src/base/Contract.ts +0 -197
  265. package/src/base/index.ts +0 -6
  266. package/src/base/mock.ts +0 -48
  267. package/src/base/types.ts +0 -40
  268. package/src/base/util.ts +0 -56
  269. package/src/bundle.ts +0 -10
  270. package/src/checkTypes.manual.ts +0 -45
  271. package/src/index.ts +0 -6
  272. package/src/mod.ts +0 -4
  273. package/src/packageDetect.ts +0 -13
  274. package/src/packageInfo.ts +0 -6
  275. package/src/promise/index.ts +0 -28
  276. package/src/promise/types.ts +0 -7
  277. package/src/rx/index.ts +0 -28
  278. package/src/rx/types.ts +0 -7
  279. package/src/test/compare/ink_v0_delegator.test.json +0 -47
  280. package/src/test/compare/ink_v0_dns.test.json +0 -232
  281. package/src/test/compare/ink_v0_erc20.test.json +0 -253
  282. package/src/test/compare/ink_v0_erc721.test.json +0 -415
  283. package/src/test/compare/ink_v0_flipper.test.json +0 -9
  284. package/src/test/compare/ink_v0_flipperBundle.test.json +0 -9
  285. package/src/test/compare/ink_v0_incrementer.test.json +0 -9
  286. package/src/test/compare/ink_v0_multisigPlain.test.json +0 -562
  287. package/src/test/compare/ink_v1_flipper.test.json +0 -9
  288. package/src/test/compare/ink_v1_psp22.test.json +0 -531
  289. package/src/test/compare/ink_v2_erc20.test.json +0 -205
  290. package/src/test/compare/ink_v2_flipper.test.json +0 -9
  291. package/src/test/compare/ink_v3_flipper.test.json +0 -9
  292. package/src/test/compare/ink_v3_traitErc20.test.json +0 -205
  293. package/src/test/compare/ink_v4_erc20Contract.test.json +0 -253
  294. package/src/test/compare/ink_v4_erc20Metadata.test.json +0 -253
  295. package/src/test/compare/ink_v4_flipperContract.test.json +0 -155
  296. package/src/test/compare/ink_v4_flipperMetadata.test.json +0 -155
  297. package/src/test/compare/ink_v5_erc20.test.json +0 -370
  298. package/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json +0 -370
  299. package/src/test/compare/ink_v5_erc20Contract.test.json +0 -370
  300. package/src/test/compare/ink_v5_erc20Metadata.test.json +0 -370
  301. package/src/test/compare/ink_v5_flipperContract.test.json +0 -174
  302. package/src/test/compare/ink_v5_flipperMetadata.test.json +0 -174
  303. package/src/test/compare/ink_v6_erc20Contract.test.json +0 -418
  304. package/src/test/compare/ink_v6_erc20Metadata.test.json +0 -418
  305. package/src/test/compare/solang_v0_ints256.test.json +0 -9
  306. package/src/test/compare/user_v0_assetTransfer.test.json +0 -54
  307. package/src/test/compare/user_v0_enumExample.test.json +0 -303
  308. package/src/test/compare/user_v0_recursive.test.json +0 -27
  309. package/src/test/compare/user_v0_withString.test.json +0 -260
  310. package/src/test/compare/user_v3_ask.test.json +0 -71
  311. package/src/test/compare/user_v4_events.test.json +0 -1328
  312. package/src/test/contracts/index.ts +0 -20
  313. package/src/test/contracts/ink/index.ts +0 -13
  314. package/src/test/contracts/ink/v0/accumulator.wasm +0 -0
  315. package/src/test/contracts/ink/v0/adder.wasm +0 -0
  316. package/src/test/contracts/ink/v0/delegator.json +0 -252
  317. package/src/test/contracts/ink/v0/delegator.wasm +0 -0
  318. package/src/test/contracts/ink/v0/dns.json +0 -713
  319. package/src/test/contracts/ink/v0/dns.wasm +0 -0
  320. package/src/test/contracts/ink/v0/erc20.json +0 -704
  321. package/src/test/contracts/ink/v0/erc20.wasm +0 -0
  322. package/src/test/contracts/ink/v0/erc721.json +0 -1197
  323. package/src/test/contracts/ink/v0/erc721.wasm +0 -0
  324. package/src/test/contracts/ink/v0/flipper.contract.json +0 -107
  325. package/src/test/contracts/ink/v0/flipper.json +0 -106
  326. package/src/test/contracts/ink/v0/flipper.wasm +0 -0
  327. package/src/test/contracts/ink/v0/incrementer.json +0 -108
  328. package/src/test/contracts/ink/v0/incrementer.wasm +0 -0
  329. package/src/test/contracts/ink/v0/index.ts +0 -11
  330. package/src/test/contracts/ink/v0/multisig_plain.json +0 -1466
  331. package/src/test/contracts/ink/v0/multisig_plain.wasm +0 -0
  332. package/src/test/contracts/ink/v0/subber.wasm +0 -0
  333. package/src/test/contracts/ink/v0/trait-flipper.json +0 -103
  334. package/src/test/contracts/ink/v0/trait-flipper.wasm +0 -0
  335. package/src/test/contracts/ink/v1/flipper.contract.json +0 -111
  336. package/src/test/contracts/ink/v1/index.ts +0 -6
  337. package/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json +0 -1722
  338. package/src/test/contracts/ink/v2/erc20.contract.json +0 -630
  339. package/src/test/contracts/ink/v2/flipper.contract.json +0 -103
  340. package/src/test/contracts/ink/v2/index.ts +0 -5
  341. package/src/test/contracts/ink/v3/flipper.contract.json +0 -105
  342. package/src/test/contracts/ink/v3/index.ts +0 -6
  343. package/src/test/contracts/ink/v3/trait_erc20.contract.json +0 -631
  344. package/src/test/contracts/ink/v4/erc20.contract.json +0 -1
  345. package/src/test/contracts/ink/v4/erc20.json +0 -821
  346. package/src/test/contracts/ink/v4/erc20.wasm +0 -0
  347. package/src/test/contracts/ink/v4/flipper.contract.json +0 -1
  348. package/src/test/contracts/ink/v4/flipper.json +0 -396
  349. package/src/test/contracts/ink/v4/flipper.wasm +0 -0
  350. package/src/test/contracts/ink/v4/index.ts +0 -7
  351. package/src/test/contracts/ink/v5/erc20.contract.json +0 -1
  352. package/src/test/contracts/ink/v5/erc20.json +0 -1025
  353. package/src/test/contracts/ink/v5/erc20.wasm +0 -0
  354. package/src/test/contracts/ink/v5/erc20_anonymous_transfer.json +0 -1025
  355. package/src/test/contracts/ink/v5/flipper.contract.json +0 -1
  356. package/src/test/contracts/ink/v5/flipper.json +0 -420
  357. package/src/test/contracts/ink/v5/flipper.wasm +0 -0
  358. package/src/test/contracts/ink/v5/index.ts +0 -8
  359. package/src/test/contracts/ink/v6/erc20.contract.json +0 -1
  360. package/src/test/contracts/ink/v6/erc20.json +0 -1081
  361. package/src/test/contracts/ink/v6/erc20.polkavm +0 -0
  362. package/src/test/contracts/ink/v6/index.ts +0 -5
  363. package/src/test/contracts/solang/index.ts +0 -7
  364. package/src/test/contracts/solang/v0/index.ts +0 -4
  365. package/src/test/contracts/solang/v0/ints256.json +0 -113
  366. package/src/test/contracts/solang/v0/ints256.sol +0 -13
  367. package/src/test/contracts/solang/v0/ints256.wasm +0 -0
  368. package/src/test/contracts/user/index.ts +0 -9
  369. package/src/test/contracts/user/v0/assetTransfer.json +0 -299
  370. package/src/test/contracts/user/v0/assetTransfer.wasm +0 -0
  371. package/src/test/contracts/user/v0/enumExample.json +0 -528
  372. package/src/test/contracts/user/v0/enumExample.wasm +0 -0
  373. package/src/test/contracts/user/v0/index.ts +0 -7
  374. package/src/test/contracts/user/v0/recursive.contract.json +0 -1
  375. package/src/test/contracts/user/v0/withString.json +0 -777
  376. package/src/test/contracts/user/v3/ask.json +0 -550
  377. package/src/test/contracts/user/v3/index.ts +0 -4
  378. package/src/test/contracts/user/v4/events.contract.json +0 -2990
  379. package/src/test/contracts/user/v4/index.ts +0 -4
  380. package/src/test/contracts/util.ts +0 -14
  381. package/src/types.ts +0 -98
  382. package/src/util.ts +0 -20
  383. package/tsconfig.build.json +0 -22
  384. package/tsconfig.build.tsbuildinfo +0 -1
  385. package/tsconfig.spec.json +0 -26
  386. package/tsconfig.spec.tsbuildinfo +0 -1
@@ -1,359 +0,0 @@
1
- import { Option, TypeRegistry } from '@pezkuwi/types';
2
- import { TypeDefInfo } from '@pezkuwi/types-create';
3
- import { assertReturn, compactAddLength, compactStripLength, isBn, isNumber, isObject, isString, isUndefined, logger, stringCamelCase, stringify, u8aConcat, u8aToHex } from '@pezkuwi/util';
4
- import { convertVersions, enumVersions } from './toLatestCompatible.js';
5
- const l = logger('Abi');
6
- const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance'];
7
- function findMessage(list, messageOrId) {
8
- const message = isNumber(messageOrId)
9
- ? list[messageOrId]
10
- : isString(messageOrId)
11
- ? list.find(({ identifier }) => [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()))
12
- : messageOrId;
13
- return assertReturn(message, () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`);
14
- }
15
- function getMetadata(registry, json) {
16
- // this is for V1, V2, V3
17
- const vx = enumVersions.find((v) => isObject(json[v]));
18
- // this was added in V4
19
- const jsonVersion = json.version;
20
- if (!vx && jsonVersion && !enumVersions.find((v) => v === `V${jsonVersion}`)) {
21
- throw new Error(`Unable to handle version ${jsonVersion}`);
22
- }
23
- const metadata = registry.createType('ContractMetadata', vx
24
- ? { [vx]: json[vx] }
25
- : jsonVersion
26
- ? { [`V${jsonVersion}`]: json }
27
- : { V0: json });
28
- const converter = convertVersions.find(([v]) => metadata[`is${v}`]);
29
- if (!converter) {
30
- throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`);
31
- }
32
- const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]);
33
- return upgradedMetadata;
34
- }
35
- function isRevive(json) {
36
- const source = json['source'];
37
- const version = json['version'];
38
- const hasContractBinary = typeof source === 'object' &&
39
- source !== null &&
40
- 'contract_binary' in source;
41
- const hasVersion = typeof version === 'number' && version >= 6;
42
- return hasContractBinary || hasVersion;
43
- }
44
- function parseJson(json, chainProperties) {
45
- const registry = new TypeRegistry();
46
- const revive = isRevive(json);
47
- const typeName = revive ? 'ContractReviveProjectInfo' : 'ContractProjectInfo';
48
- const info = registry.createType(typeName, json);
49
- const metadata = getMetadata(registry, json);
50
- const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true);
51
- // attach the lookup to the registry - now the types are known
52
- registry.setLookup(lookup);
53
- if (chainProperties) {
54
- registry.setChainProperties(chainProperties);
55
- }
56
- // warm-up the actual type, pre-use
57
- lookup.types.forEach(({ id }) => lookup.getTypeDef(id));
58
- return [json, registry, metadata, info, revive];
59
- }
60
- /**
61
- * @internal
62
- * Determines if the given input value is a ContractTypeSpec
63
- */
64
- function isTypeSpec(value) {
65
- return !!value && value instanceof Map && !isUndefined(value.type) && !isUndefined(value.displayName);
66
- }
67
- /**
68
- * @internal
69
- * Determines if the given input value is an Option
70
- */
71
- function isOption(value) {
72
- return !!value && value instanceof Option;
73
- }
74
- export class Abi {
75
- events;
76
- constructors;
77
- info;
78
- json;
79
- messages;
80
- metadata;
81
- registry;
82
- environment = new Map();
83
- isRevive;
84
- constructor(abiJson, chainProperties) {
85
- [this.json, this.registry, this.metadata, this.info, this.isRevive] = parseJson(isString(abiJson)
86
- ? JSON.parse(abiJson)
87
- : abiJson, chainProperties);
88
- this.constructors = this.metadata.spec.constructors.map((spec, index) => this.#createMessage(spec, index, {
89
- isConstructor: true,
90
- isDefault: spec.default.isTrue,
91
- isPayable: spec.payable.isTrue,
92
- returnType: spec.returnType.isSome
93
- ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type)
94
- : null
95
- }));
96
- this.events = this.metadata.spec.events.map((_, index) => this.#createEvent(index));
97
- this.messages = this.metadata.spec.messages.map((spec, index) => this.#createMessage(spec, index, {
98
- isDefault: spec.default.isTrue,
99
- isMutating: spec.mutates.isTrue,
100
- isPayable: spec.payable.isTrue,
101
- returnType: spec.returnType.isSome
102
- ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type)
103
- : null
104
- }));
105
- // NOTE See the rationale for having Option<...> values in the actual
106
- // ContractEnvironmentV4 structure definition in interfaces/contractsAbi
107
- // (Due to conversions, the fields may not exist)
108
- for (const [key, opt] of this.metadata.spec.environment.entries()) {
109
- if (isOption(opt)) {
110
- if (opt.isSome) {
111
- const value = opt.unwrap();
112
- if (isBn(value)) {
113
- this.environment.set(key, value);
114
- }
115
- else if (isTypeSpec(value)) {
116
- this.environment.set(key, this.registry.lookup.getTypeDef(value.type));
117
- }
118
- else {
119
- throw new Error(`Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`);
120
- }
121
- }
122
- }
123
- else {
124
- throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`);
125
- }
126
- }
127
- }
128
- /**
129
- * Warning: Unstable API, bound to change
130
- */
131
- decodeEvent(record) {
132
- switch (this.metadata.version.toString()) {
133
- // earlier version are hoisted to v4
134
- case '4':
135
- return this.#decodeEventV4(record);
136
- case '5':
137
- return this.#decodeEventV5(record);
138
- // Latest
139
- default:
140
- return this.#decodeEventV6(record);
141
- }
142
- }
143
- #decodeEventV6 = (record) => {
144
- const topics = record.event.data[2];
145
- // Try to match by signature topic (first topic)
146
- const signatureTopic = topics[0];
147
- const data = record.event.data[1];
148
- if (signatureTopic) {
149
- const event = this.events.find((e) => e.signatureTopic !== undefined && e.signatureTopic !== null && e.signatureTopic === signatureTopic.toHex());
150
- // Early return if event found by signature topic
151
- if (event) {
152
- return event.fromU8a(data);
153
- }
154
- }
155
- // If no event returned yet, it might be anonymous
156
- const amountOfTopics = topics.length;
157
- const potentialEvents = this.events.filter((e) => {
158
- // event can't have a signature topic
159
- if (e.signatureTopic !== null && e.signatureTopic !== undefined) {
160
- return false;
161
- }
162
- // event should have same amount of indexed fields as emitted topics
163
- const amountIndexed = e.args.filter((a) => a.indexed).length;
164
- if (amountIndexed !== amountOfTopics) {
165
- return false;
166
- }
167
- // If all conditions met, it's a potential event
168
- return true;
169
- });
170
- if (potentialEvents.length === 1) {
171
- return potentialEvents[0].fromU8a(data);
172
- }
173
- throw new Error('Unable to determine event');
174
- };
175
- #decodeEventV5 = (record) => {
176
- // Find event by first topic, which potentially is the signature_topic
177
- const signatureTopic = record.topics[0];
178
- const data = record.event.data[1];
179
- if (signatureTopic) {
180
- const event = this.events.find((e) => e.signatureTopic !== undefined && e.signatureTopic !== null && e.signatureTopic === signatureTopic.toHex());
181
- // Early return if event found by signature topic
182
- if (event) {
183
- return event.fromU8a(data);
184
- }
185
- }
186
- // If no event returned yet, it might be anonymous
187
- const amountOfTopics = record.topics.length;
188
- const potentialEvents = this.events.filter((e) => {
189
- // event can't have a signature topic
190
- if (e.signatureTopic !== null && e.signatureTopic !== undefined) {
191
- return false;
192
- }
193
- // event should have same amount of indexed fields as emitted topics
194
- const amountIndexed = e.args.filter((a) => a.indexed).length;
195
- if (amountIndexed !== amountOfTopics) {
196
- return false;
197
- }
198
- // If all conditions met, it's a potential event
199
- return true;
200
- });
201
- if (potentialEvents.length === 1) {
202
- return potentialEvents[0].fromU8a(data);
203
- }
204
- throw new Error('Unable to determine event');
205
- };
206
- #decodeEventV4 = (record) => {
207
- const data = record.event.data[1];
208
- const index = data[0];
209
- const event = this.events[index];
210
- if (!event) {
211
- throw new Error(`Unable to find event with index ${index}`);
212
- }
213
- return event.fromU8a(data.subarray(1));
214
- };
215
- /**
216
- * Warning: Unstable API, bound to change
217
- */
218
- decodeConstructor(data) {
219
- return this.#decodeMessage('message', this.constructors, data);
220
- }
221
- /**
222
- * Warning: Unstable API, bound to change
223
- */
224
- decodeMessage(data) {
225
- return this.#decodeMessage('message', this.messages, data);
226
- }
227
- findConstructor(constructorOrId) {
228
- return findMessage(this.constructors, constructorOrId);
229
- }
230
- findMessage(messageOrId) {
231
- return findMessage(this.messages, messageOrId);
232
- }
233
- #createArgs = (args, spec) => {
234
- return args.map(({ label, type }, index) => {
235
- try {
236
- if (!isObject(type)) {
237
- throw new Error('Invalid type definition found');
238
- }
239
- const displayName = type.displayName.length
240
- ? type.displayName[type.displayName.length - 1].toString()
241
- : undefined;
242
- const camelName = stringCamelCase(label);
243
- if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) {
244
- return {
245
- name: camelName,
246
- type: {
247
- info: TypeDefInfo.Plain,
248
- type: displayName
249
- }
250
- };
251
- }
252
- const typeDef = this.registry.lookup.getTypeDef(type.type);
253
- return {
254
- name: camelName,
255
- type: displayName && !typeDef.type.startsWith(displayName)
256
- ? { displayName, ...typeDef }
257
- : typeDef
258
- };
259
- }
260
- catch (error) {
261
- l.error(`Error expanding argument ${index} in ${stringify(spec)}`);
262
- throw error;
263
- }
264
- });
265
- };
266
- #createMessageParams = (args, spec) => {
267
- return this.#createArgs(args, spec);
268
- };
269
- #createEventParams = (args, spec) => {
270
- const params = this.#createArgs(args, spec);
271
- return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() }));
272
- };
273
- #createEvent = (index) => {
274
- // TODO TypeScript would narrow this type to the correct version,
275
- // but version is `Text` so I need to call `toString()` here,
276
- // which breaks the type inference.
277
- switch (this.metadata.version.toString()) {
278
- case '4':
279
- return this.#createEventV4(this.metadata.spec.events[index], index);
280
- default:
281
- return this.#createEventV5(this.metadata.spec.events[index], index);
282
- }
283
- };
284
- #createEventV5 = (spec, index) => {
285
- const args = this.#createEventParams(spec.args, spec);
286
- const event = {
287
- args,
288
- docs: spec.docs.map((d) => d.toString()),
289
- fromU8a: (data) => ({
290
- args: this.#decodeArgs(args, data),
291
- event
292
- }),
293
- identifier: [spec.module_path, spec.label].join('::'),
294
- index,
295
- signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null
296
- };
297
- return event;
298
- };
299
- #createEventV4 = (spec, index) => {
300
- const args = this.#createEventParams(spec.args, spec);
301
- const event = {
302
- args,
303
- docs: spec.docs.map((d) => d.toString()),
304
- fromU8a: (data) => ({
305
- args: this.#decodeArgs(args, data),
306
- event
307
- }),
308
- identifier: spec.label.toString(),
309
- index
310
- };
311
- return event;
312
- };
313
- #createMessage = (spec, index, add = {}) => {
314
- const args = this.#createMessageParams(spec.args, spec);
315
- const identifier = spec.label.toString();
316
- const message = {
317
- ...add,
318
- args,
319
- docs: spec.docs.map((d) => d.toString()),
320
- fromU8a: (data) => ({
321
- args: this.#decodeArgs(args, data),
322
- message
323
- }),
324
- identifier,
325
- index,
326
- isDefault: spec.default.isTrue,
327
- method: stringCamelCase(identifier),
328
- path: identifier.split('::').map((s) => stringCamelCase(s)),
329
- selector: spec.selector,
330
- toU8a: (params) => this.#encodeMessageArgs(spec, args, params)
331
- };
332
- return message;
333
- };
334
- #decodeArgs = (args, data) => {
335
- // for decoding we expect the input to be just the arg data, no selectors
336
- // no length added (this allows use with events as well)
337
- let offset = 0;
338
- return args.map(({ type: { lookupName, type } }) => {
339
- const value = this.registry.createType(lookupName || type, data.subarray(offset));
340
- offset += value.encodedLength;
341
- return value;
342
- });
343
- };
344
- #decodeMessage = (type, list, data) => {
345
- const [, trimmed] = compactStripLength(data);
346
- const selector = trimmed.subarray(0, 4);
347
- const message = list.find((m) => m.selector.eq(selector));
348
- if (!message) {
349
- throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`);
350
- }
351
- return message.fromU8a(trimmed.subarray(4));
352
- };
353
- #encodeMessageArgs = ({ label, selector }, args, data) => {
354
- if (data.length !== args.length) {
355
- throw new Error(`Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`);
356
- }
357
- return compactAddLength(u8aConcat(this.registry.createType('ContractSelector', selector).toU8a(), ...args.map(({ type: { lookupName, type } }, index) => this.registry.createType(lookupName || type, data[index]).toU8a())));
358
- };
359
- }
@@ -1,30 +0,0 @@
1
- import { v0ToV1 } from './toV1.js';
2
- import { v1ToV2 } from './toV2.js';
3
- import { v2ToV3 } from './toV3.js';
4
- import { v3ToV4 } from './toV4.js';
5
- export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1'];
6
- function createConverter(next, step) {
7
- return (registry, input) => next(registry, step(registry, input));
8
- }
9
- export function v6ToLatestCompatible(_registry, v6) {
10
- return v6;
11
- }
12
- export function v5ToLatestCompatible(_registry, v5) {
13
- return v5;
14
- }
15
- export function v4ToLatestCompatible(_registry, v4) {
16
- return v4;
17
- }
18
- export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4);
19
- export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3);
20
- export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2);
21
- export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1);
22
- export const convertVersions = [
23
- ['V6', v6ToLatestCompatible],
24
- ['V5', v5ToLatestCompatible],
25
- ['V4', v4ToLatestCompatible],
26
- ['V3', v3ToLatestCompatible],
27
- ['V2', v2ToLatestCompatible],
28
- ['V1', v1ToLatestCompatible],
29
- ['V0', v0ToLatestCompatible]
30
- ];
@@ -1,21 +0,0 @@
1
- import { convertSiV0toV1 } from '@pezkuwi/types';
2
- import { objectSpread } from '@pezkuwi/util';
3
- function v0ToV1Names(all) {
4
- return all.map((e) => objectSpread({}, e, {
5
- name: Array.isArray(e.name)
6
- ? e.name
7
- : [e.name]
8
- }));
9
- }
10
- export function v0ToV1(registry, v0) {
11
- if (!v0.metadataVersion.length) {
12
- throw new Error('Invalid format for V0 (detected) contract metadata');
13
- }
14
- return registry.createType('ContractMetadataV1', objectSpread({}, v0, {
15
- spec: objectSpread({}, v0.spec, {
16
- constructors: v0ToV1Names(v0.spec.constructors),
17
- messages: v0ToV1Names(v0.spec.messages)
18
- }),
19
- types: convertSiV0toV1(registry, v0.types)
20
- }));
21
- }
@@ -1,27 +0,0 @@
1
- import { objectSpread } from '@pezkuwi/util';
2
- const ARG_TYPES = {
3
- ContractConstructorSpec: 'ContractMessageParamSpecV2',
4
- ContractEventSpec: 'ContractEventParamSpecV2',
5
- ContractMessageSpec: 'ContractMessageParamSpecV2'
6
- };
7
- function v1ToV2Label(entry) {
8
- return objectSpread({}, entry, {
9
- label: Array.isArray(entry.name)
10
- ? entry.name.join('::')
11
- : entry.name
12
- });
13
- }
14
- function v1ToV2Labels(registry, outType, all) {
15
- return all.map((e) => registry.createType(`${outType}V2`, objectSpread(v1ToV2Label(e), {
16
- args: e.args.map((a) => registry.createType(ARG_TYPES[outType], v1ToV2Label(a)))
17
- })));
18
- }
19
- export function v1ToV2(registry, v1) {
20
- return registry.createType('ContractMetadataV2', objectSpread({}, v1, {
21
- spec: objectSpread({}, v1.spec, {
22
- constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors),
23
- events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events),
24
- messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages)
25
- })
26
- }));
27
- }
@@ -1,10 +0,0 @@
1
- import { objectSpread } from '@pezkuwi/util';
2
- export function v2ToV3(registry, v2) {
3
- return registry.createType('ContractMetadataV3', objectSpread({}, v2, {
4
- spec: objectSpread({}, v2.spec, {
5
- constructors: v2.spec.constructors.map((c) =>
6
- // V3 introduces the payable flag on constructors, for <V3, it is always true
7
- registry.createType('ContractConstructorSpecV3', objectSpread({}, c, { payable: true })))
8
- })
9
- }));
10
- }
@@ -1,10 +0,0 @@
1
- import { objectSpread } from '@pezkuwi/util';
2
- export function v3ToV4(registry, v3) {
3
- return registry.createType('ContractMetadataV4', objectSpread({}, v3, {
4
- spec: objectSpread({}, v3.spec, {
5
- constructors: v3.spec.constructors.map((c) => registry.createType('ContractConstructorSpecV4', objectSpread({}, c))),
6
- messages: v3.spec.messages.map((m) => registry.createType('ContractMessageSpecV3', objectSpread({}, m)))
7
- }),
8
- version: registry.createType('Text', '4')
9
- }));
10
- }
@@ -1 +0,0 @@
1
- import '@pezkuwi/api-augment';
@@ -1,40 +0,0 @@
1
- import { isFunction } from '@pezkuwi/util';
2
- import { Abi } from '../Abi/index.js';
3
- export class Base {
4
- abi;
5
- api;
6
- _decorateMethod;
7
- _isWeightV1;
8
- _isRevive;
9
- constructor(api, abi, decorateMethod) {
10
- if (!api || !api.isConnected || !api.tx) {
11
- throw new Error('Your API has not been initialized correctly and is not connected to a chain');
12
- }
13
- this.abi = abi instanceof Abi
14
- ? abi
15
- : new Abi(abi, api.registry.getChainProperties());
16
- this.api = api;
17
- this._decorateMethod = decorateMethod;
18
- this._isWeightV1 = !api.registry.createType('Weight').proofSize;
19
- this._isRevive = this.abi.isRevive;
20
- if (this._isRevive) {
21
- if (!api.tx.revive || !isFunction(api.tx.revive.instantiateWithCode) || api.tx.revive.instantiateWithCode.meta.args.length !== 6) {
22
- throw new Error('The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit');
23
- }
24
- else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) {
25
- throw new Error('Your runtime does not expose the api.call.reviveApi.call runtime interfaces');
26
- }
27
- }
28
- else {
29
- if (!api.tx.contracts || !isFunction(api.tx.contracts.instantiateWithCode) || api.tx.contracts.instantiateWithCode.meta.args.length !== 6) {
30
- throw new Error('The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit');
31
- }
32
- else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) {
33
- throw new Error('Your runtime does not expose the api.call.contractsApi.call runtime interfaces');
34
- }
35
- }
36
- }
37
- get registry() {
38
- return this.api.registry;
39
- }
40
- }
@@ -1,51 +0,0 @@
1
- import { SubmittableResult } from '@pezkuwi/api';
2
- import { BN_ZERO, isUndefined } from '@pezkuwi/util';
3
- import { applyOnEvent } from '../util.js';
4
- import { Base } from './Base.js';
5
- import { Contract } from './Contract.js';
6
- import { convertWeight, createBluePrintTx, encodeSalt } from './util.js';
7
- export class BlueprintSubmittableResult extends SubmittableResult {
8
- contract;
9
- constructor(result, contract) {
10
- super(result);
11
- this.contract = contract;
12
- }
13
- }
14
- export class Blueprint extends Base {
15
- /**
16
- * @description The on-chain code hash for this blueprint
17
- */
18
- codeHash;
19
- #tx = {};
20
- constructor(api, abi, codeHash, decorateMethod) {
21
- super(api, abi, decorateMethod);
22
- this.codeHash = this.registry.createType('Hash', codeHash);
23
- this.abi.constructors.forEach((c) => {
24
- if (isUndefined(this.#tx[c.method])) {
25
- this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p));
26
- }
27
- });
28
- }
29
- get tx() {
30
- return this.#tx;
31
- }
32
- #deploy = (constructorOrId, { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, params) => {
33
- const palletTx = this._isRevive
34
- ? this.api.tx.revive
35
- : this.api.tx.contracts;
36
- return palletTx.instantiate(value,
37
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
38
- // @ts-ignore jiggle v1 weights, metadata points to latest
39
- this._isWeightV1
40
- ? convertWeight(gasLimit).v1Weight
41
- : convertWeight(gasLimit).v2Weight, storageDepositLimit, this.codeHash, this.abi.findConstructor(constructorOrId).toU8a(params), encodeSalt(salt)).withResultTransform((result) => new BlueprintSubmittableResult(result, applyOnEvent(result, ['Instantiated'], ([record]) => new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), this._isRevive)));
42
- };
43
- }
44
- export function extendBlueprint(type, decorateMethod) {
45
- return class extends Blueprint {
46
- static __BlueprintType = type;
47
- constructor(api, abi, codeHash) {
48
- super(api, abi, codeHash, decorateMethod);
49
- }
50
- };
51
- }
@@ -1,74 +0,0 @@
1
- import { SubmittableResult } from '@pezkuwi/api';
2
- import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@pezkuwi/util';
3
- import { applyOnEvent } from '../util.js';
4
- import { Base } from './Base.js';
5
- import { Blueprint } from './Blueprint.js';
6
- import { Contract } from './Contract.js';
7
- import { convertWeight, createBluePrintTx, encodeSalt } from './util.js';
8
- export class CodeSubmittableResult extends SubmittableResult {
9
- blueprint;
10
- contract;
11
- constructor(result, blueprint, contract) {
12
- super(result);
13
- this.blueprint = blueprint;
14
- this.contract = contract;
15
- }
16
- }
17
- function isValidCode(code) {
18
- return isWasm(code) || isRiscV(code);
19
- }
20
- export class Code extends Base {
21
- code;
22
- #tx = {};
23
- constructor(api, abi, wasm, decorateMethod) {
24
- super(api, abi, decorateMethod);
25
- this.code = isValidCode(this.abi.info.source.wasm)
26
- ? this.abi.info.source.wasm
27
- : u8aToU8a(wasm);
28
- if (!isValidCode(this.code)) {
29
- throw new Error('Invalid code provided');
30
- }
31
- this.abi.constructors.forEach((c) => {
32
- if (isUndefined(this.#tx[c.method])) {
33
- this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p));
34
- }
35
- });
36
- }
37
- get tx() {
38
- return this.#tx;
39
- }
40
- #instantiate = (constructorOrId, { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, params) => {
41
- const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts;
42
- if (this._isRevive) {
43
- return palletTx.instantiateWithCode(value,
44
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
45
- // @ts-ignore jiggle v1 weights, metadata points to latest
46
- this._isWeightV1
47
- ? convertWeight(gasLimit).v1Weight
48
- : convertWeight(gasLimit).v2Weight, storageDepositLimit, compactAddLength(this.code), this.abi.findConstructor(constructorOrId).toU8a(params), encodeSalt(salt)).withResultTransform((result) => new CodeSubmittableResult(result, ...(applyOnEvent(result, ['Instantiated'], (records) => records.reduce(([blueprint, contract], { event }) => this.api.events.revive['Instantiated'].is(event)
49
- ? [
50
- blueprint,
51
- new Contract(this.api, this.abi, event.data[1], this._decorateMethod)
52
- ]
53
- : [blueprint, contract], [undefined, undefined]), this._isRevive) || [undefined, undefined])));
54
- }
55
- return palletTx.instantiateWithCode(value,
56
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
57
- // @ts-ignore jiggle v1 weights, metadata points to latest
58
- this._isWeightV1
59
- ? convertWeight(gasLimit).v1Weight
60
- : convertWeight(gasLimit).v2Weight, storageDepositLimit, compactAddLength(this.code), this.abi.findConstructor(constructorOrId).toU8a(params), encodeSalt(salt)).withResultTransform((result) => new CodeSubmittableResult(result, ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records) => records.reduce(([blueprint, contract], { event }) => this.api.events.contracts.Instantiated.is(event)
61
- ? [blueprint, new Contract(this.api, this.abi, event.data[1], this._decorateMethod)]
62
- : this.api.events.contracts.CodeStored.is(event)
63
- ? [new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), contract]
64
- : [blueprint, contract], [undefined, undefined]), this._isRevive) || [undefined, undefined])));
65
- };
66
- }
67
- export function extendCode(type, decorateMethod) {
68
- return class extends Code {
69
- static __CodeType = type;
70
- constructor(api, abi, wasm) {
71
- super(api, abi, wasm, decorateMethod);
72
- }
73
- };
74
- }