@aeternity/aepp-sdk 12.1.3 → 13.0.0-alpha.1

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 (565) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +12031 -11231
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.d.ts +7 -3
  9. package/es/AeSdk.mjs +17 -22
  10. package/es/AeSdk.mjs.map +1 -1
  11. package/es/AeSdkAepp.d.ts +6 -5
  12. package/es/AeSdkAepp.mjs +7 -30
  13. package/es/AeSdkAepp.mjs.map +1 -1
  14. package/es/AeSdkBase.d.ts +18 -140
  15. package/es/AeSdkBase.mjs +30 -184
  16. package/es/AeSdkBase.mjs.map +1 -1
  17. package/es/AeSdkMethods.d.ts +123 -0
  18. package/es/AeSdkMethods.mjs +122 -0
  19. package/es/AeSdkMethods.mjs.map +1 -0
  20. package/es/AeSdkWallet.d.ts +7 -21
  21. package/es/AeSdkWallet.mjs +38 -86
  22. package/es/AeSdkWallet.mjs.map +1 -1
  23. package/es/Node.d.ts +11 -15
  24. package/es/Node.mjs +35 -48
  25. package/es/Node.mjs.map +1 -1
  26. package/es/account/Base.d.ts +24 -40
  27. package/es/account/Base.mjs +1 -101
  28. package/es/account/Base.mjs.map +1 -1
  29. package/es/account/Generalized.d.ts +16 -0
  30. package/es/account/Generalized.mjs +113 -0
  31. package/es/account/Generalized.mjs.map +1 -0
  32. package/es/account/Ledger.d.ts +28 -0
  33. package/es/account/Ledger.mjs +102 -0
  34. package/es/account/Ledger.mjs.map +1 -0
  35. package/es/account/LedgerFactory.d.ts +39 -0
  36. package/es/account/LedgerFactory.mjs +81 -0
  37. package/es/account/LedgerFactory.mjs.map +1 -0
  38. package/es/account/Memory.d.ts +13 -17
  39. package/es/account/Memory.mjs +43 -64
  40. package/es/account/Memory.mjs.map +1 -1
  41. package/es/account/Rpc.d.ts +6 -8
  42. package/es/account/Rpc.mjs +14 -32
  43. package/es/account/Rpc.mjs.map +1 -1
  44. package/es/aens.d.ts +4 -4
  45. package/es/aens.mjs +46 -41
  46. package/es/aens.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  48. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  50. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +22 -11
  51. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  53. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  54. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  55. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  56. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  57. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -42
  58. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  60. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/schema.mjs +14 -68
  62. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  63. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  64. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  65. package/es/apis/compiler/compiler.d.ts +23 -29
  66. package/es/apis/compiler/compiler.mjs +128 -189
  67. package/es/apis/compiler/compiler.mjs.map +1 -1
  68. package/es/apis/compiler/index.mjs.map +1 -1
  69. package/es/apis/compiler/models/index.d.ts +82 -135
  70. package/es/apis/compiler/models/index.mjs +1 -47
  71. package/es/apis/compiler/models/index.mjs.map +1 -1
  72. package/es/apis/compiler/models/mappers.d.ts +8 -8
  73. package/es/apis/compiler/models/mappers.mjs +165 -183
  74. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  75. package/es/apis/compiler/models/parameters.d.ts +0 -1
  76. package/es/apis/compiler/models/parameters.mjs +5 -9
  77. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  78. package/es/apis/node/index.mjs.map +1 -1
  79. package/es/apis/node/models/index.d.ts +48 -48
  80. package/es/apis/node/models/mappers.mjs +12 -6
  81. package/es/apis/node/models/mappers.mjs.map +1 -1
  82. package/es/apis/node/models/parameters.mjs.map +1 -1
  83. package/es/apis/node/node.mjs +43 -84
  84. package/es/apis/node/node.mjs.map +1 -1
  85. package/es/chain.d.ts +10 -2
  86. package/es/chain.mjs +37 -59
  87. package/es/chain.mjs.map +1 -1
  88. package/es/channel/Base.d.ts +200 -0
  89. package/es/channel/Base.mjs +293 -0
  90. package/es/channel/Base.mjs.map +1 -0
  91. package/es/channel/Contract.d.ts +248 -0
  92. package/es/channel/Contract.mjs +420 -0
  93. package/es/channel/Contract.mjs.map +1 -0
  94. package/es/channel/Spend.d.ts +219 -0
  95. package/es/channel/Spend.mjs +385 -0
  96. package/es/channel/Spend.mjs.map +1 -0
  97. package/es/channel/handlers.d.ts +8 -21
  98. package/es/channel/handlers.mjs +151 -899
  99. package/es/channel/handlers.mjs.map +1 -1
  100. package/es/channel/internal.d.ts +27 -21
  101. package/es/channel/internal.mjs +101 -191
  102. package/es/channel/internal.mjs.map +1 -1
  103. package/es/contract/Contract.d.ts +210 -0
  104. package/es/contract/Contract.mjs +551 -0
  105. package/es/contract/Contract.mjs.map +1 -0
  106. package/es/contract/compiler/Base.d.ts +81 -0
  107. package/es/contract/compiler/Base.mjs +5 -0
  108. package/es/contract/compiler/Base.mjs.map +1 -0
  109. package/es/contract/compiler/Cli.d.ts +23 -0
  110. package/es/contract/compiler/Cli.mjs +155 -0
  111. package/es/contract/compiler/Cli.mjs.map +1 -0
  112. package/es/contract/compiler/Http.d.ts +32 -0
  113. package/es/contract/compiler/Http.mjs +118 -0
  114. package/es/contract/compiler/Http.mjs.map +1 -0
  115. package/es/contract/compiler/HttpNode.d.ts +17 -0
  116. package/es/contract/compiler/HttpNode.mjs +26 -0
  117. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  118. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  119. package/es/contract/compiler/getFileSystem.mjs +40 -0
  120. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  121. package/es/contract/ga.d.ts +9 -34
  122. package/es/contract/ga.mjs +29 -112
  123. package/es/contract/ga.mjs.map +1 -1
  124. package/es/index-browser.d.ts +39 -0
  125. package/es/index-browser.mjs +55 -0
  126. package/es/index-browser.mjs.map +1 -0
  127. package/es/index.d.ts +4 -35
  128. package/es/index.mjs +4 -51
  129. package/es/index.mjs.map +1 -1
  130. package/es/oracle.d.ts +5 -5
  131. package/es/oracle.mjs +34 -40
  132. package/es/oracle.mjs.map +1 -1
  133. package/es/spend.d.ts +3 -3
  134. package/es/spend.mjs +18 -23
  135. package/es/spend.mjs.map +1 -1
  136. package/es/tx/builder/constants.d.ts +30 -2
  137. package/es/tx/builder/constants.mjs +43 -14
  138. package/es/tx/builder/constants.mjs.map +1 -1
  139. package/es/tx/builder/field-types/abi-version.d.ts +10 -0
  140. package/es/tx/builder/field-types/abi-version.mjs +20 -0
  141. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  142. package/es/tx/builder/field-types/address.d.ts +14 -0
  143. package/es/tx/builder/field-types/address.mjs +51 -0
  144. package/es/tx/builder/field-types/address.mjs.map +1 -0
  145. package/es/tx/builder/field-types/array.d.ts +7 -0
  146. package/es/tx/builder/field-types/array.mjs +11 -0
  147. package/es/tx/builder/field-types/array.mjs.map +1 -0
  148. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  149. package/es/tx/builder/field-types/boolean.mjs +13 -0
  150. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  151. package/es/tx/builder/field-types/coin-amount.d.ts +2 -3
  152. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  153. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  154. package/es/tx/builder/field-types/ct-version.d.ts +30 -0
  155. package/es/tx/builder/field-types/ct-version.mjs +48 -0
  156. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  157. package/es/tx/builder/field-types/deposit.d.ts +1 -2
  158. package/es/tx/builder/field-types/deposit.mjs +2 -4
  159. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  160. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  161. package/es/tx/builder/field-types/encoded.mjs +21 -0
  162. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  163. package/es/tx/builder/field-types/entry.d.ts +11 -0
  164. package/es/tx/builder/field-types/entry.mjs +31 -0
  165. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  166. package/es/tx/builder/field-types/enumeration.d.ts +7 -0
  167. package/es/tx/builder/field-types/enumeration.mjs +30 -0
  168. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  169. package/es/tx/builder/field-types/fee.d.ts +10 -15
  170. package/es/tx/builder/field-types/fee.mjs +31 -43
  171. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  172. package/es/tx/builder/field-types/field.mjs +0 -2
  173. package/es/tx/builder/field-types/field.mjs.map +1 -1
  174. package/es/tx/builder/field-types/gas-limit.d.ts +5 -2
  175. package/es/tx/builder/field-types/gas-limit.mjs +12 -14
  176. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  177. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  178. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  179. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  180. package/es/tx/builder/field-types/index.d.ts +80 -30
  181. package/es/tx/builder/field-types/index.mjs +34 -9
  182. package/es/tx/builder/field-types/index.mjs.map +1 -1
  183. package/es/tx/builder/field-types/mptree.d.ts +37 -0
  184. package/es/tx/builder/field-types/mptree.mjs +268 -0
  185. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  186. package/es/tx/builder/field-types/name-fee.d.ts +1 -3
  187. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  188. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  189. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  190. package/es/tx/builder/field-types/name-id.mjs +5 -10
  191. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  192. package/es/tx/builder/field-types/name.mjs +0 -2
  193. package/es/tx/builder/field-types/name.mjs.map +1 -1
  194. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  195. package/es/tx/builder/field-types/pointers.mjs +36 -0
  196. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  197. package/es/tx/builder/field-types/raw.d.ts +6 -0
  198. package/es/tx/builder/field-types/raw.mjs +13 -0
  199. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  200. package/es/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  201. package/es/tx/builder/field-types/short-u-int-const.mjs +16 -0
  202. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  203. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  204. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  205. package/es/tx/builder/field-types/string.d.ts +6 -0
  206. package/es/tx/builder/field-types/string.mjs +10 -0
  207. package/es/tx/builder/field-types/string.mjs.map +1 -0
  208. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  209. package/es/tx/builder/field-types/u-int.mjs +3 -4
  210. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  211. package/es/tx/builder/helpers.d.ts +2 -32
  212. package/es/tx/builder/helpers.mjs +19 -71
  213. package/es/tx/builder/helpers.mjs.map +1 -1
  214. package/es/tx/builder/index.d.ts +11 -49
  215. package/es/tx/builder/index.mjs +57 -337
  216. package/es/tx/builder/index.mjs.map +1 -1
  217. package/es/tx/builder/schema.d.ts +2367 -667
  218. package/es/tx/builder/schema.mjs +70 -145
  219. package/es/tx/builder/schema.mjs.map +1 -1
  220. package/es/tx/index.d.ts +4 -49
  221. package/es/tx/index.mjs +38 -112
  222. package/es/tx/index.mjs.map +1 -1
  223. package/es/tx/validator.d.ts +4 -6
  224. package/es/tx/validator.mjs +104 -90
  225. package/es/tx/validator.mjs.map +1 -1
  226. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  227. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  228. package/es/utils/amount-formatter.mjs +4 -10
  229. package/es/utils/amount-formatter.mjs.map +1 -1
  230. package/es/utils/autorest.d.ts +1 -0
  231. package/es/utils/autorest.mjs +17 -19
  232. package/es/utils/autorest.mjs.map +1 -1
  233. package/es/utils/bignumber.mjs +4 -7
  234. package/es/utils/bignumber.mjs.map +1 -1
  235. package/es/utils/bytes.d.ts +0 -17
  236. package/es/utils/bytes.mjs +6 -35
  237. package/es/utils/bytes.mjs.map +1 -1
  238. package/es/utils/crypto.d.ts +15 -8
  239. package/es/utils/crypto.mjs +40 -40
  240. package/es/utils/crypto.mjs.map +1 -1
  241. package/es/utils/encoder-types.d.ts +28 -28
  242. package/es/utils/encoder-types.mjs +0 -1
  243. package/es/utils/encoder-types.mjs.map +1 -1
  244. package/es/utils/encoder.d.ts +0 -1
  245. package/es/utils/encoder.mjs +7 -15
  246. package/es/utils/encoder.mjs.map +1 -1
  247. package/es/utils/errors.d.ts +15 -14
  248. package/es/utils/errors.mjs +86 -172
  249. package/es/utils/errors.mjs.map +1 -1
  250. package/es/utils/hd-wallet.d.ts +27 -19
  251. package/es/utils/hd-wallet.mjs +42 -26
  252. package/es/utils/hd-wallet.mjs.map +1 -1
  253. package/es/utils/json-big.mjs +0 -8
  254. package/es/utils/json-big.mjs.map +1 -1
  255. package/es/utils/keystore.d.ts +2 -0
  256. package/es/utils/keystore.mjs +37 -36
  257. package/es/utils/keystore.mjs.map +1 -1
  258. package/es/utils/other.d.ts +4 -2
  259. package/es/utils/other.mjs +11 -7
  260. package/es/utils/other.mjs.map +1 -1
  261. package/es/utils/semver-satisfies.mjs +0 -3
  262. package/es/utils/semver-satisfies.mjs.map +1 -1
  263. package/es/utils/string.d.ts +0 -12
  264. package/es/utils/string.mjs +1 -21
  265. package/es/utils/string.mjs.map +1 -1
  266. package/package.json +98 -51
  267. package/src/AeSdk.ts +15 -11
  268. package/src/AeSdkAepp.ts +9 -7
  269. package/src/AeSdkBase.ts +31 -202
  270. package/src/AeSdkMethods.ts +169 -0
  271. package/src/AeSdkWallet.ts +16 -47
  272. package/src/Node.ts +17 -18
  273. package/src/account/Base.ts +29 -75
  274. package/src/account/Generalized.ts +98 -0
  275. package/src/account/Ledger.ts +131 -0
  276. package/src/account/LedgerFactory.ts +86 -0
  277. package/src/account/Memory.ts +46 -60
  278. package/src/account/Rpc.ts +17 -26
  279. package/src/aens.ts +13 -11
  280. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +21 -9
  281. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  282. package/src/aepp-wallet-communication/rpc/RpcClient.ts +4 -4
  283. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  284. package/src/aepp-wallet-communication/schema.ts +18 -18
  285. package/src/apis/compiler/code-model-v4.yaml +681 -888
  286. package/src/apis/compiler/compiler.ts +113 -154
  287. package/src/apis/compiler/models/index.ts +80 -140
  288. package/src/apis/compiler/models/mappers.ts +165 -183
  289. package/src/apis/compiler/models/parameters.ts +6 -12
  290. package/src/chain.ts +11 -6
  291. package/src/channel/Base.ts +335 -0
  292. package/src/channel/Contract.ts +488 -0
  293. package/src/channel/Spend.ts +408 -0
  294. package/src/channel/handlers.ts +164 -582
  295. package/src/channel/internal.ts +114 -143
  296. package/src/contract/Contract.ts +610 -0
  297. package/src/contract/compiler/Base.ts +94 -0
  298. package/src/contract/compiler/Cli.ts +134 -0
  299. package/src/contract/compiler/Http.ts +124 -0
  300. package/src/contract/compiler/HttpNode.ts +26 -0
  301. package/src/contract/compiler/getFileSystem.ts +42 -0
  302. package/src/contract/ga.ts +23 -106
  303. package/src/index-browser.ts +58 -0
  304. package/src/index.ts +4 -55
  305. package/src/oracle.ts +8 -8
  306. package/src/spend.ts +6 -14
  307. package/src/tx/builder/constants.ts +33 -3
  308. package/src/tx/builder/field-types/abi-version.ts +21 -0
  309. package/src/tx/builder/field-types/address.ts +62 -0
  310. package/src/tx/builder/field-types/array.ts +19 -0
  311. package/src/tx/builder/field-types/boolean.ts +9 -0
  312. package/src/tx/builder/field-types/coin-amount.ts +4 -9
  313. package/src/tx/builder/field-types/ct-version.ts +50 -0
  314. package/src/tx/builder/field-types/deposit.ts +1 -1
  315. package/src/tx/builder/field-types/encoded.ts +27 -0
  316. package/src/tx/builder/field-types/entry.ts +31 -0
  317. package/src/tx/builder/field-types/enumeration.ts +32 -0
  318. package/src/tx/builder/field-types/fee.ts +39 -21
  319. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  320. package/src/tx/builder/field-types/gas-price.ts +0 -2
  321. package/src/tx/builder/field-types/index.ts +54 -15
  322. package/src/tx/builder/field-types/mptree.ts +242 -0
  323. package/src/tx/builder/field-types/name-fee.ts +2 -3
  324. package/src/tx/builder/field-types/name-id.ts +7 -10
  325. package/src/tx/builder/field-types/pointers.ts +41 -0
  326. package/src/tx/builder/field-types/raw.ts +9 -0
  327. package/src/tx/builder/field-types/short-u-int-const.ts +20 -0
  328. package/src/tx/builder/field-types/string.ts +11 -0
  329. package/src/tx/builder/field-types/u-int.ts +4 -5
  330. package/src/tx/builder/helpers.ts +10 -60
  331. package/src/tx/builder/index.ts +65 -308
  332. package/src/tx/builder/schema.ts +280 -341
  333. package/src/tx/index.ts +40 -103
  334. package/src/tx/validator.ts +91 -96
  335. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  336. package/src/utils/autorest.ts +16 -1
  337. package/src/utils/bytes.ts +6 -34
  338. package/src/utils/crypto.ts +23 -16
  339. package/src/utils/encoder.ts +0 -1
  340. package/src/utils/errors.ts +22 -25
  341. package/src/utils/hd-wallet.ts +30 -9
  342. package/src/utils/keystore.ts +24 -21
  343. package/src/utils/other.ts +16 -1
  344. package/src/utils/string.ts +0 -20
  345. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  346. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  347. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  348. package/types-legacy/ts4.2/AeSdkMethods.d.ts +140 -0
  349. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  350. package/types-legacy/ts4.2/Node.d.ts +78 -0
  351. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  352. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  353. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  354. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  355. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  356. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  357. package/types-legacy/ts4.2/aens.d.ts +222 -0
  358. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  359. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  360. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  361. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  362. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  363. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  364. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  365. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  366. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  367. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  368. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  369. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  370. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  371. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  372. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  373. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  374. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  375. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  376. package/types-legacy/ts4.2/chain.d.ts +256 -0
  377. package/types-legacy/ts4.2/channel/Base.d.ts +199 -0
  378. package/types-legacy/ts4.2/channel/Contract.d.ts +248 -0
  379. package/types-legacy/ts4.2/channel/Spend.d.ts +219 -0
  380. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  381. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  382. package/types-legacy/ts4.2/contract/Contract.d.ts +212 -0
  383. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +81 -0
  384. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  385. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  386. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  387. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  388. package/types-legacy/ts4.2/contract/ga.d.ts +44 -0
  389. package/types-legacy/ts4.2/globals.d.ts +16 -0
  390. package/types-legacy/ts4.2/index-browser.d.ts +39 -0
  391. package/types-legacy/ts4.2/index.d.ts +5 -0
  392. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  393. package/types-legacy/ts4.2/spend.d.ts +62 -0
  394. package/types-legacy/ts4.2/tx/builder/constants.d.ts +98 -0
  395. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +10 -0
  396. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +21 -0
  397. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  398. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  399. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  400. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +42 -0
  401. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  402. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  403. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  404. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +7 -0
  405. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +20 -0
  406. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  407. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +15 -0
  408. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  409. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +129 -0
  410. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +43 -0
  411. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +18 -0
  412. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  413. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  414. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  415. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  416. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  417. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  418. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  419. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +7 -0
  420. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  421. package/types-legacy/ts4.2/tx/builder/index.d.ts +50 -0
  422. package/types-legacy/ts4.2/tx/builder/schema.d.ts +4675 -0
  423. package/types-legacy/ts4.2/tx/index.d.ts +19 -0
  424. package/types-legacy/ts4.2/tx/validator.d.ts +18 -0
  425. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  426. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  427. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  428. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  429. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  430. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  431. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  432. package/types-legacy/ts4.2/utils/errors.d.ts +475 -0
  433. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  434. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  435. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  436. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  437. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  438. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  439. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  440. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  441. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  442. package/types-legacy/ts4.5/AeSdkMethods.d.ts +140 -0
  443. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  444. package/types-legacy/ts4.5/Node.d.ts +78 -0
  445. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  446. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  447. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  448. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  449. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  450. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  451. package/types-legacy/ts4.5/aens.d.ts +222 -0
  452. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  453. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  454. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  455. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  456. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  457. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  458. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  459. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  460. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  461. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  462. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  463. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  464. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  465. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  466. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  467. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  468. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  469. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  470. package/types-legacy/ts4.5/chain.d.ts +256 -0
  471. package/types-legacy/ts4.5/channel/Base.d.ts +199 -0
  472. package/types-legacy/ts4.5/channel/Contract.d.ts +248 -0
  473. package/types-legacy/ts4.5/channel/Spend.d.ts +219 -0
  474. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  475. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  476. package/types-legacy/ts4.5/contract/Contract.d.ts +212 -0
  477. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +81 -0
  478. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  479. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  480. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  481. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  482. package/types-legacy/ts4.5/contract/ga.d.ts +44 -0
  483. package/types-legacy/ts4.5/index-browser.d.ts +39 -0
  484. package/types-legacy/ts4.5/index.d.ts +4 -0
  485. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  486. package/types-legacy/ts4.5/spend.d.ts +62 -0
  487. package/types-legacy/ts4.5/tx/builder/constants.d.ts +98 -0
  488. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +10 -0
  489. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +21 -0
  490. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  491. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  492. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  493. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +42 -0
  494. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  495. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  496. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  497. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +7 -0
  498. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +20 -0
  499. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  500. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +15 -0
  501. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  502. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +129 -0
  503. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +43 -0
  504. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +18 -0
  505. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  506. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  507. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  508. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  509. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  510. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  511. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  512. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +7 -0
  513. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  514. package/types-legacy/ts4.5/tx/builder/index.d.ts +50 -0
  515. package/types-legacy/ts4.5/tx/builder/schema.d.ts +4675 -0
  516. package/types-legacy/ts4.5/tx/index.d.ts +19 -0
  517. package/types-legacy/ts4.5/tx/validator.d.ts +18 -0
  518. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  519. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  520. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  521. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  522. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  523. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  524. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  525. package/types-legacy/ts4.5/utils/errors.d.ts +475 -0
  526. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  527. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  528. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  529. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  530. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  531. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  532. package/es/channel/index.d.ts +0 -625
  533. package/es/channel/index.mjs +0 -975
  534. package/es/channel/index.mjs.map +0 -1
  535. package/es/contract/Compiler.d.ts +0 -18
  536. package/es/contract/Compiler.mjs +0 -68
  537. package/es/contract/Compiler.mjs.map +0 -1
  538. package/es/contract/aci.d.ts +0 -127
  539. package/es/contract/aci.mjs +0 -508
  540. package/es/contract/aci.mjs.map +0 -1
  541. package/es/contract/methods.d.ts +0 -71
  542. package/es/contract/methods.mjs +0 -104
  543. package/es/contract/methods.mjs.map +0 -1
  544. package/es/deprecated/index.d.ts +0 -143
  545. package/es/deprecated/index.mjs +0 -162
  546. package/es/deprecated/index.mjs.map +0 -1
  547. package/es/deprecated/methods.d.ts +0 -18
  548. package/es/deprecated/methods.mjs +0 -26
  549. package/es/deprecated/methods.mjs.map +0 -1
  550. package/es/tx/builder/address.d.ts +0 -25
  551. package/es/tx/builder/address.mjs +0 -45
  552. package/es/tx/builder/address.mjs.map +0 -1
  553. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  554. package/es/utils/mptree.d.ts +0 -26
  555. package/es/utils/mptree.mjs +0 -165
  556. package/es/utils/mptree.mjs.map +0 -1
  557. package/src/channel/index.ts +0 -1025
  558. package/src/contract/Compiler.ts +0 -67
  559. package/src/contract/aci.ts +0 -537
  560. package/src/contract/methods.ts +0 -123
  561. package/src/deprecated/index.ts +0 -172
  562. package/src/deprecated/methods.ts +0 -25
  563. package/src/tx/builder/address.ts +0 -50
  564. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
  565. package/src/utils/mptree.ts +0 -145
@@ -1,508 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2022 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
- import _aeternityAeppCalldata from '@aeternity/aepp-calldata';
18
- const {
19
- Encoder: Calldata
20
- } = _aeternityAeppCalldata;
21
- import { DRY_RUN_ACCOUNT, AMOUNT } from "../tx/builder/schema.mjs";
22
- import { Tag } from "../tx/builder/constants.mjs";
23
- import { buildContractIdByContractTx, unpackTx } from "../tx/builder/index.mjs";
24
- import { _buildTx } from "../tx/index.mjs";
25
- import { send } from "../spend.mjs";
26
- import { decode } from "../utils/encoder.mjs";
27
- import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError, UnexpectedTsError, InternalError } from "../utils/errors.mjs";
28
- import { hash as calcHash } from "../utils/crypto.mjs";
29
- import { getAccount, getContract, getContractByteCode, getKeyBlock, resolveName, txDryRun } from "../chain.mjs";
30
-
31
- /**
32
- * Generate contract ACI object with predefined js methods for contract usage - can be used for
33
- * creating a reference to already deployed contracts
34
- * @category contract
35
- * @param options - Options object
36
- * @returns JS Contract API
37
- * @example
38
- * ```js
39
- * const contractIns = await aeSdk.getContractInstance({ source })
40
- * await contractIns.deploy([321]) or await contractIns.methods.init(321)
41
- * const callResult = await contractIns.call('setState', [123]) or
42
- * await contractIns.methods.setState.send(123, options)
43
- * const staticCallResult = await contractIns.call('setState', [123], { callStatic: true }) or
44
- * await contractIns.methods.setState.get(123, options)
45
- * ```
46
- * Also you can call contract like: `await contractIns.methods.setState(123, options)`
47
- * Then sdk decide to make on-chain or static call(dry-run API) transaction based on function is
48
- * stateful or not
49
- */
50
- export default async function getContractInstance(_ref) {
51
- let {
52
- onAccount,
53
- onCompiler,
54
- onNode,
55
- source,
56
- bytecode,
57
- aci: _aci,
58
- contractAddress,
59
- fileSystem = {},
60
- validateBytecode,
61
- ...otherOptions
62
- } = _ref;
63
-
64
- if (_aci == null && source != null) {
65
- // TODO: should be fixed when the compiledAci interface gets updated
66
- _aci = await onCompiler.generateACI({
67
- code: source,
68
- options: {
69
- fileSystem
70
- }
71
- });
72
- }
73
-
74
- if (_aci == null) throw new MissingContractDefError();
75
-
76
- if (contractAddress != null) {
77
- contractAddress = await resolveName(contractAddress, 'contract_pubkey', {
78
- resolveByNode: true,
79
- onNode
80
- });
81
- }
82
-
83
- if (contractAddress == null && source == null && bytecode == null) {
84
- throw new MissingContractAddressError('Can\'t create instance by ACI without address');
85
- }
86
-
87
- if (contractAddress != null) {
88
- const contract = await getContract(contractAddress, {
89
- onNode
90
- });
91
- if (contract.active == null) throw new InactiveContractError(contractAddress);
92
- }
93
-
94
- const instance = {
95
- _aci,
96
- _name: _aci.encodedAci.contract.name,
97
- calldata: new Calldata([_aci.encodedAci, ..._aci.externalEncodedAci]),
98
- source,
99
- bytecode,
100
- deployInfo: {
101
- address: contractAddress
102
- },
103
- options: {
104
- onAccount,
105
- onCompiler,
106
- onNode,
107
- amount: AMOUNT,
108
- callStatic: false,
109
- fileSystem,
110
- ...otherOptions
111
- },
112
-
113
- /* eslint-disable @typescript-eslint/no-unused-vars */
114
-
115
- /* eslint-disable @typescript-eslint/no-empty-function */
116
- async compile(_options) {},
117
-
118
- async _estimateGas(_name, _params, _options) {},
119
-
120
- async deploy(_params, _options) {},
121
-
122
- async call(_fn, _params, _options) {},
123
-
124
- decodeEvents(_events, options) {},
125
-
126
- /* eslint-enable @typescript-eslint/no-unused-vars */
127
-
128
- /* eslint-enable @typescript-eslint/no-empty-function */
129
- methods: undefined
130
- };
131
-
132
- if (validateBytecode != null) {
133
- if (contractAddress == null) throw new MissingContractAddressError('Can\'t validate bytecode without contract address');
134
- const onChanBytecode = (await getContractByteCode(contractAddress, {
135
- onNode
136
- })).bytecode;
137
- const isValid = source != null ? await onCompiler.validateByteCode({
138
- bytecode: onChanBytecode,
139
- source,
140
- options: instance.options
141
- }).then(() => true, () => false) : bytecode === onChanBytecode;
142
- if (!isValid) throw new BytecodeMismatchError(source != null ? 'source' : 'bytecode');
143
- }
144
- /**
145
- * Compile contract
146
- * @returns bytecode
147
- */
148
-
149
-
150
- instance.compile = async function () {
151
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
152
- if (instance.bytecode != null) throw new IllegalArgumentError('Contract already compiled');
153
- if (instance.source == null) throw new IllegalArgumentError('Can\'t compile without source code');
154
- instance.bytecode = (await onCompiler.compileContract({
155
- code: instance.source,
156
- options: { ...instance.options,
157
- ...options
158
- }
159
- })).bytecode;
160
- return instance.bytecode;
161
- };
162
-
163
- const handleCallError = (_ref2, transaction) => {
164
- let {
165
- returnType,
166
- returnValue
167
- } = _ref2;
168
- let message;
169
-
170
- switch (returnType) {
171
- case 'ok':
172
- return;
173
-
174
- case 'revert':
175
- message = instance.calldata.decodeFateString(returnValue);
176
- break;
177
-
178
- case 'error':
179
- message = decode(returnValue).toString();
180
- break;
181
-
182
- default:
183
- throw new InternalError(`Unknown return type: ${returnType}`);
184
- }
185
-
186
- throw new NodeInvocationError(message, transaction);
187
- };
188
-
189
- const sendAndProcess = async (tx, options) => {
190
- options = { ...instance.options,
191
- ...options
192
- };
193
- const txData = await send(tx, options);
194
- const result = {
195
- hash: txData.hash,
196
- tx: unpackTx(txData.rawTx),
197
- txData,
198
- rawTx: txData.rawTx
199
- };
200
- if (txData.blockHeight == null) return result;
201
- const {
202
- callInfo
203
- } = await onNode.getTransactionInfoByHash(txData.hash);
204
- Object.assign(result.txData, callInfo); // TODO: don't duplicate data in result
205
- // @ts-expect-error TODO api should be updated to match types
206
-
207
- handleCallError(callInfo, tx);
208
- return { ...result,
209
- result: callInfo
210
- };
211
- };
212
-
213
- instance._estimateGas = async (name, params, options) => {
214
- const {
215
- result: {
216
- gasUsed
217
- }
218
- } = await instance.call(name, params, { ...options,
219
- callStatic: true
220
- }); // taken from https://github.com/aeternity/aepp-sdk-js/issues/1286#issuecomment-977814771
221
-
222
- return Math.floor(gasUsed * 1.25);
223
- };
224
- /**
225
- * Deploy contract
226
- * @param params - Contract init function arguments array
227
- * @param options - Options
228
- * @returns deploy info
229
- */
230
-
231
-
232
- instance.deploy = async function () {
233
- var _opt$gasLimit;
234
-
235
- let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
236
- let options = arguments.length > 1 ? arguments[1] : undefined;
237
- const opt = { ...instance.options,
238
- ...options
239
- };
240
- if (instance.bytecode == null) await instance.compile(opt); // @ts-expect-error TODO: need to fix compatibility between return types of `deploy` and `call`
241
-
242
- if (opt.callStatic === true) return instance.call('init', params, opt);
243
- if (instance.deployInfo.address != null) throw new DuplicateContractError();
244
- const ownerId = await opt.onAccount.address(options);
245
- const tx = await _buildTx(Tag.ContractCreateTx, { ...opt,
246
- gasLimit: (_opt$gasLimit = opt.gasLimit) !== null && _opt$gasLimit !== void 0 ? _opt$gasLimit : await instance._estimateGas('init', params, opt),
247
- callData: instance.calldata.encode(instance._name, 'init', params),
248
- code: instance.bytecode,
249
- ownerId,
250
- onNode
251
- });
252
- const contractId = buildContractIdByContractTx(tx);
253
- const {
254
- hash,
255
- rawTx,
256
- result,
257
- txData
258
- } = await sendAndProcess(tx, opt);
259
- instance.deployInfo = Object.freeze({
260
- result,
261
- owner: ownerId,
262
- transaction: hash,
263
- rawTx,
264
- txData,
265
- address: contractId
266
- });
267
- return instance.deployInfo;
268
- };
269
- /**
270
- * Get function schema from contract ACI object
271
- * @param name - Function name
272
- * @returns function ACI
273
- */
274
-
275
-
276
- function getFunctionACI(name) {
277
- const fn = instance._aci.encodedAci.contract.functions.find(f => f.name === name);
278
-
279
- if (fn != null) {
280
- return fn;
281
- }
282
-
283
- if (name === 'init') return {
284
- payable: false
285
- };
286
- throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
287
- }
288
- /**
289
- * Call contract function
290
- * @param fn - Function name
291
- * @param params - Array of function arguments
292
- * @param options - Array of function arguments
293
- * @returns CallResult
294
- */
295
-
296
-
297
- instance.call = async function (fn) {
298
- let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
299
- let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
300
- const opt = { ...instance.options,
301
- ...options
302
- };
303
- const fnACI = getFunctionACI(fn);
304
- const contractId = instance.deployInfo.address;
305
- if (fn == null) throw new MissingFunctionNameError();
306
- if (fn === 'init' && opt.callStatic === false) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
307
- if (contractId == null && fn !== 'init') throw new InvalidMethodInvocationError('You need to deploy contract before calling!');
308
- if (fn !== 'init' && opt.amount > 0 && fnACI.payable === false) throw new NotPayableFunctionError(opt.amount, fn);
309
- const callerId = await Promise.resolve().then(() => opt.onAccount.address(opt)).catch(error => {
310
- if (opt.callStatic === true) return DRY_RUN_ACCOUNT.pub;
311
- throw error;
312
- });
313
- const callData = instance.calldata.encode(instance._name, fn, params);
314
- let res;
315
-
316
- if (opt.callStatic === true) {
317
- if (typeof opt.top === 'number') {
318
- opt.top = (await getKeyBlock(opt.top, {
319
- onNode
320
- })).hash;
321
- }
322
-
323
- const txOpt = { ...opt,
324
- onNode,
325
- callData
326
- };
327
-
328
- if (opt.nonce == null && opt.top != null) {
329
- opt.nonce = (await getAccount(callerId, {
330
- hash: opt.top,
331
- onNode
332
- })).nonce + 1;
333
- }
334
-
335
- const tx = await (fn === 'init' ? _buildTx(Tag.ContractCreateTx, { ...txOpt,
336
- code: instance.bytecode,
337
- ownerId: callerId
338
- }) : _buildTx(Tag.ContractCallTx, { ...txOpt,
339
- callerId,
340
- contractId
341
- }));
342
- const {
343
- callObj,
344
- ...dryRunOther
345
- } = await txDryRun(tx, callerId, {
346
- onNode,
347
- ...opt
348
- });
349
- if (callObj == null) throw new UnexpectedTsError();
350
- handleCallError({
351
- returnType: callObj.returnType,
352
- returnValue: callObj.returnValue
353
- }, tx);
354
- res = { ...dryRunOther,
355
- tx: unpackTx(tx),
356
- result: callObj
357
- };
358
- } else {
359
- var _opt$gasLimit2;
360
-
361
- const tx = await _buildTx(Tag.ContractCallTx, { ...opt,
362
- onNode,
363
- gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await instance._estimateGas(fn, params, opt),
364
- callerId,
365
- contractId,
366
- callData
367
- });
368
- res = await sendAndProcess(tx, opt);
369
- }
370
-
371
- if (opt.callStatic === true || res.txData.blockHeight != null) {
372
- res.decodedResult = fnACI.returns != null && fnACI.returns !== 'unit' && fn !== 'init' && instance.calldata.decode(instance._name, fn, res.result.returnValue);
373
- res.decodedEvents = instance.decodeEvents(res.result.log, opt);
374
- }
375
-
376
- return res;
377
- };
378
- /**
379
- * @param address - Contract address that emitted event
380
- * @param nameHash - Hash of emitted event name
381
- * @param options - Options
382
- * @returns Contract name
383
- * @throws {@link MissingEventDefinitionError}
384
- * @throws {@link AmbiguousEventDefinitionError}
385
- */
386
-
387
-
388
- function getContractNameByEvent(address, nameHash, _ref3) {
389
- let {
390
- contractAddressToName
391
- } = _ref3;
392
- const addressToName = { ...instance.options.contractAddressToName,
393
- ...contractAddressToName
394
- };
395
- if (addressToName[address] != null) return addressToName[address];
396
- const matchedEvents = [instance._aci.encodedAci, ...instance._aci.externalEncodedAci].filter(_ref4 => {
397
- let {
398
- contract
399
- } = _ref4;
400
- return contract === null || contract === void 0 ? void 0 : contract.event;
401
- }).map(_ref5 => {
402
- let {
403
- contract
404
- } = _ref5;
405
- return [contract.name, contract.event.variant];
406
- }).map(_ref6 => {
407
- let [name, events] = _ref6;
408
- return events.map(event => [name, Object.keys(event)[0]]);
409
- }).flat().filter(_ref7 => {
410
- let [, eventName] = _ref7;
411
- return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
412
- });
413
-
414
- switch (matchedEvents.length) {
415
- case 0:
416
- throw new MissingEventDefinitionError(nameHash.toString(), address);
417
-
418
- case 1:
419
- return matchedEvents[0][0];
420
-
421
- default:
422
- throw new AmbiguousEventDefinitionError(address, matchedEvents);
423
- }
424
- }
425
- /**
426
- * Decode Events
427
- * @param events - Array of encoded events (callRes.result.log)
428
- * @param options - Options
429
- * @returns DecodedEvents
430
- */
431
-
432
-
433
- instance.decodeEvents = function (events) {
434
- let {
435
- omitUnknown,
436
- ...opt
437
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
438
- return events.map(event => {
439
- const topics = event.topics.map(t => BigInt(t));
440
- let contractName;
441
-
442
- try {
443
- contractName = getContractNameByEvent(event.address, topics[0], opt);
444
- } catch (error) {
445
- if ((omitUnknown !== null && omitUnknown !== void 0 ? omitUnknown : false) && error instanceof MissingEventDefinitionError) return null;
446
- throw error;
447
- }
448
-
449
- const decoded = instance.calldata.decodeEvent(contractName, event.data, topics);
450
- const [name, args] = Object.entries(decoded)[0];
451
- return {
452
- name,
453
- args,
454
- contract: {
455
- name: contractName,
456
- address: event.address
457
- }
458
- };
459
- }).filter(e => e != null);
460
- };
461
- /**
462
- * Generate proto function based on contract function using Contract ACI schema
463
- * All function can be called like:
464
- * ```js
465
- * await contract.methods.testFunction()
466
- * ```
467
- * then sdk will decide to use dry-run or send tx
468
- * on-chain base on if function stateful or not.
469
- * Also, you can manually do that:
470
- * ```js
471
- * await contract.methods.testFunction.get() // use call-static (dry-run)
472
- * await contract.methods.testFunction.send() // send tx on-chain
473
- * ```
474
- */
475
-
476
-
477
- instance.methods = Object.fromEntries(instance._aci.encodedAci.contract.functions.map(_ref8 => {
478
- let {
479
- name,
480
- arguments: aciArgs,
481
- stateful
482
- } = _ref8;
483
-
484
- const genHandler = callStatic => async function () {
485
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
486
- args[_key] = arguments[_key];
487
- }
488
-
489
- const options = args.length === aciArgs.length + 1 ? args.pop() : {};
490
- if (typeof options !== 'object') throw new TypeError(`Options should be an object: ${options}`);
491
- if (name === 'init') return instance.deploy(args, {
492
- callStatic,
493
- ...options
494
- });
495
- return instance.call(name, args, {
496
- callStatic,
497
- ...options
498
- });
499
- };
500
-
501
- return [name, Object.assign(genHandler(name === 'init' ? false : !stateful), {
502
- get: genHandler(true),
503
- send: genHandler(false)
504
- })];
505
- }));
506
- return instance;
507
- }
508
- //# sourceMappingURL=aci.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aci.mjs","names":["DRY_RUN_ACCOUNT","AMOUNT","Tag","buildContractIdByContractTx","unpackTx","_buildTx","send","decode","MissingContractDefError","MissingContractAddressError","InactiveContractError","BytecodeMismatchError","DuplicateContractError","MissingFunctionNameError","InvalidMethodInvocationError","NotPayableFunctionError","TypeError","NodeInvocationError","IllegalArgumentError","NoSuchContractFunctionError","MissingEventDefinitionError","AmbiguousEventDefinitionError","UnexpectedTsError","InternalError","hash","calcHash","getAccount","getContract","getContractByteCode","getKeyBlock","resolveName","txDryRun","getContractInstance","onAccount","onCompiler","onNode","source","bytecode","aci","_aci","contractAddress","fileSystem","validateBytecode","otherOptions","generateACI","code","options","resolveByNode","contract","active","instance","_name","encodedAci","name","calldata","Calldata","externalEncodedAci","deployInfo","address","amount","callStatic","compile","_options","_estimateGas","_params","deploy","call","_fn","decodeEvents","_events","methods","undefined","onChanBytecode","isValid","validateByteCode","then","compileContract","handleCallError","transaction","returnType","returnValue","message","decodeFateString","toString","sendAndProcess","tx","txData","result","rawTx","blockHeight","callInfo","getTransactionInfoByHash","Object","assign","params","gasUsed","Math","floor","opt","ownerId","ContractCreateTx","gasLimit","callData","encode","contractId","freeze","owner","getFunctionACI","fn","functions","find","f","payable","fnACI","callerId","Promise","resolve","catch","error","pub","res","top","txOpt","nonce","ContractCallTx","callObj","dryRunOther","decodedResult","returns","decodedEvents","log","getContractNameByEvent","nameHash","contractAddressToName","addressToName","matchedEvents","filter","event","map","variant","events","keys","flat","eventName","BigInt","length","omitUnknown","topics","t","contractName","decoded","decodeEvent","data","args","entries","e","fromEntries","arguments","aciArgs","stateful","genHandler","pop","get"],"sources":["../../src/contract/aci.ts"],"sourcesContent":["/*\n* ISC License (ISC)\n* Copyright (c) 2022 aeternity developers\n*\n* Permission to use, copy, modify, and/or distribute this software for any\n* purpose with or without fee is hereby granted, provided that the above\n* copyright notice and this permission notice appear in all copies.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n* PERFORMANCE OF THIS SOFTWARE.\n*/\nimport { Encoder as Calldata } from '@aeternity/aepp-calldata';\nimport { DRY_RUN_ACCOUNT, AMOUNT } from '../tx/builder/schema';\nimport { Tag, AensName } from '../tx/builder/constants';\nimport { buildContractIdByContractTx, unpackTx } from '../tx/builder';\nimport { _buildTx } from '../tx';\nimport { send } from '../spend';\nimport { decode, Encoded } from '../utils/encoder';\nimport {\n MissingContractDefError,\n MissingContractAddressError,\n InactiveContractError,\n BytecodeMismatchError,\n DuplicateContractError,\n MissingFunctionNameError,\n InvalidMethodInvocationError,\n NotPayableFunctionError,\n TypeError,\n NodeInvocationError,\n IllegalArgumentError,\n NoSuchContractFunctionError,\n MissingEventDefinitionError,\n AmbiguousEventDefinitionError,\n UnexpectedTsError,\n InternalError,\n} from '../utils/errors';\nimport { hash as calcHash } from '../utils/crypto';\nimport { Aci as BaseAci } from '../apis/compiler';\nimport { ContractCallReturnType } from '../apis/node';\nimport Compiler from './Compiler';\nimport Node from '../Node';\nimport {\n getAccount, getContract, getContractByteCode, getKeyBlock, resolveName, txDryRun,\n} from '../chain';\nimport AccountBase from '../account/Base';\n\ninterface FunctionACI {\n arguments: any[];\n name: string;\n payable: boolean;\n returns: string;\n stateful: boolean;\n}\n\ninterface Aci extends BaseAci {\n encodedAci: {\n contract: {\n name: string;\n event: any;\n kind: string;\n state: any;\n type_defs: any[];\n functions: FunctionACI[];\n };\n };\n externalEncodedAci: any[];\n}\n\ninterface Event {\n address: Encoded.ContractAddress;\n data: string;\n topics: Array<string | number>;\n}\n\ninterface DecodedEvent {\n name: string;\n args: unknown;\n contract: {\n name: string;\n address: Encoded.ContractAddress;\n };\n}\n\ntype TxData = Awaited<ReturnType<typeof send>>;\n\nexport interface ContractInstance {\n _aci: Aci;\n _name: string;\n calldata: any;\n source?: string;\n bytecode?: Encoded.ContractBytearray;\n deployInfo: {\n address?: Encoded.ContractAddress;\n result?: {\n callerId: string;\n callerNonce: string;\n contractId: string;\n gasPrice: bigint;\n gasUsed: number;\n height: number;\n log: any[];\n returnType: ContractCallReturnType;\n returnValue: string;\n };\n owner?: Encoded.AccountAddress;\n transaction?: string;\n rawTx?: string;\n txData?: TxData;\n };\n options: any;\n compile: (options?: {}) => Promise<Encoded.ContractBytearray>;\n _estimateGas: (name: string, params: any[], options: object) => Promise<number>;\n deploy: (params?: any[], options?: object) => Promise<any>;\n call: (fn: string, params?: any[], options?: {}) => Promise<{\n hash: string;\n tx: any;\n txData: TxData;\n rawTx: string;\n result: {\n callerId: Encoded.AccountAddress;\n callerNonce: number;\n contractId: Encoded.ContractAddress;\n gasPrice: number;\n gasUsed: number;\n height: number;\n log: any[];\n returnType: ContractCallReturnType;\n returnValue: string;\n };\n decodedResult: any;\n decodedEvents: DecodedEvent[];\n }>;\n decodeEvents: (\n events: Event[], options?: { omitUnknown?: boolean; contractAddressToName?: any }\n ) => DecodedEvent[];\n methods: any;\n}\n\n/**\n * Generate contract ACI object with predefined js methods for contract usage - can be used for\n * creating a reference to already deployed contracts\n * @category contract\n * @param options - Options object\n * @returns JS Contract API\n * @example\n * ```js\n * const contractIns = await aeSdk.getContractInstance({ source })\n * await contractIns.deploy([321]) or await contractIns.methods.init(321)\n * const callResult = await contractIns.call('setState', [123]) or\n * await contractIns.methods.setState.send(123, options)\n * const staticCallResult = await contractIns.call('setState', [123], { callStatic: true }) or\n * await contractIns.methods.setState.get(123, options)\n * ```\n * Also you can call contract like: `await contractIns.methods.setState(123, options)`\n * Then sdk decide to make on-chain or static call(dry-run API) transaction based on function is\n * stateful or not\n */\nexport default async function getContractInstance({\n onAccount,\n onCompiler,\n onNode,\n source,\n bytecode,\n aci: _aci,\n contractAddress,\n fileSystem = {},\n validateBytecode,\n ...otherOptions\n}: {\n onAccount?: AccountBase;\n onCompiler: Compiler;\n onNode: Node;\n source?: string;\n bytecode?: Encoded.ContractBytearray;\n aci?: Aci;\n contractAddress?: Encoded.ContractAddress | AensName;\n fileSystem?: Record<string, string>;\n validateBytecode?: boolean;\n [key: string]: any;\n}): Promise<ContractInstance> {\n if (_aci == null && source != null) {\n // TODO: should be fixed when the compiledAci interface gets updated\n _aci = await onCompiler.generateACI({ code: source, options: { fileSystem } }) as Aci;\n }\n if (_aci == null) throw new MissingContractDefError();\n\n if (contractAddress != null) {\n contractAddress = await resolveName(\n contractAddress,\n 'contract_pubkey',\n { resolveByNode: true, onNode },\n ) as Encoded.ContractAddress;\n }\n\n if (contractAddress == null && source == null && bytecode == null) {\n throw new MissingContractAddressError('Can\\'t create instance by ACI without address');\n }\n\n if (contractAddress != null) {\n const contract = await getContract(contractAddress, { onNode });\n if (contract.active == null) throw new InactiveContractError(contractAddress);\n }\n\n const instance: ContractInstance = {\n _aci,\n _name: _aci.encodedAci.contract.name,\n calldata: new Calldata([_aci.encodedAci, ..._aci.externalEncodedAci]),\n source,\n bytecode,\n deployInfo: { address: contractAddress },\n options: {\n onAccount,\n onCompiler,\n onNode,\n amount: AMOUNT,\n callStatic: false,\n fileSystem,\n ...otherOptions,\n },\n /* eslint-disable @typescript-eslint/no-unused-vars */\n /* eslint-disable @typescript-eslint/no-empty-function */\n async compile(_options?: {}): Promise<any> {},\n async _estimateGas(_name: string, _params: any[], _options: object): Promise<any> {},\n async deploy(_params?: any[], _options?: any): Promise<any> {},\n async call(_fn: string, _params?: any[], _options?: {}): Promise<any> {},\n decodeEvents(_events: Event[], options?: { omitUnknown?: boolean }): any {},\n /* eslint-enable @typescript-eslint/no-unused-vars */\n /* eslint-enable @typescript-eslint/no-empty-function */\n methods: undefined,\n };\n\n if (validateBytecode != null) {\n if (contractAddress == null) throw new MissingContractAddressError('Can\\'t validate bytecode without contract address');\n const onChanBytecode = (await getContractByteCode(contractAddress, { onNode })).bytecode;\n const isValid: boolean = source != null\n ? await onCompiler.validateByteCode(\n { bytecode: onChanBytecode, source, options: instance.options },\n ).then(() => true, () => false)\n : bytecode === onChanBytecode;\n if (!isValid) throw new BytecodeMismatchError(source != null ? 'source' : 'bytecode');\n }\n\n /**\n * Compile contract\n * @returns bytecode\n */\n instance.compile = async (options = {}): Promise<Encoded.ContractBytearray> => {\n if (instance.bytecode != null) throw new IllegalArgumentError('Contract already compiled');\n if (instance.source == null) throw new IllegalArgumentError('Can\\'t compile without source code');\n instance.bytecode = (await onCompiler.compileContract({\n code: instance.source, options: { ...instance.options, ...options },\n })).bytecode as Encoded.ContractBytearray;\n return instance.bytecode;\n };\n\n const handleCallError = (\n { returnType, returnValue }: {\n returnType: ContractCallReturnType;\n returnValue: Encoded.ContractBytearray;\n },\n transaction: string,\n ): void => {\n let message: string;\n switch (returnType) {\n case 'ok': return;\n case 'revert':\n message = instance.calldata.decodeFateString(returnValue);\n break;\n case 'error':\n message = decode(returnValue).toString();\n break;\n default:\n throw new InternalError(`Unknown return type: ${returnType}`);\n }\n throw new NodeInvocationError(message, transaction);\n };\n\n const sendAndProcess = async (tx: Encoded.Transaction, options: any): Promise<{\n result?: ContractInstance['deployInfo']['result'];\n hash: TxData['hash'];\n tx: Awaited<ReturnType<typeof unpackTx<Tag.ContractCallTx | Tag.ContractCreateTx>>>;\n txData: TxData;\n rawTx: Encoded.Transaction;\n }> => {\n options = { ...instance.options, ...options };\n const txData = await send(tx, options);\n const result = {\n hash: txData.hash,\n tx: unpackTx<Tag.ContractCallTx | Tag.ContractCreateTx>(txData.rawTx),\n txData,\n rawTx: txData.rawTx,\n };\n if (txData.blockHeight == null) return result;\n const { callInfo } = await onNode.getTransactionInfoByHash(txData.hash);\n Object.assign(result.txData, callInfo); // TODO: don't duplicate data in result\n // @ts-expect-error TODO api should be updated to match types\n handleCallError(callInfo, tx);\n return { ...result, result: callInfo };\n };\n\n instance._estimateGas = async (name: string, params: any[], options: object): Promise<number> => {\n const { result: { gasUsed } } = await instance\n .call(name, params, { ...options, callStatic: true });\n // taken from https://github.com/aeternity/aepp-sdk-js/issues/1286#issuecomment-977814771\n return Math.floor(gasUsed * 1.25);\n };\n\n /**\n * Deploy contract\n * @param params - Contract init function arguments array\n * @param options - Options\n * @returns deploy info\n */\n instance.deploy = async (\n params = [],\n options?:\n Parameters<typeof instance.compile>[0] &\n Parameters<typeof instance.call>[2] &\n Parameters<AccountBase['address']>[0] &\n Parameters<typeof sendAndProcess>[1],\n ): Promise<ContractInstance['deployInfo']> => {\n const opt = { ...instance.options, ...options };\n if (instance.bytecode == null) await instance.compile(opt);\n // @ts-expect-error TODO: need to fix compatibility between return types of `deploy` and `call`\n if (opt.callStatic === true) return instance.call('init', params, opt);\n if (instance.deployInfo.address != null) throw new DuplicateContractError();\n\n const ownerId = await opt.onAccount.address(options);\n const tx = await _buildTx(Tag.ContractCreateTx, {\n ...opt,\n gasLimit: opt.gasLimit ?? await instance._estimateGas('init', params, opt),\n callData: instance.calldata.encode(instance._name, 'init', params),\n code: instance.bytecode,\n ownerId,\n onNode,\n });\n const contractId = buildContractIdByContractTx(tx);\n const {\n hash, rawTx, result, txData,\n } = await sendAndProcess(tx, opt);\n instance.deployInfo = Object.freeze({\n result,\n owner: ownerId,\n transaction: hash,\n rawTx,\n txData,\n address: contractId,\n });\n return instance.deployInfo;\n };\n\n /**\n * Get function schema from contract ACI object\n * @param name - Function name\n * @returns function ACI\n */\n function getFunctionACI(name: string): Partial<FunctionACI> {\n const fn = instance._aci.encodedAci.contract.functions.find(\n (f: { name: string }) => f.name === name,\n );\n if (fn != null) {\n return fn;\n }\n if (name === 'init') return { payable: false };\n throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);\n }\n\n /**\n * Call contract function\n * @param fn - Function name\n * @param params - Array of function arguments\n * @param options - Array of function arguments\n * @returns CallResult\n */\n instance.call = async (fn: string, params: any[] = [], options: object = {}) => {\n const opt = { ...instance.options, ...options };\n const fnACI = getFunctionACI(fn);\n const contractId = instance.deployInfo.address;\n\n if (fn == null) throw new MissingFunctionNameError();\n if (fn === 'init' && opt.callStatic === false) throw new InvalidMethodInvocationError('\"init\" can be called only via dryRun');\n if (contractId == null && fn !== 'init') throw new InvalidMethodInvocationError('You need to deploy contract before calling!');\n if (fn !== 'init' && opt.amount > 0 && fnACI.payable === false) throw new NotPayableFunctionError(opt.amount, fn);\n\n const callerId = await Promise.resolve()\n .then(() => opt.onAccount.address(opt))\n .catch((error: any) => {\n if (opt.callStatic === true) return DRY_RUN_ACCOUNT.pub;\n throw error;\n }) as Encoded.AccountAddress;\n const callData = instance.calldata.encode(instance._name, fn, params);\n\n let res: any;\n if (opt.callStatic === true) {\n if (typeof opt.top === 'number') {\n opt.top = (await getKeyBlock(opt.top, { onNode })).hash;\n }\n const txOpt = { ...opt, onNode, callData };\n if (opt.nonce == null && opt.top != null) {\n opt.nonce = (await getAccount(callerId, { hash: opt.top, onNode })).nonce + 1;\n }\n const tx = await (fn === 'init'\n ? _buildTx(Tag.ContractCreateTx, { ...txOpt, code: instance.bytecode, ownerId: callerId })\n : _buildTx(Tag.ContractCallTx, { ...txOpt, callerId, contractId }));\n\n const { callObj, ...dryRunOther } = await txDryRun(tx, callerId, { onNode, ...opt });\n if (callObj == null) throw new UnexpectedTsError();\n handleCallError({\n returnType: callObj.returnType as ContractCallReturnType,\n returnValue: callObj.returnValue as Encoded.ContractBytearray,\n }, tx);\n res = { ...dryRunOther, tx: unpackTx(tx), result: callObj };\n } else {\n const tx = await _buildTx(Tag.ContractCallTx, {\n ...opt,\n onNode,\n gasLimit: opt.gasLimit ?? await instance._estimateGas(fn, params, opt),\n callerId,\n contractId,\n callData,\n });\n res = await sendAndProcess(tx, opt);\n }\n if (opt.callStatic === true || res.txData.blockHeight != null) {\n res.decodedResult = fnACI.returns != null && fnACI.returns !== 'unit' && fn !== 'init'\n && instance.calldata.decode(instance._name, fn, res.result.returnValue);\n res.decodedEvents = instance.decodeEvents(res.result.log, opt);\n }\n return res;\n };\n\n /**\n * @param address - Contract address that emitted event\n * @param nameHash - Hash of emitted event name\n * @param options - Options\n * @returns Contract name\n * @throws {@link MissingEventDefinitionError}\n * @throws {@link AmbiguousEventDefinitionError}\n */\n function getContractNameByEvent(\n address: Encoded.ContractAddress,\n nameHash: BigInt,\n { contractAddressToName }: {\n contractAddressToName?: { [key: Encoded.ContractAddress]: string };\n },\n ): string {\n const addressToName = { ...instance.options.contractAddressToName, ...contractAddressToName };\n if (addressToName[address] != null) return addressToName[address];\n\n const matchedEvents = [\n instance._aci.encodedAci,\n ...instance._aci.externalEncodedAci,\n ]\n .filter(({ contract }) => contract?.event)\n .map(({ contract }) => [contract.name, contract.event.variant])\n .map(([name, events]) => events.map((event: {}) => [name, Object.keys(event)[0]]))\n .flat()\n .filter(([, eventName]) => BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash);\n switch (matchedEvents.length) {\n case 0: throw new MissingEventDefinitionError(nameHash.toString(), address);\n case 1: return matchedEvents[0][0];\n default: throw new AmbiguousEventDefinitionError(address, matchedEvents);\n }\n }\n\n /**\n * Decode Events\n * @param events - Array of encoded events (callRes.result.log)\n * @param options - Options\n * @returns DecodedEvents\n */\n instance.decodeEvents = (\n events: Event[],\n { omitUnknown, ...opt }: { omitUnknown?: boolean } = {},\n ): DecodedEvent[] => events\n .map((event) => {\n const topics = event.topics.map((t: string | number) => BigInt(t));\n let contractName;\n try {\n contractName = getContractNameByEvent(event.address, topics[0], opt);\n } catch (error) {\n if ((omitUnknown ?? false) && error instanceof MissingEventDefinitionError) return null;\n throw error;\n }\n const decoded = instance.calldata.decodeEvent(contractName, event.data, topics);\n const [name, args] = Object.entries(decoded)[0];\n return {\n name,\n args,\n contract: {\n name: contractName,\n address: event.address,\n },\n };\n }).filter((e: DecodedEvent | null): e is DecodedEvent => e != null);\n\n /**\n * Generate proto function based on contract function using Contract ACI schema\n * All function can be called like:\n * ```js\n * await contract.methods.testFunction()\n * ```\n * then sdk will decide to use dry-run or send tx\n * on-chain base on if function stateful or not.\n * Also, you can manually do that:\n * ```js\n * await contract.methods.testFunction.get() // use call-static (dry-run)\n * await contract.methods.testFunction.send() // send tx on-chain\n * ```\n */\n instance.methods = Object.fromEntries(instance._aci.encodedAci.contract.functions\n .map(({ name, arguments: aciArgs, stateful }: FunctionACI) => {\n const genHandler = (callStatic: boolean) => async (...args: any[]) => {\n const options = args.length === aciArgs.length + 1 ? args.pop() : {};\n if (typeof options !== 'object') throw new TypeError(`Options should be an object: ${options as string}`);\n if (name === 'init') return instance.deploy(args, { callStatic, ...options });\n return instance.call(name, args, { callStatic, ...options });\n };\n return [\n name,\n Object.assign(\n genHandler(name === 'init' ? false : !stateful),\n {\n get: genHandler(true),\n send: genHandler(false),\n },\n ),\n ];\n }));\n\n return instance;\n}\n"],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Contract module - routines to interact with the æternity contract
3
- *
4
- * High level documentation of the contracts are available at
5
- * https://github.com/aeternity/protocol/tree/master/contracts and
6
- */
7
- import { AensName } from '../tx/builder/constants';
8
- import { Encoded } from '../utils/encoder';
9
- import AccountBase from '../account/Base';
10
- import Node from '../Node';
11
- export { default as getContractInstance } from './aci';
12
- /**
13
- * Utility method to create a delegate signature for a contract
14
- * @category contract
15
- * @param ids - The list of id's to prepend
16
- * @param opt - Options
17
- * @param opt.onNode - Node to use
18
- * @param opt.onAccount - Account to use
19
- * @returns Signature in hex representation
20
- */
21
- declare function delegateSignatureCommon(ids: Encoded.Any[], { onAccount, onNode, ...opt }: {
22
- onAccount: AccountBase;
23
- onNode: Node;
24
- } & Parameters<AccountBase['sign']>[1]): Promise<string>;
25
- /**
26
- * Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to
27
- * a contract.
28
- * @category contract
29
- * @param contractId - Contract Id
30
- * @param opt - Options
31
- * @param opt.name - The name
32
- * @returns Signature for delegation
33
- * @example
34
- * ```js
35
- * const aeSdk = new AeSdk({ ... })
36
- * const contractId = 'ct_asd2ks...' // contract address
37
- * const name = 'example.chain' // AENS name
38
- * const onAccount = await aeSdk.address() // Sign with a specific account
39
- * // Preclaim signature
40
- * const preclaimSig = await aeSdk.createAensDelegationSignature(contractId, { onAccount: current })
41
- * // Claim, transfer and revoke signature
42
- * const aensDelegationSig = await contract.createAensDelegationSignature(
43
- * contractId, { name, onAccount: current }
44
- * )
45
- * ```
46
- */
47
- export declare function createAensDelegationSignature(contractId: Encoded.ContractAddress, opt: Parameters<AccountBase['address']>[0] & Parameters<typeof delegateSignatureCommon>[1] & {
48
- name?: AensName;
49
- }): Promise<string>;
50
- /**
51
- * Helper to generate a signature to delegate register/extend/respond of a Oracle to a contract.
52
- * @category contract
53
- * @param contractId - Contract Id
54
- * @param opt - Options
55
- * @param opt.queryId - Oracle Query Id
56
- * @returns Signature for delegation
57
- * @example
58
- * ```js
59
- * const aeSdk = new AeSdk({ ... })
60
- * const contractId = 'ct_asd2ks...' // contract address
61
- * const queryId = 'oq_...' // Oracle Query Id
62
- * const onAccount = await aeSdk.address() // Sign with a specific account
63
- * // Oracle register and extend signature
64
- * const oracleDelegationSig = await aeSdk.createOracleDelegationSignature(contractId)
65
- * // Oracle respond signature
66
- * const respondSig = await aeSdk.createOracleDelegationSignature(contractId, { queryId })
67
- * ```
68
- */
69
- export declare function createOracleDelegationSignature(contractId: Encoded.ContractAddress, opt: Parameters<AccountBase['address']>[0] & Parameters<typeof delegateSignatureCommon>[1] & {
70
- queryId?: Encoded.OracleQueryId;
71
- }): Promise<string>;