@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
@@ -0,0 +1,248 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { AbiVersion, VmVersion } from '../tx/builder/constants';
3
+ import { SignTx, ChannelState, ChannelOptions } from './internal';
4
+ import { Encoded } from '../utils/encoder';
5
+ import { ContractCallReturnType } from '../apis/node';
6
+ import { ContractCallObject } from '../contract/Contract';
7
+ import ChannelSpend from './Spend';
8
+ interface CallContractOptions {
9
+ amount?: number | BigNumber;
10
+ callData?: Encoded.ContractBytearray;
11
+ abiVersion?: AbiVersion;
12
+ contract?: Encoded.ContractAddress;
13
+ returnValue?: any;
14
+ gasUsed?: number | BigNumber;
15
+ gasPrice?: number | BigNumber;
16
+ height?: number;
17
+ callerNonce?: number;
18
+ log?: any;
19
+ returnType?: ContractCallReturnType;
20
+ }
21
+ interface Contract {
22
+ abiVersion: AbiVersion;
23
+ active: boolean;
24
+ deposit: number | BigNumber;
25
+ id: string;
26
+ ownerId: string;
27
+ referrerIds: string[];
28
+ vmVersion: VmVersion;
29
+ }
30
+ export default class ChannelContract extends ChannelSpend {
31
+ static initialize(options: ChannelOptions): Promise<ChannelContract>;
32
+ /**
33
+ * Trigger create contract update
34
+ *
35
+ * The create contract update is creating a contract inside the channel's internal state tree.
36
+ * The update is a change to be applied on top of the latest state.
37
+ *
38
+ * That would create a contract with the poster being the owner of it. Poster commits initially
39
+ * a deposit amount of coins to the new contract.
40
+ *
41
+ * @param options - Options
42
+ * @param options.code - Api encoded compiled AEVM byte code
43
+ * @param options.callData - Api encoded compiled AEVM call data for the code
44
+ * @param options.deposit - Initial amount the owner of the contract commits to it
45
+ * @param options.vmVersion - Version of the Virtual Machine
46
+ * @param options.abiVersion - Version of the Application Binary Interface
47
+ * @param sign - Function which verifies and signs create contract transaction
48
+ * @example
49
+ * ```js
50
+ * channel.createContract({
51
+ * code: 'cb_HKtpipK4aCgYb17wZ...',
52
+ * callData: 'cb_1111111111111111...',
53
+ * deposit: 10,
54
+ * vmVersion: 3,
55
+ * abiVersion: 1
56
+ * }).then(({ accepted, signedTx, address }) => {
57
+ * if (accepted) {
58
+ * console.log('New contract has been created')
59
+ * console.log('Contract address:', address)
60
+ * } else {
61
+ * console.log('New contract has been rejected')
62
+ * }
63
+ * })
64
+ * ```
65
+ */
66
+ createContract({ code, callData, deposit, vmVersion, abiVersion, }: {
67
+ code: Encoded.ContractBytearray;
68
+ callData: Encoded.ContractBytearray;
69
+ deposit: number | BigNumber;
70
+ vmVersion: VmVersion;
71
+ abiVersion: AbiVersion;
72
+ }, sign: SignTx): Promise<{
73
+ accepted: boolean;
74
+ signedTx: Encoded.Transaction;
75
+ address: Encoded.ContractAddress;
76
+ }>;
77
+ /**
78
+ * Trigger call a contract update
79
+ *
80
+ * The call contract update is calling a preexisting contract inside the channel's
81
+ * internal state tree. The update is a change to be applied on top of the latest state.
82
+ *
83
+ * That would call a contract with the poster being the caller of it. Poster commits
84
+ * an amount of coins to the contract.
85
+ *
86
+ * The call would also create a call object inside the channel state tree. It contains
87
+ * the result of the contract call.
88
+ *
89
+ * It is worth mentioning that the gas is not consumed, because this is an off-chain
90
+ * contract call. It would be consumed if it were an on-chain one. This could happen
91
+ * if a call with a similar computation amount is to be forced on-chain.
92
+ *
93
+ * @param options - Options
94
+ * @param options.amount - Amount the caller of the contract commits to it
95
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
96
+ * @param options.contract - Address of the contract to call
97
+ * @param options.abiVersion - Version of the ABI
98
+ * @param sign - Function which verifies and signs contract call transaction
99
+ * @example
100
+ * ```js
101
+ * channel.callContract({
102
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
103
+ * callData: 'cb_1111111111111111...',
104
+ * amount: 0,
105
+ * abiVersion: 1
106
+ * }).then(({ accepted, signedTx }) => {
107
+ * if (accepted) {
108
+ * console.log('Contract called succesfully')
109
+ * } else {
110
+ * console.log('Contract call has been rejected')
111
+ * }
112
+ * })
113
+ * ```
114
+ */
115
+ callContract({ amount, callData, contract, abiVersion, }: CallContractOptions, sign: SignTx): Promise<{
116
+ accepted: boolean;
117
+ signedTx: Encoded.Transaction;
118
+ }>;
119
+ /**
120
+ * Trigger a force progress contract call
121
+ * This call is going on-chain
122
+ * @param options - Options
123
+ * @param options.amount - Amount the caller of the contract commits to it
124
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
125
+ * @param options.contract - Address of the contract to call
126
+ * @param options.abiVersion - Version of the ABI
127
+ * @param options.gasPrice=1000000000]
128
+ * @param options.gasLimit=1000000]
129
+ * @param sign - Function which verifies and signs contract force progress transaction
130
+ * @param callbacks - Callbacks
131
+ * @example
132
+ * ```js
133
+ * channel.forceProgress({
134
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
135
+ * callData: 'cb_1111111111111111...',
136
+ * amount: 0,
137
+ * abiVersion: 1,
138
+ * gasPrice: 1000005554
139
+ * }).then(({ accepted, signedTx }) => {
140
+ * if (accepted) {
141
+ * console.log('Contract force progress call successful')
142
+ * } else {
143
+ * console.log('Contract force progress call has been rejected')
144
+ * }
145
+ * })
146
+ * ```
147
+ */
148
+ forceProgress({ amount, callData, contract, abiVersion, gasLimit, gasPrice, }: {
149
+ amount: number;
150
+ callData: Encoded.ContractBytearray;
151
+ contract: Encoded.ContractAddress;
152
+ abiVersion: AbiVersion;
153
+ gasLimit?: number;
154
+ gasPrice?: number;
155
+ }, sign: SignTx, { onOnChainTx }?: Pick<ChannelState, 'onOnChainTx'>): Promise<{
156
+ accepted: boolean;
157
+ signedTx: Encoded.Transaction;
158
+ tx: Encoded.Transaction | Uint8Array;
159
+ }>;
160
+ /**
161
+ * Call contract using dry-run
162
+ *
163
+ * In order to get the result of a potential contract call, one might need to
164
+ * dry-run a contract call. It takes the exact same arguments as a call would
165
+ * and returns the call object.
166
+ *
167
+ * The call is executed in the channel's state, but it does not impact the state
168
+ * whatsoever. It uses as an environment the latest channel's state and the current
169
+ * top of the blockchain as seen by the node.
170
+ *
171
+ * @param options - Options
172
+ * @param options.amount - Amount the caller of the contract commits to it
173
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
174
+ * @param options.contract - Address of the contract to call
175
+ * @param options.abiVersion - Version of the ABI
176
+ * @example
177
+ * ```js
178
+ * channel.callContractStatic({
179
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
180
+ * callData: 'cb_1111111111111111...',
181
+ * amount: 0,
182
+ * abiVersion: 1
183
+ * }).then(({ returnValue, gasUsed }) => {
184
+ * console.log('Returned value:', returnValue)
185
+ * console.log('Gas used:', gasUsed)
186
+ * })
187
+ * ```
188
+ */
189
+ callContractStatic({ amount, callData, contract, abiVersion, }: {
190
+ amount: number;
191
+ callData: Encoded.ContractBytearray;
192
+ contract: Encoded.ContractAddress;
193
+ abiVersion: AbiVersion;
194
+ }): Promise<CallContractOptions>;
195
+ /**
196
+ * Get contract call result
197
+ *
198
+ * The combination of a caller, contract and a round of execution determines the
199
+ * contract call. Providing an incorrect set of those results in an error response.
200
+ *
201
+ * @param options - Options
202
+ * @param options.caller - Address of contract caller
203
+ * @param options.contract - Address of the contract
204
+ * @param options.round - Round when contract was called
205
+ * @example
206
+ * ```js
207
+ * channel.getContractCall({
208
+ * caller: 'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',
209
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
210
+ * round: 3
211
+ * }).then(({ returnType, returnValue }) => {
212
+ * if (returnType === 'ok') console.log(returnValue)
213
+ * })
214
+ * ```
215
+ */
216
+ getContractCall({ caller, contract, round }: {
217
+ caller: Encoded.AccountAddress;
218
+ contract: Encoded.ContractAddress;
219
+ round: number;
220
+ }): Promise<ContractCallObject>;
221
+ /**
222
+ * Get the latest contract state
223
+ *
224
+ * @param contract - Address of the contract
225
+ * @example
226
+ * ```js
227
+ * channel.getContractState(
228
+ * 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa'
229
+ * ).then(({ contract }) => {
230
+ * console.log('deposit:', contract.deposit)
231
+ * })
232
+ * ```
233
+ */
234
+ getContractState(contract: Encoded.ContractAddress): Promise<{
235
+ contract: Contract;
236
+ contractState: object;
237
+ }>;
238
+ /**
239
+ * Clean up all locally stored contract calls
240
+ *
241
+ * Contract calls are kept locally in order for the participant to be able to look them up.
242
+ * They consume memory and in order for the participant to free it - one can prune all messages.
243
+ * This cleans up all locally stored contract calls and those will no longer be available for
244
+ * fetching and inspection.
245
+ */
246
+ cleanContractCalls(): Promise<void>;
247
+ }
248
+ export {};
@@ -0,0 +1,420 @@
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 { snakeToPascal } from "../utils/string.mjs";
18
+ import { MIN_GAS_PRICE, Tag } from "../tx/builder/constants.mjs";
19
+ import { signAndNotify, awaitingCompletion, channelClosed, channelOpen, handleUnexpectedMessage } from "./handlers.mjs";
20
+ import { notify, call, changeState, emit } from "./internal.mjs";
21
+ import Channel from "./Base.mjs";
22
+ import ChannelSpend from "./Spend.mjs";
23
+ import { UnexpectedChannelMessageError } from "../utils/errors.mjs";
24
+ import { unpackTx } from "../tx/builder/index.mjs";
25
+ import { encodeContractAddress } from "../utils/crypto.mjs";
26
+ function snakeToPascalObjKeys(obj) {
27
+ return Object.entries(obj).reduce((result, _ref) => {
28
+ let [key, val] = _ref;
29
+ return {
30
+ ...result,
31
+ [snakeToPascal(key)]: val
32
+ };
33
+ }, {});
34
+ }
35
+ export default class ChannelContract extends ChannelSpend {
36
+ static async initialize(options) {
37
+ return Channel._initialize(new ChannelContract(), options);
38
+ }
39
+
40
+ /**
41
+ * Trigger create contract update
42
+ *
43
+ * The create contract update is creating a contract inside the channel's internal state tree.
44
+ * The update is a change to be applied on top of the latest state.
45
+ *
46
+ * That would create a contract with the poster being the owner of it. Poster commits initially
47
+ * a deposit amount of coins to the new contract.
48
+ *
49
+ * @param options - Options
50
+ * @param options.code - Api encoded compiled AEVM byte code
51
+ * @param options.callData - Api encoded compiled AEVM call data for the code
52
+ * @param options.deposit - Initial amount the owner of the contract commits to it
53
+ * @param options.vmVersion - Version of the Virtual Machine
54
+ * @param options.abiVersion - Version of the Application Binary Interface
55
+ * @param sign - Function which verifies and signs create contract transaction
56
+ * @example
57
+ * ```js
58
+ * channel.createContract({
59
+ * code: 'cb_HKtpipK4aCgYb17wZ...',
60
+ * callData: 'cb_1111111111111111...',
61
+ * deposit: 10,
62
+ * vmVersion: 3,
63
+ * abiVersion: 1
64
+ * }).then(({ accepted, signedTx, address }) => {
65
+ * if (accepted) {
66
+ * console.log('New contract has been created')
67
+ * console.log('Contract address:', address)
68
+ * } else {
69
+ * console.log('New contract has been rejected')
70
+ * }
71
+ * })
72
+ * ```
73
+ */
74
+ async createContract(_ref2, sign) {
75
+ let {
76
+ code,
77
+ callData,
78
+ deposit,
79
+ vmVersion,
80
+ abiVersion
81
+ } = _ref2;
82
+ return this.enqueueAction(() => {
83
+ notify(this, 'channels.update.new_contract', {
84
+ code,
85
+ call_data: callData,
86
+ deposit,
87
+ vm_version: vmVersion,
88
+ abi_version: abiVersion
89
+ });
90
+ return {
91
+ handler: async (_, message, state) => {
92
+ if (message.method !== 'channels.sign.update') {
93
+ return handleUnexpectedMessage(this, message, state);
94
+ }
95
+ await signAndNotify(this, 'channels.update', message.params.data, async tx => state.sign(tx));
96
+ return {
97
+ handler: (_2, message2, state2) => awaitingCompletion(this, message2, state2, () => {
98
+ const {
99
+ round
100
+ } = unpackTx(message2.params.data.state, Tag.SignedTx).encodedTx;
101
+ const addressKey = this._options.role === 'initiator' ? 'initiatorId' : 'responderId';
102
+ const owner = this._options[addressKey];
103
+ changeState(this, message2.params.data.state);
104
+ state2.resolve({
105
+ accepted: true,
106
+ address: encodeContractAddress(owner, round),
107
+ signedTx: message2.params.data.state
108
+ });
109
+ return {
110
+ handler: channelOpen
111
+ };
112
+ }),
113
+ state
114
+ };
115
+ },
116
+ state: {
117
+ sign
118
+ }
119
+ };
120
+ });
121
+ }
122
+
123
+ /**
124
+ * Trigger call a contract update
125
+ *
126
+ * The call contract update is calling a preexisting contract inside the channel's
127
+ * internal state tree. The update is a change to be applied on top of the latest state.
128
+ *
129
+ * That would call a contract with the poster being the caller of it. Poster commits
130
+ * an amount of coins to the contract.
131
+ *
132
+ * The call would also create a call object inside the channel state tree. It contains
133
+ * the result of the contract call.
134
+ *
135
+ * It is worth mentioning that the gas is not consumed, because this is an off-chain
136
+ * contract call. It would be consumed if it were an on-chain one. This could happen
137
+ * if a call with a similar computation amount is to be forced on-chain.
138
+ *
139
+ * @param options - Options
140
+ * @param options.amount - Amount the caller of the contract commits to it
141
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
142
+ * @param options.contract - Address of the contract to call
143
+ * @param options.abiVersion - Version of the ABI
144
+ * @param sign - Function which verifies and signs contract call transaction
145
+ * @example
146
+ * ```js
147
+ * channel.callContract({
148
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
149
+ * callData: 'cb_1111111111111111...',
150
+ * amount: 0,
151
+ * abiVersion: 1
152
+ * }).then(({ accepted, signedTx }) => {
153
+ * if (accepted) {
154
+ * console.log('Contract called succesfully')
155
+ * } else {
156
+ * console.log('Contract call has been rejected')
157
+ * }
158
+ * })
159
+ * ```
160
+ */
161
+ async callContract(_ref3, sign) {
162
+ let {
163
+ amount,
164
+ callData,
165
+ contract,
166
+ abiVersion
167
+ } = _ref3;
168
+ return this.enqueueAction(() => {
169
+ notify(this, 'channels.update.call_contract', {
170
+ amount,
171
+ call_data: callData,
172
+ contract_id: contract,
173
+ abi_version: abiVersion
174
+ });
175
+ return {
176
+ handler: async (_, message, state) => {
177
+ if (message.method !== 'channels.sign.update') {
178
+ return handleUnexpectedMessage(this, message, state);
179
+ }
180
+ await signAndNotify(this, 'channels.update', message.params.data, async tx => state.sign(tx, {
181
+ updates: message.params.data.updates
182
+ }));
183
+ return {
184
+ handler: (_2, message2, state2) => awaitingCompletion(this, message2, state2, () => {
185
+ changeState(this, message2.params.data.state);
186
+ state2.resolve({
187
+ accepted: true,
188
+ signedTx: message2.params.data.state
189
+ });
190
+ return {
191
+ handler: channelOpen
192
+ };
193
+ }),
194
+ state
195
+ };
196
+ },
197
+ state: {
198
+ sign
199
+ }
200
+ };
201
+ });
202
+ }
203
+
204
+ /**
205
+ * Trigger a force progress contract call
206
+ * This call is going on-chain
207
+ * @param options - Options
208
+ * @param options.amount - Amount the caller of the contract commits to it
209
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
210
+ * @param options.contract - Address of the contract to call
211
+ * @param options.abiVersion - Version of the ABI
212
+ * @param options.gasPrice=1000000000]
213
+ * @param options.gasLimit=1000000]
214
+ * @param sign - Function which verifies and signs contract force progress transaction
215
+ * @param callbacks - Callbacks
216
+ * @example
217
+ * ```js
218
+ * channel.forceProgress({
219
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
220
+ * callData: 'cb_1111111111111111...',
221
+ * amount: 0,
222
+ * abiVersion: 1,
223
+ * gasPrice: 1000005554
224
+ * }).then(({ accepted, signedTx }) => {
225
+ * if (accepted) {
226
+ * console.log('Contract force progress call successful')
227
+ * } else {
228
+ * console.log('Contract force progress call has been rejected')
229
+ * }
230
+ * })
231
+ * ```
232
+ */
233
+ async forceProgress(_ref4, sign) {
234
+ let {
235
+ amount,
236
+ callData,
237
+ contract,
238
+ abiVersion,
239
+ gasLimit = 1000000,
240
+ gasPrice = MIN_GAS_PRICE
241
+ } = _ref4;
242
+ let {
243
+ onOnChainTx
244
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
245
+ return this.enqueueAction(() => {
246
+ notify(this, 'channels.force_progress', {
247
+ amount,
248
+ call_data: callData,
249
+ contract_id: contract,
250
+ abi_version: abiVersion,
251
+ gas_price: gasPrice,
252
+ gas: gasLimit
253
+ });
254
+ return {
255
+ handler: async (_, message, state) => {
256
+ if (message.method !== 'channels.sign.force_progress_tx') {
257
+ return handleUnexpectedMessage(this, message, state);
258
+ }
259
+ await signAndNotify(this, 'channels.force_progress_sign', message.params.data, async tx => state.sign(tx, {
260
+ updates: message.params.data.updates
261
+ }));
262
+ return {
263
+ handler: (_2, message2, state2) => {
264
+ if (message2.method === 'channels.on_chain_tx') {
265
+ var _state2$onOnChainTx;
266
+ (_state2$onOnChainTx = state2.onOnChainTx) === null || _state2$onOnChainTx === void 0 ? void 0 : _state2$onOnChainTx.call(state2, message2.params.data.tx);
267
+ emit(this, 'onChainTx', message2.params.data.tx, {
268
+ info: message2.params.data.info,
269
+ type: message2.params.data.type
270
+ });
271
+ state2.resolve({
272
+ accepted: true,
273
+ tx: message2.params.data.tx
274
+ });
275
+ // TODO: shouldn't be unexpected message in this case
276
+ }
277
+
278
+ return handleUnexpectedMessage(this, message2, state2);
279
+ },
280
+ state
281
+ };
282
+ },
283
+ state: {
284
+ sign,
285
+ onOnChainTx
286
+ }
287
+ };
288
+ });
289
+ }
290
+
291
+ /**
292
+ * Call contract using dry-run
293
+ *
294
+ * In order to get the result of a potential contract call, one might need to
295
+ * dry-run a contract call. It takes the exact same arguments as a call would
296
+ * and returns the call object.
297
+ *
298
+ * The call is executed in the channel's state, but it does not impact the state
299
+ * whatsoever. It uses as an environment the latest channel's state and the current
300
+ * top of the blockchain as seen by the node.
301
+ *
302
+ * @param options - Options
303
+ * @param options.amount - Amount the caller of the contract commits to it
304
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
305
+ * @param options.contract - Address of the contract to call
306
+ * @param options.abiVersion - Version of the ABI
307
+ * @example
308
+ * ```js
309
+ * channel.callContractStatic({
310
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
311
+ * callData: 'cb_1111111111111111...',
312
+ * amount: 0,
313
+ * abiVersion: 1
314
+ * }).then(({ returnValue, gasUsed }) => {
315
+ * console.log('Returned value:', returnValue)
316
+ * console.log('Gas used:', gasUsed)
317
+ * })
318
+ * ```
319
+ */
320
+ async callContractStatic(_ref5) {
321
+ let {
322
+ amount,
323
+ callData,
324
+ contract,
325
+ abiVersion
326
+ } = _ref5;
327
+ return snakeToPascalObjKeys(await call(this, 'channels.dry_run.call_contract', {
328
+ amount,
329
+ call_data: callData,
330
+ contract_id: contract,
331
+ abi_version: abiVersion
332
+ }));
333
+ }
334
+
335
+ /**
336
+ * Get contract call result
337
+ *
338
+ * The combination of a caller, contract and a round of execution determines the
339
+ * contract call. Providing an incorrect set of those results in an error response.
340
+ *
341
+ * @param options - Options
342
+ * @param options.caller - Address of contract caller
343
+ * @param options.contract - Address of the contract
344
+ * @param options.round - Round when contract was called
345
+ * @example
346
+ * ```js
347
+ * channel.getContractCall({
348
+ * caller: 'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',
349
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
350
+ * round: 3
351
+ * }).then(({ returnType, returnValue }) => {
352
+ * if (returnType === 'ok') console.log(returnValue)
353
+ * })
354
+ * ```
355
+ */
356
+ async getContractCall(_ref6) {
357
+ let {
358
+ caller,
359
+ contract,
360
+ round
361
+ } = _ref6;
362
+ return snakeToPascalObjKeys(await call(this, 'channels.get.contract_call', {
363
+ caller_id: caller,
364
+ contract_id: contract,
365
+ round
366
+ }));
367
+ }
368
+
369
+ /**
370
+ * Get the latest contract state
371
+ *
372
+ * @param contract - Address of the contract
373
+ * @example
374
+ * ```js
375
+ * channel.getContractState(
376
+ * 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa'
377
+ * ).then(({ contract }) => {
378
+ * console.log('deposit:', contract.deposit)
379
+ * })
380
+ * ```
381
+ */
382
+ async getContractState(contract) {
383
+ const result = await call(this, 'channels.get.contract', {
384
+ pubkey: contract
385
+ });
386
+ return snakeToPascalObjKeys({
387
+ ...result,
388
+ contract: snakeToPascalObjKeys(result.contract)
389
+ });
390
+ }
391
+
392
+ /**
393
+ * Clean up all locally stored contract calls
394
+ *
395
+ * Contract calls are kept locally in order for the participant to be able to look them up.
396
+ * They consume memory and in order for the participant to free it - one can prune all messages.
397
+ * This cleans up all locally stored contract calls and those will no longer be available for
398
+ * fetching and inspection.
399
+ */
400
+ async cleanContractCalls() {
401
+ return this.enqueueAction(() => {
402
+ notify(this, 'channels.clean_contract_calls');
403
+ return {
404
+ handler(_, message, state) {
405
+ if (message.method === 'channels.calls_pruned.reply') {
406
+ state.resolve();
407
+ return {
408
+ handler: channelOpen
409
+ };
410
+ }
411
+ state.reject(new UnexpectedChannelMessageError('Unexpected message received'));
412
+ return {
413
+ handler: channelClosed
414
+ };
415
+ }
416
+ };
417
+ });
418
+ }
419
+ }
420
+ //# sourceMappingURL=Contract.mjs.map