@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
@@ -1,45 +1,84 @@
1
- import _field from './field';
2
- import _uInt from './u-int';
3
- import _shortUInt from './short-u-int';
1
+ import _abiVersion from './abi-version';
2
+ import _address from './address';
3
+ import _array from './array';
4
+ import _boolean from './boolean';
4
5
  import _coinAmount from './coin-amount';
5
-
6
+ import _ctVersion from './ct-version';
6
7
  import _deposit from './deposit';
8
+ import _encoded from './encoded';
9
+ import _entry from './entry';
10
+ import _enumeration from './enumeration';
7
11
  import _fee from './fee';
12
+ import _field from './field';
8
13
  import _gasLimit from './gas-limit';
9
14
  import _gasPrice from './gas-price';
15
+ import _mptree from './mptree';
10
16
  import _name from './name';
11
17
  import _nameFee from './name-fee';
12
18
  import _nameId from './name-id';
19
+ import _pointers from './pointers';
20
+ import _raw from './raw';
21
+ import _shortUInt from './short-u-int';
22
+ import _shortUIntConst from './short-u-int-const';
23
+ import _string from './string';
24
+ import _uInt from './u-int';
13
25
 
14
26
  // TODO: remove after fixing https://github.com/Gerrit0/typedoc-plugin-missing-exports/issues/15
15
- const field = _field;
16
- const uInt = _uInt;
17
- const shortUInt = _shortUInt;
27
+ const abiVersion = _abiVersion;
28
+ const address = _address;
29
+ const array = _array;
30
+ const boolean = _boolean;
18
31
  const coinAmount = _coinAmount;
19
-
32
+ const ctVersion = _ctVersion;
20
33
  const deposit = _deposit;
34
+ const encoded = _encoded;
35
+ const entry = _entry;
36
+ const enumeration = _enumeration;
21
37
  const fee = _fee;
38
+ const field = _field;
22
39
  const gasLimit = _gasLimit;
23
40
  const gasPrice = _gasPrice;
41
+ const mptree = _mptree;
24
42
  const name = _name;
25
43
  const nameFee = _nameFee;
26
44
  const nameId = _nameId;
45
+ const pointers = _pointers;
46
+ const raw = _raw;
47
+ const shortUInt = _shortUInt;
48
+ const shortUIntConst = _shortUIntConst;
49
+ const string = _string;
50
+ const uInt = _uInt;
27
51
 
28
- export type Field = typeof field | typeof uInt | typeof shortUInt | typeof coinAmount
29
- | typeof deposit | typeof fee | typeof gasLimit | typeof gasPrice | typeof name | typeof nameFee
30
- | typeof nameId;
52
+ export type BinaryData = Buffer | Buffer[] | Buffer[][]
53
+ | Array<[Buffer, Array<[Buffer, Buffer[]]>]>;
54
+ export interface Field {
55
+ serialize: (value: any, options: any) => BinaryData;
56
+ deserialize: (value: BinaryData, options: any) => any;
57
+ }
31
58
 
32
59
  export {
33
- field,
34
- uInt,
35
- shortUInt,
60
+ abiVersion,
61
+ address,
62
+ array,
63
+ boolean,
36
64
  coinAmount,
37
-
65
+ ctVersion,
38
66
  deposit,
67
+ encoded,
68
+ entry,
69
+ enumeration,
39
70
  fee,
71
+ field,
40
72
  gasLimit,
41
73
  gasPrice,
74
+ mptree,
42
75
  name,
43
76
  nameFee,
44
77
  nameId,
78
+ pointers,
79
+ raw,
80
+ shortUInt,
81
+ shortUIntConst,
82
+ string,
83
+ uInt,
45
84
  };
@@ -0,0 +1,242 @@
1
+ import { encode as rlpEncode, Input } from 'rlp';
2
+ import { Tag } from '../constants';
3
+ import { hash } from '../../../utils/crypto';
4
+ import {
5
+ MerkleTreeHashMismatchError,
6
+ MissingNodeInTreeError,
7
+ UnknownPathNibbleError,
8
+ UnexpectedTsError,
9
+ UnknownNodeLengthError,
10
+ InternalError,
11
+ } from '../../../utils/errors';
12
+ import {
13
+ decode, encode, Encoded, Encoding,
14
+ } from '../../../utils/encoder';
15
+ import type { unpackTx } from '..';
16
+
17
+ enum NodeType {
18
+ Branch,
19
+ Extension,
20
+ Leaf,
21
+ }
22
+
23
+ type MPTreeBinary = [Buffer, Array<[Buffer, Buffer[]]>];
24
+
25
+ class MPTree<E extends Encoding, T extends Tag> {
26
+ readonly #rootHash: string;
27
+
28
+ #isComplete = true;
29
+
30
+ get isComplete(): boolean {
31
+ return this.#isComplete;
32
+ }
33
+
34
+ readonly #nodes: { [key: string]: Buffer[] };
35
+
36
+ readonly #encoding: E;
37
+
38
+ readonly #tag: T;
39
+
40
+ readonly #unpackTx: typeof unpackTx;
41
+
42
+ static #nodeHash(node: Input): string {
43
+ return Buffer.from(hash(rlpEncode(node))).toString('hex');
44
+ }
45
+
46
+ /**
47
+ * Deserialize Merkle Patricia Tree
48
+ * @param binary - Binary
49
+ * @param tag - Tag to use to decode value
50
+ * @param unpTx - Implementation of unpackTx use to decode values
51
+ * @returns Merkle Patricia Tree
52
+ */
53
+ constructor(binary: MPTreeBinary, encoding: E, tag: T, unpTx: typeof unpackTx) {
54
+ this.#encoding = encoding;
55
+ this.#tag = tag;
56
+ this.#unpackTx = unpTx;
57
+ this.#rootHash = binary[0].toString('hex');
58
+ this.#nodes = Object.fromEntries(
59
+ binary[1].map((node) => [node[0].toString('hex'), node[1]]),
60
+ );
61
+
62
+ if (this.#nodes[this.#rootHash] == null) {
63
+ if (Object.keys(this.#nodes).length !== 0) {
64
+ throw new MissingNodeInTreeError('Can\'t find a node by root hash');
65
+ }
66
+ this.#isComplete = false;
67
+ return;
68
+ }
69
+ Object.entries(this.#nodes).forEach(([key, node]) => {
70
+ if (MPTree.#nodeHash(node) !== key) throw new MerkleTreeHashMismatchError();
71
+ const { type } = MPTree.#parseNode(node);
72
+ switch (type) {
73
+ case NodeType.Branch:
74
+ node
75
+ .slice(0, 16)
76
+ .filter((n) => n.length)
77
+ .forEach((n) => {
78
+ // TODO: enable after resolving https://github.com/aeternity/aeternity/issues/4066
79
+ // if (n.length !== 32) {
80
+ // throw new ArgumentError('MPTree branch item length', 32, n.length);
81
+ // }
82
+ if (this.#nodes[n.toString('hex')] == null) this.#isComplete = false;
83
+ });
84
+ break;
85
+ case NodeType.Extension:
86
+ if (this.#nodes[node[1].toString('hex')] == null) {
87
+ throw new MissingNodeInTreeError('Can\'t find a node by hash in extension node');
88
+ }
89
+ break;
90
+ case NodeType.Leaf:
91
+ break;
92
+ default:
93
+ throw new InternalError(`Unknown MPTree node type: ${type}`);
94
+ }
95
+ });
96
+ }
97
+
98
+ isEqual(tree: MPTree<E, T>): boolean {
99
+ return this.#rootHash === tree.#rootHash;
100
+ }
101
+
102
+ static #parseNode(node: Buffer[]): { type: NodeType; value?: Buffer; path?: string } {
103
+ switch (node.length) {
104
+ case 17:
105
+ return {
106
+ type: NodeType.Branch,
107
+ ...node[16].length !== 0 && { value: node[16] },
108
+ };
109
+ case 2: {
110
+ const nibble = node[0][0] >> 4; // eslint-disable-line no-bitwise
111
+ if (nibble > 3) throw new UnknownPathNibbleError(nibble);
112
+ const type = nibble <= 1 ? NodeType.Extension : NodeType.Leaf;
113
+ const slice = [0, 2].includes(nibble) ? 2 : 1;
114
+ return {
115
+ type,
116
+ ...type === NodeType.Leaf && { value: node[1] },
117
+ path: node[0].toString('hex').slice(slice),
118
+ };
119
+ }
120
+ default:
121
+ throw new UnknownNodeLengthError(node.length);
122
+ }
123
+ }
124
+
125
+ /**
126
+ * Serialize Merkle Patricia Tree
127
+ * @returns Binary
128
+ */
129
+ serialize(): MPTreeBinary {
130
+ return [
131
+ Buffer.from(this.#rootHash, 'hex'),
132
+ Object.entries(this.#nodes).map(([mptHash, value]) => ([
133
+ Buffer.from(mptHash, 'hex'),
134
+ value,
135
+ ])),
136
+ ];
137
+ }
138
+
139
+ /**
140
+ * Retrieve value from Merkle Patricia Tree
141
+ * @param _key - The key of the element to retrieve
142
+ * @returns Value associated to the specified key
143
+ */
144
+ #getRaw(_key: string): Buffer | undefined {
145
+ let searchFrom = this.#rootHash;
146
+ let key = _key;
147
+ while (true) { // eslint-disable-line no-constant-condition
148
+ const node = this.#nodes[searchFrom];
149
+ if (node == null) {
150
+ if (!this.isComplete) return undefined;
151
+ throw new InternalError('Can\'t find node in complete tree');
152
+ }
153
+ const { type, value, path } = MPTree.#parseNode(node);
154
+ switch (type) {
155
+ case NodeType.Branch:
156
+ if (key.length === 0) return value;
157
+ searchFrom = node[+`0x${key[0]}`].toString('hex');
158
+ key = key.substring(1);
159
+ break;
160
+ case NodeType.Extension:
161
+ if (key.substring(0, path?.length) !== path) return undefined;
162
+ searchFrom = node[1].toString('hex');
163
+ key = key.substring(path.length);
164
+ break;
165
+ case NodeType.Leaf:
166
+ if (path !== key) return undefined;
167
+ return value;
168
+ default:
169
+ throw new InternalError(`Unknown MPTree node type: ${type}`);
170
+ }
171
+ }
172
+ }
173
+
174
+ /**
175
+ * Retrieve value from Merkle Patricia Tree
176
+ * @param key - The key of the element to retrieve
177
+ * @returns Value associated to the specified key
178
+ */
179
+ get(key: Encoded.Generic<E>): ReturnType<typeof unpackTx<T>> | undefined {
180
+ const d = this.#getRaw(decode(key).toString('hex'));
181
+ if (d == null) return d;
182
+ return this.#unpackTx(encode(d, Encoding.Transaction), this.#tag);
183
+ }
184
+
185
+ #entriesRaw(): Array<[string, Buffer]> {
186
+ const entries: Array<[string, Buffer]> = [];
187
+ const rec = (searchFrom: string, key: string): void => {
188
+ const node = this.#nodes[searchFrom];
189
+ if (node == null) {
190
+ if (!this.isComplete) return;
191
+ throw new InternalError('Can\'t find node in complete tree');
192
+ }
193
+ const { type, value, path } = MPTree.#parseNode(node);
194
+ switch (type) {
195
+ case NodeType.Branch:
196
+ node
197
+ .slice(0, 16)
198
+ .map((t, idx): [typeof t, number] => [t, idx])
199
+ .filter(([t]) => t.length)
200
+ .forEach(([t, idx]) => rec(t.toString('hex'), key + idx.toString(16)));
201
+ if (value != null) entries.push([key, value]);
202
+ break;
203
+ case NodeType.Extension:
204
+ rec(node[1].toString('hex'), key + path);
205
+ break;
206
+ case NodeType.Leaf:
207
+ if (value == null) throw new UnexpectedTsError();
208
+ entries.push([key + path, value]);
209
+ break;
210
+ default:
211
+ throw new InternalError(`Unknown MPTree node type: ${type}`);
212
+ }
213
+ };
214
+ rec(this.#rootHash, '');
215
+ return entries;
216
+ }
217
+
218
+ toObject(): Record<Encoded.Any, ReturnType<typeof unpackTx<T>>> {
219
+ return Object.fromEntries(this.#entriesRaw()
220
+ // TODO: remove after resolving https://github.com/aeternity/aeternity/issues/4066
221
+ .filter(([k]) => this.#encoding !== Encoding.ContractAddress || k.length !== 66)
222
+ .map(([k, v]) => [
223
+ encode(Buffer.from(k, 'hex'), this.#encoding),
224
+ this.#unpackTx(encode(v, Encoding.Transaction), this.#tag),
225
+ ]));
226
+ }
227
+ }
228
+
229
+ export default function genMPTreeField<E extends Encoding, T extends Tag>(encoding: E, tag: T): {
230
+ serialize: (value: MPTree<E, T>) => MPTreeBinary;
231
+ deserialize: (value: MPTreeBinary, o: { unpackTx: typeof unpackTx }) => MPTree<E, T>;
232
+ } {
233
+ return {
234
+ serialize(value) {
235
+ return value.serialize();
236
+ },
237
+
238
+ deserialize(value, { unpackTx }) {
239
+ return new MPTree(value, encoding, tag, unpackTx);
240
+ },
241
+ };
242
+ }
@@ -1,9 +1,8 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { getMinimumNameFee } from '../helpers';
3
3
  import { InsufficientNameFeeError } from '../../../utils/errors';
4
- import { Int } from './u-int';
5
4
  import coinAmount from './coin-amount';
6
- import { AensName } from '../constants';
5
+ import { AensName, Int } from '../constants';
7
6
 
8
7
  export default {
9
8
  ...coinAmount,
@@ -27,6 +26,6 @@ export default {
27
26
  value: Int | undefined,
28
27
  txFields: { name: AensName } & Parameters<typeof coinAmount['serialize']>[1],
29
28
  ): Buffer {
30
- return coinAmount.serializeOptional.call(this, value, txFields);
29
+ return coinAmount.serialize.call(this, value, txFields);
31
30
  },
32
31
  };
@@ -1,20 +1,17 @@
1
1
  import { AensName } from '../constants';
2
2
  import { produceNameId, isNameValid } from '../helpers';
3
- import { writeId, readId } from '../address';
4
- import { Encoded } from '../../../utils/encoder';
3
+ import address from './address';
4
+ import { Encoded, Encoding } from '../../../utils/encoder';
5
+
6
+ const addressName = address(Encoding.Name);
5
7
 
6
8
  export default {
9
+ ...addressName,
10
+
7
11
  /**
8
12
  * @param value - AENS name ID
9
13
  */
10
14
  serialize(value: AensName | Encoded.Name): Buffer {
11
- return writeId(isNameValid(value) ? produceNameId(value) : value);
12
- },
13
-
14
- /**
15
- * @param value - AENS name ID Buffer
16
- */
17
- deserialize(value: Buffer): Encoded.Name {
18
- return readId(value) as Encoded.Name;
15
+ return addressName.serialize(isNameValid(value) ? produceNameId(value) : value);
19
16
  },
20
17
  };
@@ -0,0 +1,41 @@
1
+ import { NamePointer as NamePointerString } from '../../../apis/node';
2
+ import { toBytes } from '../../../utils/bytes';
3
+ import { Encoded } from '../../../utils/encoder';
4
+ import { IllegalArgumentError } from '../../../utils/errors';
5
+ import address, { AddressEncodings, idTagToEncoding } from './address';
6
+
7
+ const addressAny = address(...idTagToEncoding);
8
+
9
+ // TODO: remove after fixing node types
10
+ type NamePointer = NamePointerString & {
11
+ id: Encoded.Generic<AddressEncodings>;
12
+ };
13
+
14
+ export default {
15
+ /**
16
+ * Helper function to build pointers for name update TX
17
+ * @param pointers - Array of pointers
18
+ * `([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])`
19
+ * @returns Serialized pointers array
20
+ */
21
+ serialize(pointers: NamePointer[]): Buffer[][] {
22
+ if (pointers.length > 32) {
23
+ throw new IllegalArgumentError(`Expected 32 pointers or less, got ${pointers.length} instead`);
24
+ }
25
+
26
+ return pointers.map(
27
+ (pointer) => [toBytes(pointer.key), addressAny.serialize(pointer.id)],
28
+ );
29
+ },
30
+
31
+ /**
32
+ * Helper function to read pointers from name update TX
33
+ * @param pointers - Array of pointers
34
+ * @returns Deserialize pointer array
35
+ */
36
+ deserialize(pointers: Array<[key: Buffer, id: Buffer]>): NamePointer[] {
37
+ return pointers.map(
38
+ ([key, id]) => ({ key: key.toString(), id: addressAny.deserialize(id) }),
39
+ );
40
+ },
41
+ };
@@ -0,0 +1,9 @@
1
+ export default {
2
+ serialize(buffer: Uint8Array): Buffer {
3
+ return Buffer.from(buffer);
4
+ },
5
+
6
+ deserialize(buffer: Buffer): Buffer {
7
+ return buffer;
8
+ },
9
+ };
@@ -0,0 +1,20 @@
1
+ import { ArgumentError } from '../../../utils/errors';
2
+ import shortUInt from './short-u-int';
3
+
4
+ export default function genShortUIntConstField<Value extends number>(value: Value): {
5
+ serialize: (value?: Value) => Buffer;
6
+ deserialize: (value: Buffer) => Value;
7
+ } {
8
+ return {
9
+ serialize(val) {
10
+ if (val != null && val !== value) throw new ArgumentError('ShortUIntConst', value, val);
11
+ return shortUInt.serialize(value);
12
+ },
13
+
14
+ deserialize(buf) {
15
+ const val = shortUInt.deserialize(buf);
16
+ if (val !== value) throw new ArgumentError('ShortUIntConst', value, val);
17
+ return value;
18
+ },
19
+ };
20
+ }
@@ -0,0 +1,11 @@
1
+ import { toBytes } from '../../../utils/bytes';
2
+
3
+ export default {
4
+ serialize(string: string): Buffer {
5
+ return toBytes(string);
6
+ },
7
+
8
+ deserialize(buffer: Buffer): string {
9
+ return buffer.toString();
10
+ },
11
+ };
@@ -1,13 +1,12 @@
1
- import BigNumber from 'bignumber.js';
2
- import { readInt, writeInt } from '../helpers';
1
+ import { readInt } from '../helpers';
2
+ import { Int } from '../constants';
3
3
  import { ArgumentError } from '../../../utils/errors';
4
-
5
- export type Int = number | string | BigNumber;
4
+ import { toBytes } from '../../../utils/bytes';
6
5
 
7
6
  export default {
8
7
  serialize(value: Int): Buffer {
9
8
  if (value < 0) throw new ArgumentError('value', 'greater or equal to 0', value);
10
- return writeInt(value);
9
+ return toBytes(value, true);
11
10
  },
12
11
 
13
12
  deserialize(value: Buffer): string {
@@ -14,8 +14,6 @@ import {
14
14
  } from './constants';
15
15
  import { ceil } from '../../utils/bignumber';
16
16
  import { ArgumentError, IllegalBidFeeError } from '../../utils/errors';
17
- import { NamePointer } from '../../apis/node';
18
- import { readId, writeId } from './address';
19
17
 
20
18
  /**
21
19
  * JavaScript-based Transaction builder helper function's
@@ -61,16 +59,6 @@ export function oracleQueryId(
61
59
  return encode(b2bHash, Encoding.OracleQueryId);
62
60
  }
63
61
 
64
- /**
65
- * Format the salt into a 64-byte hex string
66
- * @category transaction builder
67
- * @param salt - Random number
68
- * @returns Zero-padded hex string of salt
69
- */
70
- export function formatSalt(salt: number): Buffer {
71
- return Buffer.from(salt.toString(16).padStart(64, '0'), 'hex');
72
- }
73
-
74
62
  /**
75
63
  * Encode an AENS name
76
64
  * @category AENS
@@ -82,11 +70,11 @@ export function produceNameId(name: AensName): Encoded.Name {
82
70
  }
83
71
 
84
72
  /**
85
- * Generate the commitment hash by hashing the formatted salt and
73
+ * Generate the commitment hash by hashing the salt and
86
74
  * name, base 58 encoding the result and prepending 'cm_'
87
75
  * @category transaction builder
88
76
  * @param name - Name to be registered
89
- * @param salt - Random salt
77
+ * @param salt - Random number
90
78
  * @returns Commitment hash
91
79
  */
92
80
  export function commitmentHash(
@@ -94,21 +82,14 @@ export function commitmentHash(
94
82
  salt: number = genSalt(),
95
83
  ): Encoded.Commitment {
96
84
  return encode(
97
- hash(concatBuffers([Buffer.from(name.toLowerCase()), formatSalt(salt)])),
85
+ hash(concatBuffers([
86
+ Buffer.from(name.toLowerCase()),
87
+ Buffer.from(salt.toString(16).padStart(64, '0'), 'hex'),
88
+ ])),
98
89
  Encoding.Commitment,
99
90
  );
100
91
  }
101
92
 
102
- /**
103
- * Utility function to convert int to bytes
104
- * @category transaction builder
105
- * @param val - Value
106
- * @returns Buffer Buffer from number(BigEndian)
107
- */
108
- export function writeInt(val: number | string | BigNumber): Buffer {
109
- return toBytes(val, true);
110
- }
111
-
112
93
  /**
113
94
  * Utility function to convert bytes to int
114
95
  * @category transaction builder
@@ -119,37 +100,6 @@ export function readInt(buf: Buffer = Buffer.from([])): string {
119
100
  return new BigNumber(Buffer.from(buf).toString('hex'), 16).toString(10);
120
101
  }
121
102
 
122
- /**
123
- * Helper function to build pointers for name update TX
124
- * @category transaction builder
125
- * @param pointers - Array of pointers
126
- * `([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])`
127
- * @returns Serialized pointers array
128
- */
129
- export function buildPointers(pointers: NamePointer[]): Buffer[][] {
130
- return pointers.map(
131
- (p) => [
132
- toBytes(p.key),
133
- writeId(p.id as Parameters<typeof writeId>[0]),
134
- ],
135
- );
136
- }
137
-
138
- /**
139
- * Helper function to read pointers from name update TX
140
- * @category transaction builder
141
- * @param pointers - Array of pointers
142
- * @returns Deserialize pointer array
143
- */
144
- export function readPointers(pointers: Array<[key: string, id: Buffer]>): NamePointer[] {
145
- return pointers.map(
146
- ([key, id]) => ({
147
- key: key.toString(),
148
- id: readId(id),
149
- }),
150
- );
151
- }
152
-
153
103
  const AENS_SUFFIX = '.chain';
154
104
 
155
105
  /**
@@ -232,10 +182,10 @@ export function computeBidFee(
232
182
  */
233
183
  export function computeAuctionEndBlock(name: AensName, claimHeight: number): number {
234
184
  const length = name.length - AENS_SUFFIX.length;
235
- const h = (length <= 4 && 62 * NAME_BID_TIMEOUT_BLOCKS)
236
- || (length <= 8 && 31 * NAME_BID_TIMEOUT_BLOCKS)
237
- || (length <= 12 && NAME_BID_TIMEOUT_BLOCKS)
238
- || 0;
185
+ const h = (length <= 4 ? 62 * NAME_BID_TIMEOUT_BLOCKS : null)
186
+ ?? (length <= 8 ? 31 * NAME_BID_TIMEOUT_BLOCKS : null)
187
+ ?? (length <= 12 ? NAME_BID_TIMEOUT_BLOCKS : null)
188
+ ?? 0;
239
189
  return h + claimHeight;
240
190
  }
241
191