@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,56 +0,0 @@
1
-
2
- import type { Text } from 'https://deno.land/x/pezkuwi/types/mod.ts';
3
- import type { ContractConstructorSpecV0, ContractEventSpecV0, ContractMessageSpecV0, ContractMetadataV1, ContractMetadataV2 } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
4
- import type { Registry } from 'https://deno.land/x/pezkuwi/types/types/index.ts';
5
-
6
- import { objectSpread } from 'https://deno.land/x/pezkuwi/util/mod.ts';
7
-
8
- type WithArgs = keyof typeof ARG_TYPES;
9
-
10
- interface NamedEntry {
11
- name: Text | Text[];
12
- }
13
-
14
- type GetArgsType<T extends WithArgs> = T extends 'ContractConstructorSpec'
15
- ? ContractConstructorSpecV0
16
- : T extends ContractEventSpecV0
17
- ? ContractEventSpecV0
18
- : ContractMessageSpecV0;
19
-
20
- interface ArgsEntry <T extends WithArgs> extends NamedEntry {
21
- args: GetArgsType<T>['args'][0][];
22
- }
23
-
24
- const ARG_TYPES = {
25
- ContractConstructorSpec: 'ContractMessageParamSpecV2',
26
- ContractEventSpec: 'ContractEventParamSpecV2',
27
- ContractMessageSpec: 'ContractMessageParamSpecV2'
28
- } as const;
29
-
30
- function v1ToV2Label (entry: NamedEntry): { label: Text } {
31
- return objectSpread({}, entry, {
32
- label: Array.isArray(entry.name)
33
- ? entry.name.join('::')
34
- : entry.name
35
- });
36
- }
37
-
38
- function v1ToV2Labels <T extends WithArgs> (registry: Registry, outType: T, all: ArgsEntry<T>[]): unknown[] {
39
- return all.map((e) =>
40
- registry.createType(`${outType}V2`, objectSpread(v1ToV2Label(e), {
41
- args: e.args.map((a) =>
42
- registry.createType(ARG_TYPES[outType], v1ToV2Label(a))
43
- )
44
- }))
45
- );
46
- }
47
-
48
- export function v1ToV2 (registry: Registry, v1: ContractMetadataV1): ContractMetadataV2 {
49
- return registry.createType('ContractMetadataV2', objectSpread({}, v1, {
50
- spec: objectSpread({}, v1.spec, {
51
- constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors),
52
- events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events),
53
- messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages)
54
- })
55
- }));
56
- }
@@ -1,16 +0,0 @@
1
-
2
- import type { ContractMetadataV2, ContractMetadataV3 } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
3
- import type { Registry } from 'https://deno.land/x/pezkuwi/types/types/index.ts';
4
-
5
- import { objectSpread } from 'https://deno.land/x/pezkuwi/util/mod.ts';
6
-
7
- export function v2ToV3 (registry: Registry, v2: ContractMetadataV2): ContractMetadataV3 {
8
- return registry.createType('ContractMetadataV3', objectSpread({}, v2, {
9
- spec: objectSpread({}, v2.spec, {
10
- constructors: v2.spec.constructors.map((c) =>
11
- // V3 introduces the payable flag on constructors, for <V3, it is always true
12
- registry.createType('ContractConstructorSpecV3', objectSpread({}, c, { payable: true }))
13
- )
14
- })
15
- }));
16
- }
@@ -1,19 +0,0 @@
1
-
2
- import type { ContractMetadataV3, ContractMetadataV4 } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
3
- import type { Registry } from 'https://deno.land/x/pezkuwi/types/types/index.ts';
4
-
5
- import { objectSpread } from 'https://deno.land/x/pezkuwi/util/mod.ts';
6
-
7
- export function v3ToV4 (registry: Registry, v3: ContractMetadataV3): ContractMetadataV4 {
8
- return registry.createType('ContractMetadataV4', objectSpread({}, v3, {
9
- spec: objectSpread({}, v3.spec, {
10
- constructors: v3.spec.constructors.map((c) =>
11
- registry.createType('ContractConstructorSpecV4', objectSpread({}, c))
12
- ),
13
- messages: v3.spec.messages.map((m) =>
14
- registry.createType('ContractMessageSpecV3', objectSpread({}, m))
15
- )
16
- }),
17
- version: registry.createType('Text', '4')
18
- }));
19
- }
@@ -1,3 +0,0 @@
1
- # @pezkuwi/api-contract
2
-
3
- Interfaces to allow for the encoding and decoding of Bizinikiwi contract ABIs.
@@ -1,2 +0,0 @@
1
-
2
- import 'https://deno.land/x/pezkuwi/api-augment/mod.ts';
@@ -1,50 +0,0 @@
1
-
2
- import type { ApiBase } from 'https://deno.land/x/pezkuwi/api/base/index.ts';
3
- import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/pezkuwi/api/types/index.ts';
4
- import type { WeightV2 } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
5
- import type { Registry } from 'https://deno.land/x/pezkuwi/types/types/index.ts';
6
-
7
- import { isFunction } from 'https://deno.land/x/pezkuwi/util/mod.ts';
8
-
9
- import { Abi } from '../Abi/index.ts';
10
-
11
- export abstract class Base<ApiType extends ApiTypes> {
12
- readonly abi: Abi;
13
- readonly api: ApiBase<ApiType>;
14
-
15
- protected readonly _decorateMethod: DecorateMethod<ApiType>;
16
- protected readonly _isWeightV1: boolean;
17
- protected readonly _isRevive: boolean;
18
-
19
- constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, decorateMethod: DecorateMethod<ApiType>) {
20
- if (!api || !api.isConnected || !api.tx) {
21
- throw new Error('Your API has not been initialized correctly and is not connected to a chain');
22
- }
23
-
24
- this.abi = abi instanceof Abi
25
- ? abi
26
- : new Abi(abi, api.registry.getChainProperties());
27
- this.api = api;
28
- this._decorateMethod = decorateMethod;
29
- this._isWeightV1 = !api.registry.createType<WeightV2>('Weight').proofSize;
30
- this._isRevive = this.abi.isRevive;
31
-
32
- if (this._isRevive) {
33
- if (!api.tx.revive || !isFunction(api.tx.revive.instantiateWithCode) || api.tx.revive.instantiateWithCode.meta.args.length !== 6) {
34
- throw new Error('The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit');
35
- } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) {
36
- throw new Error('Your runtime does not expose the api.call.reviveApi.call runtime interfaces');
37
- }
38
- } else {
39
- if (!api.tx.contracts || !isFunction(api.tx.contracts.instantiateWithCode) || api.tx.contracts.instantiateWithCode.meta.args.length !== 6) {
40
- throw new Error('The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit');
41
- } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) {
42
- throw new Error('Your runtime does not expose the api.call.contractsApi.call runtime interfaces');
43
- }
44
- }
45
- }
46
-
47
- public get registry (): Registry {
48
- return this.api.registry;
49
- }
50
- }
@@ -1,88 +0,0 @@
1
-
2
- import type { ApiBase } from 'https://deno.land/x/pezkuwi/api/base/index.ts';
3
- import type { SubmittableExtrinsic } from 'https://deno.land/x/pezkuwi/api/submittable/types.ts';
4
- import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/pezkuwi/api/types/index.ts';
5
- import type { AccountId, EventRecord, Hash } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
6
- import type { ISubmittableResult } from 'https://deno.land/x/pezkuwi/types/types/index.ts';
7
- import type { Abi } from '../Abi/index.ts';
8
- import type { AbiConstructor, BlueprintOptions } from '../types.ts';
9
- import type { MapConstructorExec } from './types.ts';
10
-
11
- import { SubmittableResult } from 'https://deno.land/x/pezkuwi/api/mod.ts';
12
- import { BN_ZERO, isUndefined } from 'https://deno.land/x/pezkuwi/util/mod.ts';
13
-
14
- import { applyOnEvent } from '../util.ts';
15
- import { Base } from './Base.ts';
16
- import { Contract } from './Contract.ts';
17
- import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts';
18
-
19
- export type BlueprintConstructor<ApiType extends ApiTypes> = new(api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, codeHash: string | Hash | Uint8Array) => Blueprint<ApiType>;
20
-
21
- export class BlueprintSubmittableResult<ApiType extends ApiTypes> extends SubmittableResult {
22
- readonly contract?: Contract<ApiType> | undefined;
23
-
24
- constructor (result: ISubmittableResult, contract?: Contract<ApiType>) {
25
- super(result);
26
-
27
- this.contract = contract;
28
- }
29
- }
30
-
31
- export class Blueprint<ApiType extends ApiTypes> extends Base<ApiType> {
32
- /**
33
- * @description The on-chain code hash for this blueprint
34
- */
35
- readonly codeHash: Hash;
36
-
37
- readonly #tx: MapConstructorExec<ApiType> = {};
38
-
39
- constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, codeHash: string | Hash | Uint8Array, decorateMethod: DecorateMethod<ApiType>) {
40
- super(api, abi, decorateMethod);
41
-
42
- this.codeHash = this.registry.createType('Hash', codeHash);
43
-
44
- this.abi.constructors.forEach((c): void => {
45
- if (isUndefined(this.#tx[c.method])) {
46
- this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p));
47
- }
48
- });
49
- }
50
-
51
- public get tx (): MapConstructorExec<ApiType> {
52
- return this.#tx;
53
- }
54
-
55
- #deploy = (constructorOrId: AbiConstructor | string | number, { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[]): SubmittableExtrinsic<ApiType, BlueprintSubmittableResult<ApiType>> => {
56
- const palletTx = this._isRevive
57
- ? this.api.tx.revive
58
- : this.api.tx.contracts;
59
-
60
- return palletTx.instantiate(
61
- value,
62
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
63
- // @ts-ignore jiggle v1 weights, metadata points to latest
64
- this._isWeightV1
65
- ? convertWeight(gasLimit).v1Weight
66
- : convertWeight(gasLimit).v2Weight,
67
- storageDepositLimit,
68
- this.codeHash,
69
- this.abi.findConstructor(constructorOrId).toU8a(params),
70
- encodeSalt(salt)
71
- ).withResultTransform((result: ISubmittableResult) =>
72
- new BlueprintSubmittableResult(result, applyOnEvent(result, ['Instantiated'], ([record]: EventRecord[]) =>
73
- new Contract<ApiType>(this.api, this.abi, record.event.data[1] as AccountId, this._decorateMethod), this._isRevive
74
- )
75
- )
76
- );
77
- };
78
- }
79
-
80
- export function extendBlueprint <ApiType extends ApiTypes> (type: ApiType, decorateMethod: DecorateMethod<ApiType>): BlueprintConstructor<ApiType> {
81
- return class extends Blueprint<ApiType> {
82
- static __BlueprintType = type;
83
-
84
- constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, codeHash: string | Hash | Uint8Array) {
85
- super(api, abi, codeHash, decorateMethod);
86
- }
87
- };
88
- }
@@ -1,140 +0,0 @@
1
- import { Buffer } from 'node:buffer';
2
-
3
-
4
- import type { ApiBase } from 'https://deno.land/x/pezkuwi/api/base/index.ts';
5
- import type { SubmittableExtrinsic } from 'https://deno.land/x/pezkuwi/api/submittable/types.ts';
6
- import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/pezkuwi/api/types/index.ts';
7
- import type { AccountId, EventRecord } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
8
- import type { ISubmittableResult } from 'https://deno.land/x/pezkuwi/types/types/index.ts';
9
- import type { Codec } from 'https://deno.land/x/pezkuwi/types-codec/types/index.ts';
10
- import type { Abi } from '../Abi/index.ts';
11
- import type { AbiConstructor, BlueprintOptions } from '../types.ts';
12
- import type { MapConstructorExec } from './types.ts';
13
-
14
- import { SubmittableResult } from 'https://deno.land/x/pezkuwi/api/mod.ts';
15
- import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from 'https://deno.land/x/pezkuwi/util/mod.ts';
16
-
17
- import { applyOnEvent } from '../util.ts';
18
- import { Base } from './Base.ts';
19
- import { Blueprint } from './Blueprint.ts';
20
- import { Contract } from './Contract.ts';
21
- import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts';
22
-
23
- export type CodeConstructor<ApiType extends ApiTypes> = new(api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, wasm: Uint8Array | string | Buffer | null | undefined) => Code<ApiType>;
24
-
25
- export class CodeSubmittableResult<ApiType extends ApiTypes> extends SubmittableResult {
26
- readonly blueprint?: Blueprint<ApiType> | undefined;
27
- readonly contract?: Contract<ApiType> | undefined;
28
-
29
- constructor (result: ISubmittableResult, blueprint?: Blueprint<ApiType> | undefined, contract?: Contract<ApiType> | undefined) {
30
- super(result);
31
-
32
- this.blueprint = blueprint;
33
- this.contract = contract;
34
- }
35
- }
36
-
37
- function isValidCode (code: Uint8Array): boolean {
38
- return isWasm(code) || isRiscV(code);
39
- }
40
-
41
- export class Code<ApiType extends ApiTypes> extends Base<ApiType> {
42
- readonly code: Uint8Array;
43
-
44
- readonly #tx: MapConstructorExec<ApiType> = {};
45
-
46
- constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, wasm: Uint8Array | string | Buffer | null | undefined, decorateMethod: DecorateMethod<ApiType>) {
47
- super(api, abi, decorateMethod);
48
-
49
- this.code = isValidCode(this.abi.info.source.wasm)
50
- ? this.abi.info.source.wasm
51
- : u8aToU8a(wasm);
52
-
53
- if (!isValidCode(this.code)) {
54
- throw new Error('Invalid code provided');
55
- }
56
-
57
- this.abi.constructors.forEach((c): void => {
58
- if (isUndefined(this.#tx[c.method])) {
59
- this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p));
60
- }
61
- });
62
- }
63
-
64
- public get tx (): MapConstructorExec<ApiType> {
65
- return this.#tx;
66
- }
67
-
68
- #instantiate = (constructorOrId: AbiConstructor | string | number, { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[]): SubmittableExtrinsic<ApiType, CodeSubmittableResult<ApiType>> => {
69
- const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts;
70
-
71
- if (this._isRevive) {
72
- return palletTx.instantiateWithCode(
73
- value,
74
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
75
- // @ts-ignore jiggle v1 weights, metadata points to latest
76
- this._isWeightV1
77
- ? convertWeight(gasLimit).v1Weight
78
- : convertWeight(gasLimit).v2Weight,
79
- storageDepositLimit,
80
- compactAddLength(this.code),
81
- this.abi.findConstructor(constructorOrId).toU8a(params),
82
- encodeSalt(salt)
83
- ).withResultTransform((result: ISubmittableResult) =>
84
- new CodeSubmittableResult(
85
- result,
86
- ...(applyOnEvent(result, ['Instantiated'], (records: EventRecord[]) =>
87
- records.reduce<[Blueprint<ApiType> | undefined, Contract<ApiType> | undefined]>(
88
- ([blueprint, contract], { event }) =>
89
- this.api.events.revive['Instantiated'].is(event)
90
- ? [
91
- blueprint,
92
- new Contract<ApiType>(
93
- this.api,
94
- this.abi,
95
- (event as unknown as { data: [Codec, AccountId] }).data[1],
96
- this._decorateMethod
97
- )
98
- ]
99
- : [blueprint, contract],
100
- [undefined, undefined]
101
- ), this._isRevive
102
- ) || [undefined, undefined])
103
- )
104
- );
105
- }
106
-
107
- return palletTx.instantiateWithCode(
108
- value,
109
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
110
- // @ts-ignore jiggle v1 weights, metadata points to latest
111
- this._isWeightV1
112
- ? convertWeight(gasLimit).v1Weight
113
- : convertWeight(gasLimit).v2Weight,
114
- storageDepositLimit,
115
- compactAddLength(this.code),
116
- this.abi.findConstructor(constructorOrId).toU8a(params),
117
- encodeSalt(salt)
118
- ).withResultTransform((result: ISubmittableResult) =>
119
- new CodeSubmittableResult(result, ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) =>
120
- records.reduce<[Blueprint<ApiType> | undefined, Contract<ApiType> | undefined]>(([blueprint, contract], { event }) =>
121
- this.api.events.contracts.Instantiated.is(event)
122
- ? [blueprint, new Contract<ApiType>(this.api, this.abi, (event as unknown as { data: [Codec, AccountId] }).data[1], this._decorateMethod)]
123
- : this.api.events.contracts.CodeStored.is(event)
124
- ? [new Blueprint<ApiType>(this.api, this.abi, (event as unknown as { data: [AccountId] }).data[0], this._decorateMethod), contract]
125
- : [blueprint, contract],
126
- [undefined, undefined]), this._isRevive
127
- ) || [undefined, undefined]))
128
- );
129
- };
130
- }
131
-
132
- export function extendCode <ApiType extends ApiTypes> (type: ApiType, decorateMethod: DecorateMethod<ApiType>): CodeConstructor<ApiType> {
133
- return class extends Code<ApiType> {
134
- static __CodeType = type;
135
-
136
- constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, wasm: Uint8Array | string | Buffer | null | undefined) {
137
- super(api, abi, wasm, decorateMethod);
138
- }
139
- };
140
- }
@@ -1,194 +0,0 @@
1
-
2
- import type { ApiBase } from 'https://deno.land/x/pezkuwi/api/base/index.ts';
3
- import type { SubmittableExtrinsic } from 'https://deno.land/x/pezkuwi/api/submittable/types.ts';
4
- import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/pezkuwi/api/types/index.ts';
5
- import type { AccountId, AccountId20, ContractExecResult, EventRecord, Weight, WeightV2 } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
6
- import type { ISubmittableResult } from 'https://deno.land/x/pezkuwi/types/types/index.ts';
7
- import type { Abi } from '../Abi/index.ts';
8
- import type { AbiMessage, ContractCallOutcome, ContractOptions, DecodedEvent, WeightAll } from '../types.ts';
9
- import type { ContractCallResult, ContractCallSend, ContractQuery, ContractTx, MapMessageQuery, MapMessageTx } from './types.ts';
10
-
11
- import { map } from 'https://esm.sh/rxjs@7.8.1';
12
-
13
- import { SubmittableResult } from 'https://deno.land/x/pezkuwi/api/mod.ts';
14
- import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from 'https://deno.land/x/pezkuwi/util/mod.ts';
15
-
16
- import { applyOnEvent } from '../util.ts';
17
- import { Base } from './Base.ts';
18
- import { convertWeight, withMeta } from './util.ts';
19
-
20
- export type ContractConstructor<ApiType extends ApiTypes> = new(api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, address: string | AccountId) => Contract<ApiType>;
21
-
22
- const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE);
23
-
24
- const l = logger('Contract');
25
-
26
- function createQuery <ApiType extends ApiTypes> (meta: AbiMessage, fn: (origin: string | AccountId | Uint8Array, options: ContractOptions, params: unknown[]) => ContractCallResult<ApiType, ContractCallOutcome>): ContractQuery<ApiType> {
27
- return withMeta(meta, (origin: string | AccountId | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome> =>
28
- fn(origin, options, params)
29
- );
30
- }
31
-
32
- function createTx <ApiType extends ApiTypes> (meta: AbiMessage, fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic<ApiType>): ContractTx<ApiType> {
33
- return withMeta(meta, (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType> =>
34
- fn(options, params)
35
- );
36
- }
37
-
38
- export class ContractSubmittableResult extends SubmittableResult {
39
- readonly contractEvents?: DecodedEvent[] | undefined;
40
-
41
- constructor (result: ISubmittableResult, contractEvents?: DecodedEvent[]) {
42
- super(result);
43
-
44
- this.contractEvents = contractEvents;
45
- }
46
- }
47
-
48
- export class Contract<ApiType extends ApiTypes> extends Base<ApiType> {
49
- /**
50
- * @description The on-chain address for this contract
51
- */
52
- readonly address: AccountId | AccountId20;
53
-
54
- readonly #query: MapMessageQuery<ApiType> = {};
55
- readonly #tx: MapMessageTx<ApiType> = {};
56
-
57
- constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, address: string | AccountId | AccountId20, decorateMethod: DecorateMethod<ApiType>) {
58
- super(api, abi, decorateMethod);
59
-
60
- this.address = this.registry.createType(this._isRevive ? 'AccountId20' : 'AccountId', address);
61
-
62
- this.abi.messages.forEach((m): void => {
63
- if (isUndefined(this.#tx[m.method])) {
64
- this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p));
65
- }
66
-
67
- if (isUndefined(this.#query[m.method])) {
68
- this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f));
69
- }
70
- });
71
- }
72
-
73
- public get query (): MapMessageQuery<ApiType> {
74
- return this.#query;
75
- }
76
-
77
- public get tx (): MapMessageTx<ApiType> {
78
- return this.#tx;
79
- }
80
-
81
- #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => {
82
- const weight = convertWeight(_gasLimit);
83
-
84
- if (weight.v1Weight.gt(BN_ZERO)) {
85
- return weight;
86
- }
87
-
88
- return convertWeight(
89
- isCall
90
- ? MAX_CALL_GAS
91
- : convertWeight(
92
- this.api.consts.system.blockWeights
93
- ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock
94
- : this.api.consts.system['maximumBlockWeight'] as Weight
95
- ).v1Weight.muln(64).div(BN_HUNDRED)
96
- );
97
- };
98
-
99
- #exec = (messageOrId: AbiMessage | string | number, { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, params: unknown[]): SubmittableExtrinsic<ApiType> => {
100
- const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts;
101
-
102
- return palletTx.call(
103
- this.address,
104
- value,
105
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
106
- // @ts-ignore jiggle v1 weights, metadata points to latest
107
- this._isWeightV1
108
- ? convertWeight(gasLimit).v1Weight
109
- : convertWeight(gasLimit).v2Weight,
110
- storageDepositLimit,
111
- this.abi.findMessage(messageOrId).toU8a(params)
112
- ).withResultTransform((result: ISubmittableResult) =>
113
- // ContractEmitted is the current generation, ContractExecution is the previous generation
114
- new ContractSubmittableResult(result, applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], (records: EventRecord[]) =>
115
- records
116
- // Filter to only decode events emitted by this specific contract instance.
117
- .filter((record): boolean => {
118
- try {
119
- const contractAddress = record.event.data[0];
120
-
121
- if (this.address.eq(contractAddress)) {
122
- return true;
123
- }
124
-
125
- l.debug(`Skipping event from different contract ${contractAddress.toString()} (this contract: ${this.address.toString()})`);
126
-
127
- return false;
128
- } catch (error) {
129
- l.warn(`Unable to extract contract address from event: ${(error as Error).message}`);
130
-
131
- return false;
132
- }
133
- })
134
- .map((record): DecodedEvent | null => {
135
- try {
136
- return this.abi.decodeEvent(record);
137
- } catch (error) {
138
- l.error(`Unable to decode contract event: ${(error as Error).message}`);
139
-
140
- return null;
141
- }
142
- })
143
- .filter((decoded): decoded is DecodedEvent => !!decoded), this._isRevive
144
- ))
145
- );
146
- };
147
-
148
- #read = (messageOrId: AbiMessage | string | number, { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, params: unknown[]): ContractCallSend<ApiType> => {
149
- const message = this.abi.findMessage(messageOrId);
150
-
151
- return {
152
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
153
- send: this._decorateMethod((origin: string | AccountId | Uint8Array) =>
154
- (this._isRevive
155
- ? this.api.rx.call.reviveApi.call
156
- : this.api.rx.call.contractsApi.call)<ContractExecResult>(
157
- origin,
158
- this.address,
159
- value,
160
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
161
- // @ts-ignore jiggle v1 weights, metadata points to latest
162
- this._isWeightV1
163
- ? this.#getGas(gasLimit, true).v1Weight
164
- : this.#getGas(gasLimit, true).v2Weight,
165
- storageDepositLimit,
166
- message.toU8a(params)
167
- ).pipe(
168
- map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }): ContractCallOutcome => ({
169
- debugMessage,
170
- gasConsumed,
171
- gasRequired: gasRequired && !convertWeight(gasRequired).v1Weight.isZero()
172
- ? gasRequired
173
- : gasConsumed,
174
- output: result.isOk && message.returnType
175
- ? this.abi.registry.createTypeUnsafe(message.returnType.lookupName || message.returnType.type, [result.asOk.data.toU8a(true)], { isPedantic: true })
176
- : null,
177
- result,
178
- storageDeposit
179
- }))
180
- )
181
- )
182
- };
183
- };
184
- }
185
-
186
- export function extendContract <ApiType extends ApiTypes> (type: ApiType, decorateMethod: DecorateMethod<ApiType>): ContractConstructor<ApiType> {
187
- return class extends Contract<ApiType> {
188
- static __ContractType = type;
189
-
190
- constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, address: string | AccountId) {
191
- super(api, abi, address, decorateMethod);
192
- }
193
- };
194
- }
@@ -1,4 +0,0 @@
1
-
2
- export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.ts';
3
- export { Code, CodeSubmittableResult, extendCode } from './Code.ts';
4
- export { Contract, extendContract } from './Contract.ts';
@@ -1,46 +0,0 @@
1
-
2
- import type { ApiBase } from 'https://deno.land/x/pezkuwi/api/base/index.ts';
3
-
4
- import { TypeRegistry } from 'https://deno.land/x/pezkuwi/types/mod.ts';
5
-
6
- const registry = new TypeRegistry();
7
-
8
- const instantiateWithCode = (): never => {
9
- throw new Error('mock');
10
- };
11
-
12
- instantiateWithCode.meta = { args: new Array(6) };
13
-
14
- export const mockApi = {
15
- call: {
16
- contractsApi: {
17
- call: (): never => {
18
- throw new Error('mock');
19
- }
20
- }
21
- },
22
- isConnected: true,
23
- registry,
24
- tx: {
25
- contracts: {
26
- instantiateWithCode
27
- }
28
- }
29
- } as unknown as ApiBase<'promise'>;
30
-
31
- export const mockReviveApi = {
32
- call: {
33
- reviveApi: {
34
- call: (): never => {
35
- throw new Error('mock');
36
- }
37
- }
38
- },
39
- isConnected: true,
40
- registry,
41
- tx: {
42
- revive: {
43
- instantiateWithCode
44
- }
45
- }
46
- } as unknown as ApiBase<'promise'>;
@@ -1,38 +0,0 @@
1
-
2
- import type { Observable } from 'https://esm.sh/rxjs@7.8.1';
3
- import type { SubmittableExtrinsic } from 'https://deno.land/x/pezkuwi/api/submittable/types.ts';
4
- import type { ApiTypes, ObsInnerType } from 'https://deno.land/x/pezkuwi/api/types/index.ts';
5
- import type { AccountId } from 'https://deno.land/x/pezkuwi/types/interfaces/index.ts';
6
- import type { AbiMessage, BlueprintOptions, ContractCallOutcome, ContractOptions } from '../types.ts';
7
-
8
- export interface MessageMeta {
9
- readonly meta: AbiMessage;
10
- }
11
-
12
- export interface BlueprintDeploy<ApiType extends ApiTypes> extends MessageMeta {
13
- (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
14
- }
15
-
16
- export interface ContractQuery<ApiType extends ApiTypes> extends MessageMeta {
17
- (origin: AccountId | string | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome>;
18
- }
19
-
20
- export interface ContractTx<ApiType extends ApiTypes> extends MessageMeta {
21
- (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
22
- }
23
-
24
- export type ContractGeneric<O, T> = (messageOrId: AbiMessage | string | number, options: O, ...params: unknown[]) => T;
25
-
26
- export type ContractCallResult<ApiType extends ApiTypes, T> = ApiType extends 'rxjs'
27
- ? Observable<T>
28
- : Promise<ObsInnerType<Observable<T>>>;
29
-
30
- export interface ContractCallSend<ApiType extends ApiTypes> {
31
- send (account: string | AccountId | Uint8Array): ContractCallResult<ApiType, ContractCallOutcome>;
32
- }
33
-
34
- export type MapConstructorExec<ApiType extends ApiTypes> = Record<string, BlueprintDeploy<ApiType>>;
35
-
36
- export type MapMessageTx<ApiType extends ApiTypes> = Record<string, ContractTx<ApiType>>;
37
-
38
- export type MapMessageQuery<ApiType extends ApiTypes> = Record<string, ContractQuery<ApiType>>;