@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,8 +1,3 @@
1
- import _buffer from "buffer";
2
- import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
3
- const {
4
- Buffer: _Buffer
5
- } = _buffer;
6
1
  import _rlp from 'rlp';
7
2
  const {
8
3
  decode: rlpDecode,
@@ -11,259 +6,14 @@ const {
11
6
  import { decode, encode, Encoding } from "../../utils/encoder.mjs";
12
7
  import { AE_AMOUNT_FORMATS } from "../../utils/amount-formatter.mjs";
13
8
  import { hash } from "../../utils/crypto.mjs";
14
- import { FIELD_TYPES, TX_SCHEMA } from "./schema.mjs";
9
+ import { TX_SCHEMA } from "./schema.mjs";
15
10
  import { Tag } from "./constants.mjs";
16
- import { buildContractId, buildPointers, readInt, readPointers, writeInt } from "./helpers.mjs";
17
- import { readId, writeId } from "./address.mjs";
18
- import { toBytes } from "../../utils/bytes.mjs";
19
- import MPTree from "../../utils/mptree.mjs";
20
- import { ArgumentError, DecodeError, InvalidTxParamsError, SchemaNotFoundError } from "../../utils/errors.mjs";
11
+ import { buildContractId, readInt } from "./helpers.mjs";
12
+ import { ArgumentError, DecodeError, SchemaNotFoundError } from "../../utils/errors.mjs";
21
13
  import { isKeyOfObject } from "../../utils/other.mjs";
22
-
23
14
  /**
24
15
  * JavaScript-based Transaction builder
25
16
  */
26
- // SERIALIZE AND DESERIALIZE PART
27
- function deserializeField(value, type, prefix) {
28
- if (value == null) return '';
29
-
30
- switch (type) {
31
- case FIELD_TYPES.ctVersion:
32
- {
33
- const [vm,, abi] = value;
34
- return {
35
- vmVersion: readInt(_Buffer.from([vm])),
36
- abiVersion: readInt(_Buffer.from([abi]))
37
- };
38
- }
39
-
40
- case FIELD_TYPES.abiVersion:
41
- case FIELD_TYPES.ttlType:
42
- return readInt(value);
43
-
44
- case FIELD_TYPES.id:
45
- return readId(value);
46
-
47
- case FIELD_TYPES.ids:
48
- return value.map(readId);
49
-
50
- case FIELD_TYPES.bool:
51
- return value[0] === 1;
52
-
53
- case FIELD_TYPES.binary:
54
- return encode(value, prefix);
55
-
56
- case FIELD_TYPES.stateTree:
57
- return encode(value, Encoding.StateTrees);
58
-
59
- case FIELD_TYPES.string:
60
- return value.toString();
61
-
62
- case FIELD_TYPES.payload:
63
- return encode(value, Encoding.Bytearray);
64
-
65
- case FIELD_TYPES.pointers:
66
- return readPointers(value);
67
-
68
- case FIELD_TYPES.rlpBinary:
69
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
70
- return unpackTx(encode(value, Encoding.Transaction));
71
-
72
- case FIELD_TYPES.rlpBinaries:
73
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
74
- return value.map(v => unpackTx(encode(v, Encoding.Transaction)));
75
-
76
- case FIELD_TYPES.rawBinary:
77
- return value;
78
-
79
- case FIELD_TYPES.hex:
80
- return value.toString('hex');
81
-
82
- case FIELD_TYPES.offChainUpdates:
83
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
84
- return value.map(v => unpackTx(encode(v, Encoding.Transaction)));
85
-
86
- case FIELD_TYPES.callStack:
87
- // TODO: fix this
88
- return [readInt(value)];
89
-
90
- case FIELD_TYPES.mptrees:
91
- return value.map(t => new MPTree(t));
92
-
93
- case FIELD_TYPES.callReturnType:
94
- switch (readInt(value)) {
95
- case '0':
96
- return 'ok';
97
-
98
- case '1':
99
- return 'error';
100
-
101
- case '2':
102
- return 'revert';
103
-
104
- default:
105
- return value;
106
- }
107
-
108
- case FIELD_TYPES.sophiaCodeTypeInfo:
109
- return value.reduce((acc, _ref) => {
110
- let [funHash, fnName, argType, outType] = _ref;
111
- return { ...acc,
112
- [fnName.toString()]: {
113
- funHash,
114
- argType,
115
- outType
116
- }
117
- };
118
- }, {});
119
-
120
- default:
121
- if (typeof type === 'number') return value;
122
- return type.deserialize(value);
123
- }
124
- }
125
-
126
- function serializeField(value, type, params) {
127
- var _value$rlpEncoded;
128
-
129
- switch (type) {
130
- case FIELD_TYPES.abiVersion:
131
- case FIELD_TYPES.ttlType:
132
- return writeInt(value);
133
-
134
- case FIELD_TYPES.id:
135
- return writeId(value);
136
-
137
- case FIELD_TYPES.ids:
138
- return value.map(writeId);
139
-
140
- case FIELD_TYPES.bool:
141
- return _Buffer.from([value === true ? 1 : 0]);
142
-
143
- case FIELD_TYPES.binary:
144
- return decode(value);
145
-
146
- case FIELD_TYPES.stateTree:
147
- return decode(value);
148
-
149
- case FIELD_TYPES.hex:
150
- return _Buffer.from(value, 'hex');
151
-
152
- case FIELD_TYPES.signatures:
153
- return value.map(_Buffer.from);
154
-
155
- case FIELD_TYPES.payload:
156
- return typeof value === 'string' && value.split('_')[0] === 'ba' ? decode(value) : toBytes(value);
157
-
158
- case FIELD_TYPES.string:
159
- return toBytes(value);
160
-
161
- case FIELD_TYPES.pointers:
162
- return buildPointers(value);
163
-
164
- case FIELD_TYPES.rlpBinary:
165
- return (_value$rlpEncoded = value.rlpEncoded) !== null && _value$rlpEncoded !== void 0 ? _value$rlpEncoded : value;
166
-
167
- case FIELD_TYPES.mptrees:
168
- return value.map(t => t.serialize());
169
-
170
- case FIELD_TYPES.ctVersion:
171
- return _Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)]);
172
-
173
- case FIELD_TYPES.callReturnType:
174
- switch (value) {
175
- case 'ok':
176
- return writeInt(0);
177
-
178
- case 'error':
179
- return writeInt(1);
180
-
181
- case 'revert':
182
- return writeInt(2);
183
-
184
- default:
185
- return value;
186
- }
187
-
188
- default:
189
- if (typeof type === 'number') return value; // @ts-expect-error will be solved after removing the whole serializeField function
190
-
191
- return type.serialize(value, params);
192
- }
193
- }
194
-
195
- function validateField(value, type, prefix) {
196
- // All fields are required
197
- if (value == null) return 'Field is required'; // Validate type of value
198
-
199
- switch (type) {
200
- case FIELD_TYPES.id:
201
- {
202
- const prefixes = Array.isArray(prefix) ? prefix : [prefix];
203
-
204
- if (!_includesInstanceProperty(prefixes).call(prefixes, value.split('_')[0])) {
205
- if (prefix == null) {
206
- return `'${String(value)}' prefix doesn't exist'`;
207
- }
208
-
209
- return `'${String(value)}' prefix doesn't match expected prefix '${prefix.toString()}'`;
210
- }
211
-
212
- return undefined;
213
- }
214
-
215
- case FIELD_TYPES.ctVersion:
216
- if (!(Boolean(value.abiVersion) && Boolean(value.vmVersion))) {
217
- return 'Value must be an object with "vmVersion" and "abiVersion" fields';
218
- }
219
-
220
- return undefined;
221
-
222
- case FIELD_TYPES.pointers:
223
- if (!Array.isArray(value)) return 'Value must be of type Array';
224
-
225
- if (value.some(p => !(Boolean(p.key) && Boolean(p.id)))) {
226
- return 'Value must contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\'';
227
- }
228
-
229
- if (value.length > 32) {
230
- return `Expected 32 pointers or less, got ${value.length} instead`;
231
- }
232
-
233
- return undefined;
234
-
235
- default:
236
- return undefined;
237
- }
238
- }
239
- /**
240
- * Validate transaction params
241
- * @category transaction builder
242
- * @param params - Object with tx params
243
- * @param schema - Transaction schema
244
- * @param excludeKeys - Array of keys to exclude for validation
245
- * @returns Object with validation errors
246
- */
247
-
248
-
249
- export function validateParams(params, schema, _ref2) {
250
- let {
251
- excludeKeys = []
252
- } = _ref2;
253
- return Object.fromEntries(schema // TODO: allow optional keys in schema
254
- .filter(_ref3 => {
255
- var _context;
256
-
257
- let [key] = _ref3;
258
- return !_includesInstanceProperty(excludeKeys).call(excludeKeys, key) && !_includesInstanceProperty(_context = ['payload', 'nameFee', 'deposit', 'gasPrice', 'fee', 'gasLimit']).call(_context, key);
259
- }).map(_ref4 => {
260
- let [key, type, prefix] = _ref4;
261
- return [key, validateField(params[key], type, prefix)];
262
- }).filter(_ref5 => {
263
- let [, message] = _ref5;
264
- return message;
265
- }));
266
- }
267
17
  /**
268
18
  * Unpack binary transaction
269
19
  * @category transaction builder
@@ -271,26 +21,28 @@ export function validateParams(params, schema, _ref2) {
271
21
  * @param schema - Transaction schema
272
22
  * @returns Object with transaction field's
273
23
  */
274
-
275
- export function unpackRawTx(binary, schema) {
276
- return schema.reduce((acc, _ref6, index) => {
277
- let [key, fieldType, prefix] = _ref6;
278
- return Object.assign(acc, {
279
- [key]: deserializeField(binary[index], fieldType, prefix)
24
+ function unpackRawTx(binary, schema) {
25
+ if (binary.length !== schema.length) {
26
+ throw new ArgumentError('Transaction RLP length', schema.length, binary.length);
27
+ }
28
+ return schema.reduce((acc, _ref, index) => {
29
+ let [name, field] = _ref;
30
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
31
+ const deserialized = field.deserialize(binary[index], {
32
+ unpackTx
280
33
  });
34
+ return {
35
+ ...acc,
36
+ [name]: deserialized
37
+ };
281
38
  }, {});
282
39
  }
283
- /**
284
- * @category transaction builder
285
- */
286
40
 
287
41
  /**
288
42
  * Build transaction hash
289
43
  * @category transaction builder
290
- * @param _params - Object with tx params
291
- * @param type - Transaction type
44
+ * @param params - Object with tx params
292
45
  * @param options - options
293
- * @param options.excludeKeys - Array of keys to exclude for validation and build
294
46
  * @param options.denomination - Denomination of amounts
295
47
  * @param options.prefix - Prefix of transaction
296
48
  * @throws {@link InvalidTxParamsError}
@@ -299,62 +51,38 @@ export function unpackRawTx(binary, schema) {
299
51
  * @returns object.rlpEncoded rlp encoded transaction
300
52
  * @returns object.binary binary transaction
301
53
  */
302
- export function buildTx(_params, type) {
303
- var _vsn;
304
-
54
+ export function buildTx(params) {
55
+ var _params$version;
305
56
  let {
306
- excludeKeys = [],
307
- prefix = Encoding.Transaction,
308
- vsn,
57
+ prefix,
309
58
  denomination = AE_AMOUNT_FORMATS.AETTOS
310
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
311
- const schemas = TX_SCHEMA[type];
312
- (_vsn = vsn) !== null && _vsn !== void 0 ? _vsn : vsn = Math.max(...Object.keys(schemas).map(a => +a));
313
- if (!isKeyOfObject(vsn, schemas)) throw new SchemaNotFoundError('serialization', Tag[type], vsn);
314
- const schema = schemas[vsn];
315
- const params = _params;
316
- params.VSN = vsn;
317
- params.tag = type;
318
- params.denomination = denomination;
319
- const filteredSchema = schema.filter(_ref7 => {
320
- let [key] = _ref7;
321
- return !_includesInstanceProperty(excludeKeys).call(excludeKeys, key);
322
- }); // Validation
323
-
324
- const valid = validateParams(params, schema, {
325
- excludeKeys
326
- });
327
-
328
- if (Object.keys(valid).length > 0) {
329
- throw new InvalidTxParamsError(`Transaction build error. ${JSON.stringify(valid)}`);
59
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
60
+ const schemas = TX_SCHEMA[params.tag];
61
+ (_params$version = params.version) !== null && _params$version !== void 0 ? _params$version : params.version = Math.max(...Object.keys(schemas).map(a => +a));
62
+ if (!isKeyOfObject(params.version, schemas)) {
63
+ throw new SchemaNotFoundError('serialization', Tag[params.tag], params.version);
330
64
  }
331
-
332
- const binary = filteredSchema.map(_ref8 => {
333
- let [key, fieldType] = _ref8;
334
- return serializeField(params[key], fieldType, { ...params,
335
- txType: type,
336
- rebuildTx: overrideParams => buildTx({ ...params,
65
+ const schema = schemas[params.version];
66
+ const binary = schema.map(_ref2 => {
67
+ let [key, field] = _ref2;
68
+ return field.serialize(params[key], {
69
+ ...params,
70
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
71
+ unpackTx,
72
+ buildTx,
73
+ denomination,
74
+ rebuildTx: overrideParams => buildTx({
75
+ ...params,
337
76
  ...overrideParams
338
- }, type, {
339
- excludeKeys,
340
- prefix: Encoding.Transaction,
341
- vsn,
77
+ }, {
342
78
  denomination
343
79
  })
344
80
  });
345
- }).filter(e => e !== undefined);
346
- const rlpEncoded = rlpEncode(binary);
347
- const tx = encode(rlpEncoded, prefix);
348
- return {
349
- tx,
350
- rlpEncoded,
351
- binary,
352
- txObject: unpackRawTx(binary, schema)
353
- };
81
+ });
82
+
83
+ // @ts-expect-error looks like a TypeScript edge case
84
+ return encode(rlpEncode(binary), prefix !== null && prefix !== void 0 ? prefix : Encoding.Transaction);
354
85
  }
355
- /**
356
- * @category transaction builder
357
- */
358
86
 
359
87
  /**
360
88
  * Unpack transaction hash
@@ -366,50 +94,42 @@ export function buildTx(_params, type) {
366
94
  * @returns object.txType Transaction type
367
95
  */
368
96
  export function unpackTx(encodedTx, txType) {
369
- const rlpEncoded = decode(encodedTx);
370
- const binary = rlpDecode(rlpEncoded);
371
- const objId = +readInt(binary[0]);
372
- if (!isKeyOfObject(objId, TX_SCHEMA)) throw new DecodeError(`Unknown transaction tag: ${objId}`);
373
- if (txType != null && txType !== objId) throw new DecodeError(`Expected transaction to have ${Tag[txType]} tag, got ${Tag[objId]} instead`);
374
- const vsn = +readInt(binary[1]);
375
- if (!isKeyOfObject(vsn, TX_SCHEMA[objId])) throw new SchemaNotFoundError('deserialization', `tag ${objId}`, vsn);
376
- const schema = TX_SCHEMA[objId][vsn];
377
- return {
378
- txType: objId,
379
- tx: unpackRawTx(binary, schema),
380
- rlpEncoded
381
- };
97
+ const binary = rlpDecode(decode(encodedTx));
98
+ const tag = +readInt(binary[0]);
99
+ if (!isKeyOfObject(tag, TX_SCHEMA)) throw new DecodeError(`Unknown transaction tag: ${tag}`);
100
+ if (txType != null && txType !== tag) throw new DecodeError(`Expected transaction to have ${Tag[txType]} tag, got ${Tag[tag]} instead`);
101
+ const version = +readInt(binary[1]);
102
+ if (!isKeyOfObject(version, TX_SCHEMA[tag])) throw new SchemaNotFoundError('deserialization', `tag ${tag}`, version);
103
+ const schema = TX_SCHEMA[tag][version];
104
+ return unpackRawTx(binary, schema);
382
105
  }
106
+
383
107
  /**
384
108
  * Build a transaction hash
385
109
  * @category transaction builder
386
110
  * @param rawTx - base64 or rlp encoded transaction
387
111
  * @returns Transaction hash
388
112
  */
389
-
390
113
  export function buildTxHash(rawTx) {
391
114
  const data = typeof rawTx === 'string' && rawTx.startsWith('tx_') ? decode(rawTx) : rawTx;
392
115
  return encode(hash(data), Encoding.TxHash);
393
116
  }
117
+
394
118
  /**
395
119
  * Build a contract public key by contractCreateTx or gaAttach
396
120
  * @category contract
397
121
  * @param contractTx - Transaction
398
122
  * @returns Contract public key
399
123
  */
400
-
401
124
  export function buildContractIdByContractTx(contractTx) {
402
- var _context2;
403
-
404
125
  const {
405
- txType,
406
- tx
126
+ tag,
127
+ ownerId,
128
+ nonce
407
129
  } = unpackTx(contractTx);
408
-
409
- if (!_includesInstanceProperty(_context2 = [Tag.ContractCreateTx, Tag.GaAttachTx]).call(_context2, txType)) {
410
- throw new ArgumentError('contractCreateTx', 'a contractCreateTx or gaAttach', txType);
130
+ if (![Tag.ContractCreateTx, Tag.GaAttachTx].includes(tag)) {
131
+ throw new ArgumentError('contractCreateTx', 'a contractCreateTx or gaAttach', tag);
411
132
  }
412
-
413
- return buildContractId(tx.ownerId, +tx.nonce);
133
+ return buildContractId(ownerId, +nonce);
414
134
  }
415
135
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["decode","encode","Encoding","AE_AMOUNT_FORMATS","hash","FIELD_TYPES","TX_SCHEMA","Tag","buildContractId","buildPointers","readInt","readPointers","writeInt","readId","writeId","toBytes","MPTree","ArgumentError","DecodeError","InvalidTxParamsError","SchemaNotFoundError","isKeyOfObject","deserializeField","value","type","prefix","ctVersion","vm","abi","vmVersion","from","abiVersion","ttlType","id","ids","map","bool","binary","stateTree","StateTrees","string","toString","payload","Bytearray","pointers","rlpBinary","unpackTx","Transaction","rlpBinaries","v","rawBinary","hex","offChainUpdates","callStack","mptrees","t","callReturnType","sophiaCodeTypeInfo","reduce","acc","funHash","fnName","argType","outType","deserialize","serializeField","params","signatures","split","rlpEncoded","serialize","validateField","prefixes","Array","isArray","String","undefined","Boolean","some","p","key","length","validateParams","schema","excludeKeys","Object","fromEntries","filter","message","unpackRawTx","index","fieldType","assign","buildTx","_params","vsn","denomination","AETTOS","schemas","Math","max","keys","a","VSN","tag","filteredSchema","valid","JSON","stringify","txType","rebuildTx","overrideParams","e","rlpEncode","tx","txObject","encodedTx","rlpDecode","objId","buildTxHash","rawTx","data","startsWith","TxHash","buildContractIdByContractTx","contractTx","ContractCreateTx","GaAttachTx","ownerId","nonce"],"sources":["../../../src/tx/builder/index.ts"],"sourcesContent":["import { decode as rlpDecode, encode as rlpEncode, NestedUint8Array } from 'rlp';\nimport {\n decode, encode, Encoded, Encoding,\n} from '../../utils/encoder';\nimport { AE_AMOUNT_FORMATS } from '../../utils/amount-formatter';\nimport { hash } from '../../utils/crypto';\nimport { Field } from './field-types';\nimport {\n FIELD_TYPES,\n RawTxObject,\n TX_SCHEMA,\n TxField,\n TxParamsCommon,\n TxSchema,\n TxTypeSchemas,\n} from './schema';\nimport { Tag } from './constants';\nimport {\n buildContractId, buildPointers, readInt, readPointers, writeInt,\n} from './helpers';\nimport { readId, writeId } from './address';\nimport { toBytes } from '../../utils/bytes';\nimport MPTree, { MPTreeBinary } from '../../utils/mptree';\nimport {\n ArgumentError,\n DecodeError,\n InvalidTxParamsError,\n SchemaNotFoundError,\n} from '../../utils/errors';\nimport { isKeyOfObject } from '../../utils/other';\nimport { NamePointer } from '../../apis/node';\n\n/**\n * JavaScript-based Transaction builder\n */\n\n// SERIALIZE AND DESERIALIZE PART\nfunction deserializeField(\n value: any,\n type: FIELD_TYPES | Field,\n prefix?: Encoding | Encoding[],\n): any {\n if (value == null) return '';\n switch (type) {\n case FIELD_TYPES.ctVersion: {\n const [vm, , abi] = value;\n return {\n vmVersion: readInt(Buffer.from([vm])),\n abiVersion: readInt(Buffer.from([abi])),\n };\n }\n case FIELD_TYPES.abiVersion:\n case FIELD_TYPES.ttlType:\n return readInt(value);\n case FIELD_TYPES.id:\n return readId(value);\n case FIELD_TYPES.ids:\n return value.map(readId);\n case FIELD_TYPES.bool:\n return value[0] === 1;\n case FIELD_TYPES.binary:\n return encode(value, prefix as Encoding);\n case FIELD_TYPES.stateTree:\n return encode(value, Encoding.StateTrees);\n case FIELD_TYPES.string:\n return value.toString();\n case FIELD_TYPES.payload:\n return encode(value, Encoding.Bytearray);\n case FIELD_TYPES.pointers:\n return readPointers(value);\n case FIELD_TYPES.rlpBinary:\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return unpackTx(encode(value, Encoding.Transaction));\n case FIELD_TYPES.rlpBinaries:\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return value.map((v: Buffer) => unpackTx(encode(v, Encoding.Transaction)));\n case FIELD_TYPES.rawBinary:\n return value;\n case FIELD_TYPES.hex:\n return value.toString('hex');\n case FIELD_TYPES.offChainUpdates:\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return value.map((v: Buffer) => unpackTx(encode(v, Encoding.Transaction)));\n case FIELD_TYPES.callStack:\n // TODO: fix this\n return [readInt(value)];\n case FIELD_TYPES.mptrees:\n return value.map((t: MPTreeBinary) => new MPTree(t));\n case FIELD_TYPES.callReturnType:\n switch (readInt(value)) {\n case '0':\n return 'ok';\n case '1':\n return 'error';\n case '2':\n return 'revert';\n default:\n return value;\n }\n case FIELD_TYPES.sophiaCodeTypeInfo:\n return value.reduce(\n (acc: object, [funHash, fnName, argType, outType]: [\n funHash: Buffer,\n fnName: string,\n argType: string,\n outType: string,\n ]) => ({\n ...acc,\n [fnName.toString()]: { funHash, argType, outType },\n }),\n {},\n );\n default:\n if (typeof type === 'number') return value;\n return type.deserialize(value);\n }\n}\n\nfunction serializeField(value: any, type: FIELD_TYPES | Field, params: any): any {\n switch (type) {\n case FIELD_TYPES.abiVersion:\n case FIELD_TYPES.ttlType:\n return writeInt(value);\n case FIELD_TYPES.id:\n return writeId(value);\n case FIELD_TYPES.ids:\n return value.map(writeId);\n case FIELD_TYPES.bool:\n return Buffer.from([(value === true) ? 1 : 0]);\n case FIELD_TYPES.binary:\n return decode(value);\n case FIELD_TYPES.stateTree:\n return decode(value);\n case FIELD_TYPES.hex:\n return Buffer.from(value, 'hex');\n case FIELD_TYPES.signatures:\n return value.map(Buffer.from);\n case FIELD_TYPES.payload:\n return typeof value === 'string' && value.split('_')[0] === 'ba'\n ? decode(value as Encoded.Bytearray)\n : toBytes(value);\n case FIELD_TYPES.string:\n return toBytes(value);\n case FIELD_TYPES.pointers:\n return buildPointers(value);\n case FIELD_TYPES.rlpBinary:\n return value.rlpEncoded ?? value;\n case FIELD_TYPES.mptrees:\n return value.map((t: MPTree) => t.serialize());\n case FIELD_TYPES.ctVersion:\n return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)]);\n case FIELD_TYPES.callReturnType:\n switch (value) {\n case 'ok': return writeInt(0);\n case 'error': return writeInt(1);\n case 'revert': return writeInt(2);\n default: return value;\n }\n default:\n if (typeof type === 'number') return value;\n // @ts-expect-error will be solved after removing the whole serializeField function\n return type.serialize(value, params);\n }\n}\n\nfunction validateField(\n value: any,\n type: FIELD_TYPES | Field,\n prefix?: Encoding | Encoding[],\n): string | undefined {\n // All fields are required\n if (value == null) return 'Field is required';\n\n // Validate type of value\n switch (type) {\n case FIELD_TYPES.id: {\n const prefixes = Array.isArray(prefix) ? prefix : [prefix];\n if (!prefixes.includes(value.split('_')[0])) {\n if (prefix == null) { return `'${String(value)}' prefix doesn't exist'`; }\n return `'${String(value)}' prefix doesn't match expected prefix '${prefix.toString()}'`;\n }\n return undefined;\n }\n case FIELD_TYPES.ctVersion:\n if (!(Boolean(value.abiVersion) && Boolean(value.vmVersion))) {\n return 'Value must be an object with \"vmVersion\" and \"abiVersion\" fields';\n }\n return undefined;\n case FIELD_TYPES.pointers:\n if (!Array.isArray(value)) return 'Value must be of type Array';\n if (value.some((p: NamePointer) => !(Boolean(p.key) && Boolean(p.id)))) {\n return 'Value must contains only object\\'s like \\'{key: \"account_pubkey\", id: \"ak_lkamsflkalsdalksdlasdlasdlamd\"}\\'';\n }\n if (value.length > 32) {\n return `Expected 32 pointers or less, got ${value.length} instead`;\n }\n return undefined;\n default:\n return undefined;\n }\n}\n\n/**\n * Validate transaction params\n * @category transaction builder\n * @param params - Object with tx params\n * @param schema - Transaction schema\n * @param excludeKeys - Array of keys to exclude for validation\n * @returns Object with validation errors\n */\nexport function validateParams(\n params: any,\n schema: TxField[],\n { excludeKeys = [] }: { excludeKeys: string[] },\n): object {\n return Object.fromEntries(\n schema\n // TODO: allow optional keys in schema\n .filter(([key]) => !excludeKeys.includes(key)\n && !['payload', 'nameFee', 'deposit', 'gasPrice', 'fee', 'gasLimit'].includes(key))\n .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])\n .filter(([, message]) => message),\n );\n}\n\n/**\n * Unpack binary transaction\n * @category transaction builder\n * @param binary - Array with binary transaction field's\n * @param schema - Transaction schema\n * @returns Object with transaction field's\n */\nexport function unpackRawTx<Tx extends TxSchema>(\n binary: Uint8Array | NestedUint8Array,\n schema: TxField[],\n): RawTxObject<Tx> {\n return schema\n .reduce<any>(\n (\n acc,\n [key, fieldType, prefix],\n index,\n ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),\n {},\n );\n}\n\n/**\n * @category transaction builder\n */\nexport interface BuiltTx<Tx extends TxSchema, Prefix extends Encoding> {\n tx: Encoded.Generic<Prefix>;\n rlpEncoded: Uint8Array;\n binary: Uint8Array;\n txObject: RawTxObject<Tx>;\n}\n\n/**\n * Build transaction hash\n * @category transaction builder\n * @param _params - Object with tx params\n * @param type - Transaction type\n * @param options - options\n * @param options.excludeKeys - Array of keys to exclude for validation and build\n * @param options.denomination - Denomination of amounts\n * @param options.prefix - Prefix of transaction\n * @throws {@link InvalidTxParamsError}\n * @returns object\n * @returns object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns object.rlpEncoded rlp encoded transaction\n * @returns object.binary binary transaction\n */\nexport function buildTx<TxType extends Tag, Prefix>(\n _params: Omit<TxTypeSchemas[TxType], 'tag' | 'VSN'> & { VSN?: number },\n type: TxType,\n {\n excludeKeys = [],\n prefix = Encoding.Transaction,\n vsn,\n denomination = AE_AMOUNT_FORMATS.AETTOS,\n }: {\n excludeKeys?: string[];\n prefix?: Encoding;\n vsn?: number;\n denomination?: AE_AMOUNT_FORMATS;\n } = {},\n): BuiltTx<TxSchema, Prefix extends Encoding ? Prefix : Encoding.Transaction> {\n const schemas = TX_SCHEMA[type];\n\n vsn ??= Math.max(...Object.keys(schemas).map((a) => +a));\n if (!isKeyOfObject(vsn, schemas)) throw new SchemaNotFoundError('serialization', Tag[type], vsn);\n\n const schema = schemas[vsn] as unknown as TxField[];\n\n const params = _params as TxParamsCommon & { onNode: Node; denomination?: AE_AMOUNT_FORMATS };\n params.VSN = vsn;\n params.tag = type;\n params.denomination = denomination;\n const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key));\n\n // Validation\n const valid = validateParams(params, schema, { excludeKeys });\n if (Object.keys(valid).length > 0) {\n throw new InvalidTxParamsError(`Transaction build error. ${JSON.stringify(valid)}`);\n }\n\n const binary = filteredSchema\n .map(([key, fieldType]: [keyof TxSchema, FIELD_TYPES, Encoding]) => (\n serializeField(\n params[key],\n fieldType,\n {\n ...params,\n txType: type,\n rebuildTx: (overrideParams: any) => buildTx(\n { ...params, ...overrideParams },\n type,\n {\n excludeKeys, prefix: Encoding.Transaction, vsn, denomination,\n },\n ),\n },\n )\n ))\n .filter((e) => e !== undefined);\n\n const rlpEncoded = rlpEncode(binary);\n const tx = encode(rlpEncoded, prefix);\n return {\n tx,\n rlpEncoded,\n binary,\n txObject: unpackRawTx<TxTypeSchemas[Tag]>(binary, schema),\n } as any;\n}\n\n/**\n * @category transaction builder\n */\nexport interface TxUnpacked<Tx extends TxSchema> {\n txType: Tag;\n tx: RawTxObject<Tx>;\n rlpEncoded: Uint8Array;\n}\n/**\n * Unpack transaction hash\n * @category transaction builder\n * @param encodedTx - Transaction to unpack\n * @param txType - Expected transaction type\n * @returns object\n * @returns object.tx Object with transaction param's\n * @returns object.txType Transaction type\n */\nexport function unpackTx<TxType extends Tag>(\n encodedTx: Encoded.Transaction | Encoded.Poi,\n txType?: TxType,\n): TxUnpacked<TxTypeSchemas[TxType]> {\n const rlpEncoded = decode(encodedTx);\n const binary = rlpDecode(rlpEncoded);\n const objId = +readInt(binary[0] as Buffer);\n if (!isKeyOfObject(objId, TX_SCHEMA)) throw new DecodeError(`Unknown transaction tag: ${objId}`);\n if (txType != null && txType !== objId) throw new DecodeError(`Expected transaction to have ${Tag[txType]} tag, got ${Tag[objId]} instead`);\n const vsn = +readInt(binary[1] as Buffer);\n if (!isKeyOfObject(vsn, TX_SCHEMA[objId])) throw new SchemaNotFoundError('deserialization', `tag ${objId}`, vsn);\n const schema = TX_SCHEMA[objId][vsn];\n return {\n txType: objId,\n tx: unpackRawTx<TxTypeSchemas[TxType]>(binary, schema),\n rlpEncoded,\n };\n}\n\n/**\n * Build a transaction hash\n * @category transaction builder\n * @param rawTx - base64 or rlp encoded transaction\n * @returns Transaction hash\n */\nexport function buildTxHash(rawTx: Encoded.Transaction | Uint8Array): Encoded.TxHash {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_')\n ? decode(rawTx)\n : rawTx;\n return encode(hash(data), Encoding.TxHash);\n}\n\n/**\n * Build a contract public key by contractCreateTx or gaAttach\n * @category contract\n * @param contractTx - Transaction\n * @returns Contract public key\n */\nexport function buildContractIdByContractTx(\n contractTx: Encoded.Transaction,\n): Encoded.ContractAddress {\n const { txType, tx } = unpackTx<Tag.ContractCreateTx | Tag.GaAttachTx>(contractTx);\n if (![Tag.ContractCreateTx, Tag.GaAttachTx].includes(txType)) {\n throw new ArgumentError('contractCreateTx', 'a contractCreateTx or gaAttach', txType);\n }\n return buildContractId(tx.ownerId, +tx.nonce);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["decode","encode","Encoding","AE_AMOUNT_FORMATS","hash","TX_SCHEMA","Tag","buildContractId","readInt","ArgumentError","DecodeError","SchemaNotFoundError","isKeyOfObject","unpackRawTx","binary","schema","length","reduce","acc","index","name","field","deserialized","deserialize","unpackTx","buildTx","params","prefix","denomination","AETTOS","schemas","tag","version","Math","max","Object","keys","map","a","key","serialize","rebuildTx","overrideParams","rlpEncode","Transaction","encodedTx","txType","rlpDecode","buildTxHash","rawTx","data","startsWith","TxHash","buildContractIdByContractTx","contractTx","ownerId","nonce","ContractCreateTx","GaAttachTx","includes"],"sources":["../../../src/tx/builder/index.ts"],"sourcesContent":["import { decode as rlpDecode, encode as rlpEncode, NestedUint8Array } from 'rlp';\nimport {\n decode, encode, Encoded, Encoding,\n} from '../../utils/encoder';\nimport { AE_AMOUNT_FORMATS } from '../../utils/amount-formatter';\nimport { hash } from '../../utils/crypto';\nimport { BinaryData, Field } from './field-types';\nimport {\n RawTxObject, TX_SCHEMA, TxField, TxSchema, TxTypeSchemas,\n} from './schema';\nimport { Tag } from './constants';\nimport { buildContractId, readInt } from './helpers';\nimport { ArgumentError, DecodeError, SchemaNotFoundError } from '../../utils/errors';\nimport { isKeyOfObject } from '../../utils/other';\n\n/**\n * JavaScript-based Transaction builder\n */\n\n/**\n * Unpack binary transaction\n * @category transaction builder\n * @param binary - Array with binary transaction field's\n * @param schema - Transaction schema\n * @returns Object with transaction field's\n */\nfunction unpackRawTx<Tx extends TxSchema>(\n binary: Uint8Array | NestedUint8Array,\n schema: TxField[],\n): RawTxObject<Tx> {\n if (binary.length !== schema.length) {\n throw new ArgumentError('Transaction RLP length', schema.length, binary.length);\n }\n return schema\n .reduce<any>(\n (\n acc,\n [name, field],\n index,\n ) => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const deserialized = field.deserialize(binary[index] as BinaryData, { unpackTx });\n return { ...acc, [name]: deserialized };\n },\n {},\n );\n}\n\n/**\n * Build transaction hash\n * @category transaction builder\n * @param params - Object with tx params\n * @param options - options\n * @param options.denomination - Denomination of amounts\n * @param options.prefix - Prefix of transaction\n * @throws {@link InvalidTxParamsError}\n * @returns object\n * @returns object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns object.rlpEncoded rlp encoded transaction\n * @returns object.binary binary transaction\n */\nexport function buildTx<\n TxType extends Tag,\n E extends Encoding = Encoding.Transaction,\n>(\n params: { tag: TxType; version?: number } & Omit<TxTypeSchemas[TxType], 'tag' | 'version'>\n // TODO: get it from gas-limit.ts somehow\n & (TxType extends Tag.ContractCreateTx | Tag.ContractCallTx\n | Tag.ChannelOffChainUpdateCallContract | Tag.GaAttachTx | Tag.GaMetaTx\n ? { gasMax?: number } : {}),\n {\n prefix,\n denomination = AE_AMOUNT_FORMATS.AETTOS,\n }: {\n prefix?: E;\n denomination?: AE_AMOUNT_FORMATS;\n } = {},\n): Encoded.Generic<E> {\n const schemas = TX_SCHEMA[params.tag];\n params.version ??= Math.max(...Object.keys(schemas).map((a) => +a));\n if (!isKeyOfObject(params.version, schemas)) {\n throw new SchemaNotFoundError('serialization', Tag[params.tag], params.version);\n }\n const schema = schemas[params.version] as unknown as TxField[];\n\n const binary = schema.map(([key, field]: [keyof TxSchema, Field]) => (\n field.serialize(\n params[key],\n {\n ...params,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n unpackTx,\n buildTx,\n denomination,\n rebuildTx: (overrideParams: any) => buildTx(\n { ...params, ...overrideParams },\n { denomination },\n ),\n },\n )\n ));\n\n // @ts-expect-error looks like a TypeScript edge case\n return encode(rlpEncode(binary), prefix ?? Encoding.Transaction);\n}\n\n/**\n * Unpack transaction hash\n * @category transaction builder\n * @param encodedTx - Transaction to unpack\n * @param txType - Expected transaction type\n * @returns object\n * @returns object.tx Object with transaction param's\n * @returns object.txType Transaction type\n */\nexport function unpackTx<TxType extends Tag>(\n encodedTx: Encoded.Transaction | Encoded.Poi,\n txType?: TxType,\n): RawTxObject<TxTypeSchemas[TxType]> {\n const binary = rlpDecode(decode(encodedTx));\n const tag = +readInt(binary[0] as Buffer);\n if (!isKeyOfObject(tag, TX_SCHEMA)) throw new DecodeError(`Unknown transaction tag: ${tag}`);\n if (txType != null && txType !== tag) throw new DecodeError(`Expected transaction to have ${Tag[txType]} tag, got ${Tag[tag]} instead`);\n const version = +readInt(binary[1] as Buffer);\n if (!isKeyOfObject(version, TX_SCHEMA[tag])) throw new SchemaNotFoundError('deserialization', `tag ${tag}`, version);\n const schema = TX_SCHEMA[tag][version];\n return unpackRawTx<TxTypeSchemas[TxType]>(binary, schema);\n}\n\n/**\n * Build a transaction hash\n * @category transaction builder\n * @param rawTx - base64 or rlp encoded transaction\n * @returns Transaction hash\n */\nexport function buildTxHash(rawTx: Encoded.Transaction | Uint8Array): Encoded.TxHash {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_')\n ? decode(rawTx)\n : rawTx;\n return encode(hash(data), Encoding.TxHash);\n}\n\n/**\n * Build a contract public key by contractCreateTx or gaAttach\n * @category contract\n * @param contractTx - Transaction\n * @returns Contract public key\n */\nexport function buildContractIdByContractTx(\n contractTx: Encoded.Transaction,\n): Encoded.ContractAddress {\n const { tag, ownerId, nonce } = unpackTx<Tag.ContractCreateTx | Tag.GaAttachTx>(contractTx);\n if (![Tag.ContractCreateTx, Tag.GaAttachTx].includes(tag)) {\n throw new ArgumentError('contractCreateTx', 'a contractCreateTx or gaAttach', tag);\n }\n return buildContractId(ownerId, +nonce);\n}\n"],"mappings":"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"}