@aeternity/aepp-sdk 13.0.0-alpha.0 → 13.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +5595 -2249
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.mjs.map +1 -1
  9. package/es/AeSdkAepp.mjs.map +1 -1
  10. package/es/AeSdkBase.d.ts +3 -3
  11. package/es/AeSdkBase.mjs +4 -0
  12. package/es/AeSdkBase.mjs.map +1 -1
  13. package/es/AeSdkMethods.d.ts +12 -14
  14. package/es/AeSdkMethods.mjs +6 -8
  15. package/es/AeSdkMethods.mjs.map +1 -1
  16. package/es/AeSdkWallet.mjs +1 -1
  17. package/es/AeSdkWallet.mjs.map +1 -1
  18. package/es/Node.d.ts +9 -4
  19. package/es/Node.mjs +12 -6
  20. package/es/Node.mjs.map +1 -1
  21. package/es/account/Base.d.ts +13 -8
  22. package/es/account/Base.mjs +0 -17
  23. package/es/account/Base.mjs.map +1 -1
  24. package/es/account/Generalized.mjs +14 -25
  25. package/es/account/Generalized.mjs.map +1 -1
  26. package/es/account/Ledger.mjs +2 -1
  27. package/es/account/Ledger.mjs.map +1 -1
  28. package/es/account/LedgerFactory.mjs.map +1 -1
  29. package/es/account/Memory.d.ts +2 -1
  30. package/es/account/Memory.mjs +11 -22
  31. package/es/account/Memory.mjs.map +1 -1
  32. package/es/account/Rpc.mjs.map +1 -1
  33. package/es/aens.d.ts +12 -14
  34. package/es/aens.mjs +22 -32
  35. package/es/aens.mjs.map +1 -1
  36. package/es/aepp-wallet-communication/connection/Browser.mjs +0 -16
  37. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  38. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -20
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  41. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  43. package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
  44. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  45. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -6
  46. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
  48. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
  51. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  52. package/es/apis/compiler/compiler.d.ts +1 -1
  53. package/es/apis/compiler/compiler.mjs +4 -20
  54. package/es/apis/compiler/compiler.mjs.map +1 -1
  55. package/es/apis/compiler/models/index.d.ts +3 -2
  56. package/es/apis/compiler/models/index.mjs.map +1 -1
  57. package/es/apis/compiler/models/mappers.d.ts +1 -1
  58. package/es/apis/compiler/models/mappers.mjs +19 -2
  59. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  60. package/es/apis/node/models/index.d.ts +15 -15
  61. package/es/apis/node/models/index.mjs.map +1 -1
  62. package/es/apis/node/models/mappers.d.ts +1 -1
  63. package/es/apis/node/models/mappers.mjs +2 -1
  64. package/es/apis/node/models/mappers.mjs.map +1 -1
  65. package/es/apis/node/models/parameters.d.ts +2 -2
  66. package/es/apis/node/models/parameters.mjs +2 -2
  67. package/es/apis/node/models/parameters.mjs.map +1 -1
  68. package/es/apis/node/node.mjs +3 -19
  69. package/es/apis/node/node.mjs.map +1 -1
  70. package/es/chain.d.ts +17 -9
  71. package/es/chain.mjs +23 -23
  72. package/es/chain.mjs.map +1 -1
  73. package/es/channel/Base.d.ts +27 -9
  74. package/es/channel/Base.mjs +27 -27
  75. package/es/channel/Base.mjs.map +1 -1
  76. package/es/channel/Contract.d.ts +8 -7
  77. package/es/channel/Contract.mjs +8 -21
  78. package/es/channel/Contract.mjs.map +1 -1
  79. package/es/channel/Spend.d.ts +5 -1
  80. package/es/channel/Spend.mjs +4 -18
  81. package/es/channel/Spend.mjs.map +1 -1
  82. package/es/channel/handlers.mjs +16 -26
  83. package/es/channel/handlers.mjs.map +1 -1
  84. package/es/channel/internal.d.ts +19 -2
  85. package/es/channel/internal.mjs +22 -20
  86. package/es/channel/internal.mjs.map +1 -1
  87. package/es/contract/Contract.d.ts +43 -123
  88. package/es/contract/Contract.mjs +230 -250
  89. package/es/contract/Contract.mjs.map +1 -1
  90. package/es/contract/compiler/Base.d.ts +74 -0
  91. package/es/contract/compiler/Base.mjs +5 -0
  92. package/es/contract/compiler/Base.mjs.map +1 -0
  93. package/es/contract/compiler/Cli.d.ts +23 -0
  94. package/es/contract/compiler/Cli.mjs +149 -0
  95. package/es/contract/compiler/Cli.mjs.map +1 -0
  96. package/es/contract/compiler/Http.d.ts +32 -0
  97. package/es/contract/compiler/Http.mjs +94 -0
  98. package/es/contract/compiler/Http.mjs.map +1 -0
  99. package/es/contract/compiler/HttpNode.d.ts +17 -0
  100. package/es/contract/compiler/HttpNode.mjs +26 -0
  101. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  102. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  103. package/es/contract/compiler/getFileSystem.mjs +40 -0
  104. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  105. package/es/contract/delegation-signature.d.ts +43 -0
  106. package/es/contract/delegation-signature.mjs +45 -0
  107. package/es/contract/delegation-signature.mjs.map +1 -0
  108. package/es/contract/ga.d.ts +27 -10
  109. package/es/contract/ga.mjs +63 -29
  110. package/es/contract/ga.mjs.map +1 -1
  111. package/es/index-browser.d.ts +40 -0
  112. package/es/index-browser.mjs +41 -0
  113. package/es/index-browser.mjs.map +1 -0
  114. package/es/index.d.ts +4 -38
  115. package/es/index.mjs +4 -53
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +12 -17
  118. package/es/oracle.mjs +29 -49
  119. package/es/oracle.mjs.map +1 -1
  120. package/es/spend.d.ts +19 -27
  121. package/es/spend.mjs +21 -46
  122. package/es/spend.mjs.map +1 -1
  123. package/es/tx/builder/SchemaTypes.d.ts +37 -0
  124. package/es/tx/builder/SchemaTypes.mjs +2 -0
  125. package/es/tx/builder/SchemaTypes.mjs.map +1 -0
  126. package/es/tx/builder/constants.d.ts +31 -2
  127. package/es/tx/builder/constants.mjs +34 -3
  128. package/es/tx/builder/constants.mjs.map +1 -1
  129. package/es/tx/builder/field-types/abi-version.d.ts +19 -0
  130. package/es/tx/builder/field-types/abi-version.mjs +40 -0
  131. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  132. package/es/tx/builder/field-types/address.d.ts +5 -6
  133. package/es/tx/builder/field-types/address.mjs +17 -8
  134. package/es/tx/builder/field-types/address.mjs.map +1 -1
  135. package/es/tx/builder/field-types/array.d.ts +7 -0
  136. package/es/tx/builder/field-types/array.mjs +11 -0
  137. package/es/tx/builder/field-types/array.mjs.map +1 -0
  138. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  139. package/es/tx/builder/field-types/boolean.mjs +13 -0
  140. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  141. package/es/tx/builder/field-types/coin-amount.d.ts +4 -5
  142. package/es/tx/builder/field-types/coin-amount.mjs +4 -5
  143. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  144. package/es/tx/builder/field-types/ct-version.d.ts +49 -0
  145. package/es/tx/builder/field-types/ct-version.mjs +76 -0
  146. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  147. package/es/tx/builder/field-types/deposit.d.ts +3 -2
  148. package/es/tx/builder/field-types/deposit.mjs +3 -2
  149. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  150. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  151. package/es/tx/builder/field-types/encoded.mjs +21 -0
  152. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  153. package/es/tx/builder/field-types/entry.d.ts +11 -0
  154. package/es/tx/builder/field-types/entry.mjs +34 -0
  155. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  156. package/es/tx/builder/field-types/enumeration.d.ts +5 -3
  157. package/es/tx/builder/field-types/enumeration.mjs +11 -2
  158. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  159. package/es/tx/builder/field-types/fee.d.ts +12 -7
  160. package/es/tx/builder/field-types/fee.mjs +28 -20
  161. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  162. package/es/tx/builder/field-types/field.mjs.map +1 -1
  163. package/es/tx/builder/field-types/gas-limit.d.ts +7 -3
  164. package/es/tx/builder/field-types/gas-limit.mjs +13 -8
  165. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  166. package/es/tx/builder/field-types/gas-price.d.ts +3 -1
  167. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  168. package/es/tx/builder/field-types/index.d.ts +107 -30
  169. package/es/tx/builder/field-types/index.mjs +38 -12
  170. package/es/tx/builder/field-types/index.mjs.map +1 -1
  171. package/es/tx/builder/field-types/map.d.ts +13 -0
  172. package/es/tx/builder/field-types/map.mjs +49 -0
  173. package/es/tx/builder/field-types/map.mjs.map +1 -0
  174. package/es/tx/builder/field-types/mptree.d.ts +42 -0
  175. package/es/tx/builder/field-types/mptree.mjs +266 -0
  176. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  177. package/es/tx/builder/field-types/name-fee.d.ts +2 -3
  178. package/es/tx/builder/field-types/name-fee.mjs +2 -2
  179. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  180. package/es/tx/builder/field-types/name-id.mjs +2 -1
  181. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  182. package/es/tx/builder/field-types/name.mjs.map +1 -1
  183. package/es/tx/builder/field-types/nonce.d.ts +14 -0
  184. package/es/tx/builder/field-types/nonce.mjs +29 -0
  185. package/es/tx/builder/field-types/nonce.mjs.map +1 -0
  186. package/es/tx/builder/field-types/pointers.mjs +2 -2
  187. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  188. package/es/tx/builder/field-types/raw.d.ts +6 -0
  189. package/es/tx/builder/field-types/raw.mjs +13 -0
  190. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  191. package/es/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  192. package/es/tx/builder/field-types/short-u-int-const.mjs +20 -0
  193. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  194. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  195. package/es/tx/builder/field-types/string.d.ts +6 -0
  196. package/es/tx/builder/field-types/string.mjs +10 -0
  197. package/es/tx/builder/field-types/string.mjs.map +1 -0
  198. package/es/tx/builder/field-types/ttl.d.ts +11 -0
  199. package/es/tx/builder/field-types/ttl.mjs +21 -0
  200. package/es/tx/builder/field-types/ttl.mjs.map +1 -0
  201. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  202. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  203. package/es/tx/builder/field-types/wrapped.d.ts +14 -0
  204. package/es/tx/builder/field-types/wrapped.mjs +22 -0
  205. package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
  206. package/es/tx/builder/helpers.mjs.map +1 -1
  207. package/es/tx/builder/index.d.ts +18 -36
  208. package/es/tx/builder/index.mjs +65 -236
  209. package/es/tx/builder/index.mjs.map +1 -1
  210. package/es/tx/builder/schema.d.ts +2734 -1324
  211. package/es/tx/builder/schema.generated.d.ts +2011 -0
  212. package/es/tx/builder/schema.generated.mjs +2 -0
  213. package/es/tx/builder/schema.generated.mjs.map +1 -0
  214. package/es/tx/builder/schema.mjs +459 -223
  215. package/es/tx/builder/schema.mjs.map +1 -1
  216. package/es/tx/execution-cost.d.ts +35 -0
  217. package/es/tx/execution-cost.mjs +123 -0
  218. package/es/tx/execution-cost.mjs.map +1 -0
  219. package/es/tx/transaction-signer.d.ts +6 -0
  220. package/es/tx/transaction-signer.mjs +27 -0
  221. package/es/tx/transaction-signer.mjs.map +1 -0
  222. package/es/tx/validator.d.ts +3 -5
  223. package/es/tx/validator.mjs +91 -153
  224. package/es/tx/validator.mjs.map +1 -1
  225. package/es/utils/amount-formatter.mjs +0 -16
  226. package/es/utils/amount-formatter.mjs.map +1 -1
  227. package/es/utils/autorest.d.ts +3 -2
  228. package/es/utils/autorest.mjs +43 -11
  229. package/es/utils/autorest.mjs.map +1 -1
  230. package/es/utils/bytes.mjs +1 -17
  231. package/es/utils/bytes.mjs.map +1 -1
  232. package/es/utils/crypto.mjs +0 -16
  233. package/es/utils/crypto.mjs.map +1 -1
  234. package/es/utils/encoder.mjs.map +1 -1
  235. package/es/utils/errors.d.ts +16 -38
  236. package/es/utils/errors.mjs +3 -43
  237. package/es/utils/errors.mjs.map +1 -1
  238. package/es/utils/hd-wallet.mjs.map +1 -1
  239. package/es/utils/json-big.mjs.map +1 -1
  240. package/es/utils/keystore.mjs.map +1 -1
  241. package/es/utils/other.mjs.map +1 -1
  242. package/es/utils/semver-satisfies.mjs.map +1 -1
  243. package/es/utils/string.mjs +0 -17
  244. package/es/utils/string.mjs.map +1 -1
  245. package/package.json +52 -40
  246. package/src/AeSdkBase.ts +6 -3
  247. package/src/AeSdkMethods.ts +12 -18
  248. package/src/AeSdkWallet.ts +1 -1
  249. package/src/Node.ts +23 -9
  250. package/src/account/Base.ts +13 -24
  251. package/src/account/Generalized.ts +9 -24
  252. package/src/account/Ledger.ts +1 -1
  253. package/src/account/Memory.ts +15 -22
  254. package/src/aens.ts +34 -49
  255. package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
  256. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -24
  257. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
  258. package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
  259. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  260. package/src/aepp-wallet-communication/rpc/types.ts +6 -2
  261. package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
  262. package/src/apis/compiler/compiler.ts +3 -27
  263. package/src/apis/compiler/models/index.ts +3 -2
  264. package/src/apis/compiler/models/mappers.ts +15 -2
  265. package/src/apis/node/models/index.ts +16 -15
  266. package/src/apis/node/models/mappers.ts +2 -1
  267. package/src/apis/node/models/parameters.ts +2 -2
  268. package/src/apis/node/node.ts +3 -27
  269. package/src/chain.ts +33 -30
  270. package/src/channel/Base.ts +39 -31
  271. package/src/channel/Contract.ts +18 -32
  272. package/src/channel/Spend.ts +8 -18
  273. package/src/channel/handlers.ts +14 -26
  274. package/src/channel/internal.ts +41 -23
  275. package/src/contract/Contract.ts +188 -228
  276. package/src/contract/compiler/Base.ts +87 -0
  277. package/src/contract/compiler/Cli.ts +128 -0
  278. package/src/contract/compiler/Http.ts +105 -0
  279. package/src/contract/compiler/HttpNode.ts +26 -0
  280. package/src/contract/compiler/getFileSystem.ts +42 -0
  281. package/src/contract/delegation-signature.ts +56 -0
  282. package/src/contract/ga.ts +61 -37
  283. package/src/index-browser.ts +50 -0
  284. package/src/index.ts +4 -56
  285. package/src/oracle.ts +47 -57
  286. package/src/spend.ts +34 -68
  287. package/src/tx/builder/SchemaTypes.ts +79 -0
  288. package/src/tx/builder/constants.ts +34 -3
  289. package/src/tx/builder/field-types/abi-version.ts +44 -0
  290. package/src/tx/builder/field-types/address.ts +23 -13
  291. package/src/tx/builder/field-types/array.ts +19 -0
  292. package/src/tx/builder/field-types/boolean.ts +9 -0
  293. package/src/tx/builder/field-types/coin-amount.ts +8 -5
  294. package/src/tx/builder/field-types/ct-version.ts +83 -0
  295. package/src/tx/builder/field-types/deposit.ts +4 -2
  296. package/src/tx/builder/field-types/encoded.ts +27 -0
  297. package/src/tx/builder/field-types/entry.ts +36 -0
  298. package/src/tx/builder/field-types/enumeration.ts +15 -4
  299. package/src/tx/builder/field-types/fee.ts +41 -19
  300. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  301. package/src/tx/builder/field-types/index.ts +60 -17
  302. package/src/tx/builder/field-types/map.ts +45 -0
  303. package/src/tx/builder/field-types/mptree.ts +243 -0
  304. package/src/tx/builder/field-types/name-fee.ts +3 -3
  305. package/src/tx/builder/field-types/name-id.ts +1 -1
  306. package/src/tx/builder/field-types/nonce.ts +40 -0
  307. package/src/tx/builder/field-types/pointers.ts +2 -2
  308. package/src/tx/builder/field-types/raw.ts +9 -0
  309. package/src/tx/builder/field-types/short-u-int-const.ts +30 -0
  310. package/src/tx/builder/field-types/string.ts +11 -0
  311. package/src/tx/builder/field-types/ttl.ts +24 -0
  312. package/src/tx/builder/field-types/u-int.ts +1 -3
  313. package/src/tx/builder/field-types/wrapped.ts +32 -0
  314. package/src/tx/builder/index.ts +82 -280
  315. package/src/tx/builder/schema.generated.ts +2013 -0
  316. package/src/tx/builder/schema.ts +536 -666
  317. package/src/tx/execution-cost.ts +146 -0
  318. package/src/tx/transaction-signer.ts +27 -0
  319. package/src/tx/validator.ts +100 -154
  320. package/src/utils/amount-formatter.ts +0 -16
  321. package/src/utils/autorest.ts +52 -11
  322. package/src/utils/bytes.ts +1 -17
  323. package/src/utils/crypto.ts +0 -16
  324. package/src/utils/errors.ts +18 -56
  325. package/src/utils/string.ts +0 -17
  326. package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
  327. package/types-legacy/ts4.2/AeSdkMethods.d.ts +12 -14
  328. package/types-legacy/ts4.2/Node.d.ts +8 -4
  329. package/types-legacy/ts4.2/account/Base.d.ts +13 -8
  330. package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
  331. package/types-legacy/ts4.2/aens.d.ts +12 -14
  332. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  333. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
  334. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
  335. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
  336. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
  337. package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
  338. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
  339. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
  340. package/types-legacy/ts4.2/chain.d.ts +17 -9
  341. package/types-legacy/ts4.2/channel/Base.d.ts +27 -9
  342. package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
  343. package/types-legacy/ts4.2/channel/Spend.d.ts +5 -1
  344. package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
  345. package/types-legacy/ts4.2/contract/Contract.d.ts +42 -122
  346. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +74 -0
  347. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  348. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  349. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  350. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  351. package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
  352. package/types-legacy/ts4.2/contract/ga.d.ts +27 -10
  353. package/types-legacy/ts4.2/index-browser.d.ts +40 -0
  354. package/types-legacy/ts4.2/index.d.ts +4 -38
  355. package/types-legacy/ts4.2/oracle.d.ts +12 -17
  356. package/types-legacy/ts4.2/spend.d.ts +19 -27
  357. package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
  358. package/types-legacy/ts4.2/tx/builder/constants.d.ts +31 -2
  359. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +19 -0
  360. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
  361. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  362. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  363. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +4 -5
  364. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +72 -0
  365. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +3 -2
  366. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  367. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  368. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
  369. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +12 -7
  370. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +7 -3
  371. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
  372. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +113 -30
  373. package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
  374. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +48 -0
  375. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +2 -3
  376. package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
  377. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  378. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  379. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  380. package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
  381. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
  382. package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
  383. package/types-legacy/ts4.2/tx/builder/index.d.ts +21 -36
  384. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2971 -2926
  385. package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
  386. package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
  387. package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
  388. package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
  389. package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
  390. package/types-legacy/ts4.2/utils/errors.d.ts +16 -38
  391. package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
  392. package/types-legacy/ts4.5/AeSdkMethods.d.ts +12 -14
  393. package/types-legacy/ts4.5/Node.d.ts +8 -4
  394. package/types-legacy/ts4.5/account/Base.d.ts +13 -8
  395. package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
  396. package/types-legacy/ts4.5/aens.d.ts +12 -14
  397. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  398. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
  399. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
  400. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
  401. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
  402. package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
  403. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
  404. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
  405. package/types-legacy/ts4.5/chain.d.ts +17 -9
  406. package/types-legacy/ts4.5/channel/Base.d.ts +27 -9
  407. package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
  408. package/types-legacy/ts4.5/channel/Spend.d.ts +5 -1
  409. package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
  410. package/types-legacy/ts4.5/contract/Contract.d.ts +42 -122
  411. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +74 -0
  412. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  413. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  414. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  415. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  416. package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
  417. package/types-legacy/ts4.5/contract/ga.d.ts +27 -10
  418. package/types-legacy/ts4.5/index-browser.d.ts +40 -0
  419. package/types-legacy/ts4.5/index.d.ts +4 -38
  420. package/types-legacy/ts4.5/oracle.d.ts +12 -17
  421. package/types-legacy/ts4.5/spend.d.ts +19 -27
  422. package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
  423. package/types-legacy/ts4.5/tx/builder/constants.d.ts +31 -2
  424. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +19 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
  426. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +4 -5
  429. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +72 -0
  430. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +3 -2
  431. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  432. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  433. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
  434. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +12 -7
  435. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +7 -3
  436. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
  437. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +113 -30
  438. package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
  439. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +48 -0
  440. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +2 -3
  441. package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
  442. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  443. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  444. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  445. package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
  446. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
  447. package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
  448. package/types-legacy/ts4.5/tx/builder/index.d.ts +21 -36
  449. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2971 -2926
  450. package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
  451. package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
  452. package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
  453. package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
  454. package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
  455. package/types-legacy/ts4.5/utils/errors.d.ts +16 -38
  456. package/es/contract/CompilerHttp.d.ts +0 -18
  457. package/es/contract/CompilerHttp.mjs +0 -63
  458. package/es/contract/CompilerHttp.mjs.map +0 -1
  459. package/es/tx/builder/field-types/addresses.d.ts +0 -6
  460. package/es/tx/builder/field-types/addresses.mjs +0 -13
  461. package/es/tx/builder/field-types/addresses.mjs.map +0 -1
  462. package/es/tx/index.d.ts +0 -34
  463. package/es/tx/index.mjs +0 -172
  464. package/es/tx/index.mjs.map +0 -1
  465. package/es/utils/mptree.d.ts +0 -26
  466. package/es/utils/mptree.mjs +0 -143
  467. package/es/utils/mptree.mjs.map +0 -1
  468. package/src/apis/compiler/code-model-v4.yaml +0 -2442
  469. package/src/apis/node/code-model-v4.yaml +0 -10080
  470. package/src/contract/CompilerHttp.ts +0 -67
  471. package/src/tx/builder/field-types/addresses.ts +0 -18
  472. package/src/tx/index.ts +0 -196
  473. package/src/utils/mptree.ts +0 -145
  474. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
  475. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
  476. package/types-legacy/ts4.2/tx/index.d.ts +0 -34
  477. package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
  478. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
  479. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
  480. package/types-legacy/ts4.5/tx/index.d.ts +0 -34
  481. package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
@@ -0,0 +1,45 @@
1
+ import { Tag } from '../constants';
2
+ import {
3
+ encode, Encoding, Encoded, decode,
4
+ } from '../../../utils/encoder';
5
+ import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
6
+
7
+ export default function genMapField<E extends Encoding, T extends Tag>(encoding: E, tag: T): {
8
+ serialize: (
9
+ // TODO: replace with `TxParams & { tag: T }`,
10
+ // but fix TS2502 value is referenced directly or indirectly in its own type annotation
11
+ value: Record<Encoded.Generic<E>, any>, options: { buildTx: typeof buildTxType }
12
+ ) => Buffer;
13
+ deserialize: (
14
+ value: Buffer, options: { unpackTx: typeof unpackTxType },
15
+ // TODO: replace with `TxUnpacked & { tag: T }`,
16
+ // TS2577 Return type annotation circularly references itself
17
+ ) => Record<Encoded.Generic<E>, any>;
18
+ recursiveType: true;
19
+ } {
20
+ return {
21
+ serialize(object, { buildTx }) {
22
+ return decode(buildTx({
23
+ tag: Tag.Mtree,
24
+ values: Object.entries(object).map(([key, value]) => ({
25
+ tag: Tag.MtreeValue,
26
+ key: decode(key as Encoded.Generic<E>),
27
+ value: decode(buildTx({ ...value as any, tag })),
28
+ })),
29
+ }));
30
+ },
31
+
32
+ deserialize(buffer, { unpackTx }) {
33
+ const { values } = unpackTx(encode(buffer, Encoding.Transaction), Tag.Mtree);
34
+ return Object.fromEntries(values
35
+ // TODO: remove after resolving https://github.com/aeternity/aeternity/issues/4066
36
+ .filter(({ key }) => encoding !== Encoding.ContractAddress || key.length === 32)
37
+ .map(({ key, value }) => [
38
+ encode(key, encoding),
39
+ unpackTx(encode(value, Encoding.Transaction), tag),
40
+ ])) as Record<Encoded.Generic<E>, any>;
41
+ },
42
+
43
+ recursiveType: true,
44
+ };
45
+ }
@@ -0,0 +1,243 @@
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
+ import type { TxUnpacked } from '../schema.generated';
17
+
18
+ enum NodeType {
19
+ Branch,
20
+ Extension,
21
+ Leaf,
22
+ }
23
+
24
+ type MPTreeBinary = [Buffer, Array<[Buffer, Buffer[]]>];
25
+
26
+ class MPTree<E extends Encoding, T extends Tag> {
27
+ readonly #rootHash: string;
28
+
29
+ #isComplete = true;
30
+
31
+ get isComplete(): boolean {
32
+ return this.#isComplete;
33
+ }
34
+
35
+ readonly #nodes: { [key: string]: Buffer[] };
36
+
37
+ readonly #encoding: E;
38
+
39
+ readonly #tag: T;
40
+
41
+ readonly #unpackTx: typeof unpackTx;
42
+
43
+ static #nodeHash(node: Input): string {
44
+ return Buffer.from(hash(rlpEncode(node))).toString('hex');
45
+ }
46
+
47
+ /**
48
+ * Deserialize Merkle Patricia Tree
49
+ * @param binary - Binary
50
+ * @param tag - Tag to use to decode value
51
+ * @param unpTx - Implementation of unpackTx use to decode values
52
+ * @returns Merkle Patricia Tree
53
+ */
54
+ constructor(binary: MPTreeBinary, encoding: E, tag: T, unpTx: typeof unpackTx) {
55
+ this.#encoding = encoding;
56
+ this.#tag = tag;
57
+ this.#unpackTx = unpTx;
58
+ this.#rootHash = binary[0].toString('hex');
59
+ this.#nodes = Object.fromEntries(
60
+ binary[1].map((node) => [node[0].toString('hex'), node[1]]),
61
+ );
62
+
63
+ if (this.#nodes[this.#rootHash] == null) {
64
+ if (Object.keys(this.#nodes).length !== 0) {
65
+ throw new MissingNodeInTreeError('Can\'t find a node by root hash');
66
+ }
67
+ this.#isComplete = false;
68
+ return;
69
+ }
70
+ Object.entries(this.#nodes).forEach(([key, node]) => {
71
+ if (MPTree.#nodeHash(node) !== key) throw new MerkleTreeHashMismatchError();
72
+ const { type } = MPTree.#parseNode(node);
73
+ switch (type) {
74
+ case NodeType.Branch:
75
+ node
76
+ .slice(0, 16)
77
+ .filter((n) => n.length)
78
+ .forEach((n) => {
79
+ // TODO: enable after resolving https://github.com/aeternity/aeternity/issues/4066
80
+ // if (n.length !== 32) {
81
+ // throw new ArgumentError('MPTree branch item length', 32, n.length);
82
+ // }
83
+ if (this.#nodes[n.toString('hex')] == null) this.#isComplete = false;
84
+ });
85
+ break;
86
+ case NodeType.Extension:
87
+ if (this.#nodes[node[1].toString('hex')] == null) {
88
+ throw new MissingNodeInTreeError('Can\'t find a node by hash in extension node');
89
+ }
90
+ break;
91
+ case NodeType.Leaf:
92
+ break;
93
+ default:
94
+ throw new InternalError(`Unknown MPTree node type: ${type}`);
95
+ }
96
+ });
97
+ }
98
+
99
+ isEqual(tree: MPTree<E, T>): boolean {
100
+ return this.#rootHash === tree.#rootHash;
101
+ }
102
+
103
+ static #parseNode(node: Buffer[]): { type: NodeType; value?: Buffer; path?: string } {
104
+ switch (node.length) {
105
+ case 17:
106
+ return {
107
+ type: NodeType.Branch,
108
+ ...node[16].length !== 0 && { value: node[16] },
109
+ };
110
+ case 2: {
111
+ const nibble = node[0][0] >> 4; // eslint-disable-line no-bitwise
112
+ if (nibble > 3) throw new UnknownPathNibbleError(nibble);
113
+ const type = nibble <= 1 ? NodeType.Extension : NodeType.Leaf;
114
+ const slice = [0, 2].includes(nibble) ? 2 : 1;
115
+ return {
116
+ type,
117
+ ...type === NodeType.Leaf && { value: node[1] },
118
+ path: node[0].toString('hex').slice(slice),
119
+ };
120
+ }
121
+ default:
122
+ throw new UnknownNodeLengthError(node.length);
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Serialize Merkle Patricia Tree
128
+ * @returns Binary
129
+ */
130
+ serialize(): MPTreeBinary {
131
+ return [
132
+ Buffer.from(this.#rootHash, 'hex'),
133
+ Object.entries(this.#nodes).map(([mptHash, value]) => ([
134
+ Buffer.from(mptHash, 'hex'),
135
+ value,
136
+ ])),
137
+ ];
138
+ }
139
+
140
+ /**
141
+ * Retrieve value from Merkle Patricia Tree
142
+ * @param _key - The key of the element to retrieve
143
+ * @returns Value associated to the specified key
144
+ */
145
+ #getRaw(_key: string): Buffer | undefined {
146
+ let searchFrom = this.#rootHash;
147
+ let key = _key;
148
+ while (true) { // eslint-disable-line no-constant-condition
149
+ const node = this.#nodes[searchFrom];
150
+ if (node == null) {
151
+ if (!this.isComplete) return undefined;
152
+ throw new InternalError('Can\'t find node in complete tree');
153
+ }
154
+ const { type, value, path } = MPTree.#parseNode(node);
155
+ switch (type) {
156
+ case NodeType.Branch:
157
+ if (key.length === 0) return value;
158
+ searchFrom = node[+`0x${key[0]}`].toString('hex');
159
+ key = key.substring(1);
160
+ break;
161
+ case NodeType.Extension:
162
+ if (key.substring(0, path?.length) !== path) return undefined;
163
+ searchFrom = node[1].toString('hex');
164
+ key = key.substring(path.length);
165
+ break;
166
+ case NodeType.Leaf:
167
+ if (path !== key) return undefined;
168
+ return value;
169
+ default:
170
+ throw new InternalError(`Unknown MPTree node type: ${type}`);
171
+ }
172
+ }
173
+ }
174
+
175
+ /**
176
+ * Retrieve value from Merkle Patricia Tree
177
+ * @param key - The key of the element to retrieve
178
+ * @returns Value associated to the specified key
179
+ */
180
+ get(key: Encoded.Generic<E>): TxUnpacked & { tag: T } | undefined {
181
+ const d = this.#getRaw(decode(key).toString('hex'));
182
+ if (d == null) return d;
183
+ return this.#unpackTx(encode(d, Encoding.Transaction), this.#tag);
184
+ }
185
+
186
+ #entriesRaw(): Array<[string, Buffer]> {
187
+ const entries: Array<[string, Buffer]> = [];
188
+ const rec = (searchFrom: string, key: string): void => {
189
+ const node = this.#nodes[searchFrom];
190
+ if (node == null) {
191
+ if (!this.isComplete) return;
192
+ throw new InternalError('Can\'t find node in complete tree');
193
+ }
194
+ const { type, value, path } = MPTree.#parseNode(node);
195
+ switch (type) {
196
+ case NodeType.Branch:
197
+ node
198
+ .slice(0, 16)
199
+ .map((t, idx): [typeof t, number] => [t, idx])
200
+ .filter(([t]) => t.length)
201
+ .forEach(([t, idx]) => rec(t.toString('hex'), key + idx.toString(16)));
202
+ if (value != null) entries.push([key, value]);
203
+ break;
204
+ case NodeType.Extension:
205
+ rec(node[1].toString('hex'), key + path);
206
+ break;
207
+ case NodeType.Leaf:
208
+ if (value == null) throw new UnexpectedTsError();
209
+ entries.push([key + path, value]);
210
+ break;
211
+ default:
212
+ throw new InternalError(`Unknown MPTree node type: ${type}`);
213
+ }
214
+ };
215
+ rec(this.#rootHash, '');
216
+ return entries;
217
+ }
218
+
219
+ toObject(): Record<Encoded.Generic<E>, TxUnpacked & { tag: T }> {
220
+ return Object.fromEntries(this.#entriesRaw()
221
+ // TODO: remove after resolving https://github.com/aeternity/aeternity/issues/4066
222
+ .filter(([k]) => this.#encoding !== Encoding.ContractAddress || k.length !== 66)
223
+ .map(([k, v]) => [
224
+ encode(Buffer.from(k, 'hex'), this.#encoding),
225
+ this.#unpackTx(encode(v, Encoding.Transaction), this.#tag),
226
+ ])) as Record<Encoded.Generic<E>, TxUnpacked & { tag: T }>;
227
+ }
228
+ }
229
+
230
+ export default function genMPTreeField<E extends Encoding, T extends Tag>(encoding: E, tag: T): {
231
+ serialize: (value: MPTree<E, T>) => MPTreeBinary;
232
+ deserialize: (value: MPTreeBinary, o: { unpackTx: typeof unpackTx }) => MPTree<E, T>;
233
+ } {
234
+ return {
235
+ serialize(value) {
236
+ return value.serialize();
237
+ },
238
+
239
+ deserialize(value, { unpackTx }) {
240
+ return new MPTree(value, encoding, tag, unpackTx);
241
+ },
242
+ };
243
+ }
@@ -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,
@@ -26,7 +25,8 @@ export default {
26
25
  serialize(
27
26
  value: Int | undefined,
28
27
  txFields: { name: AensName } & Parameters<typeof coinAmount['serialize']>[1],
28
+ parameters: Parameters<typeof coinAmount['serialize']>[2],
29
29
  ): Buffer {
30
- return coinAmount.serialize.call(this, value, txFields);
30
+ return coinAmount.serialize.call(this, value, txFields, parameters);
31
31
  },
32
32
  };
@@ -3,7 +3,7 @@ import { produceNameId, isNameValid } from '../helpers';
3
3
  import address from './address';
4
4
  import { Encoded, Encoding } from '../../../utils/encoder';
5
5
 
6
- const addressName = address<Encoding.Name>();
6
+ const addressName = address(Encoding.Name);
7
7
 
8
8
  export default {
9
9
  ...addressName,
@@ -0,0 +1,40 @@
1
+ import { isAccountNotFoundError } from '../../../utils/other';
2
+ import shortUInt from './short-u-int';
3
+ import Node from '../../../Node';
4
+ import { ArgumentError } from '../../../utils/errors';
5
+ import { NextNonceStrategy } from '../../../apis/node';
6
+
7
+ export default function genNonceField<SenderKey extends string>(senderKey: SenderKey): {
8
+ serialize: (value: number) => Buffer;
9
+ // TODO: (value: number) => Promise<number> | (value: undefined, ...) => Promise<number>
10
+ prepare: (
11
+ value: number | undefined,
12
+ params: {},
13
+ // TODO: replace `string` with AddressEncodings
14
+ options: { [key in SenderKey]: string } & { strategy?: NextNonceStrategy; onNode?: Node },
15
+ ) => Promise<number>;
16
+ deserialize: (value: Buffer) => number;
17
+ senderKey: string;
18
+ } {
19
+ return {
20
+ ...shortUInt,
21
+
22
+ async prepare(value, params, options) {
23
+ if (value != null) return value;
24
+ const { onNode, strategy } = options;
25
+ const senderId = options[senderKey];
26
+ const requirement = 'provided (or provide `nonce` instead)';
27
+ if (onNode == null) throw new ArgumentError('onNode', requirement, onNode);
28
+ if (senderId == null) throw new ArgumentError('senderId', requirement, senderId);
29
+ return (
30
+ await onNode.getAccountNextNonce(senderId.replace(/^ok_/, 'ak_'), { strategy })
31
+ .catch((error) => {
32
+ if (!isAccountNotFoundError(error)) throw error;
33
+ return { nextNonce: 1 };
34
+ })
35
+ ).nextNonce;
36
+ },
37
+
38
+ senderKey,
39
+ };
40
+ }
@@ -2,9 +2,9 @@ import { NamePointer as NamePointerString } from '../../../apis/node';
2
2
  import { toBytes } from '../../../utils/bytes';
3
3
  import { Encoded } from '../../../utils/encoder';
4
4
  import { IllegalArgumentError } from '../../../utils/errors';
5
- import address, { AddressEncodings } from './address';
5
+ import address, { AddressEncodings, idTagToEncoding } from './address';
6
6
 
7
- const addressAny = address<AddressEncodings>();
7
+ const addressAny = address(...idTagToEncoding);
8
8
 
9
9
  // TODO: remove after fixing node types
10
10
  type NamePointer = NamePointerString & {
@@ -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,30 @@
1
+ import { ArgumentError } from '../../../utils/errors';
2
+ import shortUInt from './short-u-int';
3
+
4
+ export default function genShortUIntConstField<
5
+ Value extends number, Optional extends boolean = false,
6
+ >(constValue: Value, optional?: Optional): {
7
+ serialize: Optional extends true ? (value?: Value) => Buffer : (value: Value) => Buffer;
8
+ deserialize: (value: Buffer) => Value;
9
+ constValue: Value;
10
+ constValueOptional: boolean;
11
+ } {
12
+ return {
13
+ serialize(value?: Value) {
14
+ if ((optional !== true || value != null) && value !== constValue) {
15
+ throw new ArgumentError('ShortUIntConst', constValue, value);
16
+ }
17
+ return shortUInt.serialize(constValue);
18
+ },
19
+
20
+ deserialize(buf) {
21
+ const value = shortUInt.deserialize(buf);
22
+ if (value !== constValue) throw new ArgumentError('ShortUIntConst', constValue, value);
23
+ return constValue;
24
+ },
25
+
26
+ constValue,
27
+
28
+ constValueOptional: optional === true,
29
+ };
30
+ }
@@ -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
+ };
@@ -0,0 +1,24 @@
1
+ import shortUInt from './short-u-int';
2
+ import Node from '../../../Node';
3
+ import { ArgumentError } from '../../../utils/errors';
4
+
5
+ export default {
6
+ ...shortUInt,
7
+
8
+ serialize(value: number | undefined): Buffer {
9
+ return shortUInt.serialize(value ?? 0);
10
+ },
11
+
12
+ async prepare(
13
+ value: number | undefined,
14
+ params: {},
15
+ // TODO: { absoluteTtl: true } | { absoluteTtl: false, onNode: Node }
16
+ { onNode, absoluteTtl }: { onNode?: Node; absoluteTtl?: boolean },
17
+ ) {
18
+ if (absoluteTtl !== true && value !== 0 && value != null) {
19
+ if (onNode == null) throw new ArgumentError('onNode', 'provided', onNode);
20
+ value += (await onNode.getCurrentKeyBlock()).height;
21
+ }
22
+ return value;
23
+ },
24
+ };
@@ -1,10 +1,8 @@
1
- import BigNumber from 'bignumber.js';
2
1
  import { readInt } from '../helpers';
2
+ import { Int } from '../constants';
3
3
  import { ArgumentError } from '../../../utils/errors';
4
4
  import { toBytes } from '../../../utils/bytes';
5
5
 
6
- export type Int = number | string | BigNumber;
7
-
8
6
  export default {
9
7
  serialize(value: Int): Buffer {
10
8
  if (value < 0) throw new ArgumentError('value', 'greater or equal to 0', value);
@@ -0,0 +1,32 @@
1
+ import { Tag } from '../constants';
2
+ import { encode, Encoding, decode } from '../../../utils/encoder';
3
+ import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
4
+
5
+ type TagWrapping = Tag.AccountsMtree | Tag.CallsMtree | Tag.ChannelsMtree | Tag.ContractsMtree
6
+ | Tag.NameserviceMtree | Tag.OraclesMtree;
7
+
8
+ export default function genWrappedField<T extends TagWrapping>(tag: T): {
9
+ serialize: (
10
+ // TODO: replace with `(TxParams & { tag: T })['payload']`,
11
+ // but fix TS2502 value is referenced directly or indirectly in its own type annotation
12
+ value: any, options: { buildTx: typeof buildTxType }
13
+ ) => Buffer;
14
+ deserialize: (
15
+ value: Buffer, options: { unpackTx: typeof unpackTxType },
16
+ // TODO: replace with `(TxUnpacked & { tag: T })['payload']`,
17
+ // TS2577 Return type annotation circularly references itself
18
+ ) => any;
19
+ recursiveType: true;
20
+ } {
21
+ return {
22
+ serialize(payload, { buildTx }) {
23
+ return decode(buildTx({ tag, payload }));
24
+ },
25
+
26
+ deserialize(buffer, { unpackTx }) {
27
+ return unpackTx<TagWrapping>(encode(buffer, Encoding.Transaction), tag).payload;
28
+ },
29
+
30
+ recursiveType: true,
31
+ };
32
+ }