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

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 (475) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.map +1 -1
  3. package/dist/aepp-sdk.browser.js +1 -1
  4. package/dist/aepp-sdk.browser.js.map +1 -1
  5. package/dist/aepp-sdk.js +6580 -8859
  6. package/dist/aepp-sdk.js.map +1 -1
  7. package/es/AeSdk.d.ts +7 -3
  8. package/es/AeSdk.mjs +17 -22
  9. package/es/AeSdk.mjs.map +1 -1
  10. package/es/AeSdkAepp.d.ts +6 -5
  11. package/es/AeSdkAepp.mjs +7 -30
  12. package/es/AeSdkAepp.mjs.map +1 -1
  13. package/es/AeSdkBase.d.ts +18 -140
  14. package/es/AeSdkBase.mjs +27 -185
  15. package/es/AeSdkBase.mjs.map +1 -1
  16. package/es/AeSdkMethods.d.ts +124 -0
  17. package/es/AeSdkMethods.mjs +122 -0
  18. package/es/AeSdkMethods.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +7 -21
  20. package/es/AeSdkWallet.mjs +38 -86
  21. package/es/AeSdkWallet.mjs.map +1 -1
  22. package/es/Node.d.ts +7 -12
  23. package/es/Node.mjs +34 -47
  24. package/es/Node.mjs.map +1 -1
  25. package/es/account/Base.d.ts +24 -40
  26. package/es/account/Base.mjs +1 -101
  27. package/es/account/Base.mjs.map +1 -1
  28. package/es/account/Generalized.d.ts +16 -0
  29. package/es/account/Generalized.mjs +111 -0
  30. package/es/account/Generalized.mjs.map +1 -0
  31. package/es/account/Ledger.d.ts +28 -0
  32. package/es/account/Ledger.mjs +101 -0
  33. package/es/account/Ledger.mjs.map +1 -0
  34. package/es/account/LedgerFactory.d.ts +39 -0
  35. package/es/account/LedgerFactory.mjs +81 -0
  36. package/es/account/LedgerFactory.mjs.map +1 -0
  37. package/es/account/Memory.d.ts +13 -17
  38. package/es/account/Memory.mjs +43 -65
  39. package/es/account/Memory.mjs.map +1 -1
  40. package/es/account/Rpc.d.ts +6 -8
  41. package/es/account/Rpc.mjs +14 -32
  42. package/es/account/Rpc.mjs.map +1 -1
  43. package/es/aens.d.ts +3 -3
  44. package/es/aens.mjs +42 -41
  45. package/es/aens.mjs.map +1 -1
  46. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  47. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  48. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +3 -7
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  51. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  53. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  54. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  55. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +4 -41
  56. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  57. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  58. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/schema.mjs +14 -68
  60. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  62. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  63. package/es/apis/compiler/compiler.d.ts +23 -29
  64. package/es/apis/compiler/compiler.mjs +128 -189
  65. package/es/apis/compiler/compiler.mjs.map +1 -1
  66. package/es/apis/compiler/index.mjs.map +1 -1
  67. package/es/apis/compiler/models/index.d.ts +82 -135
  68. package/es/apis/compiler/models/index.mjs +1 -47
  69. package/es/apis/compiler/models/index.mjs.map +1 -1
  70. package/es/apis/compiler/models/mappers.d.ts +8 -8
  71. package/es/apis/compiler/models/mappers.mjs +165 -183
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  73. package/es/apis/compiler/models/parameters.d.ts +0 -1
  74. package/es/apis/compiler/models/parameters.mjs +5 -9
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  76. package/es/apis/node/index.mjs.map +1 -1
  77. package/es/apis/node/models/index.d.ts +48 -48
  78. package/es/apis/node/models/mappers.mjs +12 -6
  79. package/es/apis/node/models/mappers.mjs.map +1 -1
  80. package/es/apis/node/models/parameters.mjs.map +1 -1
  81. package/es/apis/node/node.mjs +43 -84
  82. package/es/apis/node/node.mjs.map +1 -1
  83. package/es/chain.d.ts +1 -1
  84. package/es/chain.mjs +33 -58
  85. package/es/chain.mjs.map +1 -1
  86. package/es/channel/Base.d.ts +195 -0
  87. package/es/channel/Base.mjs +290 -0
  88. package/es/channel/Base.mjs.map +1 -0
  89. package/es/channel/Contract.d.ts +247 -0
  90. package/es/channel/Contract.mjs +420 -0
  91. package/es/channel/Contract.mjs.map +1 -0
  92. package/es/channel/Spend.d.ts +217 -0
  93. package/es/channel/Spend.mjs +383 -0
  94. package/es/channel/Spend.mjs.map +1 -0
  95. package/es/channel/handlers.d.ts +8 -21
  96. package/es/channel/handlers.mjs +141 -891
  97. package/es/channel/handlers.mjs.map +1 -1
  98. package/es/channel/internal.d.ts +27 -21
  99. package/es/channel/internal.mjs +98 -190
  100. package/es/channel/internal.mjs.map +1 -1
  101. package/es/contract/{Compiler.d.ts → CompilerHttp.d.ts} +3 -3
  102. package/es/contract/{Compiler.mjs → CompilerHttp.mjs} +8 -13
  103. package/es/contract/CompilerHttp.mjs.map +1 -0
  104. package/es/contract/Contract.d.ts +235 -0
  105. package/es/contract/Contract.mjs +534 -0
  106. package/es/contract/Contract.mjs.map +1 -0
  107. package/es/contract/ga.d.ts +7 -33
  108. package/es/contract/ga.mjs +20 -112
  109. package/es/contract/ga.mjs.map +1 -1
  110. package/es/index.d.ts +9 -6
  111. package/es/index.mjs +8 -6
  112. package/es/index.mjs.map +1 -1
  113. package/es/oracle.d.ts +5 -5
  114. package/es/oracle.mjs +33 -39
  115. package/es/oracle.mjs.map +1 -1
  116. package/es/spend.d.ts +3 -3
  117. package/es/spend.mjs +17 -20
  118. package/es/spend.mjs.map +1 -1
  119. package/es/tx/builder/constants.d.ts +2 -1
  120. package/es/tx/builder/constants.mjs +12 -12
  121. package/es/tx/builder/constants.mjs.map +1 -1
  122. package/es/tx/builder/field-types/address.d.ts +15 -0
  123. package/es/tx/builder/field-types/address.mjs +42 -0
  124. package/es/tx/builder/field-types/address.mjs.map +1 -0
  125. package/es/tx/builder/field-types/addresses.d.ts +6 -0
  126. package/es/tx/builder/field-types/addresses.mjs +13 -0
  127. package/es/tx/builder/field-types/addresses.mjs.map +1 -0
  128. package/es/tx/builder/field-types/coin-amount.d.ts +1 -2
  129. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  130. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  131. package/es/tx/builder/field-types/deposit.d.ts +0 -1
  132. package/es/tx/builder/field-types/deposit.mjs +2 -4
  133. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  134. package/es/tx/builder/field-types/enumeration.d.ts +5 -0
  135. package/es/tx/builder/field-types/enumeration.mjs +21 -0
  136. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  137. package/es/tx/builder/field-types/fee.d.ts +1 -9
  138. package/es/tx/builder/field-types/fee.mjs +9 -25
  139. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  140. package/es/tx/builder/field-types/field.mjs +0 -2
  141. package/es/tx/builder/field-types/field.mjs.map +1 -1
  142. package/es/tx/builder/field-types/gas-limit.mjs +4 -9
  143. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  144. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  145. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  146. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  147. package/es/tx/builder/field-types/index.d.ts +23 -11
  148. package/es/tx/builder/field-types/index.mjs +10 -3
  149. package/es/tx/builder/field-types/index.mjs.map +1 -1
  150. package/es/tx/builder/field-types/name-fee.d.ts +0 -1
  151. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  152. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  153. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  154. package/es/tx/builder/field-types/name-id.mjs +4 -10
  155. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  156. package/es/tx/builder/field-types/name.mjs +0 -2
  157. package/es/tx/builder/field-types/name.mjs.map +1 -1
  158. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  159. package/es/tx/builder/field-types/pointers.mjs +36 -0
  160. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  161. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  162. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  163. package/es/tx/builder/field-types/u-int.d.ts +1 -1
  164. package/es/tx/builder/field-types/u-int.mjs +3 -4
  165. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  166. package/es/tx/builder/helpers.d.ts +2 -32
  167. package/es/tx/builder/helpers.mjs +19 -71
  168. package/es/tx/builder/helpers.mjs.map +1 -1
  169. package/es/tx/builder/index.d.ts +1 -21
  170. package/es/tx/builder/index.mjs +29 -148
  171. package/es/tx/builder/index.mjs.map +1 -1
  172. package/es/tx/builder/schema.d.ts +336 -176
  173. package/es/tx/builder/schema.mjs +71 -78
  174. package/es/tx/builder/schema.mjs.map +1 -1
  175. package/es/tx/index.d.ts +3 -33
  176. package/es/tx/index.mjs +26 -43
  177. package/es/tx/index.mjs.map +1 -1
  178. package/es/tx/validator.d.ts +2 -2
  179. package/es/tx/validator.mjs +86 -59
  180. package/es/tx/validator.mjs.map +1 -1
  181. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  182. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  183. package/es/utils/amount-formatter.mjs +4 -10
  184. package/es/utils/amount-formatter.mjs.map +1 -1
  185. package/es/utils/autorest.d.ts +1 -0
  186. package/es/utils/autorest.mjs +17 -19
  187. package/es/utils/autorest.mjs.map +1 -1
  188. package/es/utils/bignumber.mjs +4 -7
  189. package/es/utils/bignumber.mjs.map +1 -1
  190. package/es/utils/bytes.d.ts +0 -17
  191. package/es/utils/bytes.mjs +6 -35
  192. package/es/utils/bytes.mjs.map +1 -1
  193. package/es/utils/crypto.d.ts +15 -8
  194. package/es/utils/crypto.mjs +40 -40
  195. package/es/utils/crypto.mjs.map +1 -1
  196. package/es/utils/encoder-types.d.ts +28 -28
  197. package/es/utils/encoder-types.mjs +0 -1
  198. package/es/utils/encoder-types.mjs.map +1 -1
  199. package/es/utils/encoder.d.ts +0 -1
  200. package/es/utils/encoder.mjs +7 -15
  201. package/es/utils/encoder.mjs.map +1 -1
  202. package/es/utils/errors.d.ts +12 -6
  203. package/es/utils/errors.mjs +87 -163
  204. package/es/utils/errors.mjs.map +1 -1
  205. package/es/utils/hd-wallet.d.ts +27 -19
  206. package/es/utils/hd-wallet.mjs +42 -26
  207. package/es/utils/hd-wallet.mjs.map +1 -1
  208. package/es/utils/json-big.mjs +0 -8
  209. package/es/utils/json-big.mjs.map +1 -1
  210. package/es/utils/keystore.d.ts +2 -0
  211. package/es/utils/keystore.mjs +37 -36
  212. package/es/utils/keystore.mjs.map +1 -1
  213. package/es/utils/mptree.d.ts +1 -1
  214. package/es/utils/mptree.mjs +4 -26
  215. package/es/utils/mptree.mjs.map +1 -1
  216. package/es/utils/other.d.ts +3 -1
  217. package/es/utils/other.mjs +11 -7
  218. package/es/utils/other.mjs.map +1 -1
  219. package/es/utils/semver-satisfies.mjs +0 -3
  220. package/es/utils/semver-satisfies.mjs.map +1 -1
  221. package/es/utils/string.d.ts +0 -12
  222. package/es/utils/string.mjs +1 -21
  223. package/es/utils/string.mjs.map +1 -1
  224. package/package.json +86 -47
  225. package/src/AeSdk.ts +15 -11
  226. package/src/AeSdkAepp.ts +9 -7
  227. package/src/AeSdkBase.ts +28 -202
  228. package/src/AeSdkMethods.ts +170 -0
  229. package/src/AeSdkWallet.ts +16 -47
  230. package/src/Node.ts +11 -15
  231. package/src/account/Base.ts +29 -75
  232. package/src/account/Generalized.ts +98 -0
  233. package/src/account/Ledger.ts +131 -0
  234. package/src/account/LedgerFactory.ts +86 -0
  235. package/src/account/Memory.ts +46 -60
  236. package/src/account/Rpc.ts +17 -26
  237. package/src/aens.ts +10 -9
  238. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +5 -4
  239. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  240. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  241. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  242. package/src/aepp-wallet-communication/schema.ts +18 -18
  243. package/src/apis/compiler/code-model-v4.yaml +681 -888
  244. package/src/apis/compiler/compiler.ts +113 -154
  245. package/src/apis/compiler/models/index.ts +80 -140
  246. package/src/apis/compiler/models/mappers.ts +165 -183
  247. package/src/apis/compiler/models/parameters.ts +6 -12
  248. package/src/chain.ts +6 -3
  249. package/src/channel/Base.ts +327 -0
  250. package/src/channel/Contract.ts +487 -0
  251. package/src/channel/Spend.ts +403 -0
  252. package/src/channel/handlers.ts +154 -573
  253. package/src/channel/internal.ts +113 -142
  254. package/src/contract/{Compiler.ts → CompilerHttp.ts} +5 -5
  255. package/src/contract/Contract.ts +620 -0
  256. package/src/contract/ga.ts +18 -104
  257. package/src/index.ts +9 -8
  258. package/src/oracle.ts +7 -7
  259. package/src/spend.ts +5 -13
  260. package/src/tx/builder/constants.ts +1 -0
  261. package/src/tx/builder/field-types/address.ts +52 -0
  262. package/src/tx/builder/field-types/addresses.ts +18 -0
  263. package/src/tx/builder/field-types/coin-amount.ts +2 -8
  264. package/src/tx/builder/field-types/enumeration.ts +21 -0
  265. package/src/tx/builder/field-types/fee.ts +1 -3
  266. package/src/tx/builder/field-types/gas-limit.ts +2 -2
  267. package/src/tx/builder/field-types/gas-price.ts +0 -2
  268. package/src/tx/builder/field-types/index.ts +16 -6
  269. package/src/tx/builder/field-types/name-fee.ts +1 -1
  270. package/src/tx/builder/field-types/name-id.ts +7 -10
  271. package/src/tx/builder/field-types/pointers.ts +41 -0
  272. package/src/tx/builder/field-types/u-int.ts +3 -2
  273. package/src/tx/builder/helpers.ts +10 -60
  274. package/src/tx/builder/index.ts +6 -65
  275. package/src/tx/builder/schema.ts +89 -100
  276. package/src/tx/index.ts +19 -15
  277. package/src/tx/validator.ts +36 -18
  278. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  279. package/src/utils/autorest.ts +16 -1
  280. package/src/utils/bytes.ts +5 -33
  281. package/src/utils/crypto.ts +23 -16
  282. package/src/utils/encoder.ts +0 -1
  283. package/src/utils/errors.ts +18 -12
  284. package/src/utils/hd-wallet.ts +30 -9
  285. package/src/utils/keystore.ts +24 -21
  286. package/src/utils/other.ts +16 -1
  287. package/src/utils/string.ts +0 -20
  288. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  289. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  290. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  291. package/types-legacy/ts4.2/AeSdkMethods.d.ts +141 -0
  292. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  293. package/types-legacy/ts4.2/Node.d.ts +78 -0
  294. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  295. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  296. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  297. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  298. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  299. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  300. package/types-legacy/ts4.2/aens.d.ts +222 -0
  301. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  302. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  303. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  304. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  305. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  306. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  307. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  308. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  309. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  310. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  311. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  312. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  313. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  314. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  315. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  316. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  317. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  318. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  319. package/types-legacy/ts4.2/chain.d.ts +248 -0
  320. package/types-legacy/ts4.2/channel/Base.d.ts +194 -0
  321. package/types-legacy/ts4.2/channel/Contract.d.ts +247 -0
  322. package/types-legacy/ts4.2/channel/Spend.d.ts +217 -0
  323. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  324. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  325. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +18 -0
  326. package/types-legacy/ts4.2/contract/Contract.d.ts +237 -0
  327. package/types-legacy/ts4.2/contract/ga.d.ts +43 -0
  328. package/types-legacy/ts4.2/globals.d.ts +16 -0
  329. package/types-legacy/ts4.2/index.d.ts +39 -0
  330. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  331. package/types-legacy/ts4.2/spend.d.ts +62 -0
  332. package/types-legacy/ts4.2/tx/builder/constants.d.ts +71 -0
  333. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +22 -0
  334. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +6 -0
  335. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  336. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  337. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -0
  338. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +17 -0
  339. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  340. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +12 -0
  341. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  342. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +85 -0
  343. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +19 -0
  344. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  345. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  346. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  347. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  348. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +8 -0
  349. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  350. package/types-legacy/ts4.2/tx/builder/index.d.ts +68 -0
  351. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2963 -0
  352. package/types-legacy/ts4.2/tx/index.d.ts +34 -0
  353. package/types-legacy/ts4.2/tx/validator.d.ts +20 -0
  354. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  355. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  356. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  357. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  358. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  359. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  360. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  361. package/types-legacy/ts4.2/utils/errors.d.ts +480 -0
  362. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  363. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  364. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  365. package/types-legacy/ts4.2/utils/mptree.d.ts +32 -0
  366. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  367. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  368. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  369. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  370. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  371. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  372. package/types-legacy/ts4.5/AeSdkMethods.d.ts +141 -0
  373. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  374. package/types-legacy/ts4.5/Node.d.ts +78 -0
  375. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  376. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  377. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  378. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  379. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  380. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  381. package/types-legacy/ts4.5/aens.d.ts +222 -0
  382. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  383. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  384. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  385. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  386. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  387. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  388. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  389. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  390. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  391. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  392. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  393. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  394. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  395. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  396. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  397. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  398. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  399. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  400. package/types-legacy/ts4.5/chain.d.ts +248 -0
  401. package/types-legacy/ts4.5/channel/Base.d.ts +194 -0
  402. package/types-legacy/ts4.5/channel/Contract.d.ts +247 -0
  403. package/types-legacy/ts4.5/channel/Spend.d.ts +217 -0
  404. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  405. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  406. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +18 -0
  407. package/types-legacy/ts4.5/contract/Contract.d.ts +237 -0
  408. package/types-legacy/ts4.5/contract/ga.d.ts +43 -0
  409. package/types-legacy/ts4.5/index.d.ts +38 -0
  410. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  411. package/types-legacy/ts4.5/spend.d.ts +62 -0
  412. package/types-legacy/ts4.5/tx/builder/constants.d.ts +71 -0
  413. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +22 -0
  414. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +6 -0
  415. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  416. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  417. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -0
  418. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +17 -0
  419. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  420. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +12 -0
  421. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  422. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +85 -0
  423. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +19 -0
  424. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  426. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +8 -0
  429. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  430. package/types-legacy/ts4.5/tx/builder/index.d.ts +68 -0
  431. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2963 -0
  432. package/types-legacy/ts4.5/tx/index.d.ts +34 -0
  433. package/types-legacy/ts4.5/tx/validator.d.ts +20 -0
  434. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  435. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  436. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  437. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  438. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  439. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  440. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  441. package/types-legacy/ts4.5/utils/errors.d.ts +480 -0
  442. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  443. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  444. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  445. package/types-legacy/ts4.5/utils/mptree.d.ts +32 -0
  446. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  447. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  448. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  449. package/es/channel/index.d.ts +0 -625
  450. package/es/channel/index.mjs +0 -975
  451. package/es/channel/index.mjs.map +0 -1
  452. package/es/contract/Compiler.mjs.map +0 -1
  453. package/es/contract/aci.d.ts +0 -127
  454. package/es/contract/aci.mjs +0 -508
  455. package/es/contract/aci.mjs.map +0 -1
  456. package/es/contract/methods.d.ts +0 -71
  457. package/es/contract/methods.mjs +0 -104
  458. package/es/contract/methods.mjs.map +0 -1
  459. package/es/deprecated/index.d.ts +0 -143
  460. package/es/deprecated/index.mjs +0 -162
  461. package/es/deprecated/index.mjs.map +0 -1
  462. package/es/deprecated/methods.d.ts +0 -18
  463. package/es/deprecated/methods.mjs +0 -26
  464. package/es/deprecated/methods.mjs.map +0 -1
  465. package/es/tx/builder/address.d.ts +0 -25
  466. package/es/tx/builder/address.mjs +0 -45
  467. package/es/tx/builder/address.mjs.map +0 -1
  468. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  469. package/src/channel/index.ts +0 -1025
  470. package/src/contract/aci.ts +0 -537
  471. package/src/contract/methods.ts +0 -123
  472. package/src/deprecated/index.ts +0 -172
  473. package/src/deprecated/methods.ts +0 -25
  474. package/src/tx/builder/address.ts +0 -50
  475. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
@@ -0,0 +1,247 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { SignTx, ChannelState, ChannelOptions } from './internal';
3
+ import { Encoded } from '../utils/encoder';
4
+ import { ContractCallReturnType } from '../apis/node';
5
+ import { ContractCallObject } from '../contract/Contract';
6
+ import ChannelSpend from './Spend';
7
+ interface CallContractOptions {
8
+ amount?: number | BigNumber;
9
+ callData?: Encoded.ContractBytearray;
10
+ abiVersion?: number;
11
+ contract?: Encoded.ContractAddress;
12
+ returnValue?: any;
13
+ gasUsed?: number | BigNumber;
14
+ gasPrice?: number | BigNumber;
15
+ height?: number;
16
+ callerNonce?: number;
17
+ log?: any;
18
+ returnType?: ContractCallReturnType;
19
+ }
20
+ interface Contract {
21
+ abiVersion: number;
22
+ active: boolean;
23
+ deposit: number | BigNumber;
24
+ id: string;
25
+ ownerId: string;
26
+ referrerIds: string[];
27
+ vmVersion: number;
28
+ }
29
+ export default class ChannelContract extends ChannelSpend {
30
+ static initialize(options: ChannelOptions): Promise<ChannelContract>;
31
+ /**
32
+ * Trigger create contract update
33
+ *
34
+ * The create contract update is creating a contract inside the channel's internal state tree.
35
+ * The update is a change to be applied on top of the latest state.
36
+ *
37
+ * That would create a contract with the poster being the owner of it. Poster commits initially
38
+ * a deposit amount of coins to the new contract.
39
+ *
40
+ * @param options - Options
41
+ * @param options.code - Api encoded compiled AEVM byte code
42
+ * @param options.callData - Api encoded compiled AEVM call data for the code
43
+ * @param options.deposit - Initial amount the owner of the contract commits to it
44
+ * @param options.vmVersion - Version of the Virtual Machine
45
+ * @param options.abiVersion - Version of the Application Binary Interface
46
+ * @param sign - Function which verifies and signs create contract transaction
47
+ * @example
48
+ * ```js
49
+ * channel.createContract({
50
+ * code: 'cb_HKtpipK4aCgYb17wZ...',
51
+ * callData: 'cb_1111111111111111...',
52
+ * deposit: 10,
53
+ * vmVersion: 3,
54
+ * abiVersion: 1
55
+ * }).then(({ accepted, signedTx, address }) => {
56
+ * if (accepted) {
57
+ * console.log('New contract has been created')
58
+ * console.log('Contract address:', address)
59
+ * } else {
60
+ * console.log('New contract has been rejected')
61
+ * }
62
+ * })
63
+ * ```
64
+ */
65
+ createContract({ code, callData, deposit, vmVersion, abiVersion, }: {
66
+ code: Encoded.ContractBytearray;
67
+ callData: Encoded.ContractBytearray;
68
+ deposit: number | BigNumber;
69
+ vmVersion: number;
70
+ abiVersion: number;
71
+ }, sign: SignTx): Promise<{
72
+ accepted: boolean;
73
+ signedTx: Encoded.Transaction;
74
+ address: Encoded.ContractAddress;
75
+ }>;
76
+ /**
77
+ * Trigger call a contract update
78
+ *
79
+ * The call contract update is calling a preexisting contract inside the channel's
80
+ * internal state tree. The update is a change to be applied on top of the latest state.
81
+ *
82
+ * That would call a contract with the poster being the caller of it. Poster commits
83
+ * an amount of coins to the contract.
84
+ *
85
+ * The call would also create a call object inside the channel state tree. It contains
86
+ * the result of the contract call.
87
+ *
88
+ * It is worth mentioning that the gas is not consumed, because this is an off-chain
89
+ * contract call. It would be consumed if it were an on-chain one. This could happen
90
+ * if a call with a similar computation amount is to be forced on-chain.
91
+ *
92
+ * @param options - Options
93
+ * @param options.amount - Amount the caller of the contract commits to it
94
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
95
+ * @param options.contract - Address of the contract to call
96
+ * @param options.abiVersion - Version of the ABI
97
+ * @param sign - Function which verifies and signs contract call transaction
98
+ * @example
99
+ * ```js
100
+ * channel.callContract({
101
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
102
+ * callData: 'cb_1111111111111111...',
103
+ * amount: 0,
104
+ * abiVersion: 1
105
+ * }).then(({ accepted, signedTx }) => {
106
+ * if (accepted) {
107
+ * console.log('Contract called succesfully')
108
+ * } else {
109
+ * console.log('Contract call has been rejected')
110
+ * }
111
+ * })
112
+ * ```
113
+ */
114
+ callContract({ amount, callData, contract, abiVersion, }: CallContractOptions, sign: SignTx): Promise<{
115
+ accepted: boolean;
116
+ signedTx: Encoded.Transaction;
117
+ }>;
118
+ /**
119
+ * Trigger a force progress contract call
120
+ * This call is going on-chain
121
+ * @param options - Options
122
+ * @param options.amount - Amount the caller of the contract commits to it
123
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
124
+ * @param options.contract - Address of the contract to call
125
+ * @param options.abiVersion - Version of the ABI
126
+ * @param options.gasPrice=1000000000]
127
+ * @param options.gasLimit=1000000]
128
+ * @param sign - Function which verifies and signs contract force progress transaction
129
+ * @param callbacks - Callbacks
130
+ * @example
131
+ * ```js
132
+ * channel.forceProgress({
133
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
134
+ * callData: 'cb_1111111111111111...',
135
+ * amount: 0,
136
+ * abiVersion: 1,
137
+ * gasPrice: 1000005554
138
+ * }).then(({ accepted, signedTx }) => {
139
+ * if (accepted) {
140
+ * console.log('Contract force progress call successful')
141
+ * } else {
142
+ * console.log('Contract force progress call has been rejected')
143
+ * }
144
+ * })
145
+ * ```
146
+ */
147
+ forceProgress({ amount, callData, contract, abiVersion, gasLimit, gasPrice, }: {
148
+ amount: number;
149
+ callData: Encoded.ContractBytearray;
150
+ contract: Encoded.ContractAddress;
151
+ abiVersion: number;
152
+ gasLimit?: number;
153
+ gasPrice?: number;
154
+ }, sign: SignTx, { onOnChainTx }?: Pick<ChannelState, 'onOnChainTx'>): Promise<{
155
+ accepted: boolean;
156
+ signedTx: Encoded.Transaction;
157
+ tx: Encoded.Transaction | Uint8Array;
158
+ }>;
159
+ /**
160
+ * Call contract using dry-run
161
+ *
162
+ * In order to get the result of a potential contract call, one might need to
163
+ * dry-run a contract call. It takes the exact same arguments as a call would
164
+ * and returns the call object.
165
+ *
166
+ * The call is executed in the channel's state, but it does not impact the state
167
+ * whatsoever. It uses as an environment the latest channel's state and the current
168
+ * top of the blockchain as seen by the node.
169
+ *
170
+ * @param options - Options
171
+ * @param options.amount - Amount the caller of the contract commits to it
172
+ * @param options.callData - ABI encoded compiled AEVM call data for the code
173
+ * @param options.contract - Address of the contract to call
174
+ * @param options.abiVersion - Version of the ABI
175
+ * @example
176
+ * ```js
177
+ * channel.callContractStatic({
178
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
179
+ * callData: 'cb_1111111111111111...',
180
+ * amount: 0,
181
+ * abiVersion: 1
182
+ * }).then(({ returnValue, gasUsed }) => {
183
+ * console.log('Returned value:', returnValue)
184
+ * console.log('Gas used:', gasUsed)
185
+ * })
186
+ * ```
187
+ */
188
+ callContractStatic({ amount, callData, contract, abiVersion, }: {
189
+ amount: number;
190
+ callData: Encoded.ContractBytearray;
191
+ contract: Encoded.ContractAddress;
192
+ abiVersion: number;
193
+ }): Promise<CallContractOptions>;
194
+ /**
195
+ * Get contract call result
196
+ *
197
+ * The combination of a caller, contract and a round of execution determines the
198
+ * contract call. Providing an incorrect set of those results in an error response.
199
+ *
200
+ * @param options - Options
201
+ * @param options.caller - Address of contract caller
202
+ * @param options.contract - Address of the contract
203
+ * @param options.round - Round when contract was called
204
+ * @example
205
+ * ```js
206
+ * channel.getContractCall({
207
+ * caller: 'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',
208
+ * contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
209
+ * round: 3
210
+ * }).then(({ returnType, returnValue }) => {
211
+ * if (returnType === 'ok') console.log(returnValue)
212
+ * })
213
+ * ```
214
+ */
215
+ getContractCall({ caller, contract, round }: {
216
+ caller: Encoded.AccountAddress;
217
+ contract: Encoded.ContractAddress;
218
+ round: number;
219
+ }): Promise<ContractCallObject>;
220
+ /**
221
+ * Get the latest contract state
222
+ *
223
+ * @param contract - Address of the contract
224
+ * @example
225
+ * ```js
226
+ * channel.getContractState(
227
+ * 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa'
228
+ * ).then(({ contract }) => {
229
+ * console.log('deposit:', contract.deposit)
230
+ * })
231
+ * ```
232
+ */
233
+ getContractState(contract: Encoded.ContractAddress): Promise<{
234
+ contract: Contract;
235
+ contractState: object;
236
+ }>;
237
+ /**
238
+ * Clean up all locally stored contract calls
239
+ *
240
+ * Contract calls are kept locally in order for the participant to be able to look them up.
241
+ * They consume memory and in order for the participant to free it - one can prune all messages.
242
+ * This cleans up all locally stored contract calls and those will no longer be available for
243
+ * fetching and inspection.
244
+ */
245
+ cleanContractCalls(): Promise<void>;
246
+ }
247
+ 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).tx.encodedTx.tx;
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