@aeternity/aepp-sdk 13.0.0-alpha.1 → 13.0.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 (394) hide show
  1. package/README.md +1 -1
  2. package/bin/aesophia_cli +0 -0
  3. package/dist/aepp-sdk.browser-script.js +1 -1
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1833 -1543
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/AeSdk.mjs.map +1 -1
  10. package/es/AeSdkAepp.d.ts +5 -4
  11. package/es/AeSdkAepp.mjs +13 -17
  12. package/es/AeSdkAepp.mjs.map +1 -1
  13. package/es/AeSdkBase.mjs.map +1 -1
  14. package/es/AeSdkMethods.d.ts +11 -12
  15. package/es/AeSdkMethods.mjs +6 -8
  16. package/es/AeSdkMethods.mjs.map +1 -1
  17. package/es/AeSdkWallet.mjs +1 -1
  18. package/es/AeSdkWallet.mjs.map +1 -1
  19. package/es/Node.d.ts +5 -1
  20. package/es/Node.mjs +11 -5
  21. package/es/Node.mjs.map +1 -1
  22. package/es/account/Base.d.ts +11 -6
  23. package/es/account/Base.mjs +0 -17
  24. package/es/account/Base.mjs.map +1 -1
  25. package/es/account/Generalized.mjs +12 -25
  26. package/es/account/Generalized.mjs.map +1 -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 +9 -21
  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 +17 -31
  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.mjs +0 -16
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  40. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
  41. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  42. package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
  43. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  44. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +4 -5
  45. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  46. package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
  47. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  48. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
  50. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  51. package/es/apis/compiler/compiler.d.ts +1 -1
  52. package/es/apis/compiler/compiler.mjs +4 -20
  53. package/es/apis/compiler/compiler.mjs.map +1 -1
  54. package/es/apis/compiler/models/index.d.ts +3 -2
  55. package/es/apis/compiler/models/index.mjs.map +1 -1
  56. package/es/apis/compiler/models/mappers.d.ts +1 -1
  57. package/es/apis/compiler/models/mappers.mjs +19 -2
  58. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  59. package/es/apis/node/models/index.d.ts +15 -15
  60. package/es/apis/node/models/index.mjs.map +1 -1
  61. package/es/apis/node/models/mappers.d.ts +1 -1
  62. package/es/apis/node/models/mappers.mjs +2 -1
  63. package/es/apis/node/models/mappers.mjs.map +1 -1
  64. package/es/apis/node/models/parameters.d.ts +2 -2
  65. package/es/apis/node/models/parameters.mjs +2 -2
  66. package/es/apis/node/models/parameters.mjs.map +1 -1
  67. package/es/apis/node/node.mjs +3 -19
  68. package/es/apis/node/node.mjs.map +1 -1
  69. package/es/chain.d.ts +8 -8
  70. package/es/chain.mjs +20 -23
  71. package/es/chain.mjs.map +1 -1
  72. package/es/channel/Base.d.ts +25 -12
  73. package/es/channel/Base.mjs +23 -26
  74. package/es/channel/Base.mjs.map +1 -1
  75. package/es/channel/Contract.mjs +8 -21
  76. package/es/channel/Contract.mjs.map +1 -1
  77. package/es/channel/Spend.d.ts +4 -2
  78. package/es/channel/Spend.mjs +0 -16
  79. package/es/channel/Spend.mjs.map +1 -1
  80. package/es/channel/handlers.mjs +6 -18
  81. package/es/channel/handlers.mjs.map +1 -1
  82. package/es/channel/internal.d.ts +19 -2
  83. package/es/channel/internal.mjs +19 -19
  84. package/es/channel/internal.mjs.map +1 -1
  85. package/es/contract/Contract.d.ts +30 -85
  86. package/es/contract/Contract.mjs +197 -215
  87. package/es/contract/Contract.mjs.map +1 -1
  88. package/es/contract/compiler/Base.d.ts +10 -14
  89. package/es/contract/compiler/Base.mjs.map +1 -1
  90. package/es/contract/compiler/Cli.mjs +5 -11
  91. package/es/contract/compiler/Cli.mjs.map +1 -1
  92. package/es/contract/compiler/Http.mjs +6 -30
  93. package/es/contract/compiler/Http.mjs.map +1 -1
  94. package/es/contract/compiler/HttpNode.mjs.map +1 -1
  95. package/es/contract/compiler/getFileSystem.mjs.map +1 -1
  96. package/es/contract/delegation-signature.d.ts +43 -0
  97. package/es/contract/delegation-signature.mjs +45 -0
  98. package/es/contract/delegation-signature.mjs.map +1 -0
  99. package/es/contract/ga.d.ts +23 -7
  100. package/es/contract/ga.mjs +52 -27
  101. package/es/contract/ga.mjs.map +1 -1
  102. package/es/index-browser.d.ts +5 -4
  103. package/es/index-browser.mjs +7 -21
  104. package/es/index-browser.mjs.map +1 -1
  105. package/es/oracle.d.ts +12 -17
  106. package/es/oracle.mjs +28 -48
  107. package/es/oracle.mjs.map +1 -1
  108. package/es/spend.d.ts +19 -27
  109. package/es/spend.mjs +20 -43
  110. package/es/spend.mjs.map +1 -1
  111. package/es/tx/builder/SchemaTypes.d.ts +37 -0
  112. package/es/tx/builder/SchemaTypes.mjs +2 -0
  113. package/es/tx/builder/SchemaTypes.mjs.map +1 -0
  114. package/es/tx/builder/constants.d.ts +4 -2
  115. package/es/tx/builder/constants.mjs +2 -0
  116. package/es/tx/builder/constants.mjs.map +1 -1
  117. package/es/tx/builder/field-types/abi-version.d.ts +11 -2
  118. package/es/tx/builder/field-types/abi-version.mjs +24 -4
  119. package/es/tx/builder/field-types/abi-version.mjs.map +1 -1
  120. package/es/tx/builder/field-types/address.mjs.map +1 -1
  121. package/es/tx/builder/field-types/array.d.ts +1 -1
  122. package/es/tx/builder/field-types/array.mjs.map +1 -1
  123. package/es/tx/builder/field-types/boolean.mjs.map +1 -1
  124. package/es/tx/builder/field-types/coin-amount.d.ts +3 -4
  125. package/es/tx/builder/field-types/coin-amount.mjs +4 -5
  126. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  127. package/es/tx/builder/field-types/ct-version.d.ts +22 -3
  128. package/es/tx/builder/field-types/ct-version.mjs +32 -4
  129. package/es/tx/builder/field-types/ct-version.mjs.map +1 -1
  130. package/es/tx/builder/field-types/deposit.d.ts +2 -1
  131. package/es/tx/builder/field-types/deposit.mjs +3 -2
  132. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  133. package/es/tx/builder/field-types/encoded.d.ts +1 -1
  134. package/es/tx/builder/field-types/encoded.mjs.map +1 -1
  135. package/es/tx/builder/field-types/entry.mjs +3 -0
  136. package/es/tx/builder/field-types/entry.mjs.map +1 -1
  137. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  138. package/es/tx/builder/field-types/fee.d.ts +3 -1
  139. package/es/tx/builder/field-types/fee.mjs +5 -1
  140. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  141. package/es/tx/builder/field-types/field.mjs.map +1 -1
  142. package/es/tx/builder/field-types/gas-limit.d.ts +3 -2
  143. package/es/tx/builder/field-types/gas-limit.mjs +4 -2
  144. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  145. package/es/tx/builder/field-types/gas-price.d.ts +3 -1
  146. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  147. package/es/tx/builder/field-types/index.d.ts +52 -13
  148. package/es/tx/builder/field-types/index.mjs +10 -2
  149. package/es/tx/builder/field-types/index.mjs.map +1 -1
  150. package/es/tx/builder/field-types/map.d.ts +13 -0
  151. package/es/tx/builder/field-types/map.mjs +49 -0
  152. package/es/tx/builder/field-types/map.mjs.map +1 -0
  153. package/es/tx/builder/field-types/mptree.d.ts +7 -2
  154. package/es/tx/builder/field-types/mptree.mjs +5 -7
  155. package/es/tx/builder/field-types/mptree.mjs.map +1 -1
  156. package/es/tx/builder/field-types/name-fee.d.ts +1 -1
  157. package/es/tx/builder/field-types/name-fee.mjs +2 -2
  158. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  159. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  160. package/es/tx/builder/field-types/name.mjs.map +1 -1
  161. package/es/tx/builder/field-types/nonce.d.ts +14 -0
  162. package/es/tx/builder/field-types/nonce.mjs +29 -0
  163. package/es/tx/builder/field-types/nonce.mjs.map +1 -0
  164. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  165. package/es/tx/builder/field-types/raw.mjs.map +1 -1
  166. package/es/tx/builder/field-types/short-u-int-const.d.ts +4 -2
  167. package/es/tx/builder/field-types/short-u-int-const.mjs +12 -8
  168. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -1
  169. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  170. package/es/tx/builder/field-types/string.mjs.map +1 -1
  171. package/es/tx/builder/field-types/ttl.d.ts +11 -0
  172. package/es/tx/builder/field-types/ttl.mjs +21 -0
  173. package/es/tx/builder/field-types/ttl.mjs.map +1 -0
  174. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  175. package/es/tx/builder/field-types/wrapped.d.ts +14 -0
  176. package/es/tx/builder/field-types/wrapped.mjs +22 -0
  177. package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
  178. package/es/tx/builder/helpers.mjs.map +1 -1
  179. package/es/tx/builder/index.d.ts +20 -20
  180. package/es/tx/builder/index.mjs +54 -64
  181. package/es/tx/builder/index.mjs.map +1 -1
  182. package/es/tx/builder/schema.d.ts +2735 -2865
  183. package/es/tx/builder/schema.generated.d.ts +2011 -0
  184. package/es/tx/builder/schema.generated.mjs +2 -0
  185. package/es/tx/builder/schema.generated.mjs.map +1 -0
  186. package/es/tx/builder/schema.mjs +459 -155
  187. package/es/tx/builder/schema.mjs.map +1 -1
  188. package/es/tx/execution-cost.d.ts +35 -0
  189. package/es/tx/execution-cost.mjs +123 -0
  190. package/es/tx/execution-cost.mjs.map +1 -0
  191. package/es/tx/transaction-signer.d.ts +6 -0
  192. package/es/tx/transaction-signer.mjs +27 -0
  193. package/es/tx/transaction-signer.mjs.map +1 -0
  194. package/es/tx/validator.mjs +60 -109
  195. package/es/tx/validator.mjs.map +1 -1
  196. package/es/utils/amount-formatter.mjs +0 -16
  197. package/es/utils/amount-formatter.mjs.map +1 -1
  198. package/es/utils/autorest.d.ts +3 -2
  199. package/es/utils/autorest.mjs +43 -11
  200. package/es/utils/autorest.mjs.map +1 -1
  201. package/es/utils/bytes.mjs +0 -16
  202. package/es/utils/bytes.mjs.map +1 -1
  203. package/es/utils/crypto.mjs +0 -16
  204. package/es/utils/crypto.mjs.map +1 -1
  205. package/es/utils/encoder.mjs.map +1 -1
  206. package/es/utils/errors.d.ts +14 -31
  207. package/es/utils/errors.mjs +3 -33
  208. package/es/utils/errors.mjs.map +1 -1
  209. package/es/utils/hd-wallet.mjs.map +1 -1
  210. package/es/utils/json-big.mjs.map +1 -1
  211. package/es/utils/keystore.mjs.map +1 -1
  212. package/es/utils/other.d.ts +1 -1
  213. package/es/utils/other.mjs.map +1 -1
  214. package/es/utils/semver-satisfies.mjs.map +1 -1
  215. package/es/utils/string.mjs +0 -17
  216. package/es/utils/string.mjs.map +1 -1
  217. package/package.json +34 -30
  218. package/src/AeSdkAepp.ts +16 -14
  219. package/src/AeSdkMethods.ts +11 -16
  220. package/src/AeSdkWallet.ts +1 -1
  221. package/src/Node.ts +17 -6
  222. package/src/account/Base.ts +11 -22
  223. package/src/account/Generalized.ts +9 -24
  224. package/src/account/Memory.ts +14 -21
  225. package/src/aens.ts +31 -47
  226. package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
  227. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +0 -17
  228. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
  229. package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
  230. package/src/aepp-wallet-communication/rpc/types.ts +7 -2
  231. package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
  232. package/src/apis/compiler/compiler.ts +3 -27
  233. package/src/apis/compiler/models/index.ts +3 -2
  234. package/src/apis/compiler/models/mappers.ts +15 -2
  235. package/src/apis/node/models/index.ts +16 -15
  236. package/src/apis/node/models/mappers.ts +2 -1
  237. package/src/apis/node/models/parameters.ts +2 -2
  238. package/src/apis/node/node.ts +3 -27
  239. package/src/chain.ts +29 -28
  240. package/src/channel/Base.ts +33 -33
  241. package/src/channel/Contract.ts +8 -23
  242. package/src/channel/Spend.ts +2 -17
  243. package/src/channel/handlers.ts +5 -18
  244. package/src/channel/internal.ts +40 -22
  245. package/src/contract/Contract.ts +161 -170
  246. package/src/contract/compiler/Base.ts +10 -14
  247. package/src/contract/compiler/Cli.ts +5 -11
  248. package/src/contract/compiler/Http.ts +6 -25
  249. package/src/contract/delegation-signature.ts +56 -0
  250. package/src/contract/ga.ts +53 -32
  251. package/src/index-browser.ts +15 -21
  252. package/src/oracle.ts +46 -56
  253. package/src/spend.ts +33 -67
  254. package/src/tx/builder/SchemaTypes.ts +79 -0
  255. package/src/tx/builder/constants.ts +2 -0
  256. package/src/tx/builder/field-types/abi-version.ts +29 -6
  257. package/src/tx/builder/field-types/array.ts +1 -1
  258. package/src/tx/builder/field-types/coin-amount.ts +6 -4
  259. package/src/tx/builder/field-types/ct-version.ts +37 -4
  260. package/src/tx/builder/field-types/deposit.ts +3 -1
  261. package/src/tx/builder/field-types/encoded.ts +1 -1
  262. package/src/tx/builder/field-types/entry.ts +8 -3
  263. package/src/tx/builder/field-types/fee.ts +6 -4
  264. package/src/tx/builder/field-types/gas-limit.ts +2 -2
  265. package/src/tx/builder/field-types/index.ts +15 -1
  266. package/src/tx/builder/field-types/map.ts +45 -0
  267. package/src/tx/builder/field-types/mptree.ts +4 -3
  268. package/src/tx/builder/field-types/name-fee.ts +2 -1
  269. package/src/tx/builder/field-types/nonce.ts +40 -0
  270. package/src/tx/builder/field-types/short-u-int-const.ts +18 -8
  271. package/src/tx/builder/field-types/ttl.ts +24 -0
  272. package/src/tx/builder/field-types/wrapped.ts +32 -0
  273. package/src/tx/builder/index.ts +57 -71
  274. package/src/tx/builder/schema.generated.ts +2013 -0
  275. package/src/tx/builder/schema.ts +544 -624
  276. package/src/tx/execution-cost.ts +146 -0
  277. package/src/tx/transaction-signer.ts +27 -0
  278. package/src/tx/validator.ts +60 -91
  279. package/src/utils/amount-formatter.ts +0 -16
  280. package/src/utils/autorest.ts +52 -11
  281. package/src/utils/bytes.ts +0 -16
  282. package/src/utils/crypto.ts +0 -16
  283. package/src/utils/errors.ts +16 -45
  284. package/src/utils/string.ts +0 -17
  285. package/types-legacy/ts4.2/AeSdkAepp.d.ts +5 -4
  286. package/types-legacy/ts4.2/AeSdkMethods.d.ts +11 -12
  287. package/types-legacy/ts4.2/Node.d.ts +5 -1
  288. package/types-legacy/ts4.2/account/Base.d.ts +11 -6
  289. package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
  290. package/types-legacy/ts4.2/aens.d.ts +12 -14
  291. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
  292. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
  293. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
  294. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
  295. package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
  296. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
  297. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
  298. package/types-legacy/ts4.2/chain.d.ts +8 -8
  299. package/types-legacy/ts4.2/channel/Base.d.ts +25 -12
  300. package/types-legacy/ts4.2/channel/Spend.d.ts +4 -2
  301. package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
  302. package/types-legacy/ts4.2/contract/Contract.d.ts +29 -84
  303. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +10 -14
  304. package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
  305. package/types-legacy/ts4.2/contract/ga.d.ts +23 -7
  306. package/types-legacy/ts4.2/index-browser.d.ts +5 -4
  307. package/types-legacy/ts4.2/oracle.d.ts +12 -17
  308. package/types-legacy/ts4.2/spend.d.ts +19 -27
  309. package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
  310. package/types-legacy/ts4.2/tx/builder/constants.d.ts +4 -2
  311. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +11 -2
  312. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +1 -1
  313. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +3 -4
  314. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +33 -3
  315. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +2 -1
  316. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +1 -1
  317. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +3 -1
  318. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +3 -2
  319. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
  320. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +52 -13
  321. package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
  322. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +7 -2
  323. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +1 -1
  324. package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
  325. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +4 -2
  326. package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
  327. package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
  328. package/types-legacy/ts4.2/tx/builder/index.d.ts +23 -20
  329. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2962 -4629
  330. package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
  331. package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
  332. package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
  333. package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
  334. package/types-legacy/ts4.2/utils/errors.d.ts +14 -31
  335. package/types-legacy/ts4.2/utils/other.d.ts +1 -1
  336. package/types-legacy/ts4.5/AeSdkAepp.d.ts +5 -4
  337. package/types-legacy/ts4.5/AeSdkMethods.d.ts +11 -12
  338. package/types-legacy/ts4.5/Node.d.ts +5 -1
  339. package/types-legacy/ts4.5/account/Base.d.ts +11 -6
  340. package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
  341. package/types-legacy/ts4.5/aens.d.ts +12 -14
  342. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
  343. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
  344. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
  345. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
  346. package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
  347. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
  348. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
  349. package/types-legacy/ts4.5/chain.d.ts +8 -8
  350. package/types-legacy/ts4.5/channel/Base.d.ts +25 -12
  351. package/types-legacy/ts4.5/channel/Spend.d.ts +4 -2
  352. package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
  353. package/types-legacy/ts4.5/contract/Contract.d.ts +29 -84
  354. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +10 -14
  355. package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
  356. package/types-legacy/ts4.5/contract/ga.d.ts +23 -7
  357. package/types-legacy/ts4.5/index-browser.d.ts +5 -4
  358. package/types-legacy/ts4.5/oracle.d.ts +12 -17
  359. package/types-legacy/ts4.5/spend.d.ts +19 -27
  360. package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
  361. package/types-legacy/ts4.5/tx/builder/constants.d.ts +4 -2
  362. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +11 -2
  363. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +1 -1
  364. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +3 -4
  365. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +33 -3
  366. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +2 -1
  367. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +1 -1
  368. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +3 -1
  369. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +3 -2
  370. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
  371. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +52 -13
  372. package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
  373. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +7 -2
  374. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +1 -1
  375. package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
  376. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +4 -2
  377. package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
  378. package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
  379. package/types-legacy/ts4.5/tx/builder/index.d.ts +23 -20
  380. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2962 -4629
  381. package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
  382. package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
  383. package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
  384. package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
  385. package/types-legacy/ts4.5/utils/errors.d.ts +14 -31
  386. package/types-legacy/ts4.5/utils/other.d.ts +1 -1
  387. package/es/tx/index.d.ts +0 -19
  388. package/es/tx/index.mjs +0 -115
  389. package/es/tx/index.mjs.map +0 -1
  390. package/src/apis/compiler/code-model-v4.yaml +0 -2442
  391. package/src/apis/node/code-model-v4.yaml +0 -10080
  392. package/src/tx/index.ts +0 -129
  393. package/types-legacy/ts4.2/tx/index.d.ts +0 -19
  394. package/types-legacy/ts4.5/tx/index.d.ts +0 -19
@@ -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, 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,106 +45,41 @@ 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
113
51
  */
114
52
  async $compile() {
115
53
  if (this.$options.bytecode != null) return this.$options.bytecode;
116
- if (this.$options.sourceCode == null) throw new IllegalArgumentError('Can\'t compile without source code');
117
54
  if (this.$options.onCompiler == null) throw new IllegalArgumentError('Can\'t compile without compiler');
118
- this.$options.bytecode = (await this.$options.onCompiler.compileBySourceCode(this.$options.sourceCode, this.$options.fileSystem)).bytecode;
119
- return this.$options.bytecode;
120
- }
121
- _handleCallError(_ref, transaction) {
122
- let {
123
- returnType,
124
- returnValue
125
- } = _ref;
126
- let message;
127
- switch (returnType) {
128
- case 'ok':
129
- return;
130
- case 'revert':
131
- message = this._calldata.decodeFateString(returnValue);
132
- break;
133
- case 'error':
134
- message = decode(returnValue).toString();
135
- break;
136
- default:
137
- throw new InternalError(`Unknown return type: ${returnType}`);
55
+ if (this.$options.sourceCode != null) {
56
+ const {
57
+ bytecode
58
+ } = await this.$options.onCompiler.compileBySourceCode(this.$options.sourceCode, this.$options.fileSystem);
59
+ this.$options.bytecode = bytecode;
138
60
  }
139
- throw new NodeInvocationError(message, transaction);
61
+ if (this.$options.sourceCodePath != null) {
62
+ const {
63
+ bytecode
64
+ } = await this.$options.onCompiler.compile(this.$options.sourceCodePath);
65
+ this.$options.bytecode = bytecode;
66
+ }
67
+ if (this.$options.bytecode == null) {
68
+ throw new IllegalArgumentError('Can\'t compile without sourceCode and sourceCodePath');
69
+ }
70
+ return this.$options.bytecode;
140
71
  }
141
- async _sendAndProcess(tx, options) {
142
- const txData = await send(tx, {
143
- ...this.$options,
144
- ...options
145
- });
146
- const result = {
147
- hash: txData.hash,
148
- tx: unpackTx(txData.rawTx),
149
- txData,
150
- rawTx: txData.rawTx
151
- };
152
- if (txData.blockHeight == null) return result;
72
+ async $getCallResultByTxHash(hash, fnName, options) {
153
73
  const {
154
74
  callInfo
155
- } = await this.$options.onNode.getTransactionInfoByHash(txData.hash);
156
- Object.assign(result.txData, callInfo); // TODO: don't duplicate data in result
157
- // @ts-expect-error TODO api should be updated to match types
158
- this._handleCallError(callInfo, tx);
75
+ } = await this.$options.onNode.getTransactionInfoByHash(hash);
76
+ if (callInfo == null) {
77
+ throw new ContractError(`callInfo is not available for transaction ${hash}`);
78
+ }
79
+ const callInfoTyped = callInfo;
159
80
  return {
160
- ...result,
161
- result: callInfo
81
+ ..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fnName, undefined, options),
82
+ result: callInfoTyped
162
83
  };
163
84
  }
164
85
  async _estimateGas(name, params) {
@@ -201,8 +122,9 @@ class Contract {
201
122
  if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t deploy without account');
202
123
  const ownerId = opt.onAccount.address;
203
124
  if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t deploy without bytecode');
204
- const tx = await _buildTx(Tag.ContractCreateTx, {
125
+ const tx = await buildTxAsync({
205
126
  ...opt,
127
+ tag: Tag.ContractCreateTx,
206
128
  gasLimit: (_opt$gasLimit = opt.gasLimit) !== null && _opt$gasLimit !== void 0 ? _opt$gasLimit : await this._estimateGas('init', params, opt),
207
129
  callData: this._calldata.encode(this._name, 'init', params),
208
130
  code: this.$options.bytecode,
@@ -212,7 +134,7 @@ class Contract {
212
134
  const {
213
135
  hash,
214
136
  ...other
215
- } = await this._sendAndProcess(tx, {
137
+ } = await _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, 'init', {
216
138
  ...opt,
217
139
  onAccount: opt.onAccount
218
140
  });
@@ -232,16 +154,6 @@ class Contract {
232
154
  * @param name - Function name
233
155
  * @returns function ACI
234
156
  */
235
- _getFunctionACI(name) {
236
- const fn = this._aci.encodedAci.contract.functions.find(f => f.name === name);
237
- if (fn != null) {
238
- return fn;
239
- }
240
- if (name === 'init') return {
241
- payable: false
242
- };
243
- throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
244
- }
245
157
 
246
158
  /**
247
159
  * Call contract function
@@ -251,6 +163,7 @@ class Contract {
251
163
  * @returns CallResult
252
164
  */
253
165
  async $call(fn, params) {
166
+ var _opt$gasLimit2;
254
167
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
255
168
  const {
256
169
  callStatic,
@@ -260,14 +173,14 @@ class Contract {
260
173
  ...this.$options,
261
174
  ...options
262
175
  };
263
- const fnACI = this._getFunctionACI(fn);
176
+ const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fn);
264
177
  const contractId = this.$options.address;
265
178
  const {
266
179
  onNode
267
180
  } = opt;
268
181
  if (fn == null) throw new MissingFunctionNameError();
269
182
  if (fn === 'init' && callStatic !== true) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
270
- if (fn !== 'init' && opt.amount != null && opt.amount > 0 && fnACI.payable === false) {
183
+ if (fn !== 'init' && opt.amount != null && opt.amount > 0 && !fnAci.payable) {
271
184
  throw new NotPayableFunctionError(opt.amount, fn);
272
185
  }
273
186
  let callerId;
@@ -275,12 +188,11 @@ class Contract {
275
188
  if (opt.onAccount == null) throw new InternalError('Use fallback account');
276
189
  callerId = opt.onAccount.address;
277
190
  } catch (error) {
278
- 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);
191
+ 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);
279
192
  if (!useFallbackAccount) throw error;
280
193
  callerId = DRY_RUN_ACCOUNT.pub;
281
194
  }
282
195
  const callData = this._calldata.encode(this._name, fn, params);
283
- let res;
284
196
  if (callStatic === true) {
285
197
  if (opt.nonce == null && top != null) {
286
198
  const topKey = typeof top === 'number' ? 'height' : 'hash';
@@ -297,15 +209,17 @@ class Contract {
297
209
  let tx;
298
210
  if (fn === 'init') {
299
211
  if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t dry-run "init" without bytecode');
300
- tx = await _buildTx(Tag.ContractCreateTx, {
212
+ tx = await buildTxAsync({
301
213
  ...txOpt,
214
+ tag: Tag.ContractCreateTx,
302
215
  code: this.$options.bytecode,
303
216
  ownerId: callerId
304
217
  });
305
218
  } else {
306
219
  if (contractId == null) throw new MissingContractAddressError('Can\'t dry-run contract without address');
307
- tx = await _buildTx(Tag.ContractCallTx, {
220
+ tx = await buildTxAsync({
308
221
  ...txOpt,
222
+ tag: Tag.ContractCallTx,
309
223
  callerId,
310
224
  contractId
311
225
  });
@@ -317,38 +231,35 @@ class Contract {
317
231
  ...opt,
318
232
  top
319
233
  });
320
- if (callObj == null) throw new UnexpectedTsError();
321
- this._handleCallError({
322
- returnType: callObj.returnType,
323
- returnValue: callObj.returnValue
324
- }, tx);
325
- res = {
234
+ if (callObj == null) {
235
+ throw new InternalError(`callObj is not available for transaction ${tx}`);
236
+ }
237
+ const callInfoTyped = callObj;
238
+ return {
326
239
  ...dryRunOther,
240
+ ..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fn, tx, opt),
327
241
  tx: unpackTx(tx),
328
- result: callObj
242
+ result: callInfoTyped,
243
+ rawTx: tx,
244
+ hash: buildTxHash(tx),
245
+ txData: undefined
329
246
  };
330
- } else {
331
- var _opt$gasLimit2;
332
- if (top != null) throw new IllegalArgumentError('Can\'t handle `top` option in on-chain contract call');
333
- if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
334
- const tx = await _buildTx(Tag.ContractCallTx, {
335
- ...opt,
336
- gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
337
- callerId,
338
- contractId,
339
- callData
340
- });
341
- if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t call contract on chain without account');
342
- res = await this._sendAndProcess(tx, {
343
- ...opt,
344
- onAccount: opt.onAccount
345
- });
346
247
  }
347
- if (callStatic === true || res.txData.blockHeight != null) {
348
- res.decodedResult = fnACI.returns != null && fnACI.returns !== 'unit' && fn !== 'init' && this._calldata.decode(this._name, fn, res.result.returnValue);
349
- res.decodedEvents = this.$decodeEvents(res.result.log, opt);
350
- }
351
- return res;
248
+ if (top != null) throw new IllegalArgumentError('Can\'t handle `top` option in on-chain contract call');
249
+ if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
250
+ const tx = await buildTxAsync({
251
+ ...opt,
252
+ tag: Tag.ContractCallTx,
253
+ gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
254
+ callerId,
255
+ contractId,
256
+ callData
257
+ });
258
+ if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t call contract on chain without account');
259
+ return _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, fn, {
260
+ ...opt,
261
+ onAccount: opt.onAccount
262
+ });
352
263
  }
353
264
 
354
265
  /**
@@ -359,47 +270,6 @@ class Contract {
359
270
  * @throws {@link MissingEventDefinitionError}
360
271
  * @throws {@link AmbiguousEventDefinitionError}
361
272
  */
362
- _getContractNameByEvent(ctAddress, nameHash, _ref2) {
363
- let {
364
- contractAddressToName
365
- } = _ref2;
366
- const addressToName = {
367
- ...this.$options.contractAddressToName,
368
- ...contractAddressToName
369
- };
370
- if (addressToName[ctAddress] != null) return addressToName[ctAddress];
371
-
372
- // TODO: consider using a third-party library
373
- const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
374
- const matchedEvents = [this._aci.encodedAci, ...this._aci.externalEncodedAci].filter(_ref3 => {
375
- let {
376
- contract
377
- } = _ref3;
378
- return contract === null || contract === void 0 ? void 0 : contract.event;
379
- }).map(_ref4 => {
380
- let {
381
- contract
382
- } = _ref4;
383
- return [contract.name, contract.event.variant];
384
- }).map(_ref5 => {
385
- let [name, events] = _ref5;
386
- return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
387
- }).flat().filter(_ref6 => {
388
- let [, eventName] = _ref6;
389
- return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
390
- }).filter((_ref7, idx, arr) => {
391
- let [,, type] = _ref7;
392
- return !arr.slice(0, idx).some(el => isEqual(el[2], type));
393
- });
394
- switch (matchedEvents.length) {
395
- case 0:
396
- throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
397
- case 1:
398
- return matchedEvents[0][0];
399
- default:
400
- throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
401
- }
402
- }
403
273
 
404
274
  /**
405
275
  * Decode Events
@@ -416,7 +286,7 @@ class Contract {
416
286
  const topics = event.topics.map(t => BigInt(t));
417
287
  let contractName;
418
288
  try {
419
- contractName = this._getContractNameByEvent(event.address, topics[0], opt);
289
+ contractName = _classPrivateMethodGet(this, _getContractNameByEvent, _getContractNameByEvent2).call(this, event.address, topics[0], opt);
420
290
  } catch (error) {
421
291
  if ((omitUnknown !== null && omitUnknown !== void 0 ? omitUnknown : false) && error instanceof MissingEventDefinitionError) return null;
422
292
  throw error;
@@ -433,7 +303,7 @@ class Contract {
433
303
  };
434
304
  }).filter(e => e != null);
435
305
  }
436
- static async initialize(_ref8) {
306
+ static async initialize(_ref) {
437
307
  let {
438
308
  onCompiler,
439
309
  onNode,
@@ -445,7 +315,7 @@ class Contract {
445
315
  fileSystem,
446
316
  validateBytecode,
447
317
  ...otherOptions
448
- } = _ref8;
318
+ } = _ref;
449
319
  if (aci == null && onCompiler != null) {
450
320
  let res;
451
321
  if (sourceCodePath != null) res = await onCompiler.compile(sourceCodePath);
@@ -463,7 +333,7 @@ class Contract {
463
333
  onNode
464
334
  });
465
335
  }
466
- if (address == null && sourceCode == null && bytecode == null) {
336
+ if (address == null && sourceCode == null && sourceCodePath == null && bytecode == null) {
467
337
  throw new MissingContractAddressError('Can\'t create instance by ACI without address');
468
338
  }
469
339
  if (address != null) {
@@ -481,13 +351,19 @@ class Contract {
481
351
  if (bytecode != null) isValid = bytecode === onChanBytecode;else if (sourceCode != null) {
482
352
  if (onCompiler == null) throw new IllegalArgumentError('Can\'t validate bytecode without compiler');
483
353
  isValid = await onCompiler.validateBySourceCode(onChanBytecode, sourceCode, fileSystem);
354
+ } else if (sourceCodePath != null) {
355
+ if (onCompiler == null) throw new IllegalArgumentError('Can\'t validate bytecode without compiler');
356
+ isValid = await onCompiler.validate(onChanBytecode, sourceCodePath);
357
+ }
358
+ if (!isValid) {
359
+ throw new BytecodeMismatchError((sourceCode !== null && sourceCode !== void 0 ? sourceCode : sourceCodePath) != null ? 'source code' : 'bytecode');
484
360
  }
485
- if (!isValid) throw new BytecodeMismatchError(sourceCode != null ? 'source code' : 'bytecode');
486
361
  }
487
362
  return new ContractWithMethods({
488
363
  onCompiler,
489
364
  onNode,
490
365
  sourceCode,
366
+ sourceCodePath,
491
367
  bytecode,
492
368
  aci,
493
369
  address,
@@ -495,15 +371,28 @@ class Contract {
495
371
  ...otherOptions
496
372
  });
497
373
  }
498
- constructor(_ref9) {
374
+ constructor(_ref2) {
499
375
  var _this = this;
500
376
  let {
501
377
  aci,
502
378
  ...otherOptions
503
- } = _ref9;
379
+ } = _ref2;
380
+ _classPrivateMethodInitSpec(this, _getContractNameByEvent);
381
+ _classPrivateMethodInitSpec(this, _getFunctionAci);
382
+ _classPrivateMethodInitSpec(this, _sendAndProcess);
383
+ _classPrivateMethodInitSpec(this, _getCallResult);
384
+ _classPrivateFieldInitSpec(this, _aciContract, {
385
+ writable: true,
386
+ value: void 0
387
+ });
504
388
  this._aci = aci;
505
- this._name = aci.encodedAci.contract.name;
506
- this._calldata = new Calldata([aci.encodedAci, ...aci.externalEncodedAci]);
389
+ const aciLast = aci[aci.length - 1];
390
+ if (aciLast.contract == null) {
391
+ throw new IllegalArgumentError(`The last 'aci' item should have 'contract' key, got ${Object.keys(aciLast)} keys instead`);
392
+ }
393
+ _classPrivateFieldSet(this, _aciContract, aciLast.contract);
394
+ this._name = _classPrivateFieldGet(this, _aciContract).name;
395
+ this._calldata = new Calldata(aci);
507
396
  this.$options = otherOptions;
508
397
 
509
398
  /**
@@ -520,19 +409,19 @@ class Contract {
520
409
  * await contract.testFunction({ callStatic: false }) // send tx on-chain
521
410
  * ```
522
411
  */
523
- Object.assign(this, Object.fromEntries(this._aci.encodedAci.contract.functions.map(_ref10 => {
412
+ Object.assign(this, Object.fromEntries(_classPrivateFieldGet(this, _aciContract).functions.map(_ref3 => {
524
413
  let {
525
414
  name,
526
415
  arguments: aciArgs,
527
416
  stateful
528
- } = _ref10;
417
+ } = _ref3;
529
418
  const callStatic = name !== 'init' && !stateful;
530
419
  return [name, async function () {
531
420
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
532
421
  args[_key] = arguments[_key];
533
422
  }
534
423
  const options = args.length === aciArgs.length + 1 ? args.pop() : {};
535
- if (typeof options !== 'object') throw new TypeError(`Options should be an object: ${options}`);
424
+ if (typeof options !== 'object') throw new _TypeError(`Options should be an object: ${options}`);
536
425
  if (name === 'init') return _this.$deploy(args, {
537
426
  callStatic,
538
427
  ...options
@@ -545,6 +434,99 @@ class Contract {
545
434
  })));
546
435
  }
547
436
  }
437
+ function _getCallResult2(_ref4, fnName, transaction, options) {
438
+ let {
439
+ returnType,
440
+ returnValue,
441
+ log
442
+ } = _ref4;
443
+ let message;
444
+ switch (returnType) {
445
+ case 'ok':
446
+ {
447
+ const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fnName);
448
+ return {
449
+ decodedResult: this._calldata.decode(this._name, fnAci.name, returnValue),
450
+ decodedEvents: this.$decodeEvents(log, options)
451
+ };
452
+ }
453
+ case 'revert':
454
+ message = this._calldata.decodeFateString(returnValue);
455
+ break;
456
+ case 'error':
457
+ message = decode(returnValue).toString();
458
+ break;
459
+ default:
460
+ throw new InternalError(`Unknown return type: ${returnType}`);
461
+ }
462
+ throw new NodeInvocationError(message, transaction);
463
+ }
464
+ async function _sendAndProcess2(tx, fnName, options) {
465
+ const txData = await sendTransaction(tx, {
466
+ ...this.$options,
467
+ ...options
468
+ });
469
+ return {
470
+ hash: txData.hash,
471
+ tx: unpackTx(txData.rawTx),
472
+ txData,
473
+ rawTx: txData.rawTx,
474
+ ...(txData.blockHeight != null && (await this.$getCallResultByTxHash(txData.hash, fnName, options)))
475
+ };
476
+ }
477
+ function _getFunctionAci2(name) {
478
+ const fn = _classPrivateFieldGet(this, _aciContract).functions.find(f => f.name === name);
479
+ if (fn != null) {
480
+ return fn;
481
+ }
482
+ if (name === 'init') {
483
+ return {
484
+ arguments: [],
485
+ name: 'init',
486
+ payable: false,
487
+ returns: 'unit',
488
+ stateful: true
489
+ };
490
+ }
491
+ throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
492
+ }
493
+ function _getContractNameByEvent2(ctAddress, nameHash, _ref5) {
494
+ let {
495
+ contractAddressToName
496
+ } = _ref5;
497
+ const addressToName = {
498
+ ...this.$options.contractAddressToName,
499
+ ...contractAddressToName
500
+ };
501
+ if (addressToName[ctAddress] != null) return addressToName[ctAddress];
502
+
503
+ // TODO: consider using a third-party library
504
+ const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
505
+ const contracts = this._aci.map(_ref6 => {
506
+ let {
507
+ contract
508
+ } = _ref6;
509
+ return contract;
510
+ }).filter(contract => contract === null || contract === void 0 ? void 0 : contract.event);
511
+ const matchedEvents = contracts.map(contract => [contract.name, contract.event.variant]).map(_ref7 => {
512
+ let [name, events] = _ref7;
513
+ return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
514
+ }).flat().filter(_ref8 => {
515
+ let [, eventName] = _ref8;
516
+ return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
517
+ }).filter((_ref9, idx, arr) => {
518
+ let [,, type] = _ref9;
519
+ return !arr.slice(0, idx).some(el => isEqual(el[2], type));
520
+ });
521
+ switch (matchedEvents.length) {
522
+ case 0:
523
+ throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
524
+ case 1:
525
+ return matchedEvents[0][0];
526
+ default:
527
+ throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
528
+ }
529
+ }
548
530
  // eslint-disable-next-line @typescript-eslint/no-redeclare
549
531
  const ContractWithMethods = Contract;
550
532
  export default ContractWithMethods;