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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.map +1 -1
  3. package/dist/aepp-sdk.browser.js +1 -1
  4. package/dist/aepp-sdk.browser.js.map +1 -1
  5. package/dist/aepp-sdk.js +6580 -8860
  6. package/dist/aepp-sdk.js.map +1 -1
  7. package/es/AeSdk.d.ts +7 -3
  8. package/es/AeSdk.mjs +17 -22
  9. package/es/AeSdk.mjs.map +1 -1
  10. package/es/AeSdkAepp.d.ts +6 -5
  11. package/es/AeSdkAepp.mjs +7 -30
  12. package/es/AeSdkAepp.mjs.map +1 -1
  13. package/es/AeSdkBase.d.ts +18 -140
  14. package/es/AeSdkBase.mjs +27 -185
  15. package/es/AeSdkBase.mjs.map +1 -1
  16. package/es/AeSdkMethods.d.ts +124 -0
  17. package/es/AeSdkMethods.mjs +122 -0
  18. package/es/AeSdkMethods.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +7 -21
  20. package/es/AeSdkWallet.mjs +38 -86
  21. package/es/AeSdkWallet.mjs.map +1 -1
  22. package/es/Node.d.ts +7 -12
  23. package/es/Node.mjs +34 -47
  24. package/es/Node.mjs.map +1 -1
  25. package/es/account/Base.d.ts +24 -40
  26. package/es/account/Base.mjs +1 -101
  27. package/es/account/Base.mjs.map +1 -1
  28. package/es/account/Generalized.d.ts +16 -0
  29. package/es/account/Generalized.mjs +111 -0
  30. package/es/account/Generalized.mjs.map +1 -0
  31. package/es/account/Ledger.d.ts +28 -0
  32. package/es/account/Ledger.mjs +101 -0
  33. package/es/account/Ledger.mjs.map +1 -0
  34. package/es/account/LedgerFactory.d.ts +39 -0
  35. package/es/account/LedgerFactory.mjs +81 -0
  36. package/es/account/LedgerFactory.mjs.map +1 -0
  37. package/es/account/Memory.d.ts +13 -17
  38. package/es/account/Memory.mjs +43 -65
  39. package/es/account/Memory.mjs.map +1 -1
  40. package/es/account/Rpc.d.ts +6 -8
  41. package/es/account/Rpc.mjs +14 -32
  42. package/es/account/Rpc.mjs.map +1 -1
  43. package/es/aens.d.ts +3 -3
  44. package/es/aens.mjs +42 -41
  45. package/es/aens.mjs.map +1 -1
  46. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  47. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  48. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +3 -7
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  51. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  53. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  54. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  55. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +4 -41
  56. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  57. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  58. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/schema.mjs +14 -68
  60. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  62. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  63. package/es/apis/compiler/compiler.d.ts +23 -29
  64. package/es/apis/compiler/compiler.mjs +128 -189
  65. package/es/apis/compiler/compiler.mjs.map +1 -1
  66. package/es/apis/compiler/index.mjs.map +1 -1
  67. package/es/apis/compiler/models/index.d.ts +82 -135
  68. package/es/apis/compiler/models/index.mjs +1 -47
  69. package/es/apis/compiler/models/index.mjs.map +1 -1
  70. package/es/apis/compiler/models/mappers.d.ts +8 -8
  71. package/es/apis/compiler/models/mappers.mjs +165 -183
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  73. package/es/apis/compiler/models/parameters.d.ts +0 -1
  74. package/es/apis/compiler/models/parameters.mjs +5 -9
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  76. package/es/apis/node/index.mjs.map +1 -1
  77. package/es/apis/node/models/index.d.ts +48 -48
  78. package/es/apis/node/models/mappers.mjs +12 -6
  79. package/es/apis/node/models/mappers.mjs.map +1 -1
  80. package/es/apis/node/models/parameters.mjs.map +1 -1
  81. package/es/apis/node/node.mjs +43 -84
  82. package/es/apis/node/node.mjs.map +1 -1
  83. package/es/chain.d.ts +1 -1
  84. package/es/chain.mjs +33 -58
  85. package/es/chain.mjs.map +1 -1
  86. package/es/channel/Base.d.ts +195 -0
  87. package/es/channel/Base.mjs +290 -0
  88. package/es/channel/Base.mjs.map +1 -0
  89. package/es/channel/Contract.d.ts +247 -0
  90. package/es/channel/Contract.mjs +420 -0
  91. package/es/channel/Contract.mjs.map +1 -0
  92. package/es/channel/Spend.d.ts +217 -0
  93. package/es/channel/Spend.mjs +383 -0
  94. package/es/channel/Spend.mjs.map +1 -0
  95. package/es/channel/handlers.d.ts +8 -21
  96. package/es/channel/handlers.mjs +141 -891
  97. package/es/channel/handlers.mjs.map +1 -1
  98. package/es/channel/internal.d.ts +27 -21
  99. package/es/channel/internal.mjs +98 -190
  100. package/es/channel/internal.mjs.map +1 -1
  101. package/es/contract/{Compiler.d.ts → CompilerHttp.d.ts} +3 -3
  102. package/es/contract/{Compiler.mjs → CompilerHttp.mjs} +8 -13
  103. package/es/contract/CompilerHttp.mjs.map +1 -0
  104. package/es/contract/Contract.d.ts +235 -0
  105. package/es/contract/Contract.mjs +534 -0
  106. package/es/contract/Contract.mjs.map +1 -0
  107. package/es/contract/ga.d.ts +7 -33
  108. package/es/contract/ga.mjs +20 -112
  109. package/es/contract/ga.mjs.map +1 -1
  110. package/es/index.d.ts +9 -6
  111. package/es/index.mjs +8 -6
  112. package/es/index.mjs.map +1 -1
  113. package/es/oracle.d.ts +5 -5
  114. package/es/oracle.mjs +33 -39
  115. package/es/oracle.mjs.map +1 -1
  116. package/es/spend.d.ts +3 -3
  117. package/es/spend.mjs +17 -20
  118. package/es/spend.mjs.map +1 -1
  119. package/es/tx/builder/constants.d.ts +2 -1
  120. package/es/tx/builder/constants.mjs +12 -12
  121. package/es/tx/builder/constants.mjs.map +1 -1
  122. package/es/tx/builder/field-types/address.d.ts +15 -0
  123. package/es/tx/builder/field-types/address.mjs +42 -0
  124. package/es/tx/builder/field-types/address.mjs.map +1 -0
  125. package/es/tx/builder/field-types/addresses.d.ts +6 -0
  126. package/es/tx/builder/field-types/addresses.mjs +13 -0
  127. package/es/tx/builder/field-types/addresses.mjs.map +1 -0
  128. package/es/tx/builder/field-types/coin-amount.d.ts +1 -2
  129. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  130. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  131. package/es/tx/builder/field-types/deposit.d.ts +0 -1
  132. package/es/tx/builder/field-types/deposit.mjs +2 -4
  133. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  134. package/es/tx/builder/field-types/enumeration.d.ts +5 -0
  135. package/es/tx/builder/field-types/enumeration.mjs +21 -0
  136. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  137. package/es/tx/builder/field-types/fee.d.ts +1 -9
  138. package/es/tx/builder/field-types/fee.mjs +9 -25
  139. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  140. package/es/tx/builder/field-types/field.mjs +0 -2
  141. package/es/tx/builder/field-types/field.mjs.map +1 -1
  142. package/es/tx/builder/field-types/gas-limit.mjs +4 -9
  143. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  144. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  145. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  146. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  147. package/es/tx/builder/field-types/index.d.ts +23 -11
  148. package/es/tx/builder/field-types/index.mjs +10 -3
  149. package/es/tx/builder/field-types/index.mjs.map +1 -1
  150. package/es/tx/builder/field-types/name-fee.d.ts +0 -1
  151. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  152. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  153. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  154. package/es/tx/builder/field-types/name-id.mjs +4 -10
  155. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  156. package/es/tx/builder/field-types/name.mjs +0 -2
  157. package/es/tx/builder/field-types/name.mjs.map +1 -1
  158. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  159. package/es/tx/builder/field-types/pointers.mjs +36 -0
  160. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  161. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  162. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  163. package/es/tx/builder/field-types/u-int.d.ts +1 -1
  164. package/es/tx/builder/field-types/u-int.mjs +3 -4
  165. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  166. package/es/tx/builder/helpers.d.ts +2 -32
  167. package/es/tx/builder/helpers.mjs +19 -71
  168. package/es/tx/builder/helpers.mjs.map +1 -1
  169. package/es/tx/builder/index.d.ts +1 -21
  170. package/es/tx/builder/index.mjs +29 -148
  171. package/es/tx/builder/index.mjs.map +1 -1
  172. package/es/tx/builder/schema.d.ts +336 -176
  173. package/es/tx/builder/schema.mjs +71 -78
  174. package/es/tx/builder/schema.mjs.map +1 -1
  175. package/es/tx/index.d.ts +3 -33
  176. package/es/tx/index.mjs +26 -43
  177. package/es/tx/index.mjs.map +1 -1
  178. package/es/tx/validator.d.ts +2 -2
  179. package/es/tx/validator.mjs +86 -59
  180. package/es/tx/validator.mjs.map +1 -1
  181. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  182. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  183. package/es/utils/amount-formatter.mjs +4 -10
  184. package/es/utils/amount-formatter.mjs.map +1 -1
  185. package/es/utils/autorest.d.ts +1 -0
  186. package/es/utils/autorest.mjs +17 -19
  187. package/es/utils/autorest.mjs.map +1 -1
  188. package/es/utils/bignumber.mjs +4 -7
  189. package/es/utils/bignumber.mjs.map +1 -1
  190. package/es/utils/bytes.d.ts +0 -17
  191. package/es/utils/bytes.mjs +6 -35
  192. package/es/utils/bytes.mjs.map +1 -1
  193. package/es/utils/crypto.d.ts +15 -8
  194. package/es/utils/crypto.mjs +40 -40
  195. package/es/utils/crypto.mjs.map +1 -1
  196. package/es/utils/encoder-types.d.ts +28 -28
  197. package/es/utils/encoder-types.mjs +0 -1
  198. package/es/utils/encoder-types.mjs.map +1 -1
  199. package/es/utils/encoder.d.ts +0 -1
  200. package/es/utils/encoder.mjs +7 -15
  201. package/es/utils/encoder.mjs.map +1 -1
  202. package/es/utils/errors.d.ts +12 -6
  203. package/es/utils/errors.mjs +87 -163
  204. package/es/utils/errors.mjs.map +1 -1
  205. package/es/utils/hd-wallet.d.ts +27 -19
  206. package/es/utils/hd-wallet.mjs +42 -26
  207. package/es/utils/hd-wallet.mjs.map +1 -1
  208. package/es/utils/json-big.mjs +0 -8
  209. package/es/utils/json-big.mjs.map +1 -1
  210. package/es/utils/keystore.d.ts +2 -0
  211. package/es/utils/keystore.mjs +37 -36
  212. package/es/utils/keystore.mjs.map +1 -1
  213. package/es/utils/mptree.d.ts +1 -1
  214. package/es/utils/mptree.mjs +4 -26
  215. package/es/utils/mptree.mjs.map +1 -1
  216. package/es/utils/other.d.ts +3 -1
  217. package/es/utils/other.mjs +11 -7
  218. package/es/utils/other.mjs.map +1 -1
  219. package/es/utils/semver-satisfies.mjs +0 -3
  220. package/es/utils/semver-satisfies.mjs.map +1 -1
  221. package/es/utils/string.d.ts +0 -12
  222. package/es/utils/string.mjs +1 -21
  223. package/es/utils/string.mjs.map +1 -1
  224. package/package.json +87 -48
  225. package/src/AeSdk.ts +15 -11
  226. package/src/AeSdkAepp.ts +9 -7
  227. package/src/AeSdkBase.ts +28 -202
  228. package/src/AeSdkMethods.ts +170 -0
  229. package/src/AeSdkWallet.ts +16 -47
  230. package/src/Node.ts +11 -15
  231. package/src/account/Base.ts +29 -75
  232. package/src/account/Generalized.ts +98 -0
  233. package/src/account/Ledger.ts +131 -0
  234. package/src/account/LedgerFactory.ts +86 -0
  235. package/src/account/Memory.ts +46 -60
  236. package/src/account/Rpc.ts +17 -26
  237. package/src/aens.ts +10 -9
  238. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +5 -4
  239. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  240. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  241. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  242. package/src/aepp-wallet-communication/schema.ts +18 -18
  243. package/src/apis/compiler/code-model-v4.yaml +681 -888
  244. package/src/apis/compiler/compiler.ts +113 -154
  245. package/src/apis/compiler/models/index.ts +80 -140
  246. package/src/apis/compiler/models/mappers.ts +165 -183
  247. package/src/apis/compiler/models/parameters.ts +6 -12
  248. package/src/chain.ts +6 -3
  249. package/src/channel/Base.ts +327 -0
  250. package/src/channel/Contract.ts +487 -0
  251. package/src/channel/Spend.ts +403 -0
  252. package/src/channel/handlers.ts +154 -573
  253. package/src/channel/internal.ts +113 -142
  254. package/src/contract/{Compiler.ts → CompilerHttp.ts} +5 -5
  255. package/src/contract/Contract.ts +620 -0
  256. package/src/contract/ga.ts +18 -104
  257. package/src/index.ts +9 -8
  258. package/src/oracle.ts +7 -7
  259. package/src/spend.ts +5 -13
  260. package/src/tx/builder/constants.ts +1 -0
  261. package/src/tx/builder/field-types/address.ts +52 -0
  262. package/src/tx/builder/field-types/addresses.ts +18 -0
  263. package/src/tx/builder/field-types/coin-amount.ts +2 -8
  264. package/src/tx/builder/field-types/enumeration.ts +21 -0
  265. package/src/tx/builder/field-types/fee.ts +1 -3
  266. package/src/tx/builder/field-types/gas-limit.ts +2 -2
  267. package/src/tx/builder/field-types/gas-price.ts +0 -2
  268. package/src/tx/builder/field-types/index.ts +16 -6
  269. package/src/tx/builder/field-types/name-fee.ts +1 -1
  270. package/src/tx/builder/field-types/name-id.ts +7 -10
  271. package/src/tx/builder/field-types/pointers.ts +41 -0
  272. package/src/tx/builder/field-types/u-int.ts +3 -2
  273. package/src/tx/builder/helpers.ts +10 -60
  274. package/src/tx/builder/index.ts +6 -65
  275. package/src/tx/builder/schema.ts +89 -100
  276. package/src/tx/index.ts +19 -15
  277. package/src/tx/validator.ts +36 -18
  278. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  279. package/src/utils/autorest.ts +16 -1
  280. package/src/utils/bytes.ts +5 -33
  281. package/src/utils/crypto.ts +23 -16
  282. package/src/utils/encoder.ts +0 -1
  283. package/src/utils/errors.ts +18 -12
  284. package/src/utils/hd-wallet.ts +30 -9
  285. package/src/utils/keystore.ts +24 -21
  286. package/src/utils/other.ts +16 -1
  287. package/src/utils/string.ts +0 -20
  288. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  289. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  290. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  291. package/types-legacy/ts4.2/AeSdkMethods.d.ts +141 -0
  292. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  293. package/types-legacy/ts4.2/Node.d.ts +78 -0
  294. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  295. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  296. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  297. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  298. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  299. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  300. package/types-legacy/ts4.2/aens.d.ts +222 -0
  301. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  302. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  303. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  304. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  305. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  306. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  307. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  308. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  309. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  310. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  311. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  312. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  313. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  314. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  315. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  316. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  317. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  318. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  319. package/types-legacy/ts4.2/chain.d.ts +248 -0
  320. package/types-legacy/ts4.2/channel/Base.d.ts +194 -0
  321. package/types-legacy/ts4.2/channel/Contract.d.ts +247 -0
  322. package/types-legacy/ts4.2/channel/Spend.d.ts +217 -0
  323. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  324. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  325. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +18 -0
  326. package/types-legacy/ts4.2/contract/Contract.d.ts +237 -0
  327. package/types-legacy/ts4.2/contract/ga.d.ts +43 -0
  328. package/types-legacy/ts4.2/globals.d.ts +16 -0
  329. package/types-legacy/ts4.2/index.d.ts +39 -0
  330. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  331. package/types-legacy/ts4.2/spend.d.ts +62 -0
  332. package/types-legacy/ts4.2/tx/builder/constants.d.ts +71 -0
  333. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +22 -0
  334. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +6 -0
  335. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  336. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  337. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -0
  338. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +17 -0
  339. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  340. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +12 -0
  341. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  342. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +85 -0
  343. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +19 -0
  344. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  345. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  346. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  347. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  348. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +8 -0
  349. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  350. package/types-legacy/ts4.2/tx/builder/index.d.ts +68 -0
  351. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2963 -0
  352. package/types-legacy/ts4.2/tx/index.d.ts +34 -0
  353. package/types-legacy/ts4.2/tx/validator.d.ts +20 -0
  354. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  355. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  356. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  357. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  358. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  359. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  360. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  361. package/types-legacy/ts4.2/utils/errors.d.ts +480 -0
  362. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  363. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  364. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  365. package/types-legacy/ts4.2/utils/mptree.d.ts +32 -0
  366. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  367. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  368. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  369. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  370. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  371. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  372. package/types-legacy/ts4.5/AeSdkMethods.d.ts +141 -0
  373. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  374. package/types-legacy/ts4.5/Node.d.ts +78 -0
  375. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  376. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  377. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  378. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  379. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  380. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  381. package/types-legacy/ts4.5/aens.d.ts +222 -0
  382. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  383. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  384. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  385. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  386. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  387. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  388. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  389. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  390. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  391. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  392. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  393. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  394. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  395. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  396. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  397. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  398. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  399. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  400. package/types-legacy/ts4.5/chain.d.ts +248 -0
  401. package/types-legacy/ts4.5/channel/Base.d.ts +194 -0
  402. package/types-legacy/ts4.5/channel/Contract.d.ts +247 -0
  403. package/types-legacy/ts4.5/channel/Spend.d.ts +217 -0
  404. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  405. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  406. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +18 -0
  407. package/types-legacy/ts4.5/contract/Contract.d.ts +237 -0
  408. package/types-legacy/ts4.5/contract/ga.d.ts +43 -0
  409. package/types-legacy/ts4.5/index.d.ts +38 -0
  410. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  411. package/types-legacy/ts4.5/spend.d.ts +62 -0
  412. package/types-legacy/ts4.5/tx/builder/constants.d.ts +71 -0
  413. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +22 -0
  414. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +6 -0
  415. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  416. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  417. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -0
  418. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +17 -0
  419. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  420. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +12 -0
  421. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  422. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +85 -0
  423. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +19 -0
  424. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  426. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +8 -0
  429. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  430. package/types-legacy/ts4.5/tx/builder/index.d.ts +68 -0
  431. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2963 -0
  432. package/types-legacy/ts4.5/tx/index.d.ts +34 -0
  433. package/types-legacy/ts4.5/tx/validator.d.ts +20 -0
  434. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  435. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  436. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  437. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  438. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  439. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  440. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  441. package/types-legacy/ts4.5/utils/errors.d.ts +480 -0
  442. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  443. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  444. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  445. package/types-legacy/ts4.5/utils/mptree.d.ts +32 -0
  446. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  447. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  448. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  449. package/es/channel/index.d.ts +0 -625
  450. package/es/channel/index.mjs +0 -975
  451. package/es/channel/index.mjs.map +0 -1
  452. package/es/contract/Compiler.mjs.map +0 -1
  453. package/es/contract/aci.d.ts +0 -127
  454. package/es/contract/aci.mjs +0 -509
  455. package/es/contract/aci.mjs.map +0 -1
  456. package/es/contract/methods.d.ts +0 -71
  457. package/es/contract/methods.mjs +0 -104
  458. package/es/contract/methods.mjs.map +0 -1
  459. package/es/deprecated/index.d.ts +0 -143
  460. package/es/deprecated/index.mjs +0 -162
  461. package/es/deprecated/index.mjs.map +0 -1
  462. package/es/deprecated/methods.d.ts +0 -18
  463. package/es/deprecated/methods.mjs +0 -26
  464. package/es/deprecated/methods.mjs.map +0 -1
  465. package/es/tx/builder/address.d.ts +0 -25
  466. package/es/tx/builder/address.mjs +0 -45
  467. package/es/tx/builder/address.mjs.map +0 -1
  468. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  469. package/src/channel/index.ts +0 -1025
  470. package/src/contract/aci.ts +0 -538
  471. package/src/contract/methods.ts +0 -123
  472. package/src/deprecated/index.ts +0 -172
  473. package/src/deprecated/methods.ts +0 -25
  474. package/src/tx/builder/address.ts +0 -50
  475. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
@@ -19,52 +19,32 @@
19
19
  * Generalized Account module - routines to use generalized account
20
20
  */
21
21
 
22
- import { MAX_AUTH_FUN_GAS, TxSchema } from '../tx/builder/schema';
23
22
  import { Tag } from '../tx/builder/constants';
24
- import {
25
- buildContractIdByContractTx, buildTx, BuiltTx, TxUnpacked, unpackTx,
26
- } from '../tx/builder';
27
- import {
28
- _buildTx, BuildTxOptions, getVmVersion, prepareTxParams,
29
- } from '../tx';
23
+ import { buildContractIdByContractTx } from '../tx/builder';
24
+ import { _buildTx, BuildTxOptions } from '../tx';
30
25
  import { hash } from '../utils/crypto';
31
- import { decode, Encoded, Encoding } from '../utils/encoder';
32
- import { IllegalArgumentError, MissingParamError, InvalidAuthDataError } from '../utils/errors';
26
+ import { decode, Encoded } from '../utils/encoder';
27
+ import { IllegalArgumentError } from '../utils/errors';
33
28
  import { concatBuffers } from '../utils/other';
34
29
  import AccountBase from '../account/Base';
35
- import { getContractInstance } from './methods';
30
+ import Contract from './Contract';
36
31
  import { send, SendOptions } from '../spend';
37
32
  import Node from '../Node';
38
33
  import { getAccount } from '../chain';
39
- import Compiler from './Compiler';
40
-
41
- /**
42
- * Check if account is GA
43
- * @category contract
44
- * @param address - Account address
45
- * @param options - Options
46
- * @returns if account is GA
47
- */
48
- export async function isGA(
49
- address: Encoded.AccountAddress,
50
- options: Parameters<typeof getAccount>[1],
51
- ): Promise<boolean> {
52
- const { contractId } = await getAccount(address, options);
53
- return contractId != null;
54
- }
34
+ import CompilerHttp from './CompilerHttp';
55
35
 
56
36
  /**
57
37
  * Convert current account to GA
58
38
  * @category contract
59
39
  * @param authFnName - Authorization function name
60
- * @param source - Auth contract source code
40
+ * @param sourceCode - Auth contract source code
61
41
  * @param args - init arguments
62
42
  * @param options - Options
63
43
  * @returns General Account Object
64
44
  */
65
45
  export async function createGeneralizedAccount(
66
46
  authFnName: string,
67
- source: string,
47
+ sourceCode: string,
68
48
  args: any[],
69
49
  {
70
50
  onAccount, onCompiler, onNode, ...options
@@ -75,20 +55,22 @@ export async function createGeneralizedAccount(
75
55
  rawTx: Encoded.Transaction;
76
56
  gaContractId: Encoded.ContractAddress;
77
57
  }>> {
78
- const ownerId = await onAccount.address(options);
79
- if (await isGA(ownerId, { onNode })) throw new IllegalArgumentError(`Account ${ownerId} is already GA`);
58
+ const ownerId = onAccount.address;
59
+ if ((await getAccount(ownerId, { onNode })).kind === 'generalized') {
60
+ throw new IllegalArgumentError(`Account ${ownerId} is already GA`);
61
+ }
80
62
 
81
- const contract = await getContractInstance({
82
- onAccount, onCompiler, onNode, source,
63
+ const contract = await Contract.initialize<{ init: (...a: any[]) => void }>({
64
+ onAccount, onCompiler, onNode, sourceCode,
83
65
  });
84
66
 
85
67
  const tx = await _buildTx(Tag.GaAttachTx, {
86
68
  ...options,
87
69
  onNode,
88
- code: await contract.compile(),
70
+ code: await contract.$compile(),
89
71
  gasLimit: options.gasLimit ?? await contract._estimateGas('init', args, options),
90
72
  ownerId,
91
- callData: contract.calldata.encode(contract._name, 'init', args),
73
+ callData: contract._calldata.encode(contract._name, 'init', args),
92
74
  authFun: hash(authFnName),
93
75
  });
94
76
  const contractId = buildContractIdByContractTx(tx);
@@ -108,78 +90,11 @@ interface CreateGeneralizedAccountOptions extends
108
90
  BuildTxOptions<Tag.GaAttachTx, 'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit'>,
109
91
  SendOptions {
110
92
  onAccount: AccountBase;
111
- onCompiler: Compiler;
93
+ onCompiler: CompilerHttp;
112
94
  onNode: Node;
113
95
  gasLimit?: number;
114
96
  }
115
97
 
116
- /**
117
- * Create a metaTx transaction
118
- * @category contract
119
- * @param rawTransaction - Inner transaction
120
- * @param authData - Object with gaMeta params
121
- * @param authFnName - Authorization function name
122
- * @param options - Options
123
- * @param options.onAccount - Account to use
124
- * @returns Transaction string
125
- */
126
- export async function createMetaTx(
127
- rawTransaction: Encoded.Transaction,
128
- authData: {
129
- gasLimit?: number;
130
- callData?: Encoded.ContractBytearray;
131
- source?: string;
132
- args?: any[];
133
- },
134
- authFnName: string,
135
- {
136
- onAccount, onCompiler, onNode, ...options
137
- }:
138
- { onAccount: AccountBase; onCompiler: Compiler; onNode: Node }
139
- & Parameters<AccountBase['address']>[0],
140
- ): Promise<Encoded.Transaction> {
141
- const wrapInEmptySignedTx = (
142
- tx: Encoded.Transaction | Uint8Array | TxUnpacked<TxSchema>,
143
- ): BuiltTx<TxSchema, Encoding.Transaction> => (
144
- buildTx({ encodedTx: tx, signatures: [] }, Tag.SignedTx)
145
- );
146
-
147
- if (Object.keys(authData).length <= 0) throw new MissingParamError('authData is required');
148
-
149
- const gasLimit = authData.gasLimit ?? MAX_AUTH_FUN_GAS;
150
- if (gasLimit > MAX_AUTH_FUN_GAS) {
151
- throw new InvalidAuthDataError(`the maximum gasLimit value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${gasLimit}`);
152
- }
153
-
154
- const authCallData = authData.callData ?? await (async () => {
155
- if (authData.source == null || authData.args == null) throw new InvalidAuthDataError('Auth data must contain source code and arguments.');
156
- const contract = await getContractInstance({
157
- onCompiler, onNode, source: authData.source,
158
- });
159
- return contract.calldata.encode(contract._name, authFnName, authData.args);
160
- })();
161
-
162
- const { abiVersion } = await getVmVersion(Tag.ContractCallTx, { onNode });
163
- const wrappedTx = wrapInEmptySignedTx(unpackTx<Tag.SignedTx>(rawTransaction));
164
- const params = {
165
- ...options,
166
- tx: {
167
- ...wrappedTx,
168
- tx: wrappedTx.txObject,
169
- },
170
- // TODO: accept an address instead
171
- gaId: await onAccount.address(options),
172
- abiVersion,
173
- authData: authCallData,
174
- gasLimit,
175
- vsn: 2,
176
- };
177
- // @ts-expect-error createMetaTx needs to be integrated into tx builder
178
- const { fee } = await prepareTxParams(Tag.GaMetaTx, { ...params, onNode });
179
- const { rlpEncoded: metaTxRlp } = buildTx({ ...params, fee }, Tag.GaMetaTx);
180
- return wrapInEmptySignedTx(metaTxRlp).tx;
181
- }
182
-
183
98
  /**
184
99
  * Build a transaction hash the same as `Auth.tx_hash`
185
100
  * @category contract
@@ -192,8 +107,7 @@ export async function buildAuthTxHash(
192
107
  transaction: Encoded.Transaction,
193
108
  { onNode }: { onNode: Node },
194
109
  ): Promise<Uint8Array> {
195
- const { networkId } = await onNode.getStatus();
196
110
  return new Uint8Array(hash(
197
- concatBuffers([Buffer.from(networkId), decode(transaction)]),
111
+ concatBuffers([Buffer.from(await onNode.getNetworkId()), decode(transaction)]),
198
112
  ));
199
113
  }
package/src/index.ts CHANGED
@@ -24,19 +24,17 @@ export * from './tx/builder';
24
24
  export * from './tx/builder/helpers';
25
25
  export * from './tx/builder/constants';
26
26
  export * from './tx/builder/schema';
27
- export * from './tx/builder/address';
28
27
  export * from './utils/amount-formatter';
29
28
  export * from './utils/hd-wallet';
30
- export {
31
- sha256hash, encode, decode, Encoding,
32
- } from './utils/encoder';
29
+ export { encode, decode, Encoding } from './utils/encoder';
33
30
  export * from './aens';
34
- export * from './contract/methods';
31
+ export { default as Contract } from './contract/Contract';
32
+ export type { ContractMethodsBase } from './contract/Contract';
35
33
  export * from './oracle';
36
34
  export * from './spend';
37
35
  export * from './contract/ga';
38
- export * from './deprecated';
39
36
 
37
+ export { default as AeSdkMethods } from './AeSdkMethods';
40
38
  export { default as AeSdkBase } from './AeSdkBase';
41
39
  export { default as AeSdk } from './AeSdk';
42
40
  export { default as AeSdkAepp } from './AeSdkAepp';
@@ -45,8 +43,11 @@ export { default as Node } from './Node';
45
43
  export { default as verifyTransaction } from './tx/validator';
46
44
  export { default as AccountBase } from './account/Base';
47
45
  export { default as MemoryAccount } from './account/Memory';
48
- export { default as Compiler } from './contract/Compiler';
49
- export { default as Channel } from './channel';
46
+ export { default as AccountGeneralized } from './account/Generalized';
47
+ export { default as AccountLedger } from './account/Ledger';
48
+ export { default as AccountLedgerFactory } from './account/LedgerFactory';
49
+ export { default as CompilerHttp } from './contract/CompilerHttp';
50
+ export { default as Channel } from './channel/Contract';
50
51
 
51
52
  export { default as connectionProxy } from './aepp-wallet-communication/connection-proxy';
52
53
  export * from './aepp-wallet-communication/schema';
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,
@@ -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,7 +105,7 @@ 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
  );
@@ -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,7 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { mapObject } from '../../utils/other';
3
3
 
4
+ export const MAX_AUTH_FUN_GAS = 50000;
4
5
  // # AENS
5
6
  export type AensName = `${string}.chain`;
6
7
  export const NAME_TTL = 180000;
@@ -0,0 +1,52 @@
1
+ import { PrefixNotFoundError, TagNotFoundError } from '../../../utils/errors';
2
+ import { toBytes } from '../../../utils/bytes';
3
+ import { decode, encode, Encoding } from '../../../utils/encoder';
4
+ import { isItemOfArray } from '../../../utils/other';
5
+
6
+ /**
7
+ * Map of prefix to ID tag constant
8
+ * @see {@link https://github.com/aeternity/protocol/blob/master/serializations.md#the-id-type}
9
+ * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_id.erl#L97-L102}
10
+ * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L163-L168}
11
+ */
12
+ const idTagToEncoding = [
13
+ Encoding.AccountAddress,
14
+ Encoding.Name,
15
+ Encoding.Commitment,
16
+ Encoding.OracleAddress,
17
+ Encoding.ContractAddress,
18
+ Encoding.Channel,
19
+ ] as const;
20
+
21
+ export type AddressEncodings = typeof idTagToEncoding[number];
22
+
23
+ export default function genAddressField<Encoding extends AddressEncodings>(): {
24
+ serialize: (value: `${Encoding}_${string}`) => Buffer;
25
+ deserialize: (value: Buffer) => `${Encoding}_${string}`;
26
+ } {
27
+ return {
28
+ /**
29
+ * Utility function to create and _id type
30
+ * @param hashId - Encoded hash
31
+ * @returns Buffer Buffer with ID tag and decoded HASh
32
+ */
33
+ serialize(hashId) {
34
+ const encoding = hashId.slice(0, 2);
35
+ if (!isItemOfArray(encoding, idTagToEncoding)) throw new TagNotFoundError(encoding);
36
+ const idTag = idTagToEncoding.indexOf(encoding) + 1;
37
+ return Buffer.from([...toBytes(idTag), ...decode(hashId)]);
38
+ },
39
+
40
+ /**
41
+ * Utility function to read and _id type
42
+ * @param buf - Data
43
+ * @returns Encoded hash string with prefix
44
+ */
45
+ deserialize(buf) {
46
+ const idTag = Buffer.from(buf).readUIntBE(0, 1);
47
+ const encoding = idTagToEncoding[idTag - 1];
48
+ if (encoding == null) throw new PrefixNotFoundError(idTag);
49
+ return encode(buf.subarray(1), encoding) as `${Encoding}_${string}`;
50
+ },
51
+ };
52
+ }
@@ -0,0 +1,18 @@
1
+ import genAddressField, { AddressEncodings } from './address';
2
+
3
+ export default function genAddressesField<Encoding extends AddressEncodings>(): {
4
+ serialize: (value: Array<`${Encoding}_${string}`>) => Buffer[];
5
+ deserialize: (value: Buffer[]) => Array<`${Encoding}_${string}`>;
6
+ } {
7
+ const address = genAddressField<Encoding>();
8
+
9
+ return {
10
+ serialize(addresses) {
11
+ return addresses.map(address.serialize);
12
+ },
13
+
14
+ deserialize(addresses) {
15
+ return addresses.map(address.deserialize);
16
+ },
17
+ };
18
+ }
@@ -1,6 +1,5 @@
1
1
  import uInt, { Int } from './u-int';
2
2
  import { AE_AMOUNT_FORMATS, formatAmount } from '../../../utils/amount-formatter';
3
- import { ArgumentError } from '../../../utils/errors';
4
3
 
5
4
  export interface Options { denomination?: AE_AMOUNT_FORMATS }
6
5
 
@@ -8,11 +7,10 @@ export default {
8
7
  ...uInt,
9
8
 
10
9
  serializeAettos(value: string | undefined): string {
11
- if (value == null) throw new ArgumentError('value', 'provided', value);
12
- return value;
10
+ return value ?? '0';
13
11
  },
14
12
 
15
- serializeOptional(value: Int | undefined, { denomination, ...options }: Options): Buffer {
13
+ serialize(value: Int | undefined, { denomination, ...options }: Options): Buffer {
16
14
  return uInt.serialize(
17
15
  this.serializeAettos(
18
16
  value != null ? formatAmount(value, { denomination }) : value,
@@ -20,8 +18,4 @@ export default {
20
18
  ),
21
19
  );
22
20
  },
23
-
24
- serialize(value: Int, options: Options): Buffer {
25
- return this.serializeOptional(value, options);
26
- },
27
21
  };
@@ -0,0 +1,21 @@
1
+ import { ArgumentError } from '../../../utils/errors';
2
+
3
+ export default function genEnumerationField<Enum extends number>(): {
4
+ serialize: (value: Enum) => Buffer;
5
+ deserialize: (value: Buffer) => Enum;
6
+ } {
7
+ return {
8
+ serialize(value) {
9
+ if (typeof value !== 'number') throw new ArgumentError('value', 'to be a number', value);
10
+ if (value > 0xff) throw new ArgumentError('value', 'to be less than 256', value);
11
+ return Buffer.from([value]);
12
+ },
13
+
14
+ deserialize(buffer) {
15
+ if (buffer.length !== 1) {
16
+ throw new ArgumentError('buffer', 'to have single element', buffer.length);
17
+ }
18
+ return buffer[0] as Enum;
19
+ },
20
+ };
21
+ }
@@ -109,7 +109,7 @@ export function buildFee(txType: Tag, buildTx: any): BigNumber {
109
109
  * @param txType - Transaction type
110
110
  * @param rebuildTx - Callback to get built transaction with specific fee
111
111
  */
112
- export function calculateMinFee(
112
+ function calculateMinFee(
113
113
  txType: Tag,
114
114
  rebuildTx: (value: BigNumber) => any,
115
115
  ): BigNumber {
@@ -138,6 +138,4 @@ export default {
138
138
  }
139
139
  return value.toFixed();
140
140
  },
141
-
142
- serialize: coinAmount.serializeOptional,
143
141
  };
@@ -1,5 +1,5 @@
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
5
 
@@ -27,7 +27,7 @@ export default {
27
27
  ): Buffer {
28
28
  if (_computingGasLimit != null) return shortUInt.serialize(_computingGasLimit);
29
29
 
30
- const gasLimitMax = calculateGasLimitMax(
30
+ const gasLimitMax = txType === Tag.GaMetaTx ? MAX_AUTH_FUN_GAS : calculateGasLimitMax(
31
31
  txType,
32
32
  gasMax,
33
33
  (gasLimit) => rebuildTx({ _computingGasLimit: gasLimit }),
@@ -11,6 +11,4 @@ export default {
11
11
  }
12
12
  return value;
13
13
  },
14
-
15
- serialize: coinAmount.serializeOptional,
16
14
  };
@@ -2,44 +2,54 @@ import _field from './field';
2
2
  import _uInt from './u-int';
3
3
  import _shortUInt from './short-u-int';
4
4
  import _coinAmount from './coin-amount';
5
-
5
+ import _address from './address';
6
+ import _addresses from './addresses';
6
7
  import _deposit from './deposit';
8
+ import _enumeration from './enumeration';
7
9
  import _fee from './fee';
8
10
  import _gasLimit from './gas-limit';
9
11
  import _gasPrice from './gas-price';
10
12
  import _name from './name';
11
13
  import _nameFee from './name-fee';
12
14
  import _nameId from './name-id';
15
+ import _pointers from './pointers';
13
16
 
14
17
  // TODO: remove after fixing https://github.com/Gerrit0/typedoc-plugin-missing-exports/issues/15
15
18
  const field = _field;
16
19
  const uInt = _uInt;
17
20
  const shortUInt = _shortUInt;
18
21
  const coinAmount = _coinAmount;
19
-
22
+ const address = _address;
23
+ const addresses = _addresses;
20
24
  const deposit = _deposit;
25
+ const enumeration = _enumeration;
21
26
  const fee = _fee;
22
27
  const gasLimit = _gasLimit;
23
28
  const gasPrice = _gasPrice;
24
29
  const name = _name;
25
30
  const nameFee = _nameFee;
26
31
  const nameId = _nameId;
32
+ const pointers = _pointers;
27
33
 
28
- export type Field = typeof field | typeof uInt | typeof shortUInt | typeof coinAmount
29
- | typeof deposit | typeof fee | typeof gasLimit | typeof gasPrice | typeof name | typeof nameFee
30
- | typeof nameId;
34
+ export interface Field {
35
+ serialize: (value: any, options: any) => Buffer | Buffer[] | Buffer[][];
36
+ deserialize: (value: Buffer | Buffer[] | Buffer[][]) => any;
37
+ }
31
38
 
32
39
  export {
33
40
  field,
34
41
  uInt,
35
42
  shortUInt,
36
43
  coinAmount,
37
-
44
+ address,
45
+ addresses,
38
46
  deposit,
47
+ enumeration,
39
48
  fee,
40
49
  gasLimit,
41
50
  gasPrice,
42
51
  name,
43
52
  nameFee,
44
53
  nameId,
54
+ pointers,
45
55
  };
@@ -27,6 +27,6 @@ export default {
27
27
  value: Int | undefined,
28
28
  txFields: { name: AensName } & Parameters<typeof coinAmount['serialize']>[1],
29
29
  ): Buffer {
30
- return coinAmount.serializeOptional.call(this, value, txFields);
30
+ return coinAmount.serialize.call(this, value, txFields);
31
31
  },
32
32
  };
@@ -1,20 +1,17 @@
1
1
  import { AensName } from '../constants';
2
2
  import { produceNameId, isNameValid } from '../helpers';
3
- import { writeId, readId } from '../address';
4
- import { Encoded } from '../../../utils/encoder';
3
+ import address from './address';
4
+ import { Encoded, Encoding } from '../../../utils/encoder';
5
+
6
+ const addressName = address<Encoding.Name>();
5
7
 
6
8
  export default {
9
+ ...addressName,
10
+
7
11
  /**
8
12
  * @param value - AENS name ID
9
13
  */
10
14
  serialize(value: AensName | Encoded.Name): Buffer {
11
- return writeId(isNameValid(value) ? produceNameId(value) : value);
12
- },
13
-
14
- /**
15
- * @param value - AENS name ID Buffer
16
- */
17
- deserialize(value: Buffer): Encoded.Name {
18
- return readId(value) as Encoded.Name;
15
+ return addressName.serialize(isNameValid(value) ? produceNameId(value) : value);
19
16
  },
20
17
  };
@@ -0,0 +1,41 @@
1
+ import { NamePointer as NamePointerString } from '../../../apis/node';
2
+ import { toBytes } from '../../../utils/bytes';
3
+ import { Encoded } from '../../../utils/encoder';
4
+ import { IllegalArgumentError } from '../../../utils/errors';
5
+ import address, { AddressEncodings } from './address';
6
+
7
+ const addressAny = address<AddressEncodings>();
8
+
9
+ // TODO: remove after fixing node types
10
+ type NamePointer = NamePointerString & {
11
+ id: Encoded.Generic<AddressEncodings>;
12
+ };
13
+
14
+ export default {
15
+ /**
16
+ * Helper function to build pointers for name update TX
17
+ * @param pointers - Array of pointers
18
+ * `([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])`
19
+ * @returns Serialized pointers array
20
+ */
21
+ serialize(pointers: NamePointer[]): Buffer[][] {
22
+ if (pointers.length > 32) {
23
+ throw new IllegalArgumentError(`Expected 32 pointers or less, got ${pointers.length} instead`);
24
+ }
25
+
26
+ return pointers.map(
27
+ (pointer) => [toBytes(pointer.key), addressAny.serialize(pointer.id)],
28
+ );
29
+ },
30
+
31
+ /**
32
+ * Helper function to read pointers from name update TX
33
+ * @param pointers - Array of pointers
34
+ * @returns Deserialize pointer array
35
+ */
36
+ deserialize(pointers: Array<[key: Buffer, id: Buffer]>): NamePointer[] {
37
+ return pointers.map(
38
+ ([key, id]) => ({ key: key.toString(), id: addressAny.deserialize(id) }),
39
+ );
40
+ },
41
+ };
@@ -1,13 +1,14 @@
1
1
  import BigNumber from 'bignumber.js';
2
- import { readInt, writeInt } from '../helpers';
2
+ import { readInt } from '../helpers';
3
3
  import { ArgumentError } from '../../../utils/errors';
4
+ import { toBytes } from '../../../utils/bytes';
4
5
 
5
6
  export type Int = number | string | BigNumber;
6
7
 
7
8
  export default {
8
9
  serialize(value: Int): Buffer {
9
10
  if (value < 0) throw new ArgumentError('value', 'greater or equal to 0', value);
10
- return writeInt(value);
11
+ return toBytes(value, true);
11
12
  },
12
13
 
13
14
  deserialize(value: Buffer): string {