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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +12031 -11231
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.d.ts +7 -3
  9. package/es/AeSdk.mjs +17 -22
  10. package/es/AeSdk.mjs.map +1 -1
  11. package/es/AeSdkAepp.d.ts +6 -5
  12. package/es/AeSdkAepp.mjs +7 -30
  13. package/es/AeSdkAepp.mjs.map +1 -1
  14. package/es/AeSdkBase.d.ts +18 -140
  15. package/es/AeSdkBase.mjs +30 -184
  16. package/es/AeSdkBase.mjs.map +1 -1
  17. package/es/AeSdkMethods.d.ts +123 -0
  18. package/es/AeSdkMethods.mjs +122 -0
  19. package/es/AeSdkMethods.mjs.map +1 -0
  20. package/es/AeSdkWallet.d.ts +7 -21
  21. package/es/AeSdkWallet.mjs +38 -86
  22. package/es/AeSdkWallet.mjs.map +1 -1
  23. package/es/Node.d.ts +11 -15
  24. package/es/Node.mjs +35 -48
  25. package/es/Node.mjs.map +1 -1
  26. package/es/account/Base.d.ts +24 -40
  27. package/es/account/Base.mjs +1 -101
  28. package/es/account/Base.mjs.map +1 -1
  29. package/es/account/Generalized.d.ts +16 -0
  30. package/es/account/Generalized.mjs +113 -0
  31. package/es/account/Generalized.mjs.map +1 -0
  32. package/es/account/Ledger.d.ts +28 -0
  33. package/es/account/Ledger.mjs +102 -0
  34. package/es/account/Ledger.mjs.map +1 -0
  35. package/es/account/LedgerFactory.d.ts +39 -0
  36. package/es/account/LedgerFactory.mjs +81 -0
  37. package/es/account/LedgerFactory.mjs.map +1 -0
  38. package/es/account/Memory.d.ts +13 -17
  39. package/es/account/Memory.mjs +43 -64
  40. package/es/account/Memory.mjs.map +1 -1
  41. package/es/account/Rpc.d.ts +6 -8
  42. package/es/account/Rpc.mjs +14 -32
  43. package/es/account/Rpc.mjs.map +1 -1
  44. package/es/aens.d.ts +4 -4
  45. package/es/aens.mjs +46 -41
  46. package/es/aens.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  48. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  50. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +22 -11
  51. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  53. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  54. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  55. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  56. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  57. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -42
  58. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  60. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/schema.mjs +14 -68
  62. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  63. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  64. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  65. package/es/apis/compiler/compiler.d.ts +23 -29
  66. package/es/apis/compiler/compiler.mjs +128 -189
  67. package/es/apis/compiler/compiler.mjs.map +1 -1
  68. package/es/apis/compiler/index.mjs.map +1 -1
  69. package/es/apis/compiler/models/index.d.ts +82 -135
  70. package/es/apis/compiler/models/index.mjs +1 -47
  71. package/es/apis/compiler/models/index.mjs.map +1 -1
  72. package/es/apis/compiler/models/mappers.d.ts +8 -8
  73. package/es/apis/compiler/models/mappers.mjs +165 -183
  74. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  75. package/es/apis/compiler/models/parameters.d.ts +0 -1
  76. package/es/apis/compiler/models/parameters.mjs +5 -9
  77. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  78. package/es/apis/node/index.mjs.map +1 -1
  79. package/es/apis/node/models/index.d.ts +48 -48
  80. package/es/apis/node/models/mappers.mjs +12 -6
  81. package/es/apis/node/models/mappers.mjs.map +1 -1
  82. package/es/apis/node/models/parameters.mjs.map +1 -1
  83. package/es/apis/node/node.mjs +43 -84
  84. package/es/apis/node/node.mjs.map +1 -1
  85. package/es/chain.d.ts +10 -2
  86. package/es/chain.mjs +37 -59
  87. package/es/chain.mjs.map +1 -1
  88. package/es/channel/Base.d.ts +200 -0
  89. package/es/channel/Base.mjs +293 -0
  90. package/es/channel/Base.mjs.map +1 -0
  91. package/es/channel/Contract.d.ts +248 -0
  92. package/es/channel/Contract.mjs +420 -0
  93. package/es/channel/Contract.mjs.map +1 -0
  94. package/es/channel/Spend.d.ts +219 -0
  95. package/es/channel/Spend.mjs +385 -0
  96. package/es/channel/Spend.mjs.map +1 -0
  97. package/es/channel/handlers.d.ts +8 -21
  98. package/es/channel/handlers.mjs +151 -899
  99. package/es/channel/handlers.mjs.map +1 -1
  100. package/es/channel/internal.d.ts +27 -21
  101. package/es/channel/internal.mjs +101 -191
  102. package/es/channel/internal.mjs.map +1 -1
  103. package/es/contract/Contract.d.ts +210 -0
  104. package/es/contract/Contract.mjs +551 -0
  105. package/es/contract/Contract.mjs.map +1 -0
  106. package/es/contract/compiler/Base.d.ts +81 -0
  107. package/es/contract/compiler/Base.mjs +5 -0
  108. package/es/contract/compiler/Base.mjs.map +1 -0
  109. package/es/contract/compiler/Cli.d.ts +23 -0
  110. package/es/contract/compiler/Cli.mjs +155 -0
  111. package/es/contract/compiler/Cli.mjs.map +1 -0
  112. package/es/contract/compiler/Http.d.ts +32 -0
  113. package/es/contract/compiler/Http.mjs +118 -0
  114. package/es/contract/compiler/Http.mjs.map +1 -0
  115. package/es/contract/compiler/HttpNode.d.ts +17 -0
  116. package/es/contract/compiler/HttpNode.mjs +26 -0
  117. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  118. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  119. package/es/contract/compiler/getFileSystem.mjs +40 -0
  120. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  121. package/es/contract/ga.d.ts +9 -34
  122. package/es/contract/ga.mjs +29 -112
  123. package/es/contract/ga.mjs.map +1 -1
  124. package/es/index-browser.d.ts +39 -0
  125. package/es/index-browser.mjs +55 -0
  126. package/es/index-browser.mjs.map +1 -0
  127. package/es/index.d.ts +4 -35
  128. package/es/index.mjs +4 -51
  129. package/es/index.mjs.map +1 -1
  130. package/es/oracle.d.ts +5 -5
  131. package/es/oracle.mjs +34 -40
  132. package/es/oracle.mjs.map +1 -1
  133. package/es/spend.d.ts +3 -3
  134. package/es/spend.mjs +18 -23
  135. package/es/spend.mjs.map +1 -1
  136. package/es/tx/builder/constants.d.ts +30 -2
  137. package/es/tx/builder/constants.mjs +43 -14
  138. package/es/tx/builder/constants.mjs.map +1 -1
  139. package/es/tx/builder/field-types/abi-version.d.ts +10 -0
  140. package/es/tx/builder/field-types/abi-version.mjs +20 -0
  141. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  142. package/es/tx/builder/field-types/address.d.ts +14 -0
  143. package/es/tx/builder/field-types/address.mjs +51 -0
  144. package/es/tx/builder/field-types/address.mjs.map +1 -0
  145. package/es/tx/builder/field-types/array.d.ts +7 -0
  146. package/es/tx/builder/field-types/array.mjs +11 -0
  147. package/es/tx/builder/field-types/array.mjs.map +1 -0
  148. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  149. package/es/tx/builder/field-types/boolean.mjs +13 -0
  150. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  151. package/es/tx/builder/field-types/coin-amount.d.ts +2 -3
  152. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  153. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  154. package/es/tx/builder/field-types/ct-version.d.ts +30 -0
  155. package/es/tx/builder/field-types/ct-version.mjs +48 -0
  156. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  157. package/es/tx/builder/field-types/deposit.d.ts +1 -2
  158. package/es/tx/builder/field-types/deposit.mjs +2 -4
  159. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  160. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  161. package/es/tx/builder/field-types/encoded.mjs +21 -0
  162. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  163. package/es/tx/builder/field-types/entry.d.ts +11 -0
  164. package/es/tx/builder/field-types/entry.mjs +31 -0
  165. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  166. package/es/tx/builder/field-types/enumeration.d.ts +7 -0
  167. package/es/tx/builder/field-types/enumeration.mjs +30 -0
  168. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  169. package/es/tx/builder/field-types/fee.d.ts +10 -15
  170. package/es/tx/builder/field-types/fee.mjs +31 -43
  171. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  172. package/es/tx/builder/field-types/field.mjs +0 -2
  173. package/es/tx/builder/field-types/field.mjs.map +1 -1
  174. package/es/tx/builder/field-types/gas-limit.d.ts +5 -2
  175. package/es/tx/builder/field-types/gas-limit.mjs +12 -14
  176. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  177. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  178. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  179. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  180. package/es/tx/builder/field-types/index.d.ts +80 -30
  181. package/es/tx/builder/field-types/index.mjs +34 -9
  182. package/es/tx/builder/field-types/index.mjs.map +1 -1
  183. package/es/tx/builder/field-types/mptree.d.ts +37 -0
  184. package/es/tx/builder/field-types/mptree.mjs +268 -0
  185. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  186. package/es/tx/builder/field-types/name-fee.d.ts +1 -3
  187. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  188. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  189. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  190. package/es/tx/builder/field-types/name-id.mjs +5 -10
  191. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  192. package/es/tx/builder/field-types/name.mjs +0 -2
  193. package/es/tx/builder/field-types/name.mjs.map +1 -1
  194. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  195. package/es/tx/builder/field-types/pointers.mjs +36 -0
  196. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  197. package/es/tx/builder/field-types/raw.d.ts +6 -0
  198. package/es/tx/builder/field-types/raw.mjs +13 -0
  199. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  200. package/es/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  201. package/es/tx/builder/field-types/short-u-int-const.mjs +16 -0
  202. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  203. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  204. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  205. package/es/tx/builder/field-types/string.d.ts +6 -0
  206. package/es/tx/builder/field-types/string.mjs +10 -0
  207. package/es/tx/builder/field-types/string.mjs.map +1 -0
  208. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  209. package/es/tx/builder/field-types/u-int.mjs +3 -4
  210. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  211. package/es/tx/builder/helpers.d.ts +2 -32
  212. package/es/tx/builder/helpers.mjs +19 -71
  213. package/es/tx/builder/helpers.mjs.map +1 -1
  214. package/es/tx/builder/index.d.ts +11 -49
  215. package/es/tx/builder/index.mjs +57 -337
  216. package/es/tx/builder/index.mjs.map +1 -1
  217. package/es/tx/builder/schema.d.ts +2367 -667
  218. package/es/tx/builder/schema.mjs +70 -145
  219. package/es/tx/builder/schema.mjs.map +1 -1
  220. package/es/tx/index.d.ts +4 -49
  221. package/es/tx/index.mjs +38 -112
  222. package/es/tx/index.mjs.map +1 -1
  223. package/es/tx/validator.d.ts +4 -6
  224. package/es/tx/validator.mjs +104 -90
  225. package/es/tx/validator.mjs.map +1 -1
  226. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  227. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  228. package/es/utils/amount-formatter.mjs +4 -10
  229. package/es/utils/amount-formatter.mjs.map +1 -1
  230. package/es/utils/autorest.d.ts +1 -0
  231. package/es/utils/autorest.mjs +17 -19
  232. package/es/utils/autorest.mjs.map +1 -1
  233. package/es/utils/bignumber.mjs +4 -7
  234. package/es/utils/bignumber.mjs.map +1 -1
  235. package/es/utils/bytes.d.ts +0 -17
  236. package/es/utils/bytes.mjs +6 -35
  237. package/es/utils/bytes.mjs.map +1 -1
  238. package/es/utils/crypto.d.ts +15 -8
  239. package/es/utils/crypto.mjs +40 -40
  240. package/es/utils/crypto.mjs.map +1 -1
  241. package/es/utils/encoder-types.d.ts +28 -28
  242. package/es/utils/encoder-types.mjs +0 -1
  243. package/es/utils/encoder-types.mjs.map +1 -1
  244. package/es/utils/encoder.d.ts +0 -1
  245. package/es/utils/encoder.mjs +7 -15
  246. package/es/utils/encoder.mjs.map +1 -1
  247. package/es/utils/errors.d.ts +15 -14
  248. package/es/utils/errors.mjs +86 -172
  249. package/es/utils/errors.mjs.map +1 -1
  250. package/es/utils/hd-wallet.d.ts +27 -19
  251. package/es/utils/hd-wallet.mjs +42 -26
  252. package/es/utils/hd-wallet.mjs.map +1 -1
  253. package/es/utils/json-big.mjs +0 -8
  254. package/es/utils/json-big.mjs.map +1 -1
  255. package/es/utils/keystore.d.ts +2 -0
  256. package/es/utils/keystore.mjs +37 -36
  257. package/es/utils/keystore.mjs.map +1 -1
  258. package/es/utils/other.d.ts +4 -2
  259. package/es/utils/other.mjs +11 -7
  260. package/es/utils/other.mjs.map +1 -1
  261. package/es/utils/semver-satisfies.mjs +0 -3
  262. package/es/utils/semver-satisfies.mjs.map +1 -1
  263. package/es/utils/string.d.ts +0 -12
  264. package/es/utils/string.mjs +1 -21
  265. package/es/utils/string.mjs.map +1 -1
  266. package/package.json +98 -51
  267. package/src/AeSdk.ts +15 -11
  268. package/src/AeSdkAepp.ts +9 -7
  269. package/src/AeSdkBase.ts +31 -202
  270. package/src/AeSdkMethods.ts +169 -0
  271. package/src/AeSdkWallet.ts +16 -47
  272. package/src/Node.ts +17 -18
  273. package/src/account/Base.ts +29 -75
  274. package/src/account/Generalized.ts +98 -0
  275. package/src/account/Ledger.ts +131 -0
  276. package/src/account/LedgerFactory.ts +86 -0
  277. package/src/account/Memory.ts +46 -60
  278. package/src/account/Rpc.ts +17 -26
  279. package/src/aens.ts +13 -11
  280. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +21 -9
  281. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  282. package/src/aepp-wallet-communication/rpc/RpcClient.ts +4 -4
  283. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  284. package/src/aepp-wallet-communication/schema.ts +18 -18
  285. package/src/apis/compiler/code-model-v4.yaml +681 -888
  286. package/src/apis/compiler/compiler.ts +113 -154
  287. package/src/apis/compiler/models/index.ts +80 -140
  288. package/src/apis/compiler/models/mappers.ts +165 -183
  289. package/src/apis/compiler/models/parameters.ts +6 -12
  290. package/src/chain.ts +11 -6
  291. package/src/channel/Base.ts +335 -0
  292. package/src/channel/Contract.ts +488 -0
  293. package/src/channel/Spend.ts +408 -0
  294. package/src/channel/handlers.ts +164 -582
  295. package/src/channel/internal.ts +114 -143
  296. package/src/contract/Contract.ts +610 -0
  297. package/src/contract/compiler/Base.ts +94 -0
  298. package/src/contract/compiler/Cli.ts +134 -0
  299. package/src/contract/compiler/Http.ts +124 -0
  300. package/src/contract/compiler/HttpNode.ts +26 -0
  301. package/src/contract/compiler/getFileSystem.ts +42 -0
  302. package/src/contract/ga.ts +23 -106
  303. package/src/index-browser.ts +58 -0
  304. package/src/index.ts +4 -55
  305. package/src/oracle.ts +8 -8
  306. package/src/spend.ts +6 -14
  307. package/src/tx/builder/constants.ts +33 -3
  308. package/src/tx/builder/field-types/abi-version.ts +21 -0
  309. package/src/tx/builder/field-types/address.ts +62 -0
  310. package/src/tx/builder/field-types/array.ts +19 -0
  311. package/src/tx/builder/field-types/boolean.ts +9 -0
  312. package/src/tx/builder/field-types/coin-amount.ts +4 -9
  313. package/src/tx/builder/field-types/ct-version.ts +50 -0
  314. package/src/tx/builder/field-types/deposit.ts +1 -1
  315. package/src/tx/builder/field-types/encoded.ts +27 -0
  316. package/src/tx/builder/field-types/entry.ts +31 -0
  317. package/src/tx/builder/field-types/enumeration.ts +32 -0
  318. package/src/tx/builder/field-types/fee.ts +39 -21
  319. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  320. package/src/tx/builder/field-types/gas-price.ts +0 -2
  321. package/src/tx/builder/field-types/index.ts +54 -15
  322. package/src/tx/builder/field-types/mptree.ts +242 -0
  323. package/src/tx/builder/field-types/name-fee.ts +2 -3
  324. package/src/tx/builder/field-types/name-id.ts +7 -10
  325. package/src/tx/builder/field-types/pointers.ts +41 -0
  326. package/src/tx/builder/field-types/raw.ts +9 -0
  327. package/src/tx/builder/field-types/short-u-int-const.ts +20 -0
  328. package/src/tx/builder/field-types/string.ts +11 -0
  329. package/src/tx/builder/field-types/u-int.ts +4 -5
  330. package/src/tx/builder/helpers.ts +10 -60
  331. package/src/tx/builder/index.ts +65 -308
  332. package/src/tx/builder/schema.ts +280 -341
  333. package/src/tx/index.ts +40 -103
  334. package/src/tx/validator.ts +91 -96
  335. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  336. package/src/utils/autorest.ts +16 -1
  337. package/src/utils/bytes.ts +6 -34
  338. package/src/utils/crypto.ts +23 -16
  339. package/src/utils/encoder.ts +0 -1
  340. package/src/utils/errors.ts +22 -25
  341. package/src/utils/hd-wallet.ts +30 -9
  342. package/src/utils/keystore.ts +24 -21
  343. package/src/utils/other.ts +16 -1
  344. package/src/utils/string.ts +0 -20
  345. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  346. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  347. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  348. package/types-legacy/ts4.2/AeSdkMethods.d.ts +140 -0
  349. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  350. package/types-legacy/ts4.2/Node.d.ts +78 -0
  351. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  352. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  353. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  354. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  355. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  356. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  357. package/types-legacy/ts4.2/aens.d.ts +222 -0
  358. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  359. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  360. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  361. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  362. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  363. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  364. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  365. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  366. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  367. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  368. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  369. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  370. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  371. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  372. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  373. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  374. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  375. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  376. package/types-legacy/ts4.2/chain.d.ts +256 -0
  377. package/types-legacy/ts4.2/channel/Base.d.ts +199 -0
  378. package/types-legacy/ts4.2/channel/Contract.d.ts +248 -0
  379. package/types-legacy/ts4.2/channel/Spend.d.ts +219 -0
  380. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  381. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  382. package/types-legacy/ts4.2/contract/Contract.d.ts +212 -0
  383. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +81 -0
  384. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  385. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  386. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  387. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  388. package/types-legacy/ts4.2/contract/ga.d.ts +44 -0
  389. package/types-legacy/ts4.2/globals.d.ts +16 -0
  390. package/types-legacy/ts4.2/index-browser.d.ts +39 -0
  391. package/types-legacy/ts4.2/index.d.ts +5 -0
  392. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  393. package/types-legacy/ts4.2/spend.d.ts +62 -0
  394. package/types-legacy/ts4.2/tx/builder/constants.d.ts +98 -0
  395. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +10 -0
  396. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +21 -0
  397. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  398. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  399. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  400. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +42 -0
  401. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  402. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  403. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  404. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +7 -0
  405. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +20 -0
  406. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  407. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +15 -0
  408. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  409. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +129 -0
  410. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +43 -0
  411. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +18 -0
  412. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  413. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  414. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  415. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  416. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  417. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  418. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  419. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +7 -0
  420. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  421. package/types-legacy/ts4.2/tx/builder/index.d.ts +50 -0
  422. package/types-legacy/ts4.2/tx/builder/schema.d.ts +4675 -0
  423. package/types-legacy/ts4.2/tx/index.d.ts +19 -0
  424. package/types-legacy/ts4.2/tx/validator.d.ts +18 -0
  425. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  426. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  427. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  428. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  429. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  430. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  431. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  432. package/types-legacy/ts4.2/utils/errors.d.ts +475 -0
  433. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  434. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  435. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  436. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  437. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  438. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  439. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  440. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  441. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  442. package/types-legacy/ts4.5/AeSdkMethods.d.ts +140 -0
  443. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  444. package/types-legacy/ts4.5/Node.d.ts +78 -0
  445. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  446. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  447. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  448. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  449. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  450. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  451. package/types-legacy/ts4.5/aens.d.ts +222 -0
  452. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  453. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  454. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  455. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  456. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  457. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  458. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  459. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  460. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  461. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  462. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  463. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  464. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  465. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  466. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  467. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  468. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  469. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  470. package/types-legacy/ts4.5/chain.d.ts +256 -0
  471. package/types-legacy/ts4.5/channel/Base.d.ts +199 -0
  472. package/types-legacy/ts4.5/channel/Contract.d.ts +248 -0
  473. package/types-legacy/ts4.5/channel/Spend.d.ts +219 -0
  474. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  475. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  476. package/types-legacy/ts4.5/contract/Contract.d.ts +212 -0
  477. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +81 -0
  478. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  479. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  480. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  481. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  482. package/types-legacy/ts4.5/contract/ga.d.ts +44 -0
  483. package/types-legacy/ts4.5/index-browser.d.ts +39 -0
  484. package/types-legacy/ts4.5/index.d.ts +4 -0
  485. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  486. package/types-legacy/ts4.5/spend.d.ts +62 -0
  487. package/types-legacy/ts4.5/tx/builder/constants.d.ts +98 -0
  488. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +10 -0
  489. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +21 -0
  490. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  491. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  492. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  493. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +42 -0
  494. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  495. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  496. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  497. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +7 -0
  498. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +20 -0
  499. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  500. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +15 -0
  501. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  502. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +129 -0
  503. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +43 -0
  504. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +18 -0
  505. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  506. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  507. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  508. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  509. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  510. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  511. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  512. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +7 -0
  513. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  514. package/types-legacy/ts4.5/tx/builder/index.d.ts +50 -0
  515. package/types-legacy/ts4.5/tx/builder/schema.d.ts +4675 -0
  516. package/types-legacy/ts4.5/tx/index.d.ts +19 -0
  517. package/types-legacy/ts4.5/tx/validator.d.ts +18 -0
  518. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  519. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  520. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  521. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  522. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  523. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  524. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  525. package/types-legacy/ts4.5/utils/errors.d.ts +475 -0
  526. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  527. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  528. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  529. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  530. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  531. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  532. package/es/channel/index.d.ts +0 -625
  533. package/es/channel/index.mjs +0 -975
  534. package/es/channel/index.mjs.map +0 -1
  535. package/es/contract/Compiler.d.ts +0 -18
  536. package/es/contract/Compiler.mjs +0 -68
  537. package/es/contract/Compiler.mjs.map +0 -1
  538. package/es/contract/aci.d.ts +0 -127
  539. package/es/contract/aci.mjs +0 -508
  540. package/es/contract/aci.mjs.map +0 -1
  541. package/es/contract/methods.d.ts +0 -71
  542. package/es/contract/methods.mjs +0 -104
  543. package/es/contract/methods.mjs.map +0 -1
  544. package/es/deprecated/index.d.ts +0 -143
  545. package/es/deprecated/index.mjs +0 -162
  546. package/es/deprecated/index.mjs.map +0 -1
  547. package/es/deprecated/methods.d.ts +0 -18
  548. package/es/deprecated/methods.mjs +0 -26
  549. package/es/deprecated/methods.mjs.map +0 -1
  550. package/es/tx/builder/address.d.ts +0 -25
  551. package/es/tx/builder/address.mjs +0 -45
  552. package/es/tx/builder/address.mjs.map +0 -1
  553. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  554. package/es/utils/mptree.d.ts +0 -26
  555. package/es/utils/mptree.mjs +0 -165
  556. package/es/utils/mptree.mjs.map +0 -1
  557. package/src/channel/index.ts +0 -1025
  558. package/src/contract/Compiler.ts +0 -67
  559. package/src/contract/aci.ts +0 -537
  560. package/src/contract/methods.ts +0 -123
  561. package/src/deprecated/index.ts +0 -172
  562. package/src/deprecated/methods.ts +0 -25
  563. package/src/tx/builder/address.ts +0 -50
  564. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
  565. package/src/utils/mptree.ts +0 -145
package/src/oracle.ts CHANGED
@@ -40,7 +40,7 @@ import { RequestTimedOutError } from './utils/errors';
40
40
  import {
41
41
  decode, encode, Encoded, Encoding,
42
42
  } from './utils/encoder';
43
- import { _getPollInterval } from './chain';
43
+ import { _getPollInterval, getHeight } from './chain';
44
44
  import { _buildTx, BuildTxOptions } from './tx';
45
45
  import Node from './Node';
46
46
  import AccountBase from './account/Base';
@@ -106,11 +106,11 @@ export async function pollForQueryResponse(
106
106
  let ttl;
107
107
  let response;
108
108
  do {
109
- if (height != null) await pause(interval);
110
109
  ({ response, ttl } = await onNode.getOracleQueryByPubkeyAndQueryId(oracleId, queryId));
111
110
  const responseBuffer = decode(response as Encoded.OracleResponse);
112
111
  if (responseBuffer.length > 0) return responseBuffer.toString();
113
- height = await this.getHeight();
112
+ await pause(interval);
113
+ height = await getHeight({ onNode });
114
114
  } while (ttl >= height);
115
115
  throw new RequestTimedOutError(height);
116
116
  }
@@ -169,7 +169,7 @@ export async function postQueryToOracle(
169
169
  options: PostQueryToOracleOptions,
170
170
  ): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getQueryObject>>> {
171
171
  options.queryFee ??= (await options.onNode.getOracleByPubkey(oracleId)).queryFee.toString();
172
- const senderId = await options.onAccount.address(options);
172
+ const senderId = options.onAccount.address;
173
173
 
174
174
  const oracleQueryTx = await _buildTx(Tag.OracleQueryTx, {
175
175
  queryTtlType: QUERY_TTL.type,
@@ -181,7 +181,7 @@ export async function postQueryToOracle(
181
181
  senderId,
182
182
  query,
183
183
  });
184
- const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx).tx;
184
+ const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx);
185
185
  const queryId = oracleQueryId(senderId, nonce, oracleId);
186
186
  return {
187
187
  ...await send(oracleQueryTx, options),
@@ -219,7 +219,7 @@ export async function extendOracleTtl(
219
219
  oracleTtlType: ORACLE_TTL.type,
220
220
  oracleTtlValue: ORACLE_TTL.value,
221
221
  ...options,
222
- callerId: await options.onAccount.address(options),
222
+ callerId: options.onAccount.address,
223
223
  oracleId,
224
224
  });
225
225
  return {
@@ -256,7 +256,7 @@ export async function respondToQuery(
256
256
  responseTtlType: RESPONSE_TTL.type,
257
257
  responseTtlValue: RESPONSE_TTL.value,
258
258
  ...options,
259
- callerId: await options.onAccount.address(options),
259
+ callerId: options.onAccount.address,
260
260
  oracleId,
261
261
  queryId,
262
262
  response,
@@ -338,7 +338,7 @@ export async function registerOracle(
338
338
  responseFormat: string,
339
339
  options: RegisterOracleOptions,
340
340
  ): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>> {
341
- const accountId = await options.onAccount.address(options);
341
+ const accountId = options.onAccount.address;
342
342
  const oracleRegisterTx = await _buildTx(Tag.OracleRegisterTx, {
343
343
  queryFee: QUERY_FEE,
344
344
  oracleTtlValue: ORACLE_TTL.value,
package/src/spend.ts CHANGED
@@ -15,9 +15,7 @@
15
15
  * PERFORMANCE OF THIS SOFTWARE.
16
16
  */
17
17
  import BigNumber from 'bignumber.js';
18
- import {
19
- sendTransaction, getAccount, getBalance, resolveName,
20
- } from './chain';
18
+ import { sendTransaction, getBalance, resolveName } from './chain';
21
19
  import { _buildTx, BuildTxOptions } from './tx';
22
20
  import { buildTxHash, unpackTx } from './tx/builder';
23
21
  import { ArgumentError } from './utils/errors';
@@ -38,15 +36,9 @@ export async function send(
38
36
  tx: Encoded.Transaction,
39
37
  options: SendOptions,
40
38
  ): Promise<SendReturnType> {
41
- // TODO: detect authFun in AccountGa
42
- const authFun = options.innerTx === true
43
- ? undefined
44
- : (await getAccount(await options.onAccount.address(options), options)).authFun;
45
-
46
39
  const signed = await options.onAccount.signTransaction(tx, {
47
40
  ...options,
48
- authFun,
49
- networkId: (await options.onNode.getStatus()).networkId,
41
+ networkId: await options.onNode.getNetworkId(),
50
42
  });
51
43
 
52
44
  return options.innerTx === true
@@ -75,7 +67,7 @@ export async function spend(
75
67
  return send(
76
68
  await _buildTx(Tag.SpendTx, {
77
69
  ...options,
78
- senderId: await options.onAccount.address(options),
70
+ senderId: options.onAccount.address,
79
71
  recipientId: await resolveName<Encoding.AccountAddress>(
80
72
  recipientIdOrName,
81
73
  'account_pubkey',
@@ -113,12 +105,12 @@ export async function transferFunds(
113
105
  'account_pubkey',
114
106
  options,
115
107
  );
116
- const senderId = await options.onAccount.address(options);
108
+ const senderId = options.onAccount.address;
117
109
  const balance = new BigNumber(
118
110
  await getBalance.bind(options.onAccount)(senderId, options),
119
111
  );
120
112
  const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);
121
- const { tx: { fee } } = unpackTx(
113
+ const { fee } = unpackTx(
122
114
  await _buildTx(Tag.SpendTx, {
123
115
  ...options, senderId, recipientId, amount: desiredAmount,
124
116
  }),
@@ -152,7 +144,7 @@ export async function payForTransaction(
152
144
  return send(
153
145
  await _buildTx(
154
146
  Tag.PayingForTx,
155
- { ...options, payerId: await options.onAccount.address(options), tx: transaction },
147
+ { ...options, payerId: options.onAccount.address, tx: transaction },
156
148
  ),
157
149
  options,
158
150
  );
@@ -1,6 +1,8 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { mapObject } from '../../utils/other';
3
3
 
4
+ export const MAX_AUTH_FUN_GAS = 50000;
5
+ export type Int = number | string | BigNumber;
4
6
  // # AENS
5
7
  export type AensName = `${string}.chain`;
6
8
  export const NAME_TTL = 180000;
@@ -56,6 +58,34 @@ export const NAME_BID_RANGES = mapObject({
56
58
  1: 5702887,
57
59
  }, ([key, value]) => [key, new BigNumber(value).times(NAME_FEE_MULTIPLIER)]);
58
60
 
61
+ export enum ConsensusProtocolVersion {
62
+ Iris = 5,
63
+ }
64
+
65
+ /**
66
+ * @category transaction builder
67
+ * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}
68
+ */
69
+ export enum VmVersion {
70
+ NoVm = 0,
71
+ Sophia = 1,
72
+ SophiaImprovementsMinerva = 3,
73
+ SophiaImprovementsFortuna = 4,
74
+ Fate = 5,
75
+ SophiaImprovementsLima = 6,
76
+ Fate2 = 7,
77
+ }
78
+
79
+ /**
80
+ * @category transaction builder
81
+ * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}
82
+ */
83
+ export enum AbiVersion {
84
+ NoAbi = 0,
85
+ Sophia = 1,
86
+ Fate = 3,
87
+ }
88
+
59
89
  /**
60
90
  * Enum with tag types
61
91
  * @category transaction builder
@@ -67,13 +97,13 @@ export enum Tag {
67
97
  Account = 10,
68
98
  SignedTx = 11,
69
99
  SpendTx = 12,
70
- // Oracle = 20,
100
+ Oracle = 20,
71
101
  // OracleQuery = 21,
72
102
  OracleRegisterTx = 22,
73
103
  OracleQueryTx = 23,
74
104
  OracleResponseTx = 24,
75
105
  OracleExtendTx = 25,
76
- // Name = 30,
106
+ Name = 30,
77
107
  // NameCommitment = 31,
78
108
  NameClaimTx = 32,
79
109
  NamePreclaimTx = 33,
@@ -115,7 +145,7 @@ export enum Tag {
115
145
  NameserviceMtree = 624,
116
146
  OraclesMtree = 625,
117
147
  AccountsMtree = 626,
118
- CompilerSophia = 70,
148
+ // CompilerSophia = 70,
119
149
  GaAttachTx = 80,
120
150
  GaMetaTx = 81,
121
151
  PayingForTx = 82,
@@ -0,0 +1,21 @@
1
+ import { Tag, ConsensusProtocolVersion, AbiVersion } from '../constants';
2
+ import { getProtocolDetails } from './ct-version';
3
+
4
+ export default {
5
+ serialize(
6
+ value: AbiVersion | undefined,
7
+ { tag, consensusProtocolVersion = ConsensusProtocolVersion.Iris }:
8
+ { tag: Tag; consensusProtocolVersion: ConsensusProtocolVersion },
9
+ ): Buffer {
10
+ const result = value ?? getProtocolDetails(
11
+ consensusProtocolVersion,
12
+ Tag.ContractCallTx === tag || Tag.GaMetaTx === tag ? 'contract-call' : 'oracle-call',
13
+ ).abiVersion;
14
+
15
+ return Buffer.from([result]);
16
+ },
17
+
18
+ deserialize(buffer: Buffer): AbiVersion {
19
+ return buffer[0];
20
+ },
21
+ };
@@ -0,0 +1,62 @@
1
+ import { ArgumentError, PrefixNotFoundError, TagNotFoundError } from '../../../utils/errors';
2
+ import { toBytes } from '../../../utils/bytes';
3
+ import {
4
+ decode, encode, Encoded, Encoding,
5
+ } from '../../../utils/encoder';
6
+ import { isItemOfArray } from '../../../utils/other';
7
+
8
+ /**
9
+ * Map of prefix to ID tag constant
10
+ * @see {@link https://github.com/aeternity/protocol/blob/master/serializations.md#the-id-type}
11
+ * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_id.erl#L97-L102}
12
+ * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L163-L168}
13
+ */
14
+ export const idTagToEncoding = [
15
+ Encoding.AccountAddress,
16
+ Encoding.Name,
17
+ Encoding.Commitment,
18
+ Encoding.OracleAddress,
19
+ Encoding.ContractAddress,
20
+ Encoding.Channel,
21
+ ] as const;
22
+
23
+ export type AddressEncodings = typeof idTagToEncoding[number];
24
+
25
+ export default function genAddressField<Encoding extends AddressEncodings>(
26
+ ...encodings: Encoding[]
27
+ ): {
28
+ serialize: (value: Encoded.Generic<Encoding>) => Buffer;
29
+ deserialize: (value: Buffer) => Encoded.Generic<Encoding>;
30
+ } {
31
+ return {
32
+ /**
33
+ * Utility function to create and _id type
34
+ * @param hashId - Encoded hash
35
+ * @returns Buffer Buffer with ID tag and decoded HASh
36
+ */
37
+ serialize(hashId) {
38
+ const enc = hashId.slice(0, 2);
39
+ if (!isItemOfArray(enc, idTagToEncoding)) throw new TagNotFoundError(enc);
40
+ if (!isItemOfArray(enc, encodings)) {
41
+ throw new ArgumentError('Address encoding', encodings.join(', '), enc);
42
+ }
43
+ const idTag = idTagToEncoding.indexOf(enc) + 1;
44
+ return Buffer.from([...toBytes(idTag), ...decode(hashId)]);
45
+ },
46
+
47
+ /**
48
+ * Utility function to read and _id type
49
+ * @param buf - Data
50
+ * @returns Encoded hash string with prefix
51
+ */
52
+ deserialize(buf) {
53
+ const idTag = Buffer.from(buf).readUIntBE(0, 1);
54
+ const enc = idTagToEncoding[idTag - 1];
55
+ if (enc == null) throw new PrefixNotFoundError(idTag);
56
+ if (!isItemOfArray(enc, encodings)) {
57
+ throw new ArgumentError('Address encoding', encodings.join(', '), enc);
58
+ }
59
+ return encode(buf.subarray(1), enc) as Encoded.Generic<Encoding>;
60
+ },
61
+ };
62
+ }
@@ -0,0 +1,19 @@
1
+ export default function genArrayField<Input, Output, Binary>(
2
+ itemHandler: {
3
+ serialize: (value: Input, params: unknown) => Binary;
4
+ deserialize: (value: Binary, params: unknown) => Output;
5
+ },
6
+ ): {
7
+ serialize: (value: Input[], params: unknown) => Binary[];
8
+ deserialize: (value: Binary[], params: unknown) => Output[];
9
+ } {
10
+ return {
11
+ serialize(items, params) {
12
+ return items.map((item) => itemHandler.serialize(item, params));
13
+ },
14
+
15
+ deserialize(buffers, params) {
16
+ return buffers.map((buffer) => itemHandler.deserialize(buffer, params));
17
+ },
18
+ };
19
+ }
@@ -0,0 +1,9 @@
1
+ export default {
2
+ serialize(value: boolean): Buffer {
3
+ return Buffer.from([value ? 1 : 0]);
4
+ },
5
+
6
+ deserialize(buffer: Buffer): boolean {
7
+ return buffer[0] === 1;
8
+ },
9
+ };
@@ -1,6 +1,6 @@
1
- import uInt, { Int } from './u-int';
1
+ import uInt from './u-int';
2
+ import { Int } from '../constants';
2
3
  import { AE_AMOUNT_FORMATS, formatAmount } from '../../../utils/amount-formatter';
3
- import { ArgumentError } from '../../../utils/errors';
4
4
 
5
5
  export interface Options { denomination?: AE_AMOUNT_FORMATS }
6
6
 
@@ -8,11 +8,10 @@ export default {
8
8
  ...uInt,
9
9
 
10
10
  serializeAettos(value: string | undefined): string {
11
- if (value == null) throw new ArgumentError('value', 'provided', value);
12
- return value;
11
+ return value ?? '0';
13
12
  },
14
13
 
15
- serializeOptional(value: Int | undefined, { denomination, ...options }: Options): Buffer {
14
+ serialize(value: Int | undefined, { denomination, ...options }: Options): Buffer {
16
15
  return uInt.serialize(
17
16
  this.serializeAettos(
18
17
  value != null ? formatAmount(value, { denomination }) : value,
@@ -20,8 +19,4 @@ export default {
20
19
  ),
21
20
  );
22
21
  },
23
-
24
- serialize(value: Int, options: Options): Buffer {
25
- return this.serializeOptional(value, options);
26
- },
27
22
  };
@@ -0,0 +1,50 @@
1
+ import { ConsensusProtocolVersion, VmVersion, AbiVersion } from '../constants';
2
+
3
+ // First abi/vm by default
4
+ export const ProtocolToVmAbi = {
5
+ [ConsensusProtocolVersion.Iris]: {
6
+ 'contract-create': {
7
+ vmVersion: [VmVersion.Fate2], abiVersion: [AbiVersion.Fate],
8
+ },
9
+ // TODO: Ensure that AEVM (Sophia?) is still available here
10
+ 'contract-call': {
11
+ vmVersion: [], abiVersion: [AbiVersion.Fate, AbiVersion.Sophia],
12
+ },
13
+ 'oracle-call': {
14
+ vmVersion: [], abiVersion: [AbiVersion.NoAbi, AbiVersion.Sophia],
15
+ },
16
+ },
17
+ } as const;
18
+
19
+ export interface CtVersion {
20
+ vmVersion: VmVersion;
21
+ abiVersion: AbiVersion;
22
+ }
23
+
24
+ export function getProtocolDetails(
25
+ protocolVersion: ConsensusProtocolVersion,
26
+ type: 'contract-create' | 'contract-call' | 'oracle-call',
27
+ ): CtVersion {
28
+ const protocol = ProtocolToVmAbi[protocolVersion][type];
29
+ return {
30
+ vmVersion: protocol.vmVersion[0] ?? VmVersion.Fate2,
31
+ abiVersion: protocol.abiVersion[0],
32
+ };
33
+ }
34
+
35
+ export default {
36
+ serialize(
37
+ value: CtVersion | undefined,
38
+ { consensusProtocolVersion = ConsensusProtocolVersion.Iris }:
39
+ { consensusProtocolVersion: ConsensusProtocolVersion },
40
+ ): Buffer {
41
+ value ??= getProtocolDetails(consensusProtocolVersion, 'contract-create');
42
+
43
+ return Buffer.from([value.vmVersion, 0, value.abiVersion]);
44
+ },
45
+
46
+ deserialize(buffer: Buffer): CtVersion {
47
+ const [vm, , abi] = buffer;
48
+ return { vmVersion: +vm, abiVersion: +abi };
49
+ },
50
+ };
@@ -1,5 +1,5 @@
1
1
  import coinAmount from './coin-amount';
2
- import { Int } from './u-int';
2
+ import { Int } from '../constants';
3
3
  import { IllegalArgumentError } from '../../../utils/errors';
4
4
 
5
5
  export default {
@@ -0,0 +1,27 @@
1
+ import {
2
+ decode, encode, Encoded, Encoding,
3
+ } from '../../../utils/encoder';
4
+ import { ArgumentError } from '../../../utils/errors';
5
+
6
+ export default function genEncodedField<E extends Encoding, Optional extends boolean = false>(
7
+ encoding: E,
8
+ optional?: Optional,
9
+ ): {
10
+ serialize: Optional extends true
11
+ ? (value?: Encoded.Generic<E>) => Buffer : (value: Encoded.Generic<E>) => Buffer;
12
+ deserialize: (value: Buffer) => Encoded.Generic<Encoding>;
13
+ } {
14
+ return {
15
+ serialize(encodedData?: Encoded.Generic<E>) {
16
+ if (encodedData == null) {
17
+ if (optional === true) return Buffer.from([]);
18
+ throw new ArgumentError('Encoded data', 'provided', encodedData);
19
+ }
20
+ return decode(encodedData);
21
+ },
22
+
23
+ deserialize(buffer) {
24
+ return encode(buffer, encoding);
25
+ },
26
+ };
27
+ }
@@ -0,0 +1,31 @@
1
+ import { decode, encode, Encoding } from '../../../utils/encoder';
2
+ import { Tag } from '../constants';
3
+ import { ArgumentError } from '../../../utils/errors';
4
+ import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
5
+
6
+ export default function genEntryField<T extends Tag = Tag>(tag?: T): {
7
+ serialize: (
8
+ // TODO: replace with `Parameters<typeof buildTxType<T>>[0]`,
9
+ // but fix TS2502 value is referenced directly or indirectly in its own type annotation
10
+ value: any,
11
+ options: { buildTx: typeof buildTxType },
12
+ ) => Buffer;
13
+ deserialize: (
14
+ value: Buffer, options: { unpackTx: typeof unpackTxType },
15
+ // TODO: replace with `ReturnType<typeof unpackTxType<T>>`,
16
+ // TS2577 Return type annotation circularly references itself
17
+ ) => any;
18
+ } {
19
+ return {
20
+ serialize(txParams, { buildTx }) {
21
+ if (ArrayBuffer.isView(txParams)) return Buffer.from(txParams as any);
22
+ return decode(buildTx({ ...txParams, ...tag != null && { tag } }));
23
+ },
24
+
25
+ deserialize(buf, { unpackTx }) {
26
+ const tx = unpackTx(encode(buf, Encoding.Transaction));
27
+ if (tag != null && tx.tag !== tag) throw new ArgumentError('Tag', tag, tx.tag);
28
+ return tx;
29
+ },
30
+ };
31
+ }
@@ -0,0 +1,32 @@
1
+ import { ArgumentError } from '../../../utils/errors';
2
+ import { isItemOfArray } from '../../../utils/other';
3
+
4
+ export default function genEnumerationField<
5
+ Enum extends { [key: string]: number | string },
6
+ >(enm: Enum): {
7
+ serialize: (value: Enum[keyof Enum]) => Buffer;
8
+ deserialize: (value: Buffer) => Enum[keyof Enum];
9
+ } {
10
+ const values = Object.values(enm).filter((v) => typeof v === 'number');
11
+ return {
12
+ serialize(value) {
13
+ if (typeof value !== 'number') throw new ArgumentError('value', 'to be a number', value);
14
+ if (value > 0xff) throw new ArgumentError('value', 'to be less than 256', value);
15
+ if (!isItemOfArray(value, values)) {
16
+ throw new ArgumentError('value', 'to be a value of Enum', value);
17
+ }
18
+ return Buffer.from([value]);
19
+ },
20
+
21
+ deserialize(buffer) {
22
+ if (buffer.length !== 1) {
23
+ throw new ArgumentError('buffer', 'to have single element', buffer.length);
24
+ }
25
+ const value = buffer[0];
26
+ if (!isItemOfArray(value, values)) {
27
+ throw new ArgumentError('value', 'to be a value of Enum', value);
28
+ }
29
+ return value as Enum[keyof Enum];
30
+ },
31
+ };
32
+ }
@@ -3,6 +3,8 @@ import { IllegalArgumentError } from '../../../utils/errors';
3
3
  import { MIN_GAS_PRICE, Tag } from '../constants';
4
4
  import coinAmount from './coin-amount';
5
5
  import { isKeyOfObject } from '../../../utils/other';
6
+ import { decode, Encoded } from '../../../utils/encoder';
7
+ import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
6
8
 
7
9
  const BASE_GAS = 15000;
8
10
  const GAS_PER_BYTE = 20;
@@ -75,7 +77,7 @@ const TX_FEE_OTHER_GAS = (
75
77
  }
76
78
  };
77
79
 
78
- function getOracleRelativeTtl(params: any, txType: Tag): number {
80
+ function getOracleRelativeTtl(params: any): number {
79
81
  const ttlKeys = {
80
82
  [Tag.OracleRegisterTx]: 'oracleTtlValue',
81
83
  [Tag.OracleExtendTx]: 'oracleTtlValue',
@@ -83,21 +85,27 @@ function getOracleRelativeTtl(params: any, txType: Tag): number {
83
85
  [Tag.OracleResponseTx]: 'responseTtlValue',
84
86
  } as const;
85
87
 
86
- if (!isKeyOfObject(txType, ttlKeys)) return 1;
87
- return params[ttlKeys[txType]];
88
+ const { tag } = params;
89
+ if (!isKeyOfObject(tag, ttlKeys)) return 1;
90
+ return params[ttlKeys[tag]];
88
91
  }
89
92
 
90
93
  /**
91
94
  * Calculate fee based on tx type and params
92
95
  */
93
- export function buildFee(txType: Tag, buildTx: any): BigNumber {
94
- const { rlpEncoded: { length }, txObject } = buildTx;
96
+ export function buildFee(
97
+ builtTx: Encoded.Transaction,
98
+ unpackTx: typeof unpackTxType,
99
+ buildTx: typeof buildTxType,
100
+ ): BigNumber {
101
+ const { length } = decode(builtTx);
102
+ const txObject = unpackTx(builtTx);
95
103
 
96
- return TX_FEE_BASE_GAS(txType)
97
- .plus(TX_FEE_OTHER_GAS(txType, length, {
98
- relativeTtl: getOracleRelativeTtl(txObject, txType),
99
- innerTxSize: [Tag.GaMetaTx, Tag.PayingForTx].includes(txType)
100
- ? txObject.tx.tx.encodedTx.rlpEncoded.length
104
+ return TX_FEE_BASE_GAS(txObject.tag)
105
+ .plus(TX_FEE_OTHER_GAS(txObject.tag, length, {
106
+ relativeTtl: getOracleRelativeTtl(txObject),
107
+ innerTxSize: txObject.tag === Tag.GaMetaTx || txObject.tag === Tag.PayingForTx
108
+ ? decode(buildTx(txObject.tx.encodedTx)).length
101
109
  : 0,
102
110
  }))
103
111
  .times(MIN_GAS_PRICE);
@@ -106,18 +114,18 @@ export function buildFee(txType: Tag, buildTx: any): BigNumber {
106
114
  /**
107
115
  * Calculate min fee
108
116
  * @category transaction builder
109
- * @param txType - Transaction type
110
117
  * @param rebuildTx - Callback to get built transaction with specific fee
111
118
  */
112
- export function calculateMinFee(
113
- txType: Tag,
114
- rebuildTx: (value: BigNumber) => any,
119
+ function calculateMinFee(
120
+ rebuildTx: (value: BigNumber) => Encoded.Transaction,
121
+ unpackTx: typeof unpackTxType,
122
+ buildTx: typeof buildTxType,
115
123
  ): BigNumber {
116
124
  let fee = new BigNumber(0);
117
125
  let previousFee;
118
126
  do {
119
127
  previousFee = fee;
120
- fee = buildFee(txType, rebuildTx(fee));
128
+ fee = buildFee(rebuildTx(fee), unpackTx, buildTx);
121
129
  } while (!fee.eq(previousFee));
122
130
  return fee;
123
131
  }
@@ -127,17 +135,27 @@ export default {
127
135
 
128
136
  serializeAettos(
129
137
  _value: string | undefined,
130
- { txType, rebuildTx, _computingMinFee }:
131
- { txType: Tag; rebuildTx: (params: any) => any; _computingMinFee?: string },
138
+ {
139
+ rebuildTx, unpackTx, buildTx, _computingMinFee, _pickBiggerFee,
140
+ }: {
141
+ rebuildTx: (params: any) => Encoded.Transaction;
142
+ unpackTx: typeof unpackTxType;
143
+ buildTx: typeof buildTxType;
144
+ _computingMinFee?: BigNumber;
145
+ _pickBiggerFee?: boolean;
146
+ },
132
147
  ): string {
133
- if (_computingMinFee != null) return _computingMinFee;
134
- const minFee = calculateMinFee(txType, (fee) => rebuildTx({ _computingMinFee: fee }));
148
+ if (_computingMinFee != null) return _computingMinFee.toFixed();
149
+ const minFee = calculateMinFee(
150
+ (fee) => rebuildTx({ _computingMinFee: fee }),
151
+ unpackTx,
152
+ buildTx,
153
+ );
135
154
  const value = new BigNumber(_value ?? minFee);
136
155
  if (minFee.gt(value)) {
156
+ if (_pickBiggerFee === true) return minFee.toFixed();
137
157
  throw new IllegalArgumentError(`Fee ${value.toString()} must be bigger then ${minFee}`);
138
158
  }
139
159
  return value.toFixed();
140
160
  },
141
-
142
- serialize: coinAmount.serializeOptional,
143
161
  };
@@ -1,14 +1,16 @@
1
1
  import { IllegalArgumentError } from '../../../utils/errors';
2
- import { MIN_GAS_PRICE, Tag } from '../constants';
2
+ import { MIN_GAS_PRICE, Tag, MAX_AUTH_FUN_GAS } from '../constants';
3
3
  import shortUInt from './short-u-int';
4
4
  import { buildFee } from './fee';
5
+ import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
5
6
 
6
7
  function calculateGasLimitMax(
7
- txType: Tag,
8
8
  gasMax: number,
9
9
  rebuildTx: (value: number) => any,
10
+ unpackTx: typeof unpackTxType,
11
+ buildTx: typeof buildTxType,
10
12
  ): number {
11
- return gasMax - +buildFee(txType, rebuildTx(gasMax)).dividedBy(MIN_GAS_PRICE);
13
+ return gasMax - +buildFee(rebuildTx(gasMax), unpackTx, buildTx).dividedBy(MIN_GAS_PRICE);
12
14
  }
13
15
 
14
16
  export default {
@@ -17,20 +19,23 @@ export default {
17
19
  serialize(
18
20
  _value: number | undefined,
19
21
  {
20
- txType, rebuildTx, gasMax = 6e6, _computingGasLimit,
22
+ tag, rebuildTx, unpackTx, buildTx, gasMax = 6e6, _computingGasLimit,
21
23
  }: {
22
- txType: Tag;
24
+ tag: Tag;
23
25
  rebuildTx: (params: any) => any;
26
+ unpackTx: typeof unpackTxType;
27
+ buildTx: typeof buildTxType;
24
28
  gasMax: number;
25
29
  _computingGasLimit?: number;
26
30
  },
27
31
  ): Buffer {
28
32
  if (_computingGasLimit != null) return shortUInt.serialize(_computingGasLimit);
29
33
 
30
- const gasLimitMax = calculateGasLimitMax(
31
- txType,
34
+ const gasLimitMax = tag === Tag.GaMetaTx ? MAX_AUTH_FUN_GAS : calculateGasLimitMax(
32
35
  gasMax,
33
- (gasLimit) => rebuildTx({ _computingGasLimit: gasLimit }),
36
+ (gasLimit) => rebuildTx({ _computingGasLimit: gasLimit, _pickBiggerFee: true }),
37
+ unpackTx,
38
+ buildTx,
34
39
  );
35
40
  const value = _value ?? gasLimitMax;
36
41
  if (value > gasLimitMax) {
@@ -11,6 +11,4 @@ export default {
11
11
  }
12
12
  return value;
13
13
  },
14
-
15
- serialize: coinAmount.serializeOptional,
16
14
  };