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