@aeternity/aepp-sdk 13.0.0-alpha.0 → 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 (322) 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 +4206 -1127
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdkBase.d.ts +3 -3
  9. package/es/AeSdkBase.mjs +4 -0
  10. package/es/AeSdkBase.mjs.map +1 -1
  11. package/es/AeSdkMethods.d.ts +3 -4
  12. package/es/AeSdkMethods.mjs.map +1 -1
  13. package/es/Node.d.ts +4 -3
  14. package/es/Node.mjs +1 -1
  15. package/es/Node.mjs.map +1 -1
  16. package/es/account/Base.d.ts +2 -2
  17. package/es/account/Base.mjs.map +1 -1
  18. package/es/account/Generalized.mjs +5 -3
  19. package/es/account/Generalized.mjs.map +1 -1
  20. package/es/account/Ledger.mjs +2 -1
  21. package/es/account/Ledger.mjs.map +1 -1
  22. package/es/account/Memory.mjs +2 -1
  23. package/es/account/Memory.mjs.map +1 -1
  24. package/es/aens.d.ts +1 -1
  25. package/es/aens.mjs +5 -1
  26. package/es/aens.mjs.map +1 -1
  27. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  28. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -4
  29. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  30. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +1 -1
  31. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  32. package/es/chain.d.ts +9 -1
  33. package/es/chain.mjs +4 -1
  34. package/es/chain.mjs.map +1 -1
  35. package/es/channel/Base.d.ts +6 -1
  36. package/es/channel/Base.mjs +9 -6
  37. package/es/channel/Base.mjs.map +1 -1
  38. package/es/channel/Contract.d.ts +8 -7
  39. package/es/channel/Contract.mjs +1 -1
  40. package/es/channel/Contract.mjs.map +1 -1
  41. package/es/channel/Spend.d.ts +3 -1
  42. package/es/channel/Spend.mjs +4 -2
  43. package/es/channel/Spend.mjs.map +1 -1
  44. package/es/channel/handlers.mjs +11 -9
  45. package/es/channel/handlers.mjs.map +1 -1
  46. package/es/channel/internal.mjs +3 -1
  47. package/es/channel/internal.mjs.map +1 -1
  48. package/es/contract/Contract.d.ts +21 -46
  49. package/es/contract/Contract.mjs +69 -52
  50. package/es/contract/Contract.mjs.map +1 -1
  51. package/es/contract/compiler/Base.d.ts +81 -0
  52. package/es/contract/compiler/Base.mjs +5 -0
  53. package/es/contract/compiler/Base.mjs.map +1 -0
  54. package/es/contract/compiler/Cli.d.ts +23 -0
  55. package/es/contract/compiler/Cli.mjs +155 -0
  56. package/es/contract/compiler/Cli.mjs.map +1 -0
  57. package/es/contract/compiler/Http.d.ts +32 -0
  58. package/es/contract/{CompilerHttp.mjs → compiler/Http.mjs} +64 -9
  59. package/es/contract/compiler/Http.mjs.map +1 -0
  60. package/es/contract/compiler/HttpNode.d.ts +17 -0
  61. package/es/contract/compiler/HttpNode.mjs +26 -0
  62. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  63. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  64. package/es/contract/compiler/getFileSystem.mjs +40 -0
  65. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  66. package/es/contract/ga.d.ts +5 -4
  67. package/es/contract/ga.mjs +11 -2
  68. package/es/contract/ga.mjs.map +1 -1
  69. package/es/index-browser.d.ts +39 -0
  70. package/es/index-browser.mjs +55 -0
  71. package/es/index-browser.mjs.map +1 -0
  72. package/es/index.d.ts +4 -38
  73. package/es/index.mjs +4 -53
  74. package/es/index.mjs.map +1 -1
  75. package/es/oracle.mjs +1 -1
  76. package/es/oracle.mjs.map +1 -1
  77. package/es/spend.mjs +1 -3
  78. package/es/spend.mjs.map +1 -1
  79. package/es/tx/builder/constants.d.ts +28 -1
  80. package/es/tx/builder/constants.mjs +32 -3
  81. package/es/tx/builder/constants.mjs.map +1 -1
  82. package/es/tx/builder/field-types/abi-version.d.ts +10 -0
  83. package/es/tx/builder/field-types/abi-version.mjs +20 -0
  84. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  85. package/es/tx/builder/field-types/address.d.ts +5 -6
  86. package/es/tx/builder/field-types/address.mjs +17 -8
  87. package/es/tx/builder/field-types/address.mjs.map +1 -1
  88. package/es/tx/builder/field-types/array.d.ts +7 -0
  89. package/es/tx/builder/field-types/array.mjs +11 -0
  90. package/es/tx/builder/field-types/array.mjs.map +1 -0
  91. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  92. package/es/tx/builder/field-types/boolean.mjs +13 -0
  93. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  94. package/es/tx/builder/field-types/coin-amount.d.ts +1 -1
  95. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  96. package/es/tx/builder/field-types/ct-version.d.ts +30 -0
  97. package/es/tx/builder/field-types/ct-version.mjs +48 -0
  98. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  99. package/es/tx/builder/field-types/deposit.d.ts +1 -1
  100. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  101. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  102. package/es/tx/builder/field-types/encoded.mjs +21 -0
  103. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  104. package/es/tx/builder/field-types/entry.d.ts +11 -0
  105. package/es/tx/builder/field-types/entry.mjs +31 -0
  106. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  107. package/es/tx/builder/field-types/enumeration.d.ts +5 -3
  108. package/es/tx/builder/field-types/enumeration.mjs +11 -2
  109. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  110. package/es/tx/builder/field-types/fee.d.ts +10 -7
  111. package/es/tx/builder/field-types/fee.mjs +24 -20
  112. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  113. package/es/tx/builder/field-types/gas-limit.d.ts +5 -2
  114. package/es/tx/builder/field-types/gas-limit.mjs +9 -6
  115. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  116. package/es/tx/builder/field-types/gas-price.d.ts +1 -1
  117. package/es/tx/builder/field-types/index.d.ts +66 -28
  118. package/es/tx/builder/field-types/index.mjs +30 -12
  119. package/es/tx/builder/field-types/index.mjs.map +1 -1
  120. package/es/tx/builder/field-types/mptree.d.ts +37 -0
  121. package/es/tx/builder/field-types/mptree.mjs +268 -0
  122. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  123. package/es/tx/builder/field-types/name-fee.d.ts +1 -2
  124. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  125. package/es/tx/builder/field-types/name-id.mjs +2 -1
  126. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  127. package/es/tx/builder/field-types/pointers.mjs +2 -2
  128. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  129. package/es/tx/builder/field-types/raw.d.ts +6 -0
  130. package/es/tx/builder/field-types/raw.mjs +13 -0
  131. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  132. package/es/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  133. package/es/tx/builder/field-types/short-u-int-const.mjs +16 -0
  134. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  135. package/es/tx/builder/field-types/string.d.ts +6 -0
  136. package/es/tx/builder/field-types/string.mjs +10 -0
  137. package/es/tx/builder/field-types/string.mjs.map +1 -0
  138. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  139. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  140. package/es/tx/builder/index.d.ts +11 -29
  141. package/es/tx/builder/index.mjs +50 -211
  142. package/es/tx/builder/index.mjs.map +1 -1
  143. package/es/tx/builder/schema.d.ts +2111 -571
  144. package/es/tx/builder/schema.mjs +57 -125
  145. package/es/tx/builder/schema.mjs.map +1 -1
  146. package/es/tx/index.d.ts +5 -20
  147. package/es/tx/index.mjs +31 -88
  148. package/es/tx/index.mjs.map +1 -1
  149. package/es/tx/validator.d.ts +3 -5
  150. package/es/tx/validator.mjs +82 -95
  151. package/es/tx/validator.mjs.map +1 -1
  152. package/es/utils/bytes.mjs +1 -1
  153. package/es/utils/bytes.mjs.map +1 -1
  154. package/es/utils/errors.d.ts +3 -8
  155. package/es/utils/errors.mjs +1 -11
  156. package/es/utils/errors.mjs.map +1 -1
  157. package/es/utils/other.d.ts +1 -1
  158. package/package.json +35 -27
  159. package/src/AeSdkBase.ts +6 -3
  160. package/src/AeSdkMethods.ts +3 -4
  161. package/src/Node.ts +6 -3
  162. package/src/account/Base.ts +2 -2
  163. package/src/account/Generalized.ts +2 -2
  164. package/src/account/Ledger.ts +1 -1
  165. package/src/account/Memory.ts +1 -1
  166. package/src/aens.ts +3 -2
  167. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -7
  168. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  169. package/src/chain.ts +5 -3
  170. package/src/channel/Base.ts +13 -5
  171. package/src/channel/Contract.ts +11 -10
  172. package/src/channel/Spend.ts +7 -2
  173. package/src/channel/handlers.ts +10 -9
  174. package/src/channel/internal.ts +1 -1
  175. package/src/contract/Contract.ts +69 -79
  176. package/src/contract/compiler/Base.ts +94 -0
  177. package/src/contract/compiler/Cli.ts +134 -0
  178. package/src/contract/compiler/Http.ts +124 -0
  179. package/src/contract/compiler/HttpNode.ts +26 -0
  180. package/src/contract/compiler/getFileSystem.ts +42 -0
  181. package/src/contract/ga.ts +9 -6
  182. package/src/index-browser.ts +58 -0
  183. package/src/index.ts +4 -56
  184. package/src/oracle.ts +1 -1
  185. package/src/spend.ts +1 -1
  186. package/src/tx/builder/constants.ts +32 -3
  187. package/src/tx/builder/field-types/abi-version.ts +21 -0
  188. package/src/tx/builder/field-types/address.ts +23 -13
  189. package/src/tx/builder/field-types/array.ts +19 -0
  190. package/src/tx/builder/field-types/boolean.ts +9 -0
  191. package/src/tx/builder/field-types/coin-amount.ts +2 -1
  192. package/src/tx/builder/field-types/ct-version.ts +50 -0
  193. package/src/tx/builder/field-types/deposit.ts +1 -1
  194. package/src/tx/builder/field-types/encoded.ts +27 -0
  195. package/src/tx/builder/field-types/entry.ts +31 -0
  196. package/src/tx/builder/field-types/enumeration.ts +15 -4
  197. package/src/tx/builder/field-types/fee.ts +38 -18
  198. package/src/tx/builder/field-types/gas-limit.ts +12 -7
  199. package/src/tx/builder/field-types/index.ts +46 -17
  200. package/src/tx/builder/field-types/mptree.ts +242 -0
  201. package/src/tx/builder/field-types/name-fee.ts +1 -2
  202. package/src/tx/builder/field-types/name-id.ts +1 -1
  203. package/src/tx/builder/field-types/pointers.ts +2 -2
  204. package/src/tx/builder/field-types/raw.ts +9 -0
  205. package/src/tx/builder/field-types/short-u-int-const.ts +20 -0
  206. package/src/tx/builder/field-types/string.ts +11 -0
  207. package/src/tx/builder/field-types/u-int.ts +1 -3
  208. package/src/tx/builder/index.ts +63 -247
  209. package/src/tx/builder/schema.ts +273 -323
  210. package/src/tx/index.ts +37 -104
  211. package/src/tx/validator.ts +72 -95
  212. package/src/utils/bytes.ts +1 -1
  213. package/src/utils/errors.ts +4 -13
  214. package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
  215. package/types-legacy/ts4.2/AeSdkMethods.d.ts +3 -4
  216. package/types-legacy/ts4.2/Node.d.ts +3 -3
  217. package/types-legacy/ts4.2/account/Base.d.ts +2 -2
  218. package/types-legacy/ts4.2/aens.d.ts +1 -1
  219. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  220. package/types-legacy/ts4.2/chain.d.ts +9 -1
  221. package/types-legacy/ts4.2/channel/Base.d.ts +6 -1
  222. package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
  223. package/types-legacy/ts4.2/channel/Spend.d.ts +3 -1
  224. package/types-legacy/ts4.2/contract/Contract.d.ts +21 -46
  225. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +81 -0
  226. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  227. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  228. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  229. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  230. package/types-legacy/ts4.2/contract/ga.d.ts +5 -4
  231. package/types-legacy/ts4.2/index-browser.d.ts +39 -0
  232. package/types-legacy/ts4.2/index.d.ts +4 -38
  233. package/types-legacy/ts4.2/tx/builder/constants.d.ts +28 -1
  234. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +10 -0
  235. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
  236. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  237. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  238. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +1 -1
  239. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +42 -0
  240. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +1 -1
  241. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  242. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  243. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
  244. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +10 -7
  245. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +5 -2
  246. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +1 -1
  247. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +72 -28
  248. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +43 -0
  249. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +1 -2
  250. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  251. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  252. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  253. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
  254. package/types-legacy/ts4.2/tx/builder/index.d.ts +11 -29
  255. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2380 -668
  256. package/types-legacy/ts4.2/tx/index.d.ts +5 -20
  257. package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
  258. package/types-legacy/ts4.2/utils/errors.d.ts +3 -8
  259. package/types-legacy/ts4.2/utils/other.d.ts +1 -1
  260. package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
  261. package/types-legacy/ts4.5/AeSdkMethods.d.ts +3 -4
  262. package/types-legacy/ts4.5/Node.d.ts +3 -3
  263. package/types-legacy/ts4.5/account/Base.d.ts +2 -2
  264. package/types-legacy/ts4.5/aens.d.ts +1 -1
  265. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  266. package/types-legacy/ts4.5/chain.d.ts +9 -1
  267. package/types-legacy/ts4.5/channel/Base.d.ts +6 -1
  268. package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
  269. package/types-legacy/ts4.5/channel/Spend.d.ts +3 -1
  270. package/types-legacy/ts4.5/contract/Contract.d.ts +21 -46
  271. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +81 -0
  272. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  273. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  274. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  275. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  276. package/types-legacy/ts4.5/contract/ga.d.ts +5 -4
  277. package/types-legacy/ts4.5/index-browser.d.ts +39 -0
  278. package/types-legacy/ts4.5/index.d.ts +4 -38
  279. package/types-legacy/ts4.5/tx/builder/constants.d.ts +28 -1
  280. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +10 -0
  281. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
  282. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  283. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  284. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +1 -1
  285. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +42 -0
  286. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +1 -1
  287. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  288. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  289. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
  290. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +10 -7
  291. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +5 -2
  292. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +1 -1
  293. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +72 -28
  294. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +43 -0
  295. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +1 -2
  296. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  297. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  298. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  299. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
  300. package/types-legacy/ts4.5/tx/builder/index.d.ts +11 -29
  301. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2380 -668
  302. package/types-legacy/ts4.5/tx/index.d.ts +5 -20
  303. package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
  304. package/types-legacy/ts4.5/utils/errors.d.ts +3 -8
  305. package/types-legacy/ts4.5/utils/other.d.ts +1 -1
  306. package/es/contract/CompilerHttp.d.ts +0 -18
  307. package/es/contract/CompilerHttp.mjs.map +0 -1
  308. package/es/tx/builder/field-types/addresses.d.ts +0 -6
  309. package/es/tx/builder/field-types/addresses.mjs +0 -13
  310. package/es/tx/builder/field-types/addresses.mjs.map +0 -1
  311. package/es/utils/mptree.d.ts +0 -26
  312. package/es/utils/mptree.mjs +0 -143
  313. package/es/utils/mptree.mjs.map +0 -1
  314. package/src/contract/CompilerHttp.ts +0 -67
  315. package/src/tx/builder/field-types/addresses.ts +0 -18
  316. package/src/utils/mptree.ts +0 -145
  317. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
  318. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
  319. package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
  320. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
  321. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
  322. package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
package/src/tx/index.ts CHANGED
@@ -22,115 +22,37 @@
22
22
  * the creation of transactions to {@link Node}.
23
23
  * These methods provide ability to create native transactions.
24
24
  */
25
- import BigNumber from 'bignumber.js';
26
- import {
27
- ABI_VERSIONS, CtVersion, PROTOCOL_VM_ABI, TX_TTL, TxParamsCommon,
28
- } from './builder/schema';
29
- import { Tag } from './builder/constants';
30
- import {
31
- ArgumentError, UnsupportedProtocolError, UnknownTxError, InvalidTxParamsError,
32
- } from '../utils/errors';
25
+ import { TX_TTL, TxParamsCommon } from './builder/schema';
26
+ import { ConsensusProtocolVersion, Tag } from './builder/constants';
27
+ import { ArgumentError, InvalidTxParamsError } from '../utils/errors';
33
28
  import Node from '../Node';
34
29
  import { Encoded } from '../utils/encoder';
35
30
  import { buildTx as syncBuildTx, unpackTx } from './builder/index';
36
- import { isAccountNotFoundError, isKeyOfObject } from '../utils/other';
31
+ import { isAccountNotFoundError } from '../utils/other';
37
32
  import { AE_AMOUNT_FORMATS } from '../utils/amount-formatter';
38
33
 
39
- type Int = number | string | BigNumber;
40
-
41
34
  export type BuildTxOptions <TxType extends Tag, OmitFields extends string> =
42
35
  Omit<Parameters<typeof _buildTx<TxType>>[1], OmitFields>;
43
36
 
44
- /**
45
- * Validated vm/abi version or get default based on transaction type and NODE version
46
- * @category transaction builder
47
- * @param txType - Type of transaction
48
- * @param ctVersion - Object with vm and abi version fields
49
- * @returns Object with vm/abi version
50
- */
51
- async function getVmVersion(
52
- txType: Tag.ContractCreateTx, ctVersion: Partial<CtVersion> & { onNode: Node }
53
- ): Promise<CtVersion>;
54
- async function getVmVersion(
55
- txType: Tag, ctVersion: Partial<Pick<CtVersion, 'abiVersion'>> & { onNode: Node }
56
- ): Promise<Pick<CtVersion, 'abiVersion'>>;
57
- async function getVmVersion(
58
- txType: Tag,
59
- { vmVersion, abiVersion, onNode }: Partial<CtVersion> & { onNode: Node },
60
- ): Promise<Partial<CtVersion>> {
61
- const { consensusProtocolVersion } = await onNode.getNodeInfo();
62
- if (!isKeyOfObject(consensusProtocolVersion, PROTOCOL_VM_ABI)) {
63
- throw new UnsupportedProtocolError('Not supported consensus protocol version');
64
- }
65
- const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion];
66
- if (!isKeyOfObject(txType, supportedProtocol)) {
67
- throw new UnknownTxError('Not supported tx type');
68
- }
69
- const protocolForTX = supportedProtocol[txType];
70
- abiVersion ??= protocolForTX.abiVersion[0];
71
- vmVersion ??= protocolForTX.vmVersion[0];
72
- return { vmVersion, abiVersion };
73
- }
74
-
75
- /**
76
- * Calculate fee, get absolute ttl (ttl + height), get account nonce
77
- * @category transaction builder
78
- * @param txType - Type of transaction
79
- * @param params - Object which contains all tx data
80
- * @returns Object with account nonce, absolute ttl and transaction fee
81
- */
82
- async function prepareTxParams(
83
- txType: Tag,
84
- {
85
- senderId,
86
- nonce,
87
- ttl = TX_TTL,
88
- absoluteTtl,
89
- strategy,
90
- onNode,
91
- }: {
92
- senderId: Encoded.AccountAddress;
93
- absoluteTtl?: boolean;
94
- strategy?: 'continuity' | 'max';
95
- onNode: Node;
96
- } & Pick<TxParamsCommon, 'nonce' | 'ttl'>,
97
- ): Promise<{ ttl: number; nonce: number }> {
98
- nonce ??= (
99
- await onNode.getAccountNextNonce(senderId, { strategy }).catch((error) => {
100
- if (!isAccountNotFoundError(error)) throw error;
101
- return { nextNonce: 1 };
102
- })
103
- ).nextNonce;
104
-
105
- if (ttl !== 0) {
106
- if (ttl < 0) throw new ArgumentError('ttl', 'greater or equal to 0', ttl);
107
- ttl += absoluteTtl === true ? 0 : (await onNode.getCurrentKeyBlock()).height;
108
- }
109
-
110
- return { ttl, nonce };
111
- }
112
-
113
37
  // TODO: find a better name or rearrange methods
114
38
  /**
115
39
  * @category transaction builder
116
40
  */
117
41
  export async function _buildTx<TxType extends Tag>(
118
42
  txType: TxType,
119
- { denomination, absoluteTtl, ..._params }:
120
- Omit<Parameters<typeof syncBuildTx<TxType, 'tx'>>[0], 'fee' | 'nonce' | 'ttl' | 'ctVersion' | 'abiVersion'>
43
+ {
44
+ denomination, absoluteTtl, strategy, onNode, ..._params
45
+ }: Omit<Parameters<typeof syncBuildTx<TxType>>[0], 'tag' | 'nonce' | 'ttl'>
121
46
  & {
122
- onNode: Node;
123
- fee?: Int;
124
- nonce?: number;
125
- ttl?: number;
126
47
  denomination?: AE_AMOUNT_FORMATS;
127
48
  absoluteTtl?: boolean;
49
+ strategy?: 'continuity' | 'max';
50
+ onNode: Node;
51
+ ttl?: number;
52
+ nonce?: number;
128
53
  }
129
54
  & (TxType extends Tag.OracleExtendTx | Tag.OracleResponseTx
130
- ? { callerId: Encoded.AccountAddress } : {})
131
- & (TxType extends Tag.ContractCreateTx | Tag.GaAttachTx ? { ctVersion?: CtVersion } : {})
132
- & (TxType extends Tag.ContractCallTx | Tag.OracleRegisterTx
133
- ? { abiVersion?: ABI_VERSIONS } : {}),
55
+ ? { callerId: Encoded.AccountAddress } : {}),
134
56
  ): Promise<Encoded.Transaction> {
135
57
  // TODO: avoid this assertion
136
58
  const params = _params as unknown as TxParamsCommon & { onNode: Node };
@@ -172,25 +94,36 @@ export async function _buildTx<TxType extends Tag>(
172
94
  default:
173
95
  throw new ArgumentError('txType', 'valid transaction type', txType);
174
96
  }
175
- // TODO: move specific cases to field-types
176
- if ([Tag.ContractCreateTx, Tag.GaAttachTx].includes(txType)) {
177
- params.ctVersion = await getVmVersion(
178
- Tag.ContractCreateTx,
179
- { ...params, ...params.ctVersion },
180
- );
181
- }
182
- if ([Tag.ContractCallTx, Tag.GaMetaTx].includes(txType)) {
183
- params.abiVersion = (await getVmVersion(Tag.ContractCallTx, params)).abiVersion;
184
- }
185
- if (txType === Tag.OracleRegisterTx) {
186
- params.abiVersion ??= ABI_VERSIONS.NO_ABI;
97
+
98
+ if (
99
+ Object.keys(ConsensusProtocolVersion).length !== 2
100
+ && (((Tag.ContractCreateTx === txType || Tag.GaAttachTx === txType) && params.ctVersion == null)
101
+ || ((Tag.ContractCallTx === txType || Tag.GaMetaTx === txType) && params.abiVersion == null))
102
+ ) {
103
+ const { consensusProtocolVersion } = await onNode.getNodeInfo();
104
+ // @ts-expect-error remove after fixing buildTx types
105
+ params.consensusProtocolVersion = consensusProtocolVersion;
187
106
  }
107
+
188
108
  if (txType === Tag.PayingForTx) {
189
109
  params.tx = unpackTx(params.tx);
190
110
  }
191
111
  const senderId = params[senderKey];
192
112
  // TODO: do this check on TypeScript level
193
113
  if (senderId == null) throw new InvalidTxParamsError(`Transaction field ${senderKey} is missed`);
194
- const extraParams = await prepareTxParams(txType, { ...params, senderId, absoluteTtl });
195
- return syncBuildTx({ ...params, ...extraParams } as any, txType, { denomination }).tx;
114
+
115
+ params.nonce ??= (
116
+ await onNode.getAccountNextNonce(senderId, { strategy }).catch((error) => {
117
+ if (!isAccountNotFoundError(error)) throw error;
118
+ return { nextNonce: 1 };
119
+ })
120
+ ).nextNonce;
121
+
122
+ params.ttl ??= TX_TTL;
123
+ if (params.ttl !== 0) {
124
+ if (params.ttl < 0) throw new ArgumentError('ttl', 'greater or equal to 0', params.ttl);
125
+ params.ttl += absoluteTtl === true ? 0 : (await onNode.getCurrentKeyBlock()).height;
126
+ }
127
+
128
+ return syncBuildTx({ ...params, tag: txType } as any, { denomination });
196
129
  }
@@ -1,18 +1,11 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { hash, verify } from '../utils/crypto';
3
- import {
4
- CtVersion,
5
- PROTOCOL_VM_ABI,
6
- RawTxObject,
7
- TxParamsCommon,
8
- TxSchema,
9
- TxTypeSchemas,
10
- } from './builder/schema';
11
- import { Tag } from './builder/constants';
12
- import { TxUnpacked, unpackTx } from './builder';
13
- import { UnsupportedProtocolError } from '../utils/errors';
14
- import { concatBuffers, isAccountNotFoundError, isKeyOfObject } from '../utils/other';
15
- import { encode, Encoded, Encoding } from '../utils/encoder';
3
+ import { RawTxObject, TxParamsCommon, TxSchema } from './builder/schema';
4
+ import { ProtocolToVmAbi } from './builder/field-types/ct-version';
5
+ import { Tag, ConsensusProtocolVersion } from './builder/constants';
6
+ import { buildTx, unpackTx } from './builder';
7
+ import { concatBuffers, isAccountNotFoundError } from '../utils/other';
8
+ import { Encoded, decode } from '../utils/encoder';
16
9
  import Node, { TransformNodeType } from '../Node';
17
10
  import { Account } from '../apis/node';
18
11
  import { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest';
@@ -23,31 +16,18 @@ export interface ValidatorResult {
23
16
  checkedKeys: string[];
24
17
  }
25
18
 
19
+ type UnpackedTx = ReturnType<typeof unpackTx>['tx'];
20
+
26
21
  type Validator = (
27
- tx: {
28
- encodedTx: TxUnpacked<TxSchema>;
29
- signatures: Buffer[];
30
- tx: TxUnpacked<TxSchema> & {
31
- tx: TxTypeSchemas[Tag.SignedTx];
32
- };
33
- nonce?: number;
34
- ttl?: number;
35
- amount?: number;
36
- fee?: number;
37
- nameFee?: number;
38
- ctVersion?: Partial<CtVersion>;
39
- abiVersion?: number;
40
- contractId?: Encoded.ContractAddress;
41
- },
22
+ tx: UnpackedTx,
42
23
  options: {
43
24
  // TODO: remove after fixing node types
44
25
  account?: TransformNodeType<Account> & { id: Encoded.AccountAddress };
45
26
  nodeNetworkId: string;
46
27
  parentTxTypes: Tag[];
47
28
  node: Node;
48
- txType: Tag;
49
29
  height: number;
50
- consensusProtocolVersion: number;
30
+ consensusProtocolVersion: ConsensusProtocolVersion;
51
31
  }
52
32
  ) => ValidatorResult[] | Promise<ValidatorResult[]>;
53
33
 
@@ -63,34 +43,13 @@ const getSenderAddress = (
63
43
  .filter((a) => a)
64
44
  .map((a) => a?.toString().replace(/^ok_/, 'ak_'))[0] as Encoded.AccountAddress | undefined;
65
45
 
66
- /**
67
- * Transaction Validator
68
- * This function validates some of transaction properties,
69
- * to make sure it can be posted it to the chain
70
- * @category transaction builder
71
- * @param transaction - Base64Check-encoded transaction
72
- * @param nodeNotCached - Node to validate transaction against
73
- * @param parentTxTypes - Types of parent transactions
74
- * @returns Array with verification errors
75
- * @example const errors = await verifyTransaction(transaction, node)
76
- */
77
- export default async function verifyTransaction(
78
- transaction: Encoded.Transaction | Encoded.Poi,
79
- nodeNotCached: Node,
80
- parentTxTypes: Tag[] = [],
46
+ async function verifyTransactionInternal(
47
+ tx: UnpackedTx,
48
+ node: Node,
49
+ parentTxTypes: Tag[],
81
50
  ): Promise<ValidatorResult[]> {
82
- let node = nodeNotCached;
83
- if (
84
- !node.pipeline.getOrderedPolicies()
85
- .some(({ name }) => name === 'aggressive-cache-get-responses')
86
- ) {
87
- node = new Node(nodeNotCached.$host, { ignoreVersion: true });
88
- node.pipeline.addPolicy(genAggressiveCacheGetResponsesPolicy());
89
- }
90
-
91
- const { tx, txType } = unpackTx<Tag.SignedTx>(transaction);
92
51
  const address = getSenderAddress(tx)
93
- ?? (txType === Tag.SignedTx ? getSenderAddress(tx.encodedTx.tx) : undefined);
52
+ ?? (tx.tag === Tag.SignedTx ? getSenderAddress(tx.encodedTx) : undefined);
94
53
  const [account, { height }, { consensusProtocolVersion, nodeNetworkId }] = await Promise.all([
95
54
  address == null
96
55
  ? undefined
@@ -107,25 +66,45 @@ export default async function verifyTransaction(
107
66
 
108
67
  return (await Promise.all(
109
68
  validators.map((v) => v(
110
- tx as any,
69
+ tx,
111
70
  {
112
- txType, node, account, height, consensusProtocolVersion, nodeNetworkId, parentTxTypes,
71
+ node, account, height, consensusProtocolVersion, nodeNetworkId, parentTxTypes,
113
72
  },
114
73
  )),
115
74
  )).flat();
116
75
  }
117
76
 
77
+ /**
78
+ * Transaction Validator
79
+ * This function validates some transaction properties,
80
+ * to make sure it can be posted it to the chain
81
+ * @category transaction builder
82
+ * @param transaction - Base64Check-encoded transaction
83
+ * @param nodeNotCached - Node to validate transaction against
84
+ * @returns Array with verification errors
85
+ * @example const errors = await verifyTransaction(transaction, node)
86
+ */
87
+ export default async function verifyTransaction(
88
+ transaction: Parameters<typeof unpackTx>[0],
89
+ nodeNotCached: Node,
90
+ ): Promise<ValidatorResult[]> {
91
+ const node = new Node(nodeNotCached.$host, { ignoreVersion: true });
92
+ node.pipeline.addPolicy(genAggressiveCacheGetResponsesPolicy());
93
+ return verifyTransactionInternal(unpackTx(transaction), node, []);
94
+ }
95
+
118
96
  validators.push(
119
97
  ({ encodedTx, signatures }, { account, nodeNetworkId, parentTxTypes }) => {
120
- if ((encodedTx ?? signatures) === undefined) return [];
98
+ if ((encodedTx ?? signatures) == null) return [];
121
99
  if (account == null) return [];
122
- if (signatures.length !== 1) return []; // TODO: Support multisignature?
100
+ if (signatures.length !== 1) return []; // TODO: Support multisignature like in state channels
123
101
  const prefix = Buffer.from([
124
102
  nodeNetworkId,
125
103
  ...parentTxTypes.includes(Tag.PayingForTx) ? ['inner_tx'] : [],
126
104
  ].join('-'));
127
- const txWithNetworkId = concatBuffers([prefix, encodedTx.rlpEncoded]);
128
- const txHashWithNetworkId = concatBuffers([prefix, hash(encodedTx.rlpEncoded)]);
105
+ const txBinary = decode(buildTx(encodedTx));
106
+ const txWithNetworkId = concatBuffers([prefix, txBinary]);
107
+ const txHashWithNetworkId = concatBuffers([prefix, hash(txBinary)]);
129
108
  if (verify(txWithNetworkId, signatures[0], account.id)
130
109
  || verify(txHashWithNetworkId, signatures[0], account.id)) return [];
131
110
  return [{
@@ -135,16 +114,12 @@ validators.push(
135
114
  checkedKeys: ['encodedTx', 'signatures'],
136
115
  }];
137
116
  },
138
- async ({ encodedTx, tx }, { node, parentTxTypes, txType }) => {
139
- if ((encodedTx ?? tx) === undefined) return [];
140
- return verifyTransaction(
141
- encode((encodedTx ?? tx).rlpEncoded, Encoding.Transaction),
142
- node,
143
- [...parentTxTypes, txType],
144
- );
117
+ async ({ encodedTx, tx, tag }, { node, parentTxTypes }) => {
118
+ if ((encodedTx ?? tx) == null) return [];
119
+ return verifyTransactionInternal(encodedTx ?? tx, node, [...parentTxTypes, tag]);
145
120
  },
146
121
  ({ ttl }, { height }) => {
147
- if (ttl === undefined) return [];
122
+ if (ttl == null) return [];
148
123
  ttl = +ttl;
149
124
  if (ttl === 0 || ttl >= height) return [];
150
125
  return [{
@@ -154,13 +129,13 @@ validators.push(
154
129
  }];
155
130
  },
156
131
  ({
157
- amount, fee, nameFee, tx,
158
- }, { account, parentTxTypes, txType }) => {
132
+ amount, fee, nameFee, tx, tag,
133
+ }, { account, parentTxTypes }) => {
159
134
  if (account == null) return [];
160
- if ((amount ?? fee ?? nameFee) === undefined) return [];
135
+ if ((amount ?? fee ?? nameFee) == null) return [];
161
136
  fee ??= 0;
162
137
  const cost = new BigNumber(fee).plus(nameFee ?? 0).plus(amount ?? 0)
163
- .plus(txType === Tag.PayingForTx ? (tx.tx.encodedTx.tx).fee : 0)
138
+ .plus(tag === Tag.PayingForTx ? tx.encodedTx.fee : 0)
164
139
  .minus(parentTxTypes.includes(Tag.PayingForTx) ? fee : 0);
165
140
  if (cost.lte(account.balance.toString())) return [];
166
141
  return [{
@@ -169,13 +144,13 @@ validators.push(
169
144
  checkedKeys: ['amount', 'fee', 'nameFee'],
170
145
  }];
171
146
  },
172
- ({ signatures }, { account, txType }) => {
147
+ ({ signatures, tag }, { account }) => {
173
148
  if (account == null) return [];
174
149
  let message;
175
- if (txType === Tag.SignedTx && account.kind === 'generalized' && signatures.length !== 0) {
150
+ if (tag === Tag.SignedTx && account.kind === 'generalized' && signatures.length !== 0) {
176
151
  message = 'Generalized account can\'t be used to generate SignedTx with signatures';
177
152
  }
178
- if (txType === Tag.GaMetaTx && account.kind === 'basic') {
153
+ if (tag === Tag.GaMetaTx && account.kind === 'basic') {
179
154
  message = 'Basic account can\'t be used to generate GaMetaTx';
180
155
  }
181
156
  if (message == null) return [];
@@ -199,34 +174,36 @@ validators.push(
199
174
  checkedKeys: ['nonce'],
200
175
  }];
201
176
  },
202
- ({ ctVersion, abiVersion }, { txType, consensusProtocolVersion }) => {
203
- if (!isKeyOfObject(consensusProtocolVersion, PROTOCOL_VM_ABI)) {
204
- throw new UnsupportedProtocolError(`Unsupported protocol: ${consensusProtocolVersion}`);
205
- }
206
- const protocol = PROTOCOL_VM_ABI[consensusProtocolVersion];
177
+ ({ ctVersion, abiVersion, tag }, { consensusProtocolVersion }) => {
178
+ const oracleCall = Tag.Oracle === tag || Tag.OracleRegisterTx === tag;
179
+ const contractCreate = Tag.ContractCreateTx === tag || Tag.GaAttachTx === tag;
180
+ const contractCall = Tag.ContractCallTx === tag || Tag.GaMetaTx === tag;
181
+ const type = (oracleCall ? 'oracle-call' : null)
182
+ ?? (contractCreate ? 'contract-create' : null)
183
+ ?? (contractCall ? 'contract-call' : null);
184
+ if (type == null) return [];
185
+ // TODO: remove assertion after fixing buildTx types
186
+ const protocol = ProtocolToVmAbi[consensusProtocolVersion][type] as unknown as {
187
+ abiVersion: any[];
188
+ vmVersion: any[];
189
+ };
207
190
 
208
191
  // If not contract create tx
209
192
  if (ctVersion == null) ctVersion = { abiVersion };
210
- const txProtocol = protocol[txType as keyof typeof protocol];
211
- if (txProtocol == null) return [];
212
- if (Object.entries(ctVersion).some(
213
- ([
214
- key,
215
- value,
216
- ]: [
217
- key:keyof typeof txProtocol,
218
- value:any]) => !(txProtocol[key].includes(+value as never)),
219
- )) {
193
+ if (
194
+ !protocol.abiVersion.includes(ctVersion.abiVersion)
195
+ || (contractCreate && !protocol.vmVersion.includes(ctVersion.vmVersion))
196
+ ) {
220
197
  return [{
221
- message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(txProtocol)}`,
198
+ message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(protocol)}`,
222
199
  key: 'VmAndAbiVersionMismatch',
223
200
  checkedKeys: ['ctVersion', 'abiVersion'],
224
201
  }];
225
202
  }
226
203
  return [];
227
204
  },
228
- async ({ contractId }, { txType, node }) => {
229
- if (Tag.ContractCallTx !== txType) return [];
205
+ async ({ contractId, tag }, { node }) => {
206
+ if (Tag.ContractCallTx !== tag) return [];
230
207
  contractId = contractId as Encoded.ContractAddress;
231
208
  try {
232
209
  const { active } = await node.getContract(contractId);
@@ -29,7 +29,7 @@ export function toBytes(val?: null | string | number | BigNumber, big = false):
29
29
  // If the value is an int it will be encoded as bytes big endian
30
30
  // Raises ValueError if the input is not an int or string
31
31
 
32
- if (val === undefined || val === null) return Buffer.from([]);
32
+ if (val == null) return Buffer.from([]);
33
33
  if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {
34
34
  if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);
35
35
  if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);
@@ -1,5 +1,6 @@
1
1
  // eslint-disable-next-line max-classes-per-file
2
2
  import BigNumber from 'bignumber.js';
3
+ import { Int } from '../tx/builder/constants';
3
4
 
4
5
  /**
5
6
  * aepp-sdk originated error
@@ -116,8 +117,8 @@ export class WalletError extends BaseError {
116
117
  * @category exception
117
118
  */
118
119
  export class ArgumentError extends BaseError {
119
- constructor(argumentName: string, requirement: string, argumentValue: any) {
120
- super(`${argumentName} should be ${requirement}, got ${String(argumentValue)} instead`);
120
+ constructor(argumentName: string, requirement: unknown, argumentValue: unknown) {
121
+ super(`${argumentName} should be ${requirement}, got ${argumentValue} instead`);
121
122
  this.name = 'ArgumentError';
122
123
  }
123
124
  }
@@ -528,7 +529,7 @@ export class NoSuchContractFunctionError extends ContractError {
528
529
  * @category exception
529
530
  */
530
531
  export class NotPayableFunctionError extends ContractError {
531
- constructor(amount: string, fn: string) {
532
+ constructor(amount: Int, fn: string) {
532
533
  super(
533
534
  `You try to pay "${amount}" to function "${fn}" which is not payable. `
534
535
  + 'Only payable function can accept coins',
@@ -744,16 +745,6 @@ export class TxNotInChainError extends TransactionError {
744
745
  }
745
746
  }
746
747
 
747
- /**
748
- * @category exception
749
- */
750
- export class UnknownTxError extends TransactionError {
751
- constructor(message: string) {
752
- super(message);
753
- this.name = 'UnknownTxError';
754
- }
755
- }
756
-
757
748
  /**
758
749
  * @category exception
759
750
  */
@@ -1,7 +1,7 @@
1
1
  import Node from './Node';
2
2
  import AccountBase from './account/Base';
3
3
  import { Encoded } from './utils/encoder';
4
- import CompilerHttp from './contract/CompilerHttp';
4
+ import CompilerBase from './contract/compiler/Base';
5
5
  import AeSdkMethods, { OnAccount } from './AeSdkMethods';
6
6
  type NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & {
7
7
  name: string;
@@ -25,7 +25,7 @@ export default class AeSdkBase extends AeSdkMethods {
25
25
  instance: Node;
26
26
  }>;
27
27
  });
28
- get compilerApi(): CompilerHttp;
28
+ get compilerApi(): CompilerBase;
29
29
  get api(): Node;
30
30
  /**
31
31
  * Add Node
@@ -85,7 +85,7 @@ export default class AeSdkBase extends AeSdkMethods {
85
85
  _getOptions(): {
86
86
  onNode: Node;
87
87
  onAccount: AccountBase;
88
- onCompiler: CompilerHttp;
88
+ onCompiler: CompilerBase;
89
89
  };
90
90
  }
91
91
  export {};
@@ -10,7 +10,7 @@ import Node from './Node';
10
10
  import { Tag } from './tx/builder/constants';
11
11
  import AccountBase from './account/Base';
12
12
  import { Encoded } from './utils/encoder';
13
- import CompilerHttp from './contract/CompilerHttp';
13
+ import CompilerBase from './contract/compiler/Base';
14
14
  export type OnAccount = Encoded.AccountAddress | AccountBase | undefined;
15
15
  export declare function getValueOrErrorProxy<Value extends object>(valueCb: () => Value): Value;
16
16
  declare const methods: {
@@ -105,9 +105,8 @@ declare class AeSdkMethods {
105
105
  buildTx<TxType extends Tag>(txType: TxType, options: Omit<Parameters<any>[1], 'onNode'> & {
106
106
  onNode?: Node;
107
107
  }): Promise<Encoded.Transaction>;
108
- initializeContract<Methods extends ContractMethodsBase>(options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode' | 'onCompiler'> & {
108
+ initializeContract<Methods extends ContractMethodsBase>(options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode'> & {
109
109
  onNode?: Node;
110
- onCompiler?: CompilerHttp;
111
110
  }): Promise<Contract<Methods>>;
112
111
  }
113
112
  type RequiredKeys<T> = {
@@ -120,7 +119,7 @@ type OptionalIfNotRequired<T extends [
120
119
  type MakeOptional<Options> = OptionalIfNotRequired<[
121
120
  Omit<Options, 'onNode' | 'onCompiler' | 'onAccount'> & {
122
121
  onNode?: Node;
123
- onCompiler?: CompilerHttp;
122
+ onCompiler?: CompilerBase;
124
123
  onAccount?: OnAccount;
125
124
  }
126
125
  ]>;
@@ -1,5 +1,6 @@
1
1
  import { Node as NodeApi, NodeOptionalParams } from './apis/node';
2
2
  import { Encoded } from './utils/encoder';
3
+ import { ConsensusProtocolVersion } from './tx/builder/constants';
3
4
  declare const bigIntPropertyNames: readonly [
4
5
  "balance",
5
6
  "queryFee",
@@ -24,7 +25,6 @@ declare const numberPropertyNames: readonly [
24
25
  "nextNonce",
25
26
  "height",
26
27
  "blockHeight",
27
- "top",
28
28
  "topBlockHeight",
29
29
  "ttl",
30
30
  "nameTtl",
@@ -50,7 +50,7 @@ export type TransformNodeType<Type> = Type extends (...args: infer Args) => infe
50
50
  ] : Type extends Array<infer Item> ? Array<TransformNodeType<Item>> : Type extends Promise<infer T> ? Promise<TransformNodeType<T>> : Type extends {
51
51
  [P in any]: any;
52
52
  } ? {
53
- [Property in keyof Type]: Property extends BigIntPropertyNames ? PreserveOptional<bigint, Type[Property]> : Property extends NumberPropertyNames ? PreserveOptional<number, Type[Property]> : Property extends 'txHash' ? PreserveOptional<Encoded.TxHash, Type[Property]> : TransformNodeType<Type[Property]>;
53
+ [Property in keyof Type]: Property extends BigIntPropertyNames ? PreserveOptional<bigint, Type[Property]> : Property extends NumberPropertyNames ? PreserveOptional<number, Type[Property]> : Property extends 'txHash' ? PreserveOptional<Encoded.TxHash, Type[Property]> : Property extends 'bytecode' ? PreserveOptional<Encoded.ContractBytearray, Type[Property]> : TransformNodeType<Type[Property]>;
54
54
  } : Type;
55
55
  type NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {
56
56
  [Name in keyof InstanceType<typeof NodeApi>]: Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest' ? NodeApi[Name] : TransformNodeType<NodeApi[Name]>;
@@ -59,7 +59,7 @@ export interface NodeInfo {
59
59
  url: string;
60
60
  nodeNetworkId: string;
61
61
  version: string;
62
- consensusProtocolVersion: number;
62
+ consensusProtocolVersion: ConsensusProtocolVersion;
63
63
  }
64
64
  declare const Node_base: NodeTransformedApi;
65
65
  export default class Node extends Node_base {
@@ -1,6 +1,6 @@
1
1
  import { Encoded } from '../utils/encoder';
2
2
  import Node from '../Node';
3
- import CompilerHttp from '../contract/CompilerHttp';
3
+ import CompilerBase from '../contract/compiler/Base';
4
4
  /**
5
5
  * Account is one of the three basic building blocks of an
6
6
  * {@link AeSdk} and provides access to a signing key pair.
@@ -24,7 +24,7 @@ export default abstract class AccountBase {
24
24
  args?: any[];
25
25
  };
26
26
  onNode?: Node;
27
- onCompiler?: CompilerHttp;
27
+ onCompiler?: CompilerBase;
28
28
  aeppOrigin?: string;
29
29
  aeppRpcClientId?: string;
30
30
  }): Promise<Encoded.Transaction>;
@@ -196,7 +196,7 @@ export declare function aensPreclaim(name: AensName, options: AensPreclaimOption
196
196
  commitmentId: string;
197
197
  claim: (opts?: Parameters<typeof aensClaim>[2]) => ReturnType<typeof aensClaim>;
198
198
  }>>;
199
- interface AensPreclaimOptions extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>, SendOptions, AensClaimOptions {
199
+ interface AensPreclaimOptions extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>, SendOptions, Omit<AensClaimOptions, 'version'> {
200
200
  }
201
201
  /**
202
202
  * Bid to name auction
@@ -6,6 +6,7 @@ import BrowserConnection from './Browser';
6
6
  * @category aepp wallet communication
7
7
  */
8
8
  export default class BrowserRuntimeConnection extends BrowserConnection {
9
+ #private;
9
10
  port: Runtime.Port;
10
11
  constructor({ port, ...options }: {
11
12
  port: Runtime.Port;
@@ -179,6 +179,14 @@ export declare function getKeyBlock(hashOrHeight: Encoded.KeyBlockHash | number,
179
179
  export declare function getMicroBlockHeader(hash: Encoded.MicroBlockHash, { onNode }: {
180
180
  onNode: Node;
181
181
  }): Promise<TransformNodeType<MicroBlockHeader>>;
182
+ interface TxDryRunArguments {
183
+ tx: Encoded.Transaction;
184
+ accountAddress: Encoded.AccountAddress;
185
+ top?: number | Encoded.KeyBlockHash | Encoded.MicroBlockHash;
186
+ txEvents?: any;
187
+ resolve: Function;
188
+ reject: Function;
189
+ }
182
190
  /**
183
191
  * Transaction dry-run
184
192
  * @category chain
@@ -191,7 +199,7 @@ export declare function getMicroBlockHeader(hash: Encoded.MicroBlockHash, { onNo
191
199
  * @param options.onNode - Node to use
192
200
  */
193
201
  export declare function txDryRun(tx: Encoded.Transaction, accountAddress: Encoded.AccountAddress, { top, txEvents, combine, onNode, }: {
194
- top?: number;
202
+ top?: TxDryRunArguments['top'];
195
203
  txEvents?: boolean;
196
204
  combine?: boolean;
197
205
  onNode: Node;
@@ -128,7 +128,12 @@ export default class Channel {
128
128
  /**
129
129
  * Get current state
130
130
  */
131
- state(): Promise<ChannelState>;
131
+ state(): Promise<{
132
+ calls: Encoded.CallStateTree;
133
+ halfSignedTx: Encoded.Transaction | '';
134
+ signedTx: Encoded.Transaction;
135
+ trees: Encoded.StateTrees;
136
+ }>;
132
137
  /**
133
138
  * Get current round
134
139
  *