@aeternity/aepp-sdk 11.0.1 → 12.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 (376) hide show
  1. package/LICENSE +1 -1
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +12 -19
  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 +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/AeSdk.d.ts +37 -0
  10. package/es/AeSdk.mjs +81 -0
  11. package/es/AeSdk.mjs.map +1 -0
  12. package/es/AeSdkAepp.d.ts +69 -0
  13. package/es/AeSdkAepp.mjs +175 -0
  14. package/es/AeSdkAepp.mjs.map +1 -0
  15. package/es/AeSdkBase.d.ts +212 -0
  16. package/es/AeSdkBase.mjs +310 -0
  17. package/es/AeSdkBase.mjs.map +1 -0
  18. package/es/AeSdkWallet.d.ts +103 -0
  19. package/es/AeSdkWallet.mjs +322 -0
  20. package/es/AeSdkWallet.mjs.map +1 -0
  21. package/es/Node.d.ts +44 -0
  22. package/es/Node.mjs +141 -0
  23. package/es/Node.mjs.map +1 -0
  24. package/es/account/Base.d.ts +65 -0
  25. package/es/account/Base.mjs +123 -0
  26. package/es/account/Base.mjs.map +1 -0
  27. package/es/account/Memory.d.ts +25 -0
  28. package/es/account/Memory.mjs +81 -0
  29. package/es/account/Memory.mjs.map +1 -0
  30. package/es/account/Rpc.d.ts +27 -0
  31. package/es/account/Rpc.mjs +79 -0
  32. package/es/account/Rpc.mjs.map +1 -0
  33. package/es/aens.d.ts +209 -0
  34. package/es/aens.mjs +332 -0
  35. package/es/aens.mjs.map +1 -0
  36. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  37. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  45. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  46. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  47. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  48. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  51. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  52. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  54. package/es/aepp-wallet-communication/schema.d.ts +90 -46
  55. package/es/aepp-wallet-communication/schema.mjs +214 -0
  56. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  57. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  58. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  60. package/es/apis/compiler/compiler.d.ts +92 -0
  61. package/es/apis/compiler/compiler.mjs +576 -0
  62. package/es/apis/compiler/compiler.mjs.map +1 -0
  63. package/es/apis/compiler/index.d.ts +2 -0
  64. package/es/apis/compiler/index.mjs +3 -0
  65. package/es/apis/compiler/index.mjs.map +1 -0
  66. package/es/apis/compiler/models/index.d.ts +248 -0
  67. package/es/apis/compiler/models/index.mjs +48 -0
  68. package/es/apis/compiler/models/index.mjs.map +1 -0
  69. package/es/apis/compiler/models/mappers.d.ts +23 -0
  70. package/es/apis/compiler/models/mappers.mjs +585 -0
  71. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  72. package/es/apis/compiler/models/parameters.d.ts +13 -0
  73. package/es/apis/compiler/models/parameters.mjs +71 -0
  74. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  75. package/es/apis/node/index.d.ts +2 -0
  76. package/es/apis/node/index.mjs +3 -0
  77. package/es/apis/node/index.mjs.map +1 -0
  78. package/es/apis/node/models/index.d.ts +1061 -0
  79. package/es/apis/node/models/index.mjs +2 -0
  80. package/es/apis/node/models/index.mjs.map +1 -0
  81. package/es/apis/node/models/mappers.d.ts +95 -0
  82. package/es/apis/node/models/mappers.mjs +4164 -0
  83. package/es/apis/node/models/mappers.mjs.map +1 -0
  84. package/es/apis/node/models/parameters.d.ts +17 -0
  85. package/es/apis/node/models/parameters.mjs +165 -0
  86. package/es/apis/node/models/parameters.mjs.map +1 -0
  87. package/es/apis/node/node.d.ts +215 -0
  88. package/es/apis/node/node.mjs +1165 -0
  89. package/es/apis/node/node.mjs.map +1 -0
  90. package/es/chain.d.ts +220 -0
  91. package/es/chain.mjs +524 -0
  92. package/es/chain.mjs.map +1 -0
  93. package/es/channel/handlers.d.ts +34 -0
  94. package/es/channel/handlers.mjs +147 -112
  95. package/es/channel/handlers.mjs.map +1 -1
  96. package/es/channel/index.d.ts +634 -0
  97. package/es/channel/index.mjs +898 -900
  98. package/es/channel/index.mjs.map +1 -1
  99. package/es/channel/internal.d.ts +100 -0
  100. package/es/channel/internal.mjs +97 -51
  101. package/es/channel/internal.mjs.map +1 -1
  102. package/es/contract/Compiler.d.ts +17 -0
  103. package/es/contract/Compiler.mjs +67 -0
  104. package/es/contract/Compiler.mjs.map +1 -0
  105. package/es/contract/aci.d.ts +125 -0
  106. package/es/contract/aci.mjs +199 -180
  107. package/es/contract/aci.mjs.map +1 -1
  108. package/es/contract/ga.d.ts +68 -0
  109. package/es/contract/ga.mjs +190 -0
  110. package/es/contract/ga.mjs.map +1 -0
  111. package/es/contract/methods.d.ts +68 -0
  112. package/es/contract/methods.mjs +101 -0
  113. package/es/contract/methods.mjs.map +1 -0
  114. package/es/index.d.ts +32 -0
  115. package/es/index.mjs +32 -40
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +154 -0
  118. package/es/oracle.mjs +288 -0
  119. package/es/oracle.mjs.map +1 -0
  120. package/es/spend.d.ts +61 -0
  121. package/es/spend.mjs +122 -0
  122. package/es/spend.mjs.map +1 -0
  123. package/es/tx/builder/constants.d.ts +41 -0
  124. package/es/tx/builder/constants.mjs +11 -19
  125. package/es/tx/builder/constants.mjs.map +1 -1
  126. package/es/tx/builder/field-types.d.ts +62 -0
  127. package/es/tx/builder/field-types.mjs +62 -10
  128. package/es/tx/builder/field-types.mjs.map +1 -1
  129. package/es/tx/builder/helpers.d.ts +131 -0
  130. package/es/tx/builder/helpers.mjs +71 -169
  131. package/es/tx/builder/helpers.mjs.map +1 -1
  132. package/es/tx/builder/index.d.ts +75 -0
  133. package/es/tx/builder/index.mjs +141 -323
  134. package/es/tx/builder/index.mjs.map +1 -1
  135. package/es/tx/builder/schema.d.ts +350 -0
  136. package/es/tx/builder/schema.mjs +173 -510
  137. package/es/tx/builder/schema.mjs.map +1 -1
  138. package/es/tx/index.d.ts +63 -0
  139. package/es/tx/index.mjs +171 -265
  140. package/es/tx/index.mjs.map +1 -1
  141. package/es/tx/min-fee.d.ts +20 -0
  142. package/es/tx/min-fee.mjs +148 -0
  143. package/es/tx/min-fee.mjs.map +1 -0
  144. package/es/tx/validator.d.ts +19 -0
  145. package/es/tx/validator.mjs +64 -71
  146. package/es/tx/validator.mjs.map +1 -1
  147. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  149. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  151. package/es/typings/bip32-path/index.d.mjs +2 -0
  152. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  153. package/es/typings/blakejs/index.d.mjs.map +1 -1
  154. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  155. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  156. package/es/utils/amount-formatter.d.ts +42 -0
  157. package/es/utils/amount-formatter.mjs +28 -41
  158. package/es/utils/amount-formatter.mjs.map +1 -1
  159. package/es/utils/autorest.d.ts +6 -0
  160. package/es/utils/autorest.mjs +97 -0
  161. package/es/utils/autorest.mjs.map +1 -0
  162. package/es/utils/bignumber.d.ts +13 -0
  163. package/es/utils/bignumber.mjs +10 -8
  164. package/es/utils/bignumber.mjs.map +1 -1
  165. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  166. package/es/utils/bytes.mjs +10 -14
  167. package/es/utils/bytes.mjs.map +1 -1
  168. package/es/utils/crypto.d.ts +103 -0
  169. package/es/utils/crypto.mjs +60 -68
  170. package/es/utils/crypto.mjs.map +1 -1
  171. package/es/utils/encoder.d.ts +26 -0
  172. package/es/utils/encoder.mjs +47 -51
  173. package/es/utils/encoder.mjs.map +1 -1
  174. package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
  175. package/es/utils/errors.mjs +318 -125
  176. package/es/utils/errors.mjs.map +1 -1
  177. package/es/utils/hd-wallet.d.ts +34 -0
  178. package/es/utils/hd-wallet.mjs +27 -16
  179. package/es/utils/hd-wallet.mjs.map +1 -1
  180. package/es/utils/json-big.d.ts +5 -0
  181. package/es/utils/json-big.mjs +10 -14
  182. package/es/utils/json-big.mjs.map +1 -1
  183. package/es/utils/keystore.d.ts +51 -0
  184. package/es/utils/keystore.mjs +98 -193
  185. package/es/utils/keystore.mjs.map +1 -1
  186. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  187. package/es/utils/mptree.mjs +13 -14
  188. package/es/utils/mptree.mjs.map +1 -1
  189. package/es/utils/other.d.ts +14 -0
  190. package/es/utils/other.mjs +21 -36
  191. package/es/utils/other.mjs.map +1 -1
  192. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  193. package/es/utils/semver-satisfies.mjs.map +1 -1
  194. package/es/utils/string.d.ts +24 -0
  195. package/es/utils/string.mjs +8 -10
  196. package/es/utils/string.mjs.map +1 -1
  197. package/package.json +49 -39
  198. package/src/AeSdk.ts +65 -0
  199. package/src/AeSdkAepp.ts +167 -0
  200. package/src/AeSdkBase.ts +320 -0
  201. package/src/AeSdkWallet.ts +332 -0
  202. package/src/Node.ts +167 -0
  203. package/src/account/Base.ts +114 -0
  204. package/src/account/Memory.ts +83 -0
  205. package/src/account/Rpc.ts +67 -0
  206. package/src/aens.ts +391 -0
  207. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  208. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  209. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  210. package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
  211. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  212. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  213. package/src/aepp-wallet-communication/schema.ts +181 -0
  214. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  215. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  216. package/src/apis/compiler/compiler.ts +585 -0
  217. package/src/apis/compiler/index.ts +2 -0
  218. package/src/apis/compiler/models/index.ts +301 -0
  219. package/src/apis/compiler/models/mappers.ts +583 -0
  220. package/src/apis/compiler/models/parameters.ts +93 -0
  221. package/src/apis/node/code-model-v4.yaml +10046 -0
  222. package/src/apis/node/index.ts +2 -0
  223. package/src/apis/node/models/index.ts +1253 -0
  224. package/src/apis/node/models/mappers.ts +4278 -0
  225. package/src/apis/node/models/parameters.ts +188 -0
  226. package/src/apis/node/node.ts +1299 -0
  227. package/src/chain.ts +444 -0
  228. package/src/channel/{handlers.js → handlers.ts} +220 -128
  229. package/src/channel/index.ts +991 -0
  230. package/src/channel/internal.ts +345 -0
  231. package/src/contract/Compiler.ts +66 -0
  232. package/src/contract/aci.ts +529 -0
  233. package/src/contract/ga.ts +178 -0
  234. package/src/contract/methods.ts +118 -0
  235. package/src/index.ts +51 -0
  236. package/src/oracle.ts +342 -0
  237. package/src/spend.ts +152 -0
  238. package/src/tx/builder/{constants.js → constants.ts} +12 -16
  239. package/src/tx/builder/field-types.ts +111 -0
  240. package/src/tx/builder/helpers.ts +253 -0
  241. package/src/tx/builder/index.ts +394 -0
  242. package/src/tx/builder/schema.ts +771 -0
  243. package/src/tx/index.ts +199 -0
  244. package/src/tx/min-fee.ts +136 -0
  245. package/src/tx/validator.ts +226 -0
  246. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  247. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  248. package/src/typings/bip32-path/index.d.ts +33 -0
  249. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  250. package/src/utils/amount-formatter.ts +29 -42
  251. package/src/utils/autorest.ts +90 -0
  252. package/src/utils/bignumber.ts +9 -11
  253. package/src/utils/bytes.ts +12 -14
  254. package/src/utils/crypto.ts +217 -0
  255. package/src/utils/encoder.ts +52 -55
  256. package/src/utils/errors.ts +268 -134
  257. package/src/utils/hd-wallet.ts +134 -0
  258. package/src/utils/json-big.ts +26 -0
  259. package/src/utils/keystore.ts +179 -0
  260. package/src/utils/mptree.ts +14 -14
  261. package/src/utils/other.ts +28 -43
  262. package/src/utils/string.ts +8 -10
  263. package/es/account/base.mjs +0 -179
  264. package/es/account/base.mjs.map +0 -1
  265. package/es/account/memory.mjs +0 -99
  266. package/es/account/memory.mjs.map +0 -1
  267. package/es/account/multiple.mjs +0 -179
  268. package/es/account/multiple.mjs.map +0 -1
  269. package/es/ae/aens.mjs +0 -404
  270. package/es/ae/aens.mjs.map +0 -1
  271. package/es/ae/aepp.mjs +0 -45
  272. package/es/ae/aepp.mjs.map +0 -1
  273. package/es/ae/contract.mjs +0 -159
  274. package/es/ae/contract.mjs.map +0 -1
  275. package/es/ae/index.mjs +0 -207
  276. package/es/ae/index.mjs.map +0 -1
  277. package/es/ae/oracle.mjs +0 -339
  278. package/es/ae/oracle.mjs.map +0 -1
  279. package/es/ae/universal.mjs +0 -45
  280. package/es/ae/universal.mjs.map +0 -1
  281. package/es/ae/wallet.mjs +0 -50
  282. package/es/ae/wallet.mjs.map +0 -1
  283. package/es/amount-formatter.d.ts +0 -58
  284. package/es/bignumber.d.ts +0 -18
  285. package/es/chain/index.mjs +0 -272
  286. package/es/chain/index.mjs.map +0 -1
  287. package/es/chain/node.mjs +0 -442
  288. package/es/chain/node.mjs.map +0 -1
  289. package/es/contract/compiler.mjs +0 -115
  290. package/es/contract/compiler.mjs.map +0 -1
  291. package/es/contract/ga/helpers.mjs +0 -30
  292. package/es/contract/ga/helpers.mjs.map +0 -1
  293. package/es/contract/ga/index.mjs +0 -178
  294. package/es/contract/ga/index.mjs.map +0 -1
  295. package/es/crypto-ts.d.ts +0 -9
  296. package/es/encoder.d.ts +0 -26
  297. package/es/node-pool/index.mjs +0 -188
  298. package/es/node-pool/index.mjs.map +0 -1
  299. package/es/node.mjs +0 -133
  300. package/es/node.mjs.map +0 -1
  301. package/es/other.d.ts +0 -31
  302. package/es/string.d.ts +0 -26
  303. package/es/tx/tx-object.mjs +0 -283
  304. package/es/tx/tx-object.mjs.map +0 -1
  305. package/es/tx/tx.mjs +0 -938
  306. package/es/tx/tx.mjs.map +0 -1
  307. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  308. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  309. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  310. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  311. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  312. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  313. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  314. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  315. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  316. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  317. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  318. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  319. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  320. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  321. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  322. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  323. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  324. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  325. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  326. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  327. package/es/utils/async-init.mjs +0 -64
  328. package/es/utils/async-init.mjs.map +0 -1
  329. package/es/utils/crypto-ts.mjs.map +0 -1
  330. package/es/utils/swagger.mjs +0 -164
  331. package/es/utils/swagger.mjs.map +0 -1
  332. package/src/account/base.js +0 -153
  333. package/src/account/memory.js +0 -83
  334. package/src/account/multiple.js +0 -162
  335. package/src/ae/aens.js +0 -361
  336. package/src/ae/aepp.js +0 -45
  337. package/src/ae/contract.js +0 -148
  338. package/src/ae/index.js +0 -168
  339. package/src/ae/oracle.js +0 -311
  340. package/src/ae/universal.js +0 -47
  341. package/src/ae/wallet.js +0 -50
  342. package/src/chain/index.js +0 -269
  343. package/src/chain/node.js +0 -320
  344. package/src/channel/index.js +0 -903
  345. package/src/channel/internal.js +0 -236
  346. package/src/contract/aci.js +0 -376
  347. package/src/contract/compiler.js +0 -100
  348. package/src/contract/ga/helpers.js +0 -19
  349. package/src/contract/ga/index.js +0 -150
  350. package/src/index.js +0 -89
  351. package/src/node-pool/index.js +0 -172
  352. package/src/node.js +0 -116
  353. package/src/tx/builder/field-types.js +0 -61
  354. package/src/tx/builder/helpers.js +0 -334
  355. package/src/tx/builder/index.js +0 -465
  356. package/src/tx/builder/schema.js +0 -1100
  357. package/src/tx/index.js +0 -301
  358. package/src/tx/tx-object.js +0 -187
  359. package/src/tx/tx.js +0 -631
  360. package/src/tx/validator.js +0 -181
  361. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  362. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  363. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  364. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  365. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  366. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  367. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  368. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  369. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  370. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  371. package/src/utils/async-init.js +0 -45
  372. package/src/utils/crypto.js +0 -219
  373. package/src/utils/hd-wallet.js +0 -100
  374. package/src/utils/json-big.js +0 -26
  375. package/src/utils/keystore.js +0 -219
  376. package/src/utils/swagger.js +0 -156
@@ -1,174 +1,184 @@
1
1
  /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * ContractACI module
20
- *
21
- * @module @aeternity/aepp-sdk/es/contract/aci
22
- * @export getContractInstance
23
- */
2
+ * ISC License (ISC)
3
+ * Copyright (c) 2022 aeternity developers
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose with or without fee is hereby granted, provided that the above
7
+ * copyright notice and this permission notice appear in all copies.
8
+ *
9
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ * PERFORMANCE OF THIS SOFTWARE.
16
+ */
17
+ // @ts-expect-error TODO remove
24
18
  import _aeternityAeppCalldata from '@aeternity/aepp-calldata';
25
19
  const {
26
20
  Encoder: Calldata
27
21
  } = _aeternityAeppCalldata;
28
- import { DRY_RUN_ACCOUNT, GAS_MAX } from "../tx/builder/schema.mjs";
29
- import TxObject from "../tx/tx-object.mjs";
30
- import { decode } from "../tx/builder/helpers.mjs";
31
- import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, InternalError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError } from "../utils/errors.mjs";
32
- import { hash } from "../utils/crypto-ts.mjs";
22
+ import { DRY_RUN_ACCOUNT, GAS_MAX, TX_TYPE, AMOUNT } from "../tx/builder/schema.mjs";
23
+ import { buildContractIdByContractTx, unpackTx } from "../tx/builder/index.mjs";
24
+ import { _buildTx } from "../tx/index.mjs";
25
+ import { send } from "../spend.mjs";
26
+ import { decode } from "../utils/encoder.mjs";
27
+ import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError, UnexpectedTsError } from "../utils/errors.mjs";
28
+ import { hash } from "../utils/crypto.mjs";
29
+ import { getAccount, getContract, getContractByteCode, getKeyBlock, resolveName, txDryRun } from "../chain.mjs";
30
+
33
31
  /**
34
32
  * Generate contract ACI object with predefined js methods for contract usage - can be used for
35
33
  * creating a reference to already deployed contracts
36
- * @alias module:@aeternity/aepp-sdk/es/contract/aci
37
- * @param {Object} [options={}] Options object
38
- * @param {String} [options.source] Contract source code
39
- * @param {String} [options.bytecode] Contract bytecode
40
- * @param {Object} [options.aci] Contract ACI
41
- * @param {String} [options.contractAddress] Contract address
42
- * @param {Object} [options.filesystem] Contact source external namespaces map
43
- * @param {Boolean} [options.validateBytecode] Compare source code with on-chain version
44
- * @return {ContractInstance} JS Contract API
34
+ * @param options - Options object
35
+ * @returns JS Contract API
45
36
  * @example
37
+ * ```js
46
38
  * const contractIns = await aeSdk.getContractInstance({ source })
47
39
  * await contractIns.deploy([321]) or await contractIns.methods.init(321)
48
40
  * const callResult = await contractIns.call('setState', [123]) or
49
41
  * await contractIns.methods.setState.send(123, options)
50
42
  * const staticCallResult = await contractIns.call('setState', [123], { callStatic: true }) or
51
43
  * await contractIns.methods.setState.get(123, options)
52
- * Also you can call contract like: await contractIns.methods.setState(123, options)
44
+ * ```
45
+ * Also you can call contract like: `await contractIns.methods.setState(123, options)`
53
46
  * Then sdk decide to make on-chain or static call(dry-run API) transaction based on function is
54
47
  * stateful or not
55
48
  */
56
-
57
- export default async function getContractInstance() {
58
- var _this = this;
59
-
49
+ export default async function getContractInstance(_ref) {
60
50
  let {
51
+ onAccount,
52
+ onCompiler,
53
+ onNode,
61
54
  source,
62
55
  bytecode,
63
56
  aci: _aci,
64
57
  contractAddress,
65
- filesystem = {},
58
+ fileSystem = {},
66
59
  validateBytecode,
67
60
  ...otherOptions
68
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
61
+ } = _ref;
69
62
 
70
- if (!_aci && source) {
71
- _aci = await this.compilerApi.generateACI({
63
+ if (_aci == null && source != null) {
64
+ // TODO: should be fixed when the compiledAci interface gets updated
65
+ _aci = await onCompiler.generateACI({
72
66
  code: source,
73
67
  options: {
74
- filesystem
68
+ fileSystem
75
69
  }
76
70
  });
77
71
  }
78
72
 
79
- if (!_aci) throw new MissingContractDefError();
80
- contractAddress = contractAddress && (await this.resolveName(contractAddress, 'contract_pubkey', {
81
- resolveByNode: true
82
- }));
73
+ if (_aci == null) throw new MissingContractDefError();
74
+
75
+ if (contractAddress != null) {
76
+ contractAddress = await resolveName(contractAddress, 'contract_pubkey', {
77
+ resolveByNode: true,
78
+ onNode
79
+ });
80
+ }
83
81
 
84
- if (!contractAddress && !source && !bytecode) {
82
+ if (contractAddress == null && source == null && bytecode == null) {
85
83
  throw new MissingContractAddressError('Can\'t create instance by ACI without address');
86
84
  }
87
85
 
88
- if (contractAddress) {
89
- const contract = await this.getContract(contractAddress);
90
- if (!contract.active) throw new InactiveContractError(contractAddress);
86
+ if (contractAddress != null) {
87
+ const contract = await getContract(contractAddress, {
88
+ onNode
89
+ });
90
+ if (contract.active == null) throw new InactiveContractError(contractAddress);
91
91
  }
92
92
 
93
93
  const instance = {
94
94
  _aci,
95
- _name: _aci.encoded_aci.contract.name,
96
- calldata: new Calldata([_aci.encoded_aci, ..._aci.external_encoded_aci]),
95
+ _name: _aci.encodedAci.contract.name,
96
+ calldata: new Calldata([_aci.encodedAci, ..._aci.externalEncodedAci]),
97
97
  source,
98
98
  bytecode,
99
99
  deployInfo: {
100
100
  address: contractAddress
101
101
  },
102
- options: { ...this.Ae.defaults,
102
+ options: {
103
+ onAccount,
104
+ onCompiler,
105
+ onNode,
106
+ amount: AMOUNT,
103
107
  callStatic: false,
104
- filesystem,
108
+ fileSystem,
105
109
  ...otherOptions
106
110
  },
107
- compilerVersion: this.compilerVersion
111
+ compile: async function (_options) {},
112
+ _estimateGas: async function (_name, _params, _options) {},
113
+ deploy: async function (_params, _options) {},
114
+ call: async function (_fn, _params, _options) {},
115
+
116
+ decodeEvents(_events, options) {},
117
+
118
+ methods: undefined
108
119
  };
109
120
 
110
- if (validateBytecode) {
111
- if (!contractAddress) throw new MissingContractAddressError('Can\'t validate bytecode without contract address');
112
- const onChanBytecode = (await this.getContractByteCode(contractAddress)).bytecode;
113
- const isValid = source ? await this.compilerApi.validateByteCode({
121
+ if (validateBytecode != null) {
122
+ if (contractAddress == null) throw new MissingContractAddressError('Can\'t validate bytecode without contract address');
123
+ const onChanBytecode = (await getContractByteCode(contractAddress, {
124
+ onNode
125
+ })).bytecode;
126
+ const isValid = source != null ? await onCompiler.validateByteCode({
114
127
  bytecode: onChanBytecode,
115
128
  source,
116
129
  options: instance.options
117
- }).then(res => Object.entries(res).length === 0, () => false) : bytecode === onChanBytecode;
118
- if (!isValid) throw new BytecodeMismatchError(source ? 'source' : 'bytecode');
130
+ }).then(() => true, () => false) : bytecode === onChanBytecode;
131
+ if (!isValid) throw new BytecodeMismatchError(source != null ? 'source' : 'bytecode');
119
132
  }
120
133
  /**
121
134
  * Compile contract
122
- * @alias module:@aeternity/aepp-sdk/es/contract/aci
123
- * @rtype () => ContractInstance: Object
124
- * @return {String} bytecode bytecode
135
+ * @returns bytecode
125
136
  */
126
137
 
127
138
 
128
139
  instance.compile = async function () {
129
140
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
130
- if (instance.bytecode) throw new IllegalArgumentError('Contract already compiled');
131
- if (!instance.source) throw new IllegalArgumentError('Can\'t compile without source code');
132
- const {
133
- bytecode
134
- } = await _this.compilerApi.compileContract({
141
+ if (instance.bytecode != null) throw new IllegalArgumentError('Contract already compiled');
142
+ if (instance.source == null) throw new IllegalArgumentError('Can\'t compile without source code');
143
+ instance.bytecode = (await onCompiler.compileContract({
135
144
  code: instance.source,
136
145
  options: { ...instance.options,
137
146
  ...options
138
147
  }
139
- });
140
- instance.bytecode = bytecode;
148
+ })).bytecode;
141
149
  return instance.bytecode;
142
150
  };
143
151
 
144
152
  const sendAndProcess = async (tx, options) => {
145
- const txData = await this.send(tx, options);
153
+ options = { ...instance.options,
154
+ ...options
155
+ };
156
+ const txData = await send(tx, options);
146
157
  const result = {
147
158
  hash: txData.hash,
148
- tx: TxObject({
149
- tx: txData.rawTx
150
- }),
159
+ tx: unpackTx(txData.rawTx),
151
160
  txData,
152
161
  rawTx: txData.rawTx
153
162
  };
154
- if (options.waitMined === false) return result;
163
+ if (txData.blockHeight == null) return result;
155
164
  const {
156
165
  callInfo
157
- } = await this.api.getTransactionInfoByHash(txData.hash);
166
+ } = await onNode.getTransactionInfoByHash(txData.hash);
158
167
  Object.assign(result.txData, callInfo); // TODO: don't duplicate data in result
168
+ // @ts-expect-error TODO api should be updated to match types
159
169
 
160
- await handleCallError(callInfo);
170
+ handleCallError(callInfo, tx);
161
171
  return { ...result,
162
172
  result: callInfo
163
173
  };
164
174
  };
165
175
 
166
- const handleCallError = _ref => {
176
+ const handleCallError = (_ref2, transaction) => {
167
177
  let {
168
178
  returnType,
169
179
  returnValue
170
- } = _ref;
171
- let message; // TODO: ensure that it works correctly https://github.com/aeternity/aepp-calldata-js/issues/88
180
+ } = _ref2;
181
+ let message;
172
182
 
173
183
  switch (returnType) {
174
184
  case 'ok':
@@ -181,12 +191,9 @@ export default async function getContractInstance() {
181
191
  case 'error':
182
192
  message = decode(returnValue).toString();
183
193
  break;
184
-
185
- default:
186
- throw new InternalError(`Unknown returnType: ${returnType}`);
187
194
  }
188
195
 
189
- throw new NodeInvocationError(message);
196
+ throw new NodeInvocationError(message, transaction);
190
197
  };
191
198
 
192
199
  instance._estimateGas = async (name, params, options) => {
@@ -202,35 +209,33 @@ export default async function getContractInstance() {
202
209
  };
203
210
  /**
204
211
  * Deploy contract
205
- * @alias module:@aeternity/aepp-sdk/es/contract/aci
206
- * @rtype (init: Array, options: Object) => ContractInstance: Object
207
- * @param {Array} params Contract init function arguments array
208
- * @param {Object} [options] options
209
- * @return {Object} deploy info
212
+ * @param params - Contract init function arguments array
213
+ * @param options - Options
214
+ * @returns deploy info
210
215
  */
211
216
 
212
217
 
213
218
  instance.deploy = async function () {
214
- var _opt$gas;
219
+ var _opt$gasLimit;
215
220
 
216
221
  let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
217
222
  let options = arguments.length > 1 ? arguments[1] : undefined;
218
223
  const opt = { ...instance.options,
219
224
  ...options
220
225
  };
221
- if (!instance.bytecode) await instance.compile(opt);
222
- if (opt.callStatic) return instance.call('init', params, opt);
223
- if (instance.deployInfo.address) throw new DuplicateContractError();
224
- const ownerId = await _this.address(opt);
225
- const {
226
- tx,
227
- contractId
228
- } = await _this.contractCreateTx({ ...opt,
229
- gas: (_opt$gas = opt.gas) !== null && _opt$gas !== void 0 ? _opt$gas : await instance._estimateGas('init', params, opt),
226
+ if (instance.bytecode == null) await instance.compile(opt); // @ts-expect-error
227
+
228
+ if (opt.callStatic === true) return await instance.call('init', params, opt);
229
+ if (instance.deployInfo.address != null) throw new DuplicateContractError();
230
+ const ownerId = await opt.onAccount.address(options);
231
+ const tx = await _buildTx(TX_TYPE.contractCreate, { ...opt,
232
+ gasLimit: (_opt$gasLimit = opt.gasLimit) !== null && _opt$gasLimit !== void 0 ? _opt$gasLimit : await instance._estimateGas('init', params, opt),
230
233
  callData: instance.calldata.encode(instance._name, 'init', params),
231
234
  code: instance.bytecode,
232
- ownerId
235
+ ownerId,
236
+ onNode
233
237
  });
238
+ const contractId = buildContractIdByContractTx(tx);
234
239
  const {
235
240
  hash,
236
241
  rawTx,
@@ -249,15 +254,18 @@ export default async function getContractInstance() {
249
254
  };
250
255
  /**
251
256
  * Get function schema from contract ACI object
252
- * @param {String} name Function name
253
- * @return {Object} function ACI
257
+ * @param name - Function name
258
+ * @returns function ACI
254
259
  */
255
260
 
256
261
 
257
262
  function getFunctionACI(name) {
258
- const fn = instance._aci.encoded_aci.contract.functions.find(f => f.name === name);
263
+ const fn = instance._aci.encodedAci.contract.functions.find(f => f.name === name);
264
+
265
+ if (fn != null) {
266
+ return fn;
267
+ }
259
268
 
260
- if (fn) return fn;
261
269
  if (name === 'init') return {
262
270
  payable: false
263
271
  };
@@ -265,13 +273,10 @@ export default async function getContractInstance() {
265
273
  }
266
274
  /**
267
275
  * Call contract function
268
- * @alias module:@aeternity/aepp-sdk/es/contract/aci
269
- * @rtype (init: Array, options: Object = { callStatic: false }) => CallResult: Object
270
- * @param {String} fn Function name
271
- * @param {Array} params Array of function arguments
272
- * @param {Object} [options={}] Array of function arguments
273
- * @param {Boolean} [options.callStatic=false] Static function call
274
- * @return {Object} CallResult
276
+ * @param fn - Function name
277
+ * @param params - Array of function arguments
278
+ * @param options - Array of function arguments
279
+ * @returns CallResult
275
280
  */
276
281
 
277
282
 
@@ -283,53 +288,67 @@ export default async function getContractInstance() {
283
288
  };
284
289
  const fnACI = getFunctionACI(fn);
285
290
  const contractId = instance.deployInfo.address;
286
- if (!fn) throw new MissingFunctionNameError();
287
- if (fn === 'init' && !opt.callStatic) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
288
- if (!contractId && fn !== 'init') throw new InvalidMethodInvocationError('You need to deploy contract before calling!');
289
- if (fn !== 'init' && opt.amount > 0 && fnACI.payable === false) throw new NotPayableFunctionError(`You try to pay "${opt.amount}" to function "${fn}" which is not payable. Only payable function can accept coins`);
290
- const callerId = await _this.address(opt).catch(error => {
291
- if (opt.callStatic) return DRY_RUN_ACCOUNT.pub;else throw error;
291
+ if (fn == null) throw new MissingFunctionNameError();
292
+ if (fn === 'init' && opt.callStatic === false) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
293
+ if (contractId == null && fn !== 'init') throw new InvalidMethodInvocationError('You need to deploy contract before calling!');
294
+ if (fn !== 'init' && opt.amount > 0 && fnACI.payable === false) throw new NotPayableFunctionError(opt.amount, fn);
295
+ const callerId = await Promise.resolve().then(() => opt.onAccount.address(opt)).catch(error => {
296
+ if (opt.callStatic === true) return DRY_RUN_ACCOUNT.pub;else throw error;
292
297
  });
293
298
  const callData = instance.calldata.encode(instance._name, fn, params);
294
299
  let res;
295
300
 
296
- if (opt.callStatic) {
297
- var _opt$gas2, _opt$nonce;
301
+ if (opt.callStatic === true) {
302
+ var _opt$gasLimit2;
298
303
 
299
304
  if (typeof opt.top === 'number') {
300
- opt.top = (await _this.getKeyBlock(opt.top)).hash;
305
+ opt.top = (await getKeyBlock(opt.top, {
306
+ onNode
307
+ })).hash;
301
308
  }
302
309
 
303
310
  const txOpt = { ...opt,
304
- gas: (_opt$gas2 = opt.gas) !== null && _opt$gas2 !== void 0 ? _opt$gas2 : GAS_MAX,
305
- callData,
306
- nonce: (_opt$nonce = opt.nonce) !== null && _opt$nonce !== void 0 ? _opt$nonce : opt.top && (await _this.getAccount(callerId, {
307
- hash: opt.top
308
- })).nonce + 1
311
+ onNode,
312
+ gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : GAS_MAX,
313
+ callData
309
314
  };
310
- const tx = fn === 'init' ? (await _this.contractCreateTx({ ...txOpt,
315
+
316
+ if (opt.nonce == null && opt.top != null) {
317
+ opt.nonce = (await getAccount(callerId, {
318
+ hash: opt.top,
319
+ onNode
320
+ })).nonce + 1;
321
+ }
322
+
323
+ const tx = await (fn === 'init' ? _buildTx(TX_TYPE.contractCreate, { ...txOpt,
311
324
  code: instance.bytecode,
312
325
  ownerId: callerId
313
- })).tx : await _this.contractCallTx({ ...txOpt,
326
+ }) : _buildTx(TX_TYPE.contractCall, { ...txOpt,
314
327
  callerId,
315
328
  contractId
316
- });
329
+ }));
317
330
  const {
318
331
  callObj,
319
332
  ...dryRunOther
320
- } = await _this.txDryRun(tx, callerId, opt);
321
- await handleCallError(callObj);
333
+ } = await txDryRun(tx, callerId, {
334
+ onNode,
335
+ ...opt
336
+ });
337
+ if (callObj == null) throw new UnexpectedTsError();
338
+ handleCallError({
339
+ returnType: callObj.returnType,
340
+ returnValue: callObj.returnValue
341
+ }, tx);
322
342
  res = { ...dryRunOther,
323
- tx: TxObject({
324
- tx
325
- }),
343
+ tx: unpackTx(tx),
326
344
  result: callObj
327
345
  };
328
346
  } else {
329
- var _opt$gas3;
347
+ var _opt$gasLimit3;
330
348
 
331
- const tx = await _this.contractCallTx({ ...opt,
332
- gas: (_opt$gas3 = opt.gas) !== null && _opt$gas3 !== void 0 ? _opt$gas3 : await instance._estimateGas(fn, params, opt),
349
+ const tx = await _buildTx(TX_TYPE.contractCall, { ...opt,
350
+ onNode,
351
+ gasLimit: (_opt$gasLimit3 = opt.gasLimit) !== null && _opt$gasLimit3 !== void 0 ? _opt$gasLimit3 : await instance._estimateGas(fn, params, opt),
333
352
  callerId,
334
353
  contractId,
335
354
  callData
@@ -337,53 +356,52 @@ export default async function getContractInstance() {
337
356
  res = await sendAndProcess(tx, opt);
338
357
  }
339
358
 
340
- if (opt.waitMined || opt.callStatic) {
341
- res.decodedResult = fnACI.returns && fnACI.returns !== 'unit' && fn !== 'init' && instance.calldata.decode(instance._name, fn, res.result.returnValue);
359
+ if (opt.callStatic === true || res.txData.blockHeight != null) {
360
+ res.decodedResult = fnACI.returns != null && fnACI.returns !== 'unit' && fn !== 'init' && instance.calldata.decode(instance._name, fn, res.result.returnValue);
342
361
  res.decodedEvents = instance.decodeEvents(res.result.log, opt);
343
362
  }
344
363
 
345
364
  return res;
346
365
  };
347
366
  /**
348
- * @param {String} address Contract address that emitted event
349
- * @param {BigInt} nameHash Hash of emitted event name
350
- * @param {Object} [options]
351
- * @param {Object} [options.contractAddressToName] Map of contract addresses to their names
352
- * @return {String} Contract name
353
- * @throws {MissingEventDefinitionError}
354
- * @throws {AmbiguousEventDefinitionError}
367
+ * @param address - Contract address that emitted event
368
+ * @param nameHash - Hash of emitted event name
369
+ * @param options - Options
370
+ * @returns Contract name
371
+ * @throws {@link MissingEventDefinitionError}
372
+ * @throws {@link AmbiguousEventDefinitionError}
355
373
  */
356
374
 
357
375
 
358
- function getContractNameByEvent(address, nameHash, _ref2) {
376
+ function getContractNameByEvent(address, nameHash, _ref3) {
359
377
  let {
360
378
  contractAddressToName
361
- } = _ref2;
379
+ } = _ref3;
362
380
  const addressToName = { ...instance.options.contractAddressToName,
363
381
  ...contractAddressToName
364
382
  };
365
- if (addressToName[address]) return addressToName[address];
366
- const matchedEvents = [instance._aci.encoded_aci, ...instance._aci.external_encoded_aci].filter(_ref3 => {
383
+ if (addressToName[address] != null) return addressToName[address];
384
+ const matchedEvents = [instance._aci.encodedAci, ...instance._aci.externalEncodedAci].filter(_ref4 => {
367
385
  let {
368
386
  contract
369
- } = _ref3;
387
+ } = _ref4;
370
388
  return contract === null || contract === void 0 ? void 0 : contract.event;
371
- }).map(_ref4 => {
389
+ }).map(_ref5 => {
372
390
  let {
373
391
  contract
374
- } = _ref4;
392
+ } = _ref5;
375
393
  return [contract.name, contract.event.variant];
376
- }).map(_ref5 => {
377
- let [name, events] = _ref5;
394
+ }).map(_ref6 => {
395
+ let [name, events] = _ref6;
378
396
  return events.map(event => [name, Object.keys(event)[0]]);
379
- }).flat().filter(_ref6 => {
380
- let [, eventName] = _ref6;
397
+ }).flat().filter(_ref7 => {
398
+ let [, eventName] = _ref7;
381
399
  return BigInt('0x' + hash(eventName).toString('hex')) === nameHash;
382
400
  });
383
401
 
384
402
  switch (matchedEvents.length) {
385
403
  case 0:
386
- throw new MissingEventDefinitionError(nameHash, address);
404
+ throw new MissingEventDefinitionError(nameHash.toString(), address);
387
405
 
388
406
  case 1:
389
407
  return matchedEvents[0][0];
@@ -394,13 +412,9 @@ export default async function getContractInstance() {
394
412
  }
395
413
  /**
396
414
  * Decode Events
397
- * @alias module:@aeternity/aepp-sdk/es/contract/aci
398
- * @rtype (events: Array) => DecodedEvents: Array
399
- * @param {Array} events Array of encoded events (callRes.result.log)
400
- * @param {Object} [options]
401
- * @param {Boolean} [options.omitUnknown] Omit events that can't be decoded in case ACI is not
402
- * complete
403
- * @return {Object} DecodedEvents
415
+ * @param events - Array of encoded events (callRes.result.log)
416
+ * @param options - Options
417
+ * @returns DecodedEvents
404
418
  */
405
419
 
406
420
 
@@ -416,7 +430,7 @@ export default async function getContractInstance() {
416
430
  try {
417
431
  contractName = getContractNameByEvent(event.address, topics[0], opt);
418
432
  } catch (error) {
419
- if (omitUnknown && error instanceof MissingEventDefinitionError) return null;
433
+ if ((omitUnknown !== null && omitUnknown !== void 0 ? omitUnknown : false) && error instanceof MissingEventDefinitionError) return null;
420
434
  throw error;
421
435
  }
422
436
 
@@ -430,38 +444,43 @@ export default async function getContractInstance() {
430
444
  address: event.address
431
445
  }
432
446
  };
433
- }).filter(e => e);
447
+ }).filter(e => e != null);
434
448
  };
435
449
  /**
436
450
  * Generate proto function based on contract function using Contract ACI schema
437
451
  * All function can be called like:
438
- * 'await contract.methods.testFunction()' -> then sdk will decide to use dry-run or send tx
452
+ * ```js
453
+ * await contract.methods.testFunction()
454
+ * ```
455
+ * then sdk will decide to use dry-run or send tx
439
456
  * on-chain base on if function stateful or not.
440
- * Also you can manually do that:
441
- * `await contract.methods.testFunction.get()` -> use call-static(dry-run)
442
- * `await contract.methods.testFunction.send()` -> send tx on-chain
457
+ * Also, you can manually do that:
458
+ * ```js
459
+ * await contract.methods.testFunction.get() // use call-static (dry-run)
460
+ * await contract.methods.testFunction.send() // send tx on-chain
461
+ * ```
443
462
  */
444
463
 
445
464
 
446
- instance.methods = Object.fromEntries(instance._aci.encoded_aci.contract.functions.map(_ref7 => {
465
+ instance.methods = Object.fromEntries(instance._aci.encodedAci.contract.functions.map(_ref8 => {
447
466
  let {
448
467
  name,
449
468
  arguments: aciArgs,
450
469
  stateful
451
- } = _ref7;
470
+ } = _ref8;
452
471
 
453
- const genHandler = callStatic => function () {
472
+ const genHandler = callStatic => async function () {
454
473
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
455
474
  args[_key] = arguments[_key];
456
475
  }
457
476
 
458
477
  const options = args.length === aciArgs.length + 1 ? args.pop() : {};
459
478
  if (typeof options !== 'object') throw new TypeError(`Options should be an object: ${options}`);
460
- if (name === 'init') return instance.deploy(args, {
479
+ if (name === 'init') return await instance.deploy(args, {
461
480
  callStatic,
462
481
  ...options
463
482
  });
464
- return instance.call(name, args, {
483
+ return await instance.call(name, args, {
465
484
  callStatic,
466
485
  ...options
467
486
  });