@aeternity/aepp-sdk 13.0.0-alpha.0 → 13.0.0-beta.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 (481) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +5595 -2249
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.mjs.map +1 -1
  9. package/es/AeSdkAepp.mjs.map +1 -1
  10. package/es/AeSdkBase.d.ts +3 -3
  11. package/es/AeSdkBase.mjs +4 -0
  12. package/es/AeSdkBase.mjs.map +1 -1
  13. package/es/AeSdkMethods.d.ts +12 -14
  14. package/es/AeSdkMethods.mjs +6 -8
  15. package/es/AeSdkMethods.mjs.map +1 -1
  16. package/es/AeSdkWallet.mjs +1 -1
  17. package/es/AeSdkWallet.mjs.map +1 -1
  18. package/es/Node.d.ts +9 -4
  19. package/es/Node.mjs +12 -6
  20. package/es/Node.mjs.map +1 -1
  21. package/es/account/Base.d.ts +13 -8
  22. package/es/account/Base.mjs +0 -17
  23. package/es/account/Base.mjs.map +1 -1
  24. package/es/account/Generalized.mjs +14 -25
  25. package/es/account/Generalized.mjs.map +1 -1
  26. package/es/account/Ledger.mjs +2 -1
  27. package/es/account/Ledger.mjs.map +1 -1
  28. package/es/account/LedgerFactory.mjs.map +1 -1
  29. package/es/account/Memory.d.ts +2 -1
  30. package/es/account/Memory.mjs +11 -22
  31. package/es/account/Memory.mjs.map +1 -1
  32. package/es/account/Rpc.mjs.map +1 -1
  33. package/es/aens.d.ts +12 -14
  34. package/es/aens.mjs +22 -32
  35. package/es/aens.mjs.map +1 -1
  36. package/es/aepp-wallet-communication/connection/Browser.mjs +0 -16
  37. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  38. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -20
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  41. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  43. package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
  44. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  45. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -6
  46. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
  48. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
  51. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  52. package/es/apis/compiler/compiler.d.ts +1 -1
  53. package/es/apis/compiler/compiler.mjs +4 -20
  54. package/es/apis/compiler/compiler.mjs.map +1 -1
  55. package/es/apis/compiler/models/index.d.ts +3 -2
  56. package/es/apis/compiler/models/index.mjs.map +1 -1
  57. package/es/apis/compiler/models/mappers.d.ts +1 -1
  58. package/es/apis/compiler/models/mappers.mjs +19 -2
  59. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  60. package/es/apis/node/models/index.d.ts +15 -15
  61. package/es/apis/node/models/index.mjs.map +1 -1
  62. package/es/apis/node/models/mappers.d.ts +1 -1
  63. package/es/apis/node/models/mappers.mjs +2 -1
  64. package/es/apis/node/models/mappers.mjs.map +1 -1
  65. package/es/apis/node/models/parameters.d.ts +2 -2
  66. package/es/apis/node/models/parameters.mjs +2 -2
  67. package/es/apis/node/models/parameters.mjs.map +1 -1
  68. package/es/apis/node/node.mjs +3 -19
  69. package/es/apis/node/node.mjs.map +1 -1
  70. package/es/chain.d.ts +17 -9
  71. package/es/chain.mjs +23 -23
  72. package/es/chain.mjs.map +1 -1
  73. package/es/channel/Base.d.ts +27 -9
  74. package/es/channel/Base.mjs +27 -27
  75. package/es/channel/Base.mjs.map +1 -1
  76. package/es/channel/Contract.d.ts +8 -7
  77. package/es/channel/Contract.mjs +8 -21
  78. package/es/channel/Contract.mjs.map +1 -1
  79. package/es/channel/Spend.d.ts +5 -1
  80. package/es/channel/Spend.mjs +4 -18
  81. package/es/channel/Spend.mjs.map +1 -1
  82. package/es/channel/handlers.mjs +16 -26
  83. package/es/channel/handlers.mjs.map +1 -1
  84. package/es/channel/internal.d.ts +19 -2
  85. package/es/channel/internal.mjs +22 -20
  86. package/es/channel/internal.mjs.map +1 -1
  87. package/es/contract/Contract.d.ts +43 -123
  88. package/es/contract/Contract.mjs +230 -250
  89. package/es/contract/Contract.mjs.map +1 -1
  90. package/es/contract/compiler/Base.d.ts +74 -0
  91. package/es/contract/compiler/Base.mjs +5 -0
  92. package/es/contract/compiler/Base.mjs.map +1 -0
  93. package/es/contract/compiler/Cli.d.ts +23 -0
  94. package/es/contract/compiler/Cli.mjs +149 -0
  95. package/es/contract/compiler/Cli.mjs.map +1 -0
  96. package/es/contract/compiler/Http.d.ts +32 -0
  97. package/es/contract/compiler/Http.mjs +94 -0
  98. package/es/contract/compiler/Http.mjs.map +1 -0
  99. package/es/contract/compiler/HttpNode.d.ts +17 -0
  100. package/es/contract/compiler/HttpNode.mjs +26 -0
  101. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  102. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  103. package/es/contract/compiler/getFileSystem.mjs +40 -0
  104. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  105. package/es/contract/delegation-signature.d.ts +43 -0
  106. package/es/contract/delegation-signature.mjs +45 -0
  107. package/es/contract/delegation-signature.mjs.map +1 -0
  108. package/es/contract/ga.d.ts +27 -10
  109. package/es/contract/ga.mjs +63 -29
  110. package/es/contract/ga.mjs.map +1 -1
  111. package/es/index-browser.d.ts +40 -0
  112. package/es/index-browser.mjs +41 -0
  113. package/es/index-browser.mjs.map +1 -0
  114. package/es/index.d.ts +4 -38
  115. package/es/index.mjs +4 -53
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +12 -17
  118. package/es/oracle.mjs +29 -49
  119. package/es/oracle.mjs.map +1 -1
  120. package/es/spend.d.ts +19 -27
  121. package/es/spend.mjs +21 -46
  122. package/es/spend.mjs.map +1 -1
  123. package/es/tx/builder/SchemaTypes.d.ts +37 -0
  124. package/es/tx/builder/SchemaTypes.mjs +2 -0
  125. package/es/tx/builder/SchemaTypes.mjs.map +1 -0
  126. package/es/tx/builder/constants.d.ts +31 -2
  127. package/es/tx/builder/constants.mjs +34 -3
  128. package/es/tx/builder/constants.mjs.map +1 -1
  129. package/es/tx/builder/field-types/abi-version.d.ts +19 -0
  130. package/es/tx/builder/field-types/abi-version.mjs +40 -0
  131. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  132. package/es/tx/builder/field-types/address.d.ts +5 -6
  133. package/es/tx/builder/field-types/address.mjs +17 -8
  134. package/es/tx/builder/field-types/address.mjs.map +1 -1
  135. package/es/tx/builder/field-types/array.d.ts +7 -0
  136. package/es/tx/builder/field-types/array.mjs +11 -0
  137. package/es/tx/builder/field-types/array.mjs.map +1 -0
  138. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  139. package/es/tx/builder/field-types/boolean.mjs +13 -0
  140. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  141. package/es/tx/builder/field-types/coin-amount.d.ts +4 -5
  142. package/es/tx/builder/field-types/coin-amount.mjs +4 -5
  143. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  144. package/es/tx/builder/field-types/ct-version.d.ts +49 -0
  145. package/es/tx/builder/field-types/ct-version.mjs +76 -0
  146. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  147. package/es/tx/builder/field-types/deposit.d.ts +3 -2
  148. package/es/tx/builder/field-types/deposit.mjs +3 -2
  149. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  150. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  151. package/es/tx/builder/field-types/encoded.mjs +21 -0
  152. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  153. package/es/tx/builder/field-types/entry.d.ts +11 -0
  154. package/es/tx/builder/field-types/entry.mjs +34 -0
  155. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  156. package/es/tx/builder/field-types/enumeration.d.ts +5 -3
  157. package/es/tx/builder/field-types/enumeration.mjs +11 -2
  158. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  159. package/es/tx/builder/field-types/fee.d.ts +12 -7
  160. package/es/tx/builder/field-types/fee.mjs +28 -20
  161. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  162. package/es/tx/builder/field-types/field.mjs.map +1 -1
  163. package/es/tx/builder/field-types/gas-limit.d.ts +7 -3
  164. package/es/tx/builder/field-types/gas-limit.mjs +13 -8
  165. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  166. package/es/tx/builder/field-types/gas-price.d.ts +3 -1
  167. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  168. package/es/tx/builder/field-types/index.d.ts +107 -30
  169. package/es/tx/builder/field-types/index.mjs +38 -12
  170. package/es/tx/builder/field-types/index.mjs.map +1 -1
  171. package/es/tx/builder/field-types/map.d.ts +13 -0
  172. package/es/tx/builder/field-types/map.mjs +49 -0
  173. package/es/tx/builder/field-types/map.mjs.map +1 -0
  174. package/es/tx/builder/field-types/mptree.d.ts +42 -0
  175. package/es/tx/builder/field-types/mptree.mjs +266 -0
  176. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  177. package/es/tx/builder/field-types/name-fee.d.ts +2 -3
  178. package/es/tx/builder/field-types/name-fee.mjs +2 -2
  179. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  180. package/es/tx/builder/field-types/name-id.mjs +2 -1
  181. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  182. package/es/tx/builder/field-types/name.mjs.map +1 -1
  183. package/es/tx/builder/field-types/nonce.d.ts +14 -0
  184. package/es/tx/builder/field-types/nonce.mjs +29 -0
  185. package/es/tx/builder/field-types/nonce.mjs.map +1 -0
  186. package/es/tx/builder/field-types/pointers.mjs +2 -2
  187. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  188. package/es/tx/builder/field-types/raw.d.ts +6 -0
  189. package/es/tx/builder/field-types/raw.mjs +13 -0
  190. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  191. package/es/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  192. package/es/tx/builder/field-types/short-u-int-const.mjs +20 -0
  193. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  194. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  195. package/es/tx/builder/field-types/string.d.ts +6 -0
  196. package/es/tx/builder/field-types/string.mjs +10 -0
  197. package/es/tx/builder/field-types/string.mjs.map +1 -0
  198. package/es/tx/builder/field-types/ttl.d.ts +11 -0
  199. package/es/tx/builder/field-types/ttl.mjs +21 -0
  200. package/es/tx/builder/field-types/ttl.mjs.map +1 -0
  201. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  202. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  203. package/es/tx/builder/field-types/wrapped.d.ts +14 -0
  204. package/es/tx/builder/field-types/wrapped.mjs +22 -0
  205. package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
  206. package/es/tx/builder/helpers.mjs.map +1 -1
  207. package/es/tx/builder/index.d.ts +18 -36
  208. package/es/tx/builder/index.mjs +65 -236
  209. package/es/tx/builder/index.mjs.map +1 -1
  210. package/es/tx/builder/schema.d.ts +2734 -1324
  211. package/es/tx/builder/schema.generated.d.ts +2011 -0
  212. package/es/tx/builder/schema.generated.mjs +2 -0
  213. package/es/tx/builder/schema.generated.mjs.map +1 -0
  214. package/es/tx/builder/schema.mjs +459 -223
  215. package/es/tx/builder/schema.mjs.map +1 -1
  216. package/es/tx/execution-cost.d.ts +35 -0
  217. package/es/tx/execution-cost.mjs +123 -0
  218. package/es/tx/execution-cost.mjs.map +1 -0
  219. package/es/tx/transaction-signer.d.ts +6 -0
  220. package/es/tx/transaction-signer.mjs +27 -0
  221. package/es/tx/transaction-signer.mjs.map +1 -0
  222. package/es/tx/validator.d.ts +3 -5
  223. package/es/tx/validator.mjs +91 -153
  224. package/es/tx/validator.mjs.map +1 -1
  225. package/es/utils/amount-formatter.mjs +0 -16
  226. package/es/utils/amount-formatter.mjs.map +1 -1
  227. package/es/utils/autorest.d.ts +3 -2
  228. package/es/utils/autorest.mjs +43 -11
  229. package/es/utils/autorest.mjs.map +1 -1
  230. package/es/utils/bytes.mjs +1 -17
  231. package/es/utils/bytes.mjs.map +1 -1
  232. package/es/utils/crypto.mjs +0 -16
  233. package/es/utils/crypto.mjs.map +1 -1
  234. package/es/utils/encoder.mjs.map +1 -1
  235. package/es/utils/errors.d.ts +16 -38
  236. package/es/utils/errors.mjs +3 -43
  237. package/es/utils/errors.mjs.map +1 -1
  238. package/es/utils/hd-wallet.mjs.map +1 -1
  239. package/es/utils/json-big.mjs.map +1 -1
  240. package/es/utils/keystore.mjs.map +1 -1
  241. package/es/utils/other.mjs.map +1 -1
  242. package/es/utils/semver-satisfies.mjs.map +1 -1
  243. package/es/utils/string.mjs +0 -17
  244. package/es/utils/string.mjs.map +1 -1
  245. package/package.json +52 -40
  246. package/src/AeSdkBase.ts +6 -3
  247. package/src/AeSdkMethods.ts +12 -18
  248. package/src/AeSdkWallet.ts +1 -1
  249. package/src/Node.ts +23 -9
  250. package/src/account/Base.ts +13 -24
  251. package/src/account/Generalized.ts +9 -24
  252. package/src/account/Ledger.ts +1 -1
  253. package/src/account/Memory.ts +15 -22
  254. package/src/aens.ts +34 -49
  255. package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
  256. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -24
  257. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
  258. package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
  259. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  260. package/src/aepp-wallet-communication/rpc/types.ts +6 -2
  261. package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
  262. package/src/apis/compiler/compiler.ts +3 -27
  263. package/src/apis/compiler/models/index.ts +3 -2
  264. package/src/apis/compiler/models/mappers.ts +15 -2
  265. package/src/apis/node/models/index.ts +16 -15
  266. package/src/apis/node/models/mappers.ts +2 -1
  267. package/src/apis/node/models/parameters.ts +2 -2
  268. package/src/apis/node/node.ts +3 -27
  269. package/src/chain.ts +33 -30
  270. package/src/channel/Base.ts +39 -31
  271. package/src/channel/Contract.ts +18 -32
  272. package/src/channel/Spend.ts +8 -18
  273. package/src/channel/handlers.ts +14 -26
  274. package/src/channel/internal.ts +41 -23
  275. package/src/contract/Contract.ts +188 -228
  276. package/src/contract/compiler/Base.ts +87 -0
  277. package/src/contract/compiler/Cli.ts +128 -0
  278. package/src/contract/compiler/Http.ts +105 -0
  279. package/src/contract/compiler/HttpNode.ts +26 -0
  280. package/src/contract/compiler/getFileSystem.ts +42 -0
  281. package/src/contract/delegation-signature.ts +56 -0
  282. package/src/contract/ga.ts +61 -37
  283. package/src/index-browser.ts +50 -0
  284. package/src/index.ts +4 -56
  285. package/src/oracle.ts +47 -57
  286. package/src/spend.ts +34 -68
  287. package/src/tx/builder/SchemaTypes.ts +79 -0
  288. package/src/tx/builder/constants.ts +34 -3
  289. package/src/tx/builder/field-types/abi-version.ts +44 -0
  290. package/src/tx/builder/field-types/address.ts +23 -13
  291. package/src/tx/builder/field-types/array.ts +19 -0
  292. package/src/tx/builder/field-types/boolean.ts +9 -0
  293. package/src/tx/builder/field-types/coin-amount.ts +8 -5
  294. package/src/tx/builder/field-types/ct-version.ts +83 -0
  295. package/src/tx/builder/field-types/deposit.ts +4 -2
  296. package/src/tx/builder/field-types/encoded.ts +27 -0
  297. package/src/tx/builder/field-types/entry.ts +36 -0
  298. package/src/tx/builder/field-types/enumeration.ts +15 -4
  299. package/src/tx/builder/field-types/fee.ts +41 -19
  300. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  301. package/src/tx/builder/field-types/index.ts +60 -17
  302. package/src/tx/builder/field-types/map.ts +45 -0
  303. package/src/tx/builder/field-types/mptree.ts +243 -0
  304. package/src/tx/builder/field-types/name-fee.ts +3 -3
  305. package/src/tx/builder/field-types/name-id.ts +1 -1
  306. package/src/tx/builder/field-types/nonce.ts +40 -0
  307. package/src/tx/builder/field-types/pointers.ts +2 -2
  308. package/src/tx/builder/field-types/raw.ts +9 -0
  309. package/src/tx/builder/field-types/short-u-int-const.ts +30 -0
  310. package/src/tx/builder/field-types/string.ts +11 -0
  311. package/src/tx/builder/field-types/ttl.ts +24 -0
  312. package/src/tx/builder/field-types/u-int.ts +1 -3
  313. package/src/tx/builder/field-types/wrapped.ts +32 -0
  314. package/src/tx/builder/index.ts +82 -280
  315. package/src/tx/builder/schema.generated.ts +2013 -0
  316. package/src/tx/builder/schema.ts +536 -666
  317. package/src/tx/execution-cost.ts +146 -0
  318. package/src/tx/transaction-signer.ts +27 -0
  319. package/src/tx/validator.ts +100 -154
  320. package/src/utils/amount-formatter.ts +0 -16
  321. package/src/utils/autorest.ts +52 -11
  322. package/src/utils/bytes.ts +1 -17
  323. package/src/utils/crypto.ts +0 -16
  324. package/src/utils/errors.ts +18 -56
  325. package/src/utils/string.ts +0 -17
  326. package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
  327. package/types-legacy/ts4.2/AeSdkMethods.d.ts +12 -14
  328. package/types-legacy/ts4.2/Node.d.ts +8 -4
  329. package/types-legacy/ts4.2/account/Base.d.ts +13 -8
  330. package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
  331. package/types-legacy/ts4.2/aens.d.ts +12 -14
  332. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  333. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
  334. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
  335. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
  336. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
  337. package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
  338. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
  339. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
  340. package/types-legacy/ts4.2/chain.d.ts +17 -9
  341. package/types-legacy/ts4.2/channel/Base.d.ts +27 -9
  342. package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
  343. package/types-legacy/ts4.2/channel/Spend.d.ts +5 -1
  344. package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
  345. package/types-legacy/ts4.2/contract/Contract.d.ts +42 -122
  346. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +74 -0
  347. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  348. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  349. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  350. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  351. package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
  352. package/types-legacy/ts4.2/contract/ga.d.ts +27 -10
  353. package/types-legacy/ts4.2/index-browser.d.ts +40 -0
  354. package/types-legacy/ts4.2/index.d.ts +4 -38
  355. package/types-legacy/ts4.2/oracle.d.ts +12 -17
  356. package/types-legacy/ts4.2/spend.d.ts +19 -27
  357. package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
  358. package/types-legacy/ts4.2/tx/builder/constants.d.ts +31 -2
  359. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +19 -0
  360. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
  361. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  362. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  363. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +4 -5
  364. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +72 -0
  365. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +3 -2
  366. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  367. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  368. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
  369. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +12 -7
  370. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +7 -3
  371. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
  372. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +113 -30
  373. package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
  374. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +48 -0
  375. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +2 -3
  376. package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
  377. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  378. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  379. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  380. package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
  381. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
  382. package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
  383. package/types-legacy/ts4.2/tx/builder/index.d.ts +21 -36
  384. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2971 -2926
  385. package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
  386. package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
  387. package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
  388. package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
  389. package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
  390. package/types-legacy/ts4.2/utils/errors.d.ts +16 -38
  391. package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
  392. package/types-legacy/ts4.5/AeSdkMethods.d.ts +12 -14
  393. package/types-legacy/ts4.5/Node.d.ts +8 -4
  394. package/types-legacy/ts4.5/account/Base.d.ts +13 -8
  395. package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
  396. package/types-legacy/ts4.5/aens.d.ts +12 -14
  397. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  398. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
  399. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
  400. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
  401. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
  402. package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
  403. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
  404. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
  405. package/types-legacy/ts4.5/chain.d.ts +17 -9
  406. package/types-legacy/ts4.5/channel/Base.d.ts +27 -9
  407. package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
  408. package/types-legacy/ts4.5/channel/Spend.d.ts +5 -1
  409. package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
  410. package/types-legacy/ts4.5/contract/Contract.d.ts +42 -122
  411. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +74 -0
  412. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  413. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  414. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  415. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  416. package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
  417. package/types-legacy/ts4.5/contract/ga.d.ts +27 -10
  418. package/types-legacy/ts4.5/index-browser.d.ts +40 -0
  419. package/types-legacy/ts4.5/index.d.ts +4 -38
  420. package/types-legacy/ts4.5/oracle.d.ts +12 -17
  421. package/types-legacy/ts4.5/spend.d.ts +19 -27
  422. package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
  423. package/types-legacy/ts4.5/tx/builder/constants.d.ts +31 -2
  424. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +19 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
  426. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +4 -5
  429. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +72 -0
  430. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +3 -2
  431. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  432. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  433. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
  434. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +12 -7
  435. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +7 -3
  436. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
  437. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +113 -30
  438. package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
  439. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +48 -0
  440. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +2 -3
  441. package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
  442. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  443. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  444. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  445. package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
  446. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
  447. package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
  448. package/types-legacy/ts4.5/tx/builder/index.d.ts +21 -36
  449. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2971 -2926
  450. package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
  451. package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
  452. package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
  453. package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
  454. package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
  455. package/types-legacy/ts4.5/utils/errors.d.ts +16 -38
  456. package/es/contract/CompilerHttp.d.ts +0 -18
  457. package/es/contract/CompilerHttp.mjs +0 -63
  458. package/es/contract/CompilerHttp.mjs.map +0 -1
  459. package/es/tx/builder/field-types/addresses.d.ts +0 -6
  460. package/es/tx/builder/field-types/addresses.mjs +0 -13
  461. package/es/tx/builder/field-types/addresses.mjs.map +0 -1
  462. package/es/tx/index.d.ts +0 -34
  463. package/es/tx/index.mjs +0 -172
  464. package/es/tx/index.mjs.map +0 -1
  465. package/es/utils/mptree.d.ts +0 -26
  466. package/es/utils/mptree.mjs +0 -143
  467. package/es/utils/mptree.mjs.map +0 -1
  468. package/src/apis/compiler/code-model-v4.yaml +0 -2442
  469. package/src/apis/node/code-model-v4.yaml +0 -10080
  470. package/src/contract/CompilerHttp.ts +0 -67
  471. package/src/tx/builder/field-types/addresses.ts +0 -18
  472. package/src/tx/index.ts +0 -196
  473. package/src/utils/mptree.ts +0 -145
  474. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
  475. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
  476. package/types-legacy/ts4.2/tx/index.d.ts +0 -34
  477. package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
  478. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
  479. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
  480. package/types-legacy/ts4.5/tx/index.d.ts +0 -34
  481. package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
@@ -1,24 +1,9 @@
1
- import _buffer from "buffer";
2
- const {
3
- Buffer: _Buffer
4
- } = _buffer;
5
- /*
6
- * ISC License (ISC)
7
- * Copyright (c) 2022 aeternity developers
8
- *
9
- * Permission to use, copy, modify, and/or distribute this software for any
10
- * purpose with or without fee is hereby granted, provided that the above
11
- * copyright notice and this permission notice appear in all copies.
12
- *
13
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
- * PERFORMANCE OF THIS SOFTWARE.
20
- */
21
-
1
+ import _classPrivateFieldSet from "@babel/runtime-corejs3/helpers/classPrivateFieldSet";
2
+ import _classPrivateFieldGet from "@babel/runtime-corejs3/helpers/classPrivateFieldGet";
3
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
4
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
5
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
6
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
22
7
  /**
23
8
  * Contract module - routines to interact with the æternity contract
24
9
  *
@@ -32,15 +17,16 @@ const {
32
17
  } = _aeternityAeppCalldata;
33
18
  import { DRY_RUN_ACCOUNT } from "../tx/builder/schema.mjs";
34
19
  import { Tag } from "../tx/builder/constants.mjs";
35
- import { buildContractIdByContractTx, unpackTx } from "../tx/builder/index.mjs";
36
- import { _buildTx } from "../tx/index.mjs";
37
- import { send } from "../spend.mjs";
20
+ import { buildContractIdByContractTx, unpackTx, buildTxAsync, buildTxHash } from "../tx/builder/index.mjs";
38
21
  import { decode } from "../utils/encoder.mjs";
39
- import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError, UnexpectedTsError, InternalError, NoWalletConnectedError } from "../utils/errors.mjs";
22
+ import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError as _TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError, UnexpectedTsError, InternalError, NoWalletConnectedError, ContractError } from "../utils/errors.mjs";
40
23
  import { hash as calcHash } from "../utils/crypto.mjs";
41
- import { getAccount, getContract, getContractByteCode, getKeyBlock, resolveName, txDryRun } from "../chain.mjs";
42
- import { concatBuffers } from "../utils/other.mjs";
43
- import { isNameValid, produceNameId } from "../tx/builder/helpers.mjs";
24
+ import { getAccount, getContract, getContractByteCode, resolveName, txDryRun, sendTransaction } from "../chain.mjs";
25
+ var _getCallResult = /*#__PURE__*/new WeakSet();
26
+ var _sendAndProcess = /*#__PURE__*/new WeakSet();
27
+ var _getFunctionAci = /*#__PURE__*/new WeakSet();
28
+ var _getContractNameByEvent = /*#__PURE__*/new WeakSet();
29
+ var _aciContract = /*#__PURE__*/new WeakMap();
44
30
  /**
45
31
  * Generate contract ACI object with predefined js methods for contract usage - can be used for
46
32
  * creating a reference to already deployed contracts
@@ -59,54 +45,6 @@ import { isNameValid, produceNameId } from "../tx/builder/helpers.mjs";
59
45
  * stateful or not
60
46
  */
61
47
  class Contract {
62
- /**
63
- * Helper to generate a signature to delegate
64
- * - pre-claim/claim/transfer/revoke of a name to a contract.
65
- * - register/extend/respond of an Oracle to a contract.
66
- * @category contract
67
- * @param ids - The list of id's to prepend
68
- * @param _options - Options
69
- * @param _options.omitAddress - Prepend delegation signature with an account address
70
- * @param _options.onAccount - Account to use
71
- * @returns Signature
72
- * @example
73
- * ```js
74
- * const aeSdk = new AeSdk({ ... })
75
- * const contract = await aeSdk.initializeContract({ address: 'ct_asd2ks...' })
76
- * const aensName = 'example.chain'
77
- * const onAccount = new MemoryAccount(...) // Sign with a specific account
78
- * // Preclaim signature
79
- * const preclaimSig = await contract.$createDelegationSignature([], { onAccount })
80
- * // Claim, transfer and revoke signature
81
- * const aensDelegationSig = await contract
82
- * .$createDelegationSignature([aensName], { onAccount })
83
- * ```
84
- * @example
85
- * ```js
86
- * const aeSdk = new AeSdk({ ... })
87
- * const contract = await aeSdk.initializeContract({ address: 'ct_asd2ks...' })
88
- * const oracleQueryId = 'oq_...'
89
- * const onAccount = new MemoryAccount(...) // Sign with a specific account
90
- * // Oracle register and extend signature
91
- * const oracleDelegationSig = await contract.$createDelegationSignature([], { onAccount })
92
- * // Oracle respond signature
93
- * const respondSig = await contract
94
- * .$createDelegationSignature([oracleQueryId], { onAccount, omitAddress: true })
95
- * ```
96
- */
97
- async $createDelegationSignature() {
98
- let ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
99
- let _options = arguments.length > 1 ? arguments[1] : undefined;
100
- const options = {
101
- ...this.$options,
102
- ..._options
103
- };
104
- const contractId = this.$options.address;
105
- if (options.onAccount == null) throw new IllegalArgumentError('Can\'t create delegation signature without account');
106
- if (contractId == null) throw new MissingContractAddressError('Can\'t create delegation signature without address');
107
- return options.onAccount.sign(concatBuffers([_Buffer.from(await options.onNode.getNetworkId()), ...(options.omitAddress === true ? [] : [decode(options.onAccount.address)]), ...ids.map(e => isNameValid(e) ? produceNameId(e) : e).map(e => decode(e)), decode(contractId)]), options);
108
- }
109
-
110
48
  /**
111
49
  * Compile contract
112
50
  * @returns bytecode
@@ -114,56 +52,21 @@ class Contract {
114
52
  async $compile() {
115
53
  if (this.$options.bytecode != null) return this.$options.bytecode;
116
54
  if (this.$options.sourceCode == null) throw new IllegalArgumentError('Can\'t compile without source code');
117
- this.$options.bytecode = (await this.$options.onCompiler.compileContract({
118
- code: this.$options.sourceCode,
119
- options: {
120
- fileSystem: this.$options.fileSystem
121
- }
122
- })).bytecode;
55
+ if (this.$options.onCompiler == null) throw new IllegalArgumentError('Can\'t compile without compiler');
56
+ this.$options.bytecode = (await this.$options.onCompiler.compileBySourceCode(this.$options.sourceCode, this.$options.fileSystem)).bytecode;
123
57
  return this.$options.bytecode;
124
58
  }
125
- _handleCallError(_ref, transaction) {
126
- let {
127
- returnType,
128
- returnValue
129
- } = _ref;
130
- let message;
131
- switch (returnType) {
132
- case 'ok':
133
- return;
134
- case 'revert':
135
- message = this._calldata.decodeFateString(returnValue);
136
- break;
137
- case 'error':
138
- message = decode(returnValue).toString();
139
- break;
140
- default:
141
- throw new InternalError(`Unknown return type: ${returnType}`);
142
- }
143
- throw new NodeInvocationError(message, transaction);
144
- }
145
- async _sendAndProcess(tx, options) {
146
- options = {
147
- ...this.$options,
148
- ...options
149
- };
150
- const txData = await send(tx, options);
151
- const result = {
152
- hash: txData.hash,
153
- tx: unpackTx(txData.rawTx),
154
- txData,
155
- rawTx: txData.rawTx
156
- };
157
- if (txData.blockHeight == null) return result;
59
+ async $getCallResultByTxHash(hash, fnName, options) {
158
60
  const {
159
61
  callInfo
160
- } = await this.$options.onNode.getTransactionInfoByHash(txData.hash);
161
- Object.assign(result.txData, callInfo); // TODO: don't duplicate data in result
162
- // @ts-expect-error TODO api should be updated to match types
163
- this._handleCallError(callInfo, tx);
62
+ } = await this.$options.onNode.getTransactionInfoByHash(hash);
63
+ if (callInfo == null) {
64
+ throw new ContractError(`callInfo is not available for transaction ${hash}`);
65
+ }
66
+ const callInfoTyped = callInfo;
164
67
  return {
165
- ...result,
166
- result: callInfo
68
+ ..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fnName, undefined, options),
69
+ result: callInfoTyped
167
70
  };
168
71
  }
169
72
  async _estimateGas(name, params) {
@@ -189,17 +92,26 @@ class Contract {
189
92
  * @returns deploy info
190
93
  */
191
94
  async $deploy(params, options) {
192
- var _opt$gasLimit;
193
- const opt = {
95
+ var _opt$gasLimit, _other$result;
96
+ const {
97
+ callStatic,
98
+ ...opt
99
+ } = {
194
100
  ...this.$options,
195
101
  ...options
196
102
  };
197
103
  if (this.$options.bytecode == null) await this.$compile();
198
- if (opt.callStatic === true) return this.$call('init', params, opt);
104
+ if (callStatic === true) return this.$call('init', params, {
105
+ ...opt,
106
+ callStatic
107
+ });
199
108
  if (this.$options.address != null) throw new DuplicateContractError();
109
+ if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t deploy without account');
200
110
  const ownerId = opt.onAccount.address;
201
- const tx = await _buildTx(Tag.ContractCreateTx, {
111
+ if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t deploy without bytecode');
112
+ const tx = await buildTxAsync({
202
113
  ...opt,
114
+ tag: Tag.ContractCreateTx,
203
115
  gasLimit: (_opt$gasLimit = opt.gasLimit) !== null && _opt$gasLimit !== void 0 ? _opt$gasLimit : await this._estimateGas('init', params, opt),
204
116
  callData: this._calldata.encode(this._name, 'init', params),
205
117
  code: this.$options.bytecode,
@@ -209,9 +121,15 @@ class Contract {
209
121
  const {
210
122
  hash,
211
123
  ...other
212
- } = await this._sendAndProcess(tx, opt);
124
+ } = await _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, 'init', {
125
+ ...opt,
126
+ onAccount: opt.onAccount
127
+ });
213
128
  return {
214
129
  ...other,
130
+ ...(((_other$result = other.result) === null || _other$result === void 0 ? void 0 : _other$result.log) != null && {
131
+ decodedEvents: this.$decodeEvents(other.result.log, opt)
132
+ }),
215
133
  owner: ownerId,
216
134
  transaction: hash,
217
135
  address: this.$options.address
@@ -223,16 +141,6 @@ class Contract {
223
141
  * @param name - Function name
224
142
  * @returns function ACI
225
143
  */
226
- _getFunctionACI(name) {
227
- const fn = this._aci.encodedAci.contract.functions.find(f => f.name === name);
228
- if (fn != null) {
229
- return fn;
230
- }
231
- if (name === 'init') return {
232
- payable: false
233
- };
234
- throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
235
- }
236
144
 
237
145
  /**
238
146
  * Call contract function
@@ -242,58 +150,63 @@ class Contract {
242
150
  * @returns CallResult
243
151
  */
244
152
  async $call(fn, params) {
153
+ var _opt$gasLimit2;
245
154
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
246
- const opt = {
155
+ const {
156
+ callStatic,
157
+ top,
158
+ ...opt
159
+ } = {
247
160
  ...this.$options,
248
161
  ...options
249
162
  };
250
- const fnACI = this._getFunctionACI(fn);
163
+ const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fn);
251
164
  const contractId = this.$options.address;
252
165
  const {
253
166
  onNode
254
167
  } = opt;
255
168
  if (fn == null) throw new MissingFunctionNameError();
256
- if (fn === 'init' && opt.callStatic === false) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
257
- if (fn !== 'init' && opt.amount > 0 && fnACI.payable === false) throw new NotPayableFunctionError(opt.amount, fn);
169
+ if (fn === 'init' && callStatic !== true) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
170
+ if (fn !== 'init' && opt.amount != null && opt.amount > 0 && !fnAci.payable) {
171
+ throw new NotPayableFunctionError(opt.amount, fn);
172
+ }
258
173
  let callerId;
259
174
  try {
175
+ if (opt.onAccount == null) throw new InternalError('Use fallback account');
260
176
  callerId = opt.onAccount.address;
261
177
  } catch (error) {
262
- const useFallbackAccount = opt.callStatic === true && (error instanceof TypeError && error.message === 'Account should be an address (ak-prefixed string), or instance of AccountBase, got undefined instead' || error instanceof NoWalletConnectedError);
178
+ const useFallbackAccount = callStatic === true && (error instanceof _TypeError && error.message === 'Account should be an address (ak-prefixed string), or instance of AccountBase, got undefined instead' || error instanceof NoWalletConnectedError);
263
179
  if (!useFallbackAccount) throw error;
264
180
  callerId = DRY_RUN_ACCOUNT.pub;
265
181
  }
266
182
  const callData = this._calldata.encode(this._name, fn, params);
267
- let res;
268
- if (opt.callStatic === true) {
269
- if (typeof opt.top === 'number') {
270
- opt.top = (await getKeyBlock(opt.top, {
183
+ if (callStatic === true) {
184
+ if (opt.nonce == null && top != null) {
185
+ const topKey = typeof top === 'number' ? 'height' : 'hash';
186
+ opt.nonce = (await getAccount(callerId, {
187
+ [topKey]: top,
271
188
  onNode
272
- })).hash;
189
+ })).nonce + 1;
273
190
  }
274
191
  const txOpt = {
275
192
  ...opt,
276
193
  onNode,
277
194
  callData
278
195
  };
279
- if (opt.nonce == null && opt.top != null) {
280
- opt.nonce = (await getAccount(callerId, {
281
- hash: opt.top,
282
- onNode
283
- })).nonce + 1;
284
- }
285
196
  let tx;
286
197
  if (fn === 'init') {
287
198
  if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t dry-run "init" without bytecode');
288
- tx = await _buildTx(Tag.ContractCreateTx, {
199
+ tx = await buildTxAsync({
289
200
  ...txOpt,
201
+ tag: Tag.ContractCreateTx,
290
202
  code: this.$options.bytecode,
291
203
  ownerId: callerId
292
204
  });
293
205
  } else {
294
206
  if (contractId == null) throw new MissingContractAddressError('Can\'t dry-run contract without address');
295
- tx = await _buildTx(Tag.ContractCallTx, {
207
+ tx = await buildTxAsync({
296
208
  ...txOpt,
209
+ tag: Tag.ContractCallTx,
297
210
  callerId,
298
211
  contractId
299
212
  });
@@ -301,34 +214,39 @@ class Contract {
301
214
  const {
302
215
  callObj,
303
216
  ...dryRunOther
304
- } = await txDryRun(tx, callerId, opt);
305
- if (callObj == null) throw new UnexpectedTsError();
306
- this._handleCallError({
307
- returnType: callObj.returnType,
308
- returnValue: callObj.returnValue
309
- }, tx);
310
- res = {
217
+ } = await txDryRun(tx, callerId, {
218
+ ...opt,
219
+ top
220
+ });
221
+ if (callObj == null) {
222
+ throw new InternalError(`callObj is not available for transaction ${tx}`);
223
+ }
224
+ const callInfoTyped = callObj;
225
+ return {
311
226
  ...dryRunOther,
227
+ ..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fn, tx, opt),
312
228
  tx: unpackTx(tx),
313
- result: callObj
229
+ result: callInfoTyped,
230
+ rawTx: tx,
231
+ hash: buildTxHash(tx),
232
+ txData: undefined
314
233
  };
315
- } else {
316
- var _opt$gasLimit2;
317
- if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
318
- const tx = await _buildTx(Tag.ContractCallTx, {
319
- ...opt,
320
- gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
321
- callerId,
322
- contractId,
323
- callData
324
- });
325
- res = await this._sendAndProcess(tx, opt);
326
- }
327
- if (opt.callStatic === true || res.txData.blockHeight != null) {
328
- res.decodedResult = fnACI.returns != null && fnACI.returns !== 'unit' && fn !== 'init' && this._calldata.decode(this._name, fn, res.result.returnValue);
329
- res.decodedEvents = this.$decodeEvents(res.result.log, opt);
330
234
  }
331
- return res;
235
+ if (top != null) throw new IllegalArgumentError('Can\'t handle `top` option in on-chain contract call');
236
+ if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
237
+ const tx = await buildTxAsync({
238
+ ...opt,
239
+ tag: Tag.ContractCallTx,
240
+ gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
241
+ callerId,
242
+ contractId,
243
+ callData
244
+ });
245
+ if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t call contract on chain without account');
246
+ return _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, fn, {
247
+ ...opt,
248
+ onAccount: opt.onAccount
249
+ });
332
250
  }
333
251
 
334
252
  /**
@@ -339,47 +257,6 @@ class Contract {
339
257
  * @throws {@link MissingEventDefinitionError}
340
258
  * @throws {@link AmbiguousEventDefinitionError}
341
259
  */
342
- _getContractNameByEvent(ctAddress, nameHash, _ref2) {
343
- let {
344
- contractAddressToName
345
- } = _ref2;
346
- const addressToName = {
347
- ...this.$options.contractAddressToName,
348
- ...contractAddressToName
349
- };
350
- if (addressToName[ctAddress] != null) return addressToName[ctAddress];
351
-
352
- // TODO: consider using a third-party library
353
- const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
354
- const matchedEvents = [this._aci.encodedAci, ...this._aci.externalEncodedAci].filter(_ref3 => {
355
- let {
356
- contract
357
- } = _ref3;
358
- return contract === null || contract === void 0 ? void 0 : contract.event;
359
- }).map(_ref4 => {
360
- let {
361
- contract
362
- } = _ref4;
363
- return [contract.name, contract.event.variant];
364
- }).map(_ref5 => {
365
- let [name, events] = _ref5;
366
- return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
367
- }).flat().filter(_ref6 => {
368
- let [, eventName] = _ref6;
369
- return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
370
- }).filter((_ref7, idx, arr) => {
371
- let [,, type] = _ref7;
372
- return !arr.slice(0, idx).some(el => isEqual(el[2], type));
373
- });
374
- switch (matchedEvents.length) {
375
- case 0:
376
- throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
377
- case 1:
378
- return matchedEvents[0][0];
379
- default:
380
- throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
381
- }
382
- }
383
260
 
384
261
  /**
385
262
  * Decode Events
@@ -396,7 +273,7 @@ class Contract {
396
273
  const topics = event.topics.map(t => BigInt(t));
397
274
  let contractName;
398
275
  try {
399
- contractName = this._getContractNameByEvent(event.address, topics[0], opt);
276
+ contractName = _classPrivateMethodGet(this, _getContractNameByEvent, _getContractNameByEvent2).call(this, event.address, topics[0], opt);
400
277
  } catch (error) {
401
278
  if ((omitUnknown !== null && omitUnknown !== void 0 ? omitUnknown : false) && error instanceof MissingEventDefinitionError) return null;
402
279
  throw error;
@@ -413,26 +290,28 @@ class Contract {
413
290
  };
414
291
  }).filter(e => e != null);
415
292
  }
416
- static async initialize(_ref8) {
293
+ static async initialize(_ref) {
417
294
  let {
418
295
  onCompiler,
419
296
  onNode,
420
- sourceCode,
421
297
  bytecode,
422
298
  aci,
423
299
  address,
300
+ sourceCodePath,
301
+ sourceCode,
424
302
  fileSystem,
425
303
  validateBytecode,
426
304
  ...otherOptions
427
- } = _ref8;
428
- if (aci == null && sourceCode != null) {
429
- // TODO: should be fixed when the compiledAci interface gets updated
430
- aci = await onCompiler.generateACI({
431
- code: sourceCode,
432
- options: {
433
- fileSystem
434
- }
435
- });
305
+ } = _ref;
306
+ if (aci == null && onCompiler != null) {
307
+ let res;
308
+ if (sourceCodePath != null) res = await onCompiler.compile(sourceCodePath);
309
+ if (sourceCode != null) res = await onCompiler.compileBySourceCode(sourceCode, fileSystem);
310
+ if (res != null) {
311
+ var _bytecode;
312
+ aci = res.aci;
313
+ (_bytecode = bytecode) !== null && _bytecode !== void 0 ? _bytecode : bytecode = res.bytecode;
314
+ }
436
315
  }
437
316
  if (aci == null) throw new MissingContractDefError();
438
317
  if (address != null) {
@@ -450,18 +329,16 @@ class Contract {
450
329
  });
451
330
  if (contract.active == null) throw new InactiveContractError(address);
452
331
  }
453
- if (validateBytecode != null) {
332
+ if (validateBytecode === true) {
454
333
  if (address == null) throw new MissingContractAddressError('Can\'t validate bytecode without contract address');
455
334
  const onChanBytecode = (await getContractByteCode(address, {
456
335
  onNode
457
336
  })).bytecode;
458
- const isValid = sourceCode != null ? await onCompiler.validateByteCode({
459
- bytecode: onChanBytecode,
460
- source: sourceCode,
461
- options: {
462
- fileSystem
463
- }
464
- }).then(() => true, () => false) : bytecode === onChanBytecode;
337
+ let isValid = false;
338
+ if (bytecode != null) isValid = bytecode === onChanBytecode;else if (sourceCode != null) {
339
+ if (onCompiler == null) throw new IllegalArgumentError('Can\'t validate bytecode without compiler');
340
+ isValid = await onCompiler.validateBySourceCode(onChanBytecode, sourceCode, fileSystem);
341
+ }
465
342
  if (!isValid) throw new BytecodeMismatchError(sourceCode != null ? 'source code' : 'bytecode');
466
343
  }
467
344
  return new ContractWithMethods({
@@ -475,19 +352,29 @@ class Contract {
475
352
  ...otherOptions
476
353
  });
477
354
  }
478
- constructor(_ref9) {
355
+ constructor(_ref2) {
479
356
  var _this = this;
480
357
  let {
481
358
  aci,
482
359
  ...otherOptions
483
- } = _ref9;
360
+ } = _ref2;
361
+ _classPrivateMethodInitSpec(this, _getContractNameByEvent);
362
+ _classPrivateMethodInitSpec(this, _getFunctionAci);
363
+ _classPrivateMethodInitSpec(this, _sendAndProcess);
364
+ _classPrivateMethodInitSpec(this, _getCallResult);
365
+ _classPrivateFieldInitSpec(this, _aciContract, {
366
+ writable: true,
367
+ value: void 0
368
+ });
484
369
  this._aci = aci;
485
- this._name = aci.encodedAci.contract.name;
486
- this._calldata = new Calldata([aci.encodedAci, ...aci.externalEncodedAci]);
487
- this.$options = {
488
- callStatic: false,
489
- ...otherOptions
490
- };
370
+ const aciLast = aci[aci.length - 1];
371
+ if (aciLast.contract == null) {
372
+ throw new IllegalArgumentError(`The last 'aci' item should have 'contract' key, got ${Object.keys(aciLast)} keys instead`);
373
+ }
374
+ _classPrivateFieldSet(this, _aciContract, aciLast.contract);
375
+ this._name = _classPrivateFieldGet(this, _aciContract).name;
376
+ this._calldata = new Calldata(aci);
377
+ this.$options = otherOptions;
491
378
 
492
379
  /**
493
380
  * Generate proto function based on contract function using Contract ACI schema
@@ -503,19 +390,19 @@ class Contract {
503
390
  * await contract.testFunction({ callStatic: false }) // send tx on-chain
504
391
  * ```
505
392
  */
506
- Object.assign(this, Object.fromEntries(this._aci.encodedAci.contract.functions.map(_ref10 => {
393
+ Object.assign(this, Object.fromEntries(_classPrivateFieldGet(this, _aciContract).functions.map(_ref3 => {
507
394
  let {
508
395
  name,
509
396
  arguments: aciArgs,
510
397
  stateful
511
- } = _ref10;
398
+ } = _ref3;
512
399
  const callStatic = name !== 'init' && !stateful;
513
400
  return [name, async function () {
514
401
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
515
402
  args[_key] = arguments[_key];
516
403
  }
517
404
  const options = args.length === aciArgs.length + 1 ? args.pop() : {};
518
- if (typeof options !== 'object') throw new TypeError(`Options should be an object: ${options}`);
405
+ if (typeof options !== 'object') throw new _TypeError(`Options should be an object: ${options}`);
519
406
  if (name === 'init') return _this.$deploy(args, {
520
407
  callStatic,
521
408
  ...options
@@ -528,6 +415,99 @@ class Contract {
528
415
  })));
529
416
  }
530
417
  }
418
+ function _getCallResult2(_ref4, fnName, transaction, options) {
419
+ let {
420
+ returnType,
421
+ returnValue,
422
+ log
423
+ } = _ref4;
424
+ let message;
425
+ switch (returnType) {
426
+ case 'ok':
427
+ {
428
+ const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fnName);
429
+ return {
430
+ decodedResult: this._calldata.decode(this._name, fnAci.name, returnValue),
431
+ decodedEvents: this.$decodeEvents(log, options)
432
+ };
433
+ }
434
+ case 'revert':
435
+ message = this._calldata.decodeFateString(returnValue);
436
+ break;
437
+ case 'error':
438
+ message = decode(returnValue).toString();
439
+ break;
440
+ default:
441
+ throw new InternalError(`Unknown return type: ${returnType}`);
442
+ }
443
+ throw new NodeInvocationError(message, transaction);
444
+ }
445
+ async function _sendAndProcess2(tx, fnName, options) {
446
+ const txData = await sendTransaction(tx, {
447
+ ...this.$options,
448
+ ...options
449
+ });
450
+ return {
451
+ hash: txData.hash,
452
+ tx: unpackTx(txData.rawTx),
453
+ txData,
454
+ rawTx: txData.rawTx,
455
+ ...(txData.blockHeight != null && (await this.$getCallResultByTxHash(txData.hash, fnName, options)))
456
+ };
457
+ }
458
+ function _getFunctionAci2(name) {
459
+ const fn = _classPrivateFieldGet(this, _aciContract).functions.find(f => f.name === name);
460
+ if (fn != null) {
461
+ return fn;
462
+ }
463
+ if (name === 'init') {
464
+ return {
465
+ arguments: [],
466
+ name: 'init',
467
+ payable: false,
468
+ returns: 'unit',
469
+ stateful: true
470
+ };
471
+ }
472
+ throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
473
+ }
474
+ function _getContractNameByEvent2(ctAddress, nameHash, _ref5) {
475
+ let {
476
+ contractAddressToName
477
+ } = _ref5;
478
+ const addressToName = {
479
+ ...this.$options.contractAddressToName,
480
+ ...contractAddressToName
481
+ };
482
+ if (addressToName[ctAddress] != null) return addressToName[ctAddress];
483
+
484
+ // TODO: consider using a third-party library
485
+ const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
486
+ const contracts = this._aci.map(_ref6 => {
487
+ let {
488
+ contract
489
+ } = _ref6;
490
+ return contract;
491
+ }).filter(contract => contract === null || contract === void 0 ? void 0 : contract.event);
492
+ const matchedEvents = contracts.map(contract => [contract.name, contract.event.variant]).map(_ref7 => {
493
+ let [name, events] = _ref7;
494
+ return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
495
+ }).flat().filter(_ref8 => {
496
+ let [, eventName] = _ref8;
497
+ return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
498
+ }).filter((_ref9, idx, arr) => {
499
+ let [,, type] = _ref9;
500
+ return !arr.slice(0, idx).some(el => isEqual(el[2], type));
501
+ });
502
+ switch (matchedEvents.length) {
503
+ case 0:
504
+ throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
505
+ case 1:
506
+ return matchedEvents[0][0];
507
+ default:
508
+ throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
509
+ }
510
+ }
531
511
  // eslint-disable-next-line @typescript-eslint/no-redeclare
532
512
  const ContractWithMethods = Contract;
533
513
  export default ContractWithMethods;