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

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 (565) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +12031 -11231
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.d.ts +7 -3
  9. package/es/AeSdk.mjs +17 -22
  10. package/es/AeSdk.mjs.map +1 -1
  11. package/es/AeSdkAepp.d.ts +6 -5
  12. package/es/AeSdkAepp.mjs +7 -30
  13. package/es/AeSdkAepp.mjs.map +1 -1
  14. package/es/AeSdkBase.d.ts +18 -140
  15. package/es/AeSdkBase.mjs +30 -184
  16. package/es/AeSdkBase.mjs.map +1 -1
  17. package/es/AeSdkMethods.d.ts +123 -0
  18. package/es/AeSdkMethods.mjs +122 -0
  19. package/es/AeSdkMethods.mjs.map +1 -0
  20. package/es/AeSdkWallet.d.ts +7 -21
  21. package/es/AeSdkWallet.mjs +38 -86
  22. package/es/AeSdkWallet.mjs.map +1 -1
  23. package/es/Node.d.ts +11 -15
  24. package/es/Node.mjs +35 -48
  25. package/es/Node.mjs.map +1 -1
  26. package/es/account/Base.d.ts +24 -40
  27. package/es/account/Base.mjs +1 -101
  28. package/es/account/Base.mjs.map +1 -1
  29. package/es/account/Generalized.d.ts +16 -0
  30. package/es/account/Generalized.mjs +113 -0
  31. package/es/account/Generalized.mjs.map +1 -0
  32. package/es/account/Ledger.d.ts +28 -0
  33. package/es/account/Ledger.mjs +102 -0
  34. package/es/account/Ledger.mjs.map +1 -0
  35. package/es/account/LedgerFactory.d.ts +39 -0
  36. package/es/account/LedgerFactory.mjs +81 -0
  37. package/es/account/LedgerFactory.mjs.map +1 -0
  38. package/es/account/Memory.d.ts +13 -17
  39. package/es/account/Memory.mjs +43 -64
  40. package/es/account/Memory.mjs.map +1 -1
  41. package/es/account/Rpc.d.ts +6 -8
  42. package/es/account/Rpc.mjs +14 -32
  43. package/es/account/Rpc.mjs.map +1 -1
  44. package/es/aens.d.ts +4 -4
  45. package/es/aens.mjs +46 -41
  46. package/es/aens.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  48. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  50. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +22 -11
  51. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  53. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  54. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  55. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  56. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  57. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -42
  58. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  60. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/schema.mjs +14 -68
  62. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  63. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  64. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  65. package/es/apis/compiler/compiler.d.ts +23 -29
  66. package/es/apis/compiler/compiler.mjs +128 -189
  67. package/es/apis/compiler/compiler.mjs.map +1 -1
  68. package/es/apis/compiler/index.mjs.map +1 -1
  69. package/es/apis/compiler/models/index.d.ts +82 -135
  70. package/es/apis/compiler/models/index.mjs +1 -47
  71. package/es/apis/compiler/models/index.mjs.map +1 -1
  72. package/es/apis/compiler/models/mappers.d.ts +8 -8
  73. package/es/apis/compiler/models/mappers.mjs +165 -183
  74. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  75. package/es/apis/compiler/models/parameters.d.ts +0 -1
  76. package/es/apis/compiler/models/parameters.mjs +5 -9
  77. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  78. package/es/apis/node/index.mjs.map +1 -1
  79. package/es/apis/node/models/index.d.ts +48 -48
  80. package/es/apis/node/models/mappers.mjs +12 -6
  81. package/es/apis/node/models/mappers.mjs.map +1 -1
  82. package/es/apis/node/models/parameters.mjs.map +1 -1
  83. package/es/apis/node/node.mjs +43 -84
  84. package/es/apis/node/node.mjs.map +1 -1
  85. package/es/chain.d.ts +10 -2
  86. package/es/chain.mjs +37 -59
  87. package/es/chain.mjs.map +1 -1
  88. package/es/channel/Base.d.ts +200 -0
  89. package/es/channel/Base.mjs +293 -0
  90. package/es/channel/Base.mjs.map +1 -0
  91. package/es/channel/Contract.d.ts +248 -0
  92. package/es/channel/Contract.mjs +420 -0
  93. package/es/channel/Contract.mjs.map +1 -0
  94. package/es/channel/Spend.d.ts +219 -0
  95. package/es/channel/Spend.mjs +385 -0
  96. package/es/channel/Spend.mjs.map +1 -0
  97. package/es/channel/handlers.d.ts +8 -21
  98. package/es/channel/handlers.mjs +151 -899
  99. package/es/channel/handlers.mjs.map +1 -1
  100. package/es/channel/internal.d.ts +27 -21
  101. package/es/channel/internal.mjs +101 -191
  102. package/es/channel/internal.mjs.map +1 -1
  103. package/es/contract/Contract.d.ts +210 -0
  104. package/es/contract/Contract.mjs +551 -0
  105. package/es/contract/Contract.mjs.map +1 -0
  106. package/es/contract/compiler/Base.d.ts +81 -0
  107. package/es/contract/compiler/Base.mjs +5 -0
  108. package/es/contract/compiler/Base.mjs.map +1 -0
  109. package/es/contract/compiler/Cli.d.ts +23 -0
  110. package/es/contract/compiler/Cli.mjs +155 -0
  111. package/es/contract/compiler/Cli.mjs.map +1 -0
  112. package/es/contract/compiler/Http.d.ts +32 -0
  113. package/es/contract/compiler/Http.mjs +118 -0
  114. package/es/contract/compiler/Http.mjs.map +1 -0
  115. package/es/contract/compiler/HttpNode.d.ts +17 -0
  116. package/es/contract/compiler/HttpNode.mjs +26 -0
  117. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  118. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  119. package/es/contract/compiler/getFileSystem.mjs +40 -0
  120. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  121. package/es/contract/ga.d.ts +9 -34
  122. package/es/contract/ga.mjs +29 -112
  123. package/es/contract/ga.mjs.map +1 -1
  124. package/es/index-browser.d.ts +39 -0
  125. package/es/index-browser.mjs +55 -0
  126. package/es/index-browser.mjs.map +1 -0
  127. package/es/index.d.ts +4 -35
  128. package/es/index.mjs +4 -51
  129. package/es/index.mjs.map +1 -1
  130. package/es/oracle.d.ts +5 -5
  131. package/es/oracle.mjs +34 -40
  132. package/es/oracle.mjs.map +1 -1
  133. package/es/spend.d.ts +3 -3
  134. package/es/spend.mjs +18 -23
  135. package/es/spend.mjs.map +1 -1
  136. package/es/tx/builder/constants.d.ts +30 -2
  137. package/es/tx/builder/constants.mjs +43 -14
  138. package/es/tx/builder/constants.mjs.map +1 -1
  139. package/es/tx/builder/field-types/abi-version.d.ts +10 -0
  140. package/es/tx/builder/field-types/abi-version.mjs +20 -0
  141. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  142. package/es/tx/builder/field-types/address.d.ts +14 -0
  143. package/es/tx/builder/field-types/address.mjs +51 -0
  144. package/es/tx/builder/field-types/address.mjs.map +1 -0
  145. package/es/tx/builder/field-types/array.d.ts +7 -0
  146. package/es/tx/builder/field-types/array.mjs +11 -0
  147. package/es/tx/builder/field-types/array.mjs.map +1 -0
  148. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  149. package/es/tx/builder/field-types/boolean.mjs +13 -0
  150. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  151. package/es/tx/builder/field-types/coin-amount.d.ts +2 -3
  152. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  153. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  154. package/es/tx/builder/field-types/ct-version.d.ts +30 -0
  155. package/es/tx/builder/field-types/ct-version.mjs +48 -0
  156. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  157. package/es/tx/builder/field-types/deposit.d.ts +1 -2
  158. package/es/tx/builder/field-types/deposit.mjs +2 -4
  159. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  160. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  161. package/es/tx/builder/field-types/encoded.mjs +21 -0
  162. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  163. package/es/tx/builder/field-types/entry.d.ts +11 -0
  164. package/es/tx/builder/field-types/entry.mjs +31 -0
  165. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  166. package/es/tx/builder/field-types/enumeration.d.ts +7 -0
  167. package/es/tx/builder/field-types/enumeration.mjs +30 -0
  168. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  169. package/es/tx/builder/field-types/fee.d.ts +10 -15
  170. package/es/tx/builder/field-types/fee.mjs +31 -43
  171. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  172. package/es/tx/builder/field-types/field.mjs +0 -2
  173. package/es/tx/builder/field-types/field.mjs.map +1 -1
  174. package/es/tx/builder/field-types/gas-limit.d.ts +5 -2
  175. package/es/tx/builder/field-types/gas-limit.mjs +12 -14
  176. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  177. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  178. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  179. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  180. package/es/tx/builder/field-types/index.d.ts +80 -30
  181. package/es/tx/builder/field-types/index.mjs +34 -9
  182. package/es/tx/builder/field-types/index.mjs.map +1 -1
  183. package/es/tx/builder/field-types/mptree.d.ts +37 -0
  184. package/es/tx/builder/field-types/mptree.mjs +268 -0
  185. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  186. package/es/tx/builder/field-types/name-fee.d.ts +1 -3
  187. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  188. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  189. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  190. package/es/tx/builder/field-types/name-id.mjs +5 -10
  191. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  192. package/es/tx/builder/field-types/name.mjs +0 -2
  193. package/es/tx/builder/field-types/name.mjs.map +1 -1
  194. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  195. package/es/tx/builder/field-types/pointers.mjs +36 -0
  196. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  197. package/es/tx/builder/field-types/raw.d.ts +6 -0
  198. package/es/tx/builder/field-types/raw.mjs +13 -0
  199. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  200. package/es/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  201. package/es/tx/builder/field-types/short-u-int-const.mjs +16 -0
  202. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  203. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  204. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  205. package/es/tx/builder/field-types/string.d.ts +6 -0
  206. package/es/tx/builder/field-types/string.mjs +10 -0
  207. package/es/tx/builder/field-types/string.mjs.map +1 -0
  208. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  209. package/es/tx/builder/field-types/u-int.mjs +3 -4
  210. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  211. package/es/tx/builder/helpers.d.ts +2 -32
  212. package/es/tx/builder/helpers.mjs +19 -71
  213. package/es/tx/builder/helpers.mjs.map +1 -1
  214. package/es/tx/builder/index.d.ts +11 -49
  215. package/es/tx/builder/index.mjs +57 -337
  216. package/es/tx/builder/index.mjs.map +1 -1
  217. package/es/tx/builder/schema.d.ts +2367 -667
  218. package/es/tx/builder/schema.mjs +70 -145
  219. package/es/tx/builder/schema.mjs.map +1 -1
  220. package/es/tx/index.d.ts +4 -49
  221. package/es/tx/index.mjs +38 -112
  222. package/es/tx/index.mjs.map +1 -1
  223. package/es/tx/validator.d.ts +4 -6
  224. package/es/tx/validator.mjs +104 -90
  225. package/es/tx/validator.mjs.map +1 -1
  226. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  227. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  228. package/es/utils/amount-formatter.mjs +4 -10
  229. package/es/utils/amount-formatter.mjs.map +1 -1
  230. package/es/utils/autorest.d.ts +1 -0
  231. package/es/utils/autorest.mjs +17 -19
  232. package/es/utils/autorest.mjs.map +1 -1
  233. package/es/utils/bignumber.mjs +4 -7
  234. package/es/utils/bignumber.mjs.map +1 -1
  235. package/es/utils/bytes.d.ts +0 -17
  236. package/es/utils/bytes.mjs +6 -35
  237. package/es/utils/bytes.mjs.map +1 -1
  238. package/es/utils/crypto.d.ts +15 -8
  239. package/es/utils/crypto.mjs +40 -40
  240. package/es/utils/crypto.mjs.map +1 -1
  241. package/es/utils/encoder-types.d.ts +28 -28
  242. package/es/utils/encoder-types.mjs +0 -1
  243. package/es/utils/encoder-types.mjs.map +1 -1
  244. package/es/utils/encoder.d.ts +0 -1
  245. package/es/utils/encoder.mjs +7 -15
  246. package/es/utils/encoder.mjs.map +1 -1
  247. package/es/utils/errors.d.ts +15 -14
  248. package/es/utils/errors.mjs +86 -172
  249. package/es/utils/errors.mjs.map +1 -1
  250. package/es/utils/hd-wallet.d.ts +27 -19
  251. package/es/utils/hd-wallet.mjs +42 -26
  252. package/es/utils/hd-wallet.mjs.map +1 -1
  253. package/es/utils/json-big.mjs +0 -8
  254. package/es/utils/json-big.mjs.map +1 -1
  255. package/es/utils/keystore.d.ts +2 -0
  256. package/es/utils/keystore.mjs +37 -36
  257. package/es/utils/keystore.mjs.map +1 -1
  258. package/es/utils/other.d.ts +4 -2
  259. package/es/utils/other.mjs +11 -7
  260. package/es/utils/other.mjs.map +1 -1
  261. package/es/utils/semver-satisfies.mjs +0 -3
  262. package/es/utils/semver-satisfies.mjs.map +1 -1
  263. package/es/utils/string.d.ts +0 -12
  264. package/es/utils/string.mjs +1 -21
  265. package/es/utils/string.mjs.map +1 -1
  266. package/package.json +98 -51
  267. package/src/AeSdk.ts +15 -11
  268. package/src/AeSdkAepp.ts +9 -7
  269. package/src/AeSdkBase.ts +31 -202
  270. package/src/AeSdkMethods.ts +169 -0
  271. package/src/AeSdkWallet.ts +16 -47
  272. package/src/Node.ts +17 -18
  273. package/src/account/Base.ts +29 -75
  274. package/src/account/Generalized.ts +98 -0
  275. package/src/account/Ledger.ts +131 -0
  276. package/src/account/LedgerFactory.ts +86 -0
  277. package/src/account/Memory.ts +46 -60
  278. package/src/account/Rpc.ts +17 -26
  279. package/src/aens.ts +13 -11
  280. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +21 -9
  281. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  282. package/src/aepp-wallet-communication/rpc/RpcClient.ts +4 -4
  283. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  284. package/src/aepp-wallet-communication/schema.ts +18 -18
  285. package/src/apis/compiler/code-model-v4.yaml +681 -888
  286. package/src/apis/compiler/compiler.ts +113 -154
  287. package/src/apis/compiler/models/index.ts +80 -140
  288. package/src/apis/compiler/models/mappers.ts +165 -183
  289. package/src/apis/compiler/models/parameters.ts +6 -12
  290. package/src/chain.ts +11 -6
  291. package/src/channel/Base.ts +335 -0
  292. package/src/channel/Contract.ts +488 -0
  293. package/src/channel/Spend.ts +408 -0
  294. package/src/channel/handlers.ts +164 -582
  295. package/src/channel/internal.ts +114 -143
  296. package/src/contract/Contract.ts +610 -0
  297. package/src/contract/compiler/Base.ts +94 -0
  298. package/src/contract/compiler/Cli.ts +134 -0
  299. package/src/contract/compiler/Http.ts +124 -0
  300. package/src/contract/compiler/HttpNode.ts +26 -0
  301. package/src/contract/compiler/getFileSystem.ts +42 -0
  302. package/src/contract/ga.ts +23 -106
  303. package/src/index-browser.ts +58 -0
  304. package/src/index.ts +4 -55
  305. package/src/oracle.ts +8 -8
  306. package/src/spend.ts +6 -14
  307. package/src/tx/builder/constants.ts +33 -3
  308. package/src/tx/builder/field-types/abi-version.ts +21 -0
  309. package/src/tx/builder/field-types/address.ts +62 -0
  310. package/src/tx/builder/field-types/array.ts +19 -0
  311. package/src/tx/builder/field-types/boolean.ts +9 -0
  312. package/src/tx/builder/field-types/coin-amount.ts +4 -9
  313. package/src/tx/builder/field-types/ct-version.ts +50 -0
  314. package/src/tx/builder/field-types/deposit.ts +1 -1
  315. package/src/tx/builder/field-types/encoded.ts +27 -0
  316. package/src/tx/builder/field-types/entry.ts +31 -0
  317. package/src/tx/builder/field-types/enumeration.ts +32 -0
  318. package/src/tx/builder/field-types/fee.ts +39 -21
  319. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  320. package/src/tx/builder/field-types/gas-price.ts +0 -2
  321. package/src/tx/builder/field-types/index.ts +54 -15
  322. package/src/tx/builder/field-types/mptree.ts +242 -0
  323. package/src/tx/builder/field-types/name-fee.ts +2 -3
  324. package/src/tx/builder/field-types/name-id.ts +7 -10
  325. package/src/tx/builder/field-types/pointers.ts +41 -0
  326. package/src/tx/builder/field-types/raw.ts +9 -0
  327. package/src/tx/builder/field-types/short-u-int-const.ts +20 -0
  328. package/src/tx/builder/field-types/string.ts +11 -0
  329. package/src/tx/builder/field-types/u-int.ts +4 -5
  330. package/src/tx/builder/helpers.ts +10 -60
  331. package/src/tx/builder/index.ts +65 -308
  332. package/src/tx/builder/schema.ts +280 -341
  333. package/src/tx/index.ts +40 -103
  334. package/src/tx/validator.ts +91 -96
  335. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  336. package/src/utils/autorest.ts +16 -1
  337. package/src/utils/bytes.ts +6 -34
  338. package/src/utils/crypto.ts +23 -16
  339. package/src/utils/encoder.ts +0 -1
  340. package/src/utils/errors.ts +22 -25
  341. package/src/utils/hd-wallet.ts +30 -9
  342. package/src/utils/keystore.ts +24 -21
  343. package/src/utils/other.ts +16 -1
  344. package/src/utils/string.ts +0 -20
  345. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  346. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  347. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  348. package/types-legacy/ts4.2/AeSdkMethods.d.ts +140 -0
  349. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  350. package/types-legacy/ts4.2/Node.d.ts +78 -0
  351. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  352. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  353. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  354. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  355. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  356. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  357. package/types-legacy/ts4.2/aens.d.ts +222 -0
  358. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  359. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  360. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  361. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  362. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  363. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  364. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  365. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  366. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  367. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  368. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  369. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  370. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  371. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  372. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  373. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  374. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  375. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  376. package/types-legacy/ts4.2/chain.d.ts +256 -0
  377. package/types-legacy/ts4.2/channel/Base.d.ts +199 -0
  378. package/types-legacy/ts4.2/channel/Contract.d.ts +248 -0
  379. package/types-legacy/ts4.2/channel/Spend.d.ts +219 -0
  380. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  381. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  382. package/types-legacy/ts4.2/contract/Contract.d.ts +212 -0
  383. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +81 -0
  384. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  385. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  386. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  387. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  388. package/types-legacy/ts4.2/contract/ga.d.ts +44 -0
  389. package/types-legacy/ts4.2/globals.d.ts +16 -0
  390. package/types-legacy/ts4.2/index-browser.d.ts +39 -0
  391. package/types-legacy/ts4.2/index.d.ts +5 -0
  392. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  393. package/types-legacy/ts4.2/spend.d.ts +62 -0
  394. package/types-legacy/ts4.2/tx/builder/constants.d.ts +98 -0
  395. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +10 -0
  396. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +21 -0
  397. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  398. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  399. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  400. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +42 -0
  401. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  402. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  403. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  404. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +7 -0
  405. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +20 -0
  406. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  407. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +15 -0
  408. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  409. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +129 -0
  410. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +43 -0
  411. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +18 -0
  412. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  413. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  414. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  415. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  416. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  417. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  418. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  419. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +7 -0
  420. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  421. package/types-legacy/ts4.2/tx/builder/index.d.ts +50 -0
  422. package/types-legacy/ts4.2/tx/builder/schema.d.ts +4675 -0
  423. package/types-legacy/ts4.2/tx/index.d.ts +19 -0
  424. package/types-legacy/ts4.2/tx/validator.d.ts +18 -0
  425. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  426. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  427. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  428. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  429. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  430. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  431. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  432. package/types-legacy/ts4.2/utils/errors.d.ts +475 -0
  433. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  434. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  435. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  436. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  437. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  438. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  439. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  440. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  441. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  442. package/types-legacy/ts4.5/AeSdkMethods.d.ts +140 -0
  443. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  444. package/types-legacy/ts4.5/Node.d.ts +78 -0
  445. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  446. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  447. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  448. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  449. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  450. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  451. package/types-legacy/ts4.5/aens.d.ts +222 -0
  452. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  453. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  454. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  455. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  456. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  457. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  458. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  459. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  460. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  461. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  462. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  463. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  464. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  465. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  466. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  467. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  468. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  469. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  470. package/types-legacy/ts4.5/chain.d.ts +256 -0
  471. package/types-legacy/ts4.5/channel/Base.d.ts +199 -0
  472. package/types-legacy/ts4.5/channel/Contract.d.ts +248 -0
  473. package/types-legacy/ts4.5/channel/Spend.d.ts +219 -0
  474. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  475. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  476. package/types-legacy/ts4.5/contract/Contract.d.ts +212 -0
  477. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +81 -0
  478. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  479. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  480. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  481. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  482. package/types-legacy/ts4.5/contract/ga.d.ts +44 -0
  483. package/types-legacy/ts4.5/index-browser.d.ts +39 -0
  484. package/types-legacy/ts4.5/index.d.ts +4 -0
  485. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  486. package/types-legacy/ts4.5/spend.d.ts +62 -0
  487. package/types-legacy/ts4.5/tx/builder/constants.d.ts +98 -0
  488. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +10 -0
  489. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +21 -0
  490. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  491. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  492. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  493. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +42 -0
  494. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  495. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  496. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  497. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +7 -0
  498. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +20 -0
  499. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  500. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +15 -0
  501. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  502. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +129 -0
  503. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +43 -0
  504. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +18 -0
  505. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  506. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  507. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  508. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  509. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  510. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  511. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  512. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +7 -0
  513. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  514. package/types-legacy/ts4.5/tx/builder/index.d.ts +50 -0
  515. package/types-legacy/ts4.5/tx/builder/schema.d.ts +4675 -0
  516. package/types-legacy/ts4.5/tx/index.d.ts +19 -0
  517. package/types-legacy/ts4.5/tx/validator.d.ts +18 -0
  518. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  519. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  520. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  521. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  522. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  523. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  524. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  525. package/types-legacy/ts4.5/utils/errors.d.ts +475 -0
  526. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  527. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  528. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  529. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  530. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  531. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  532. package/es/channel/index.d.ts +0 -625
  533. package/es/channel/index.mjs +0 -975
  534. package/es/channel/index.mjs.map +0 -1
  535. package/es/contract/Compiler.d.ts +0 -18
  536. package/es/contract/Compiler.mjs +0 -68
  537. package/es/contract/Compiler.mjs.map +0 -1
  538. package/es/contract/aci.d.ts +0 -127
  539. package/es/contract/aci.mjs +0 -508
  540. package/es/contract/aci.mjs.map +0 -1
  541. package/es/contract/methods.d.ts +0 -71
  542. package/es/contract/methods.mjs +0 -104
  543. package/es/contract/methods.mjs.map +0 -1
  544. package/es/deprecated/index.d.ts +0 -143
  545. package/es/deprecated/index.mjs +0 -162
  546. package/es/deprecated/index.mjs.map +0 -1
  547. package/es/deprecated/methods.d.ts +0 -18
  548. package/es/deprecated/methods.mjs +0 -26
  549. package/es/deprecated/methods.mjs.map +0 -1
  550. package/es/tx/builder/address.d.ts +0 -25
  551. package/es/tx/builder/address.mjs +0 -45
  552. package/es/tx/builder/address.mjs.map +0 -1
  553. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  554. package/es/utils/mptree.d.ts +0 -26
  555. package/es/utils/mptree.mjs +0 -165
  556. package/es/utils/mptree.mjs.map +0 -1
  557. package/src/channel/index.ts +0 -1025
  558. package/src/contract/Compiler.ts +0 -67
  559. package/src/contract/aci.ts +0 -537
  560. package/src/contract/methods.ts +0 -123
  561. package/src/deprecated/index.ts +0 -172
  562. package/src/deprecated/methods.ts +0 -25
  563. package/src/tx/builder/address.ts +0 -50
  564. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
  565. package/src/utils/mptree.ts +0 -145
package/src/tx/index.ts CHANGED
@@ -22,114 +22,37 @@
22
22
  * the creation of transactions to {@link Node}.
23
23
  * These methods provide ability to create native transactions.
24
24
  */
25
- import BigNumber from 'bignumber.js';
26
- import {
27
- ABI_VERSIONS, CtVersion, PROTOCOL_VM_ABI, TX_TTL, TxParamsCommon,
28
- } from './builder/schema';
29
- import { Tag } from './builder/constants';
30
- import {
31
- ArgumentError, UnsupportedProtocolError, UnknownTxError, InvalidTxParamsError,
32
- } from '../utils/errors';
25
+ import { TX_TTL, TxParamsCommon } from './builder/schema';
26
+ import { ConsensusProtocolVersion, Tag } from './builder/constants';
27
+ import { ArgumentError, InvalidTxParamsError } from '../utils/errors';
33
28
  import Node from '../Node';
34
29
  import { Encoded } from '../utils/encoder';
35
30
  import { buildTx as syncBuildTx, unpackTx } from './builder/index';
36
- import { isKeyOfObject } from '../utils/other';
31
+ import { isAccountNotFoundError } from '../utils/other';
37
32
  import { AE_AMOUNT_FORMATS } from '../utils/amount-formatter';
38
33
 
39
- type Int = number | string | BigNumber;
40
-
41
34
  export type BuildTxOptions <TxType extends Tag, OmitFields extends string> =
42
35
  Omit<Parameters<typeof _buildTx<TxType>>[1], OmitFields>;
43
36
 
44
- /**
45
- * Validated vm/abi version or get default based on transaction type and NODE version
46
- * @category transaction builder
47
- * @param txType - Type of transaction
48
- * @param ctVersion - Object with vm and abi version fields
49
- * @returns Object with vm/abi version
50
- */
51
- export async function getVmVersion(
52
- txType: Tag.ContractCreateTx, ctVersion: Partial<CtVersion> & { onNode: Node }
53
- ): Promise<CtVersion>;
54
- export async function getVmVersion(
55
- txType: Tag, ctVersion: Partial<Pick<CtVersion, 'abiVersion'>> & { onNode: Node }
56
- ): Promise<Pick<CtVersion, 'abiVersion'>>;
57
- export async function getVmVersion(
58
- txType: Tag,
59
- { vmVersion, abiVersion, onNode }: Partial<CtVersion> & { onNode: Node },
60
- ): Promise<Partial<CtVersion>> {
61
- const { consensusProtocolVersion } = await onNode.getNodeInfo();
62
- if (!isKeyOfObject(consensusProtocolVersion, PROTOCOL_VM_ABI)) {
63
- throw new UnsupportedProtocolError('Not supported consensus protocol version');
64
- }
65
- const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion];
66
- if (!isKeyOfObject(txType, supportedProtocol)) {
67
- throw new UnknownTxError('Not supported tx type');
68
- }
69
- const protocolForTX = supportedProtocol[txType];
70
- abiVersion ??= protocolForTX.abiVersion[0];
71
- vmVersion ??= protocolForTX.vmVersion[0];
72
- return { vmVersion, abiVersion };
73
- }
74
-
75
- /**
76
- * Calculate fee, get absolute ttl (ttl + height), get account nonce
77
- * @category transaction builder
78
- * @param txType - Type of transaction
79
- * @param params - Object which contains all tx data
80
- * @returns Object with account nonce, absolute ttl and transaction fee
81
- */
82
- export async function prepareTxParams(
83
- txType: Tag,
84
- {
85
- senderId,
86
- nonce,
87
- ttl = TX_TTL,
88
- absoluteTtl,
89
- strategy,
90
- onNode,
91
- }: PrepareTxParamsOptions,
92
- ): Promise<{ ttl: number; nonce: number }> {
93
- nonce ??= (
94
- await onNode.getAccountNextNonce(senderId, { strategy }).catch(() => ({ nextNonce: 1 }))
95
- ).nextNonce;
96
-
97
- if (ttl !== 0) {
98
- if (ttl < 0) throw new ArgumentError('ttl', 'greater or equal to 0', ttl);
99
- ttl += absoluteTtl === true ? 0 : (await onNode.getCurrentKeyBlock()).height;
100
- }
101
-
102
- return { ttl, nonce };
103
- }
104
-
105
- interface PrepareTxParamsOptions extends Pick<TxParamsCommon, 'nonce' | 'ttl'> {
106
- senderId: Encoded.AccountAddress;
107
- absoluteTtl?: boolean;
108
- strategy?: 'continuity' | 'max';
109
- onNode: Node;
110
- }
111
-
112
37
  // TODO: find a better name or rearrange methods
113
38
  /**
114
39
  * @category transaction builder
115
40
  */
116
41
  export async function _buildTx<TxType extends Tag>(
117
42
  txType: TxType,
118
- { denomination, absoluteTtl, ..._params }:
119
- Omit<Parameters<typeof syncBuildTx<TxType, 'tx'>>[0], 'fee' | 'nonce' | 'ttl' | 'ctVersion' | 'abiVersion'>
43
+ {
44
+ denomination, absoluteTtl, strategy, onNode, ..._params
45
+ }: Omit<Parameters<typeof syncBuildTx<TxType>>[0], 'tag' | 'nonce' | 'ttl'>
120
46
  & {
121
- onNode: Node;
122
- fee?: Int;
123
- nonce?: number;
124
- ttl?: number;
125
47
  denomination?: AE_AMOUNT_FORMATS;
126
48
  absoluteTtl?: boolean;
49
+ strategy?: 'continuity' | 'max';
50
+ onNode: Node;
51
+ ttl?: number;
52
+ nonce?: number;
127
53
  }
128
54
  & (TxType extends Tag.OracleExtendTx | Tag.OracleResponseTx
129
- ? { callerId: Encoded.AccountAddress } : {})
130
- & (TxType extends Tag.ContractCreateTx | Tag.GaAttachTx ? { ctVersion?: CtVersion } : {})
131
- & (TxType extends Tag.ContractCallTx | Tag.OracleRegisterTx
132
- ? { abiVersion?: ABI_VERSIONS } : {}),
55
+ ? { callerId: Encoded.AccountAddress } : {}),
133
56
  ): Promise<Encoded.Transaction> {
134
57
  // TODO: avoid this assertion
135
58
  const params = _params as unknown as TxParamsCommon & { onNode: Node };
@@ -151,6 +74,9 @@ export async function _buildTx<TxType extends Tag>(
151
74
  case Tag.GaAttachTx:
152
75
  senderKey = 'ownerId';
153
76
  break;
77
+ case Tag.GaMetaTx:
78
+ senderKey = 'gaId';
79
+ break;
154
80
  case Tag.ContractCallTx:
155
81
  case Tag.OracleExtendTx:
156
82
  case Tag.OracleResponseTx:
@@ -168,25 +94,36 @@ export async function _buildTx<TxType extends Tag>(
168
94
  default:
169
95
  throw new ArgumentError('txType', 'valid transaction type', txType);
170
96
  }
171
- // TODO: move specific cases to field-types
172
- if ([Tag.ContractCreateTx, Tag.GaAttachTx].includes(txType)) {
173
- params.ctVersion = await getVmVersion(
174
- Tag.ContractCreateTx,
175
- { ...params, ...params.ctVersion },
176
- );
177
- }
178
- if (txType === Tag.ContractCallTx) {
179
- params.abiVersion = (await getVmVersion(Tag.ContractCallTx, params)).abiVersion;
180
- }
181
- if (txType === Tag.OracleRegisterTx) {
182
- params.abiVersion ??= ABI_VERSIONS.NO_ABI;
97
+
98
+ if (
99
+ Object.keys(ConsensusProtocolVersion).length !== 2
100
+ && (((Tag.ContractCreateTx === txType || Tag.GaAttachTx === txType) && params.ctVersion == null)
101
+ || ((Tag.ContractCallTx === txType || Tag.GaMetaTx === txType) && params.abiVersion == null))
102
+ ) {
103
+ const { consensusProtocolVersion } = await onNode.getNodeInfo();
104
+ // @ts-expect-error remove after fixing buildTx types
105
+ params.consensusProtocolVersion = consensusProtocolVersion;
183
106
  }
107
+
184
108
  if (txType === Tag.PayingForTx) {
185
109
  params.tx = unpackTx(params.tx);
186
110
  }
187
111
  const senderId = params[senderKey];
188
112
  // TODO: do this check on TypeScript level
189
113
  if (senderId == null) throw new InvalidTxParamsError(`Transaction field ${senderKey} is missed`);
190
- const extraParams = await prepareTxParams(txType, { ...params, senderId, absoluteTtl });
191
- return syncBuildTx({ ...params, ...extraParams } as any, txType, { denomination }).tx;
114
+
115
+ params.nonce ??= (
116
+ await onNode.getAccountNextNonce(senderId, { strategy }).catch((error) => {
117
+ if (!isAccountNotFoundError(error)) throw error;
118
+ return { nextNonce: 1 };
119
+ })
120
+ ).nextNonce;
121
+
122
+ params.ttl ??= TX_TTL;
123
+ if (params.ttl !== 0) {
124
+ if (params.ttl < 0) throw new ArgumentError('ttl', 'greater or equal to 0', params.ttl);
125
+ params.ttl += absoluteTtl === true ? 0 : (await onNode.getCurrentKeyBlock()).height;
126
+ }
127
+
128
+ return syncBuildTx({ ...params, tag: txType } as any, { denomination });
192
129
  }
@@ -1,27 +1,14 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { hash, verify } from '../utils/crypto';
3
- import {
4
- CtVersion,
5
- PROTOCOL_VM_ABI,
6
- RawTxObject,
7
- TxParamsCommon,
8
- TxSchema,
9
- TxTypeSchemas,
10
- } from './builder/schema';
11
- import { Tag } from './builder/constants';
12
- import { TxUnpacked, unpackTx } from './builder';
13
- import { UnsupportedProtocolError } from '../utils/errors';
14
- import { concatBuffers, isKeyOfObject } from '../utils/other';
15
- import {
16
- decode, encode, Encoded, Encoding,
17
- } from '../utils/encoder';
18
- import Node from '../Node';
19
-
20
- interface Account {
21
- balance: bigint;
22
- id: Encoded.AccountAddress;
23
- nonce: number;
24
- }
3
+ import { RawTxObject, TxParamsCommon, TxSchema } from './builder/schema';
4
+ import { ProtocolToVmAbi } from './builder/field-types/ct-version';
5
+ import { Tag, ConsensusProtocolVersion } from './builder/constants';
6
+ import { buildTx, unpackTx } from './builder';
7
+ import { concatBuffers, isAccountNotFoundError } from '../utils/other';
8
+ import { Encoded, decode } from '../utils/encoder';
9
+ import Node, { TransformNodeType } from '../Node';
10
+ import { Account } from '../apis/node';
11
+ import { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest';
25
12
 
26
13
  export interface ValidatorResult {
27
14
  message: string;
@@ -29,30 +16,18 @@ export interface ValidatorResult {
29
16
  checkedKeys: string[];
30
17
  }
31
18
 
19
+ type UnpackedTx = ReturnType<typeof unpackTx>['tx'];
20
+
32
21
  type Validator = (
33
- tx: {
34
- encodedTx: TxUnpacked<TxSchema>;
35
- signatures: Buffer[];
36
- tx: TxUnpacked<TxSchema> & {
37
- tx: TxTypeSchemas[Tag.SignedTx];
38
- };
39
- nonce?: number;
40
- ttl?: number;
41
- amount?: number;
42
- fee?: number;
43
- nameFee?: number;
44
- ctVersion?: Partial<CtVersion>;
45
- abiVersion?: number;
46
- contractId?: Encoded.ContractAddress;
47
- },
22
+ tx: UnpackedTx,
48
23
  options: {
49
- account?: Account;
24
+ // TODO: remove after fixing node types
25
+ account?: TransformNodeType<Account> & { id: Encoded.AccountAddress };
50
26
  nodeNetworkId: string;
51
27
  parentTxTypes: Tag[];
52
28
  node: Node;
53
- txType: Tag;
54
29
  height: number;
55
- consensusProtocolVersion: number;
30
+ consensusProtocolVersion: ConsensusProtocolVersion;
56
31
  }
57
32
  ) => ValidatorResult[] | Promise<ValidatorResult[]>;
58
33
 
@@ -68,30 +43,21 @@ const getSenderAddress = (
68
43
  .filter((a) => a)
69
44
  .map((a) => a?.toString().replace(/^ok_/, 'ak_'))[0] as Encoded.AccountAddress | undefined;
70
45
 
71
- /**
72
- * Transaction Validator
73
- * This function validates some of transaction properties,
74
- * to make sure it can be posted it to the chain
75
- * @category transaction builder
76
- * @param transaction - Base64Check-encoded transaction
77
- * @param node - Node to validate transaction against
78
- * @param parentTxTypes - Types of parent transactions
79
- * @returns Array with verification errors
80
- * @example const errors = await verifyTransaction(transaction, node)
81
- */
82
- export default async function verifyTransaction(
83
- transaction: Encoded.Transaction | Encoded.Poi,
46
+ async function verifyTransactionInternal(
47
+ tx: UnpackedTx,
84
48
  node: Node,
85
- parentTxTypes: Tag[] = [],
49
+ parentTxTypes: Tag[],
86
50
  ): Promise<ValidatorResult[]> {
87
- const { tx, txType } = unpackTx<Tag.SignedTx>(transaction);
88
51
  const address = getSenderAddress(tx)
89
- ?? (txType === Tag.SignedTx ? getSenderAddress(tx.encodedTx.tx) : undefined);
52
+ ?? (tx.tag === Tag.SignedTx ? getSenderAddress(tx.encodedTx) : undefined);
90
53
  const [account, { height }, { consensusProtocolVersion, nodeNetworkId }] = await Promise.all([
91
54
  address == null
92
55
  ? undefined
93
56
  : node.getAccountByPubkey(address)
94
- .catch(() => ({ id: address, balance: 0n, nonce: 0 }))
57
+ .catch((error) => {
58
+ if (!isAccountNotFoundError(error)) throw error;
59
+ return { id: address, balance: 0n, nonce: 0 };
60
+ })
95
61
  // TODO: remove after fixing https://github.com/aeternity/aepp-sdk-js/issues/1537
96
62
  .then((acc) => ({ ...acc, id: acc.id as Encoded.AccountAddress })),
97
63
  node.getCurrentKeyBlockHeight(),
@@ -100,28 +66,47 @@ export default async function verifyTransaction(
100
66
 
101
67
  return (await Promise.all(
102
68
  validators.map((v) => v(
103
- tx as any,
69
+ tx,
104
70
  {
105
- txType, node, account, height, consensusProtocolVersion, nodeNetworkId, parentTxTypes,
71
+ node, account, height, consensusProtocolVersion, nodeNetworkId, parentTxTypes,
106
72
  },
107
73
  )),
108
74
  )).flat();
109
75
  }
110
76
 
77
+ /**
78
+ * Transaction Validator
79
+ * This function validates some transaction properties,
80
+ * to make sure it can be posted it to the chain
81
+ * @category transaction builder
82
+ * @param transaction - Base64Check-encoded transaction
83
+ * @param nodeNotCached - Node to validate transaction against
84
+ * @returns Array with verification errors
85
+ * @example const errors = await verifyTransaction(transaction, node)
86
+ */
87
+ export default async function verifyTransaction(
88
+ transaction: Parameters<typeof unpackTx>[0],
89
+ nodeNotCached: Node,
90
+ ): Promise<ValidatorResult[]> {
91
+ const node = new Node(nodeNotCached.$host, { ignoreVersion: true });
92
+ node.pipeline.addPolicy(genAggressiveCacheGetResponsesPolicy());
93
+ return verifyTransactionInternal(unpackTx(transaction), node, []);
94
+ }
95
+
111
96
  validators.push(
112
97
  ({ encodedTx, signatures }, { account, nodeNetworkId, parentTxTypes }) => {
113
- if ((encodedTx ?? signatures) === undefined) return [];
98
+ if ((encodedTx ?? signatures) == null) return [];
114
99
  if (account == null) return [];
115
- if (signatures.length !== 1) return []; // TODO: Support multisignature?
100
+ if (signatures.length !== 1) return []; // TODO: Support multisignature like in state channels
116
101
  const prefix = Buffer.from([
117
102
  nodeNetworkId,
118
103
  ...parentTxTypes.includes(Tag.PayingForTx) ? ['inner_tx'] : [],
119
104
  ].join('-'));
120
- const txWithNetworkId = concatBuffers([prefix, encodedTx.rlpEncoded]);
121
- const txHashWithNetworkId = concatBuffers([prefix, hash(encodedTx.rlpEncoded)]);
122
- const decodedPub = decode(account.id);
123
- if (verify(txWithNetworkId, signatures[0], decodedPub)
124
- || verify(txHashWithNetworkId, signatures[0], decodedPub)) return [];
105
+ const txBinary = decode(buildTx(encodedTx));
106
+ const txWithNetworkId = concatBuffers([prefix, txBinary]);
107
+ const txHashWithNetworkId = concatBuffers([prefix, hash(txBinary)]);
108
+ if (verify(txWithNetworkId, signatures[0], account.id)
109
+ || verify(txHashWithNetworkId, signatures[0], account.id)) return [];
125
110
  return [{
126
111
  message: 'Signature cannot be verified, please ensure that you transaction have'
127
112
  + ' the correct prefix and the correct private key for the sender address',
@@ -129,16 +114,12 @@ validators.push(
129
114
  checkedKeys: ['encodedTx', 'signatures'],
130
115
  }];
131
116
  },
132
- async ({ encodedTx, tx }, { node, parentTxTypes, txType }) => {
133
- if ((encodedTx ?? tx) === undefined) return [];
134
- return verifyTransaction(
135
- encode((encodedTx ?? tx).rlpEncoded, Encoding.Transaction),
136
- node,
137
- [...parentTxTypes, txType],
138
- );
117
+ async ({ encodedTx, tx, tag }, { node, parentTxTypes }) => {
118
+ if ((encodedTx ?? tx) == null) return [];
119
+ return verifyTransactionInternal(encodedTx ?? tx, node, [...parentTxTypes, tag]);
139
120
  },
140
121
  ({ ttl }, { height }) => {
141
- if (ttl === undefined) return [];
122
+ if (ttl == null) return [];
142
123
  ttl = +ttl;
143
124
  if (ttl === 0 || ttl >= height) return [];
144
125
  return [{
@@ -148,13 +129,13 @@ validators.push(
148
129
  }];
149
130
  },
150
131
  ({
151
- amount, fee, nameFee, tx,
152
- }, { account, parentTxTypes, txType }) => {
132
+ amount, fee, nameFee, tx, tag,
133
+ }, { account, parentTxTypes }) => {
153
134
  if (account == null) return [];
154
- if ((amount ?? fee ?? nameFee) === undefined) return [];
135
+ if ((amount ?? fee ?? nameFee) == null) return [];
155
136
  fee ??= 0;
156
137
  const cost = new BigNumber(fee).plus(nameFee ?? 0).plus(amount ?? 0)
157
- .plus(txType === Tag.PayingForTx ? (tx.tx.encodedTx.tx).fee : 0)
138
+ .plus(tag === Tag.PayingForTx ? tx.encodedTx.fee : 0)
158
139
  .minus(parentTxTypes.includes(Tag.PayingForTx) ? fee : 0);
159
140
  if (cost.lte(account.balance.toString())) return [];
160
141
  return [{
@@ -163,6 +144,18 @@ validators.push(
163
144
  checkedKeys: ['amount', 'fee', 'nameFee'],
164
145
  }];
165
146
  },
147
+ ({ signatures, tag }, { account }) => {
148
+ if (account == null) return [];
149
+ let message;
150
+ if (tag === Tag.SignedTx && account.kind === 'generalized' && signatures.length !== 0) {
151
+ message = 'Generalized account can\'t be used to generate SignedTx with signatures';
152
+ }
153
+ if (tag === Tag.GaMetaTx && account.kind === 'basic') {
154
+ message = 'Basic account can\'t be used to generate GaMetaTx';
155
+ }
156
+ if (message == null) return [];
157
+ return [{ message, key: 'InvalidAccountType', checkedKeys: ['tag'] }];
158
+ },
166
159
  ({ nonce }, { account, parentTxTypes }) => {
167
160
  if (nonce == null || account == null || parentTxTypes.includes(Tag.GaMetaTx)) return [];
168
161
  nonce = +nonce;
@@ -181,34 +174,36 @@ validators.push(
181
174
  checkedKeys: ['nonce'],
182
175
  }];
183
176
  },
184
- ({ ctVersion, abiVersion }, { txType, consensusProtocolVersion }) => {
185
- if (!isKeyOfObject(consensusProtocolVersion, PROTOCOL_VM_ABI)) {
186
- throw new UnsupportedProtocolError(`Unsupported protocol: ${consensusProtocolVersion}`);
187
- }
188
- const protocol = PROTOCOL_VM_ABI[consensusProtocolVersion];
177
+ ({ ctVersion, abiVersion, tag }, { consensusProtocolVersion }) => {
178
+ const oracleCall = Tag.Oracle === tag || Tag.OracleRegisterTx === tag;
179
+ const contractCreate = Tag.ContractCreateTx === tag || Tag.GaAttachTx === tag;
180
+ const contractCall = Tag.ContractCallTx === tag || Tag.GaMetaTx === tag;
181
+ const type = (oracleCall ? 'oracle-call' : null)
182
+ ?? (contractCreate ? 'contract-create' : null)
183
+ ?? (contractCall ? 'contract-call' : null);
184
+ if (type == null) return [];
185
+ // TODO: remove assertion after fixing buildTx types
186
+ const protocol = ProtocolToVmAbi[consensusProtocolVersion][type] as unknown as {
187
+ abiVersion: any[];
188
+ vmVersion: any[];
189
+ };
189
190
 
190
191
  // If not contract create tx
191
192
  if (ctVersion == null) ctVersion = { abiVersion };
192
- const txProtocol = protocol[txType as keyof typeof protocol];
193
- if (txProtocol == null) return [];
194
- if (Object.entries(ctVersion).some(
195
- ([
196
- key,
197
- value,
198
- ]: [
199
- key:keyof typeof txProtocol,
200
- value:any]) => !(txProtocol[key].includes(+value as never)),
201
- )) {
193
+ if (
194
+ !protocol.abiVersion.includes(ctVersion.abiVersion)
195
+ || (contractCreate && !protocol.vmVersion.includes(ctVersion.vmVersion))
196
+ ) {
202
197
  return [{
203
- message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(txProtocol)}`,
198
+ message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(protocol)}`,
204
199
  key: 'VmAndAbiVersionMismatch',
205
200
  checkedKeys: ['ctVersion', 'abiVersion'],
206
201
  }];
207
202
  }
208
203
  return [];
209
204
  },
210
- async ({ contractId }, { txType, node }) => {
211
- if (Tag.ContractCallTx !== txType) return [];
205
+ async ({ contractId, tag }, { node }) => {
206
+ if (Tag.ContractCallTx !== tag) return [];
212
207
  contractId = contractId as Encoded.ContractAddress;
213
208
  try {
214
209
  const { active } = await node.getContract(contractId);
@@ -0,0 +1,20 @@
1
+ declare module '@aeternity/aepp-calldata' {
2
+ // eslint-disable-next-line import/prefer-default-export
3
+ export class Encoder {
4
+ constructor(aci: object);
5
+
6
+ encode(contract: string, funName: string, args: any[]): `cb_${string}`;
7
+
8
+ decode(contract: string, funName: string, data: `cb_${string}`): any;
9
+
10
+ decodeString(data: `cb_${string}`): Uint8Array;
11
+
12
+ decodeFateString(data: `cb_${string}`): string;
13
+
14
+ decodeEvent(
15
+ contract: string,
16
+ encodedData: `cb_${string}`,
17
+ topics: BigInt[],
18
+ ): { [key: string]: any[] };
19
+ }
20
+ }
@@ -31,7 +31,7 @@ export const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {
31
31
 
32
32
  return {
33
33
  policy: {
34
- name: 'combine-requests',
34
+ name: 'combine-get-requests',
35
35
  async sendRequest(request, next) {
36
36
  if (request.method !== 'GET') return next(request);
37
37
  const key = JSON.stringify([request.url, request.body]);
@@ -48,6 +48,21 @@ export const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {
48
48
  };
49
49
  };
50
50
 
51
+ export const genAggressiveCacheGetResponsesPolicy = (): PipelinePolicy => {
52
+ const getRequests = new Map<string, Promise<PipelineResponse>>();
53
+
54
+ return {
55
+ name: 'aggressive-cache-get-responses',
56
+ async sendRequest(request, next) {
57
+ if (request.method !== 'GET') return next(request);
58
+ const key = JSON.stringify([request.url, request.body]);
59
+ const response = getRequests.get(key) ?? next(request);
60
+ getRequests.set(key, response);
61
+ return response;
62
+ },
63
+ };
64
+ };
65
+
51
66
  export const genErrorFormatterPolicy = (
52
67
  getMessage: (b: any) => string,
53
68
  ): AdditionalPolicyConfig => ({
@@ -16,19 +16,6 @@
16
16
  */
17
17
  import BigNumber from 'bignumber.js';
18
18
  import { NoSerializerFoundError, TypeError } from './errors';
19
- import { isBase64, isHex } from './string';
20
-
21
- /**
22
- * Convert bignumber to byte array
23
- * @param x - bignumber instance
24
- * @returns Buffer
25
- */
26
- export function bigNumberToByteArray(x: BigNumber): Buffer {
27
- if (!x.isInteger()) throw new TypeError(`Unexpected not integer value: ${x.toFixed()}`);
28
- let hexString = x.toString(16);
29
- if (hexString.length % 2 === 1) hexString = `0${hexString}`;
30
- return Buffer.from(hexString, 'hex');
31
- }
32
19
 
33
20
  /**
34
21
  * Convert string, number, or BigNumber to byte array
@@ -36,37 +23,22 @@ export function bigNumberToByteArray(x: BigNumber): Buffer {
36
23
  * @param big - enables force conversion to BigNumber
37
24
  * @returns Buffer
38
25
  */
26
+ // eslint-disable-next-line import/prefer-default-export
39
27
  export function toBytes(val?: null | string | number | BigNumber, big = false): Buffer {
40
28
  // Encode a value to bytes.
41
29
  // If the value is an int it will be encoded as bytes big endian
42
30
  // Raises ValueError if the input is not an int or string
43
31
 
44
- if (val === undefined || val === null) return Buffer.from([]);
32
+ if (val == null) return Buffer.from([]);
45
33
  if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {
46
34
  if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);
47
- return bigNumberToByteArray(val);
35
+ if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);
36
+ let hexString = val.toString(16);
37
+ if (hexString.length % 2 === 1) hexString = `0${hexString}`;
38
+ return Buffer.from(hexString, 'hex');
48
39
  }
49
40
  if (typeof val === 'string') {
50
41
  return Buffer.from(val);
51
42
  }
52
43
  throw new NoSerializerFoundError();
53
44
  }
54
-
55
- /**
56
- * Convert a string to a Buffer. If encoding is not specified, hex-encoding
57
- * will be used if the input is valid hex. If the input is valid base64 but
58
- * not valid hex, base64 will be used. Otherwise, utf8 will be used.
59
- * @param str - String to be converted.
60
- * @param enc - Encoding of the input string.
61
- * @returns Buffer containing the input data.
62
- */
63
- export function str2buf(str: string, enc?: BufferEncoding): Buffer {
64
- return Buffer.from(
65
- str,
66
- enc ?? (isHex(str) ? 'hex' : undefined) ?? (isBase64(str) ? 'base64' : undefined),
67
- );
68
- }
69
-
70
- export const bytesToHex = (b: Uint8Array): string => Buffer.from(b).toString('hex');
71
-
72
- export const hexToBytes = (s: string): Uint8Array => Buffer.from(s, 'hex');
@@ -20,7 +20,6 @@ import nacl, { SignKeyPair } from 'tweetnacl';
20
20
  import { blake2b } from 'blakejs/blake2b.js';
21
21
  import { encode as varuintEncode } from 'varuint-bitcoin';
22
22
 
23
- import { str2buf } from './bytes';
24
23
  import { concatBuffers } from './other';
25
24
  import {
26
25
  decode, encode, Encoded, Encoding,
@@ -28,11 +27,11 @@ import {
28
27
 
29
28
  /**
30
29
  * Generate address from secret key
31
- * @param secret - Private key
30
+ * @param secret - Private key as hex string
32
31
  * @returns Public key encoded as address
33
32
  */
34
33
  export function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress {
35
- const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;
34
+ const secretBuffer = typeof secret === 'string' ? Buffer.from(secret, 'hex') : secret;
36
35
  const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);
37
36
  return encode(keys.publicKey, Encoding.AccountAddress);
38
37
  }
@@ -60,7 +59,8 @@ export function isAddressValid(
60
59
  * @returns random salt
61
60
  */
62
61
  export function genSalt(): number {
63
- return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));
62
+ const [random] = new BigUint64Array(nacl.randomBytes(8).buffer);
63
+ return Number(random % BigInt(Number.MAX_SAFE_INTEGER));
64
64
  }
65
65
 
66
66
  /**
@@ -155,18 +155,17 @@ export function sign(data: string | Uint8Array, privateKey: string | Uint8Array)
155
155
 
156
156
  /**
157
157
  * Verify that signature was signed by public key
158
- * @param data - Data to verify
159
- * @param signature - Signature to verify
160
- * @param publicKey - Key to verify against
161
- * @returns Valid?
158
+ * @param data - Data that was signed
159
+ * @param signature - Signature of data
160
+ * @param address - Address to verify against
161
+ * @returns is data was signed by address
162
162
  */
163
163
  export function verify(
164
164
  data: Uint8Array,
165
165
  signature: Uint8Array,
166
- publicKey: string | Uint8Array,
166
+ address: Encoded.AccountAddress,
167
167
  ): boolean {
168
- const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey;
169
- return nacl.sign.detached.verify(data, signature, publicKeyBuffer);
168
+ return nacl.sign.detached.verify(data, signature, decode(address));
170
169
  }
171
170
 
172
171
  export function messageToHash(message: string): Buffer {
@@ -179,12 +178,19 @@ export function signMessage(message: string, privateKey: string | Buffer): Uint8
179
178
  return sign(messageToHash(message), privateKey);
180
179
  }
181
180
 
181
+ /**
182
+ * Verify that message was signed by address
183
+ * @param message - Message that was signed
184
+ * @param signature - Signature of message
185
+ * @param address - Address to verify against
186
+ * @returns is data was signed by address
187
+ */
182
188
  export function verifyMessage(
183
- str: string,
189
+ message: string,
184
190
  signature: Uint8Array,
185
- publicKey: string | Uint8Array,
191
+ address: Encoded.AccountAddress,
186
192
  ): boolean {
187
- return verify(messageToHash(str), signature, publicKey);
193
+ return verify(messageToHash(message), signature, address);
188
194
  }
189
195
 
190
196
  /**
@@ -192,7 +198,7 @@ export function verifyMessage(
192
198
  *
193
199
  * Sign a message, and then verifying that signature
194
200
  * @param privateKey - Private key to verify
195
- * @param publicKey - Public key to verify
201
+ * @param publicKey - Public key to verify as hex string
196
202
  * @returns Valid?
197
203
  */
198
204
  export function isValidKeypair(
@@ -201,5 +207,6 @@ export function isValidKeypair(
201
207
  ): boolean {
202
208
  const message = Buffer.from('TheMessage');
203
209
  const signature = sign(message, privateKey);
204
- return verify(message, signature, publicKey);
210
+ const publicKeyBuffer = typeof publicKey === 'string' ? Buffer.from(publicKey, 'hex') : publicKey;
211
+ return verify(message, signature, encode(publicKeyBuffer, Encoding.AccountAddress));
205
212
  }