@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
@@ -1,34 +1,19 @@
1
- /**
2
- * Transaction methods
3
- *
4
- * This is implementation of [Tx](api/tx.md) relays
5
- * the creation of transactions to {@link Node}.
6
- * These methods provide ability to create native transactions.
7
- */
8
- import BigNumber from 'bignumber.js';
9
- import { ABI_VERSIONS, CtVersion } from './builder/schema';
10
1
  import { Tag } from './builder/constants';
11
2
  import Node from '../Node';
12
3
  import { Encoded } from '../utils/encoder';
13
4
  import { buildTx as syncBuildTx } from './builder/index';
14
5
  import { AE_AMOUNT_FORMATS } from '../utils/amount-formatter';
15
- type Int = number | string | BigNumber;
16
6
  export type BuildTxOptions<TxType extends Tag, OmitFields extends string> = Omit<Parameters<any>[1], OmitFields>;
17
7
  /**
18
8
  * @category transaction builder
19
9
  */
20
- export declare function _buildTx<TxType extends Tag>(txType: TxType, { denomination, absoluteTtl, ..._params }: Omit<Parameters<any>[0], 'fee' | 'nonce' | 'ttl' | 'ctVersion' | 'abiVersion'> & {
21
- onNode: Node;
22
- fee?: Int;
23
- nonce?: number;
24
- ttl?: number;
10
+ export declare function _buildTx<TxType extends Tag>(txType: TxType, { denomination, absoluteTtl, strategy, onNode, ..._params }: Omit<Parameters<any>[0], 'tag' | 'nonce' | 'ttl'> & {
25
11
  denomination?: AE_AMOUNT_FORMATS;
26
12
  absoluteTtl?: boolean;
13
+ strategy?: 'continuity' | 'max';
14
+ onNode: Node;
15
+ ttl?: number;
16
+ nonce?: number;
27
17
  } & (TxType extends Tag.OracleExtendTx | Tag.OracleResponseTx ? {
28
18
  callerId: Encoded.AccountAddress;
29
- } : {}) & (TxType extends Tag.ContractCreateTx | Tag.GaAttachTx ? {
30
- ctVersion?: CtVersion;
31
- } : {}) & (TxType extends Tag.ContractCallTx | Tag.OracleRegisterTx ? {
32
- abiVersion?: ABI_VERSIONS;
33
19
  } : {})): Promise<Encoded.Transaction>;
34
- export {};
@@ -1,5 +1,4 @@
1
- import { Tag } from './builder/constants';
2
- import { Encoded } from '../utils/encoder';
1
+ import { unpackTx } from './builder';
3
2
  import Node from '../Node';
4
3
  export interface ValidatorResult {
5
4
  message: string;
@@ -8,13 +7,12 @@ export interface ValidatorResult {
8
7
  }
9
8
  /**
10
9
  * Transaction Validator
11
- * This function validates some of transaction properties,
10
+ * This function validates some transaction properties,
12
11
  * to make sure it can be posted it to the chain
13
12
  * @category transaction builder
14
13
  * @param transaction - Base64Check-encoded transaction
15
14
  * @param nodeNotCached - Node to validate transaction against
16
- * @param parentTxTypes - Types of parent transactions
17
15
  * @returns Array with verification errors
18
16
  * @example const errors = await verifyTransaction(transaction, node)
19
17
  */
20
- export default function verifyTransaction(transaction: Encoded.Transaction | Encoded.Poi, nodeNotCached: Node, parentTxTypes?: Tag[]): Promise<ValidatorResult[]>;
18
+ export default function verifyTransaction(transaction: Parameters<typeof unpackTx>[0], nodeNotCached: Node): Promise<ValidatorResult[]>;
@@ -1,4 +1,5 @@
1
1
  import BigNumber from 'bignumber.js';
2
+ import { Int } from '../tx/builder/constants';
2
3
  /**
3
4
  * aepp-sdk originated error
4
5
  * @category exception
@@ -70,7 +71,7 @@ export declare class WalletError extends BaseError {
70
71
  * @category exception
71
72
  */
72
73
  export declare class ArgumentError extends BaseError {
73
- constructor(argumentName: string, requirement: string, argumentValue: any);
74
+ constructor(argumentName: string, requirement: unknown, argumentValue: unknown);
74
75
  }
75
76
  /**
76
77
  * @category exception
@@ -317,7 +318,7 @@ export declare class NoSuchContractFunctionError extends ContractError {
317
318
  * @category exception
318
319
  */
319
320
  export declare class NotPayableFunctionError extends ContractError {
320
- constructor(amount: string, fn: string);
321
+ constructor(amount: Int, fn: string);
321
322
  }
322
323
  /**
323
324
  * @category exception
@@ -442,12 +443,6 @@ export declare class TagNotFoundError extends TransactionError {
442
443
  export declare class TxNotInChainError extends TransactionError {
443
444
  constructor(txHash: string);
444
445
  }
445
- /**
446
- * @category exception
447
- */
448
- export declare class UnknownTxError extends TransactionError {
449
- constructor(message: string);
450
- }
451
446
  /**
452
447
  * @category exception
453
448
  */
@@ -14,7 +14,7 @@ export declare const mapObject: <InputV, OutputV>(object: {
14
14
  ]) => {
15
15
  [k: string]: OutputV;
16
16
  };
17
- export declare const concatBuffers: (list: readonly Uint8Array[], totalLength?: number | undefined) => Buffer;
17
+ export declare const concatBuffers: typeof Buffer.concat;
18
18
  /**
19
19
  * Object key type guard
20
20
  * @param key - Maybe object key
@@ -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
  *
@@ -1,4 +1,5 @@
1
1
  import BigNumber from 'bignumber.js';
2
+ import { AbiVersion, VmVersion } from '../tx/builder/constants';
2
3
  import { SignTx, ChannelState, ChannelOptions } from './internal';
3
4
  import { Encoded } from '../utils/encoder';
4
5
  import { ContractCallReturnType } from '../apis/node';
@@ -7,7 +8,7 @@ import ChannelSpend from './Spend';
7
8
  interface CallContractOptions {
8
9
  amount?: number | BigNumber;
9
10
  callData?: Encoded.ContractBytearray;
10
- abiVersion?: number;
11
+ abiVersion?: AbiVersion;
11
12
  contract?: Encoded.ContractAddress;
12
13
  returnValue?: any;
13
14
  gasUsed?: number | BigNumber;
@@ -18,13 +19,13 @@ interface CallContractOptions {
18
19
  returnType?: ContractCallReturnType;
19
20
  }
20
21
  interface Contract {
21
- abiVersion: number;
22
+ abiVersion: AbiVersion;
22
23
  active: boolean;
23
24
  deposit: number | BigNumber;
24
25
  id: string;
25
26
  ownerId: string;
26
27
  referrerIds: string[];
27
- vmVersion: number;
28
+ vmVersion: VmVersion;
28
29
  }
29
30
  export default class ChannelContract extends ChannelSpend {
30
31
  static initialize(options: ChannelOptions): Promise<ChannelContract>;
@@ -66,8 +67,8 @@ export default class ChannelContract extends ChannelSpend {
66
67
  code: Encoded.ContractBytearray;
67
68
  callData: Encoded.ContractBytearray;
68
69
  deposit: number | BigNumber;
69
- vmVersion: number;
70
- abiVersion: number;
70
+ vmVersion: VmVersion;
71
+ abiVersion: AbiVersion;
71
72
  }, sign: SignTx): Promise<{
72
73
  accepted: boolean;
73
74
  signedTx: Encoded.Transaction;
@@ -148,7 +149,7 @@ export default class ChannelContract extends ChannelSpend {
148
149
  amount: number;
149
150
  callData: Encoded.ContractBytearray;
150
151
  contract: Encoded.ContractAddress;
151
- abiVersion: number;
152
+ abiVersion: AbiVersion;
152
153
  gasLimit?: number;
153
154
  gasPrice?: number;
154
155
  }, sign: SignTx, { onOnChainTx }?: Pick<ChannelState, 'onOnChainTx'>): Promise<{
@@ -189,7 +190,7 @@ export default class ChannelContract extends ChannelSpend {
189
190
  amount: number;
190
191
  callData: Encoded.ContractBytearray;
191
192
  contract: Encoded.ContractAddress;
192
- abiVersion: number;
193
+ abiVersion: AbiVersion;
193
194
  }): Promise<CallContractOptions>;
194
195
  /**
195
196
  * Get contract call result
@@ -2,6 +2,8 @@ import BigNumber from 'bignumber.js';
2
2
  import { SignTx, ChannelState } from './internal';
3
3
  import { Encoded } from '../utils/encoder';
4
4
  import Channel from './Base';
5
+ import { unpackTx } from '../tx/builder';
6
+ import { Tag } from '../tx/builder/constants';
5
7
  export default class ChannelSpend extends Channel {
6
8
  /**
7
9
  * Trigger a transfer update
@@ -61,7 +63,7 @@ export default class ChannelSpend extends Channel {
61
63
  poi({ accounts, contracts }: {
62
64
  accounts: Encoded.AccountAddress[];
63
65
  contracts?: Encoded.ContractAddress[];
64
- }): Promise<Encoded.Poi>;
66
+ }): Promise<ReturnType<any>>;
65
67
  /**
66
68
  * Get balances
67
69
  *
@@ -8,33 +8,15 @@
8
8
  import { Encoder as Calldata } from '@aeternity/aepp-calldata';
9
9
  import { Tag, AensName } from '../tx/builder/constants';
10
10
  import { unpackTx } from '../tx/builder';
11
- import { send } from '../spend';
11
+ import { BuildTxOptions } from '../tx';
12
+ import { send, SendOptions } from '../spend';
12
13
  import { Encoded } from '../utils/encoder';
13
- import { Aci as BaseAci } from '../apis/compiler';
14
14
  import { ContractCallObject as NodeContractCallObject, ContractCallReturnType, Event as NodeEvent } from '../apis/node';
15
- import CompilerHttp from './CompilerHttp';
15
+ import CompilerBase, { Aci } from './compiler/Base';
16
16
  import Node, { TransformNodeType } from '../Node';
17
+ import { txDryRun } from '../chain';
17
18
  import AccountBase from '../account/Base';
18
- interface FunctionACI {
19
- arguments: any[];
20
- name: string;
21
- payable: boolean;
22
- returns: string;
23
- stateful: boolean;
24
- }
25
- interface Aci extends BaseAci {
26
- encodedAci: {
27
- contract: {
28
- name: string;
29
- event: any;
30
- kind: string;
31
- state: any;
32
- type_defs: any[];
33
- functions: FunctionACI[];
34
- };
35
- };
36
- externalEncodedAci: any[];
37
- }
19
+ type FunctionAci = Aci['encodedAci']['contract']['functions'][0];
38
20
  interface Event extends NodeEvent {
39
21
  address: Encoded.ContractAddress;
40
22
  data: Encoded.ContractBytearray;
@@ -145,7 +127,7 @@ declare class Contract<M extends ContractMethodsBase> {
145
127
  returnType: ContractCallReturnType;
146
128
  returnValue: Encoded.ContractBytearray;
147
129
  }, transaction: string): void;
148
- protected _sendAndProcess(tx: Encoded.Transaction, options: any): Promise<SendAndProcessReturnType>;
130
+ protected _sendAndProcess(tx: Encoded.Transaction, options: SendOptions): Promise<SendAndProcessReturnType>;
149
131
  _estimateGas<Fn extends MethodNames<M>>(name: Fn, params: MethodParameters<M, Fn>, options?: object): Promise<number>;
150
132
  /**
151
133
  * Deploy contract
@@ -153,17 +135,18 @@ declare class Contract<M extends ContractMethodsBase> {
153
135
  * @param options - Options
154
136
  * @returns deploy info
155
137
  */
156
- $deploy(params: MethodParameters<M, 'init'>, options?: Parameters<Contract<M>['$call']>[2] & Parameters<Contract<M>['_sendAndProcess']>[1]): Promise<Omit<SendAndProcessReturnType, 'hash'> & {
138
+ $deploy(params: MethodParameters<M, 'init'>, options?: Parameters<Contract<M>['$call']>[2] & Partial<BuildTxOptions<Tag.ContractCreateTx, 'ownerId' | 'code' | 'callData'>>): Promise<Omit<SendAndProcessReturnType, 'hash'> & {
157
139
  transaction?: Encoded.TxHash;
158
140
  owner?: Encoded.AccountAddress;
159
141
  address?: Encoded.ContractAddress;
142
+ decodedEvents?: ReturnType<Contract<M>['$decodeEvents']>;
160
143
  }>;
161
144
  /**
162
145
  * Get function schema from contract ACI object
163
146
  * @param name - Function name
164
147
  * @returns function ACI
165
148
  */
166
- protected _getFunctionACI(name: string): Partial<FunctionACI>;
149
+ protected _getFunctionACI(name: string): Partial<FunctionAci>;
167
150
  /**
168
151
  * Call contract function
169
152
  * @param fn - Function name
@@ -171,7 +154,11 @@ declare class Contract<M extends ContractMethodsBase> {
171
154
  * @param options - Array of function arguments
172
155
  * @returns CallResult
173
156
  */
174
- $call<Fn extends MethodNames<M>>(fn: Fn, params: MethodParameters<M, Fn>, options?: object): Promise<{
157
+ $call<Fn extends MethodNames<M>>(fn: Fn, params: MethodParameters<M, Fn>, options?: Partial<BuildTxOptions<Tag.ContractCallTx, 'callerId' | 'contractId' | 'callData'>> & Parameters<Contract<M>['$decodeEvents']>[1] & Omit<Parameters<Contract<M>['_sendAndProcess']>[1], 'onAccount' | 'onNode'> & Omit<Parameters<typeof txDryRun>[2], 'onNode'> & {
158
+ onAccount?: AccountBase;
159
+ onNode?: Node;
160
+ callStatic?: boolean;
161
+ }): Promise<{
175
162
  decodedResult?: any;
176
163
  decodedEvents?: ReturnType<Contract<M>['$decodeEvents']>;
177
164
  } & SendAndProcessReturnType>;
@@ -197,7 +184,7 @@ declare class Contract<M extends ContractMethodsBase> {
197
184
  $decodeEvents(events: Event[], { omitUnknown, ...opt }?: {
198
185
  omitUnknown?: boolean;
199
186
  } & Parameters<Contract<M>['_getContractNameByEvent']>[2]): DecodedEvent[];
200
- static initialize<M extends ContractMethodsBase>({ onCompiler, onNode, sourceCode, bytecode, aci, address, fileSystem, validateBytecode, ...otherOptions }: Omit<ConstructorParameters<typeof Contract>[0], 'aci' | 'address'> & {
187
+ static initialize<M extends ContractMethodsBase>({ onCompiler, onNode, bytecode, aci, address, sourceCodePath, sourceCode, fileSystem, validateBytecode, ...otherOptions }: Omit<ConstructorParameters<typeof Contract>[0], 'aci' | 'address'> & {
201
188
  validateBytecode?: boolean;
202
189
  aci?: Aci;
203
190
  address?: Encoded.ContractAddress | AensName;
@@ -205,29 +192,17 @@ declare class Contract<M extends ContractMethodsBase> {
205
192
  _aci: Aci;
206
193
  _name: string;
207
194
  _calldata: Calldata;
208
- $options: {
209
- sourceCode?: string;
210
- bytecode?: Encoded.ContractBytearray;
211
- address?: Encoded.ContractAddress;
212
- onCompiler: CompilerHttp;
213
- onNode: Node;
214
- omitUnknown?: boolean;
215
- contractAddressToName?: {
216
- [key: Encoded.ContractAddress]: string;
217
- };
218
- [key: string]: any;
219
- };
195
+ $options: Omit<ConstructorParameters<typeof Contract>[0], 'aci'>;
220
196
  constructor({ aci, ...otherOptions }: {
221
- onAccount?: AccountBase;
222
- onCompiler: CompilerHttp;
197
+ onCompiler?: CompilerBase;
223
198
  onNode: Node;
224
- sourceCode?: string;
225
199
  bytecode?: Encoded.ContractBytearray;
226
200
  aci: Aci;
227
201
  address?: Encoded.ContractAddress;
228
- fileSystem?: Record<string, string>;
229
- [key: string]: any;
230
- });
202
+ sourceCodePath?: Parameters<CompilerBase['compile']>[0];
203
+ sourceCode?: Parameters<CompilerBase['compileBySourceCode']>[0];
204
+ fileSystem?: Parameters<CompilerBase['compileBySourceCode']>[1];
205
+ } & Parameters<Contract<M>['$deploy']>[1]);
231
206
  }
232
207
  interface ContractWithMethodsClass {
233
208
  new <M extends ContractMethodsBase>(options: ConstructorParameters<typeof Contract>[0]): ContractWithMethods<M>;
@@ -0,0 +1,81 @@
1
+ import { Encoded } from '../../utils/encoder';
2
+ import { Aci as BaseAci } from '../../apis/compiler';
3
+ interface FunctionAci {
4
+ arguments: any[];
5
+ name: string;
6
+ payable: boolean;
7
+ returns: string;
8
+ stateful: boolean;
9
+ }
10
+ export interface Aci extends BaseAci {
11
+ encodedAci: {
12
+ contract: {
13
+ name: string;
14
+ event: any;
15
+ kind: string;
16
+ state: any;
17
+ type_defs: any[];
18
+ functions: FunctionAci[];
19
+ };
20
+ };
21
+ externalEncodedAci: any[];
22
+ }
23
+ /**
24
+ * A base class for all compiler implementations
25
+ */
26
+ export default abstract class CompilerBase {
27
+ /**
28
+ * Compile contract by contract's path
29
+ * Available only in Node.js
30
+ * @param path - Path to contract source code
31
+ * @returns ACI and bytecode
32
+ */
33
+ abstract compile(path: string): Promise<{
34
+ bytecode: Encoded.ContractBytearray;
35
+ aci: Aci;
36
+ }>;
37
+ /**
38
+ * Compile contract by contract's source code
39
+ * @param sourceCode - Contract source code as string
40
+ * @param fileSystem - A map of contract filename to the corresponding contract source code to
41
+ * include into the main contract
42
+ * @example
43
+ * ```js
44
+ * {
45
+ * 'library.aes': 'namespace TestLib =\n function sum(x: int, y: int) : int = x + y'
46
+ * }
47
+ * ```
48
+ * @returns ACI and bytecode
49
+ */
50
+ abstract compileBySourceCode(sourceCode: string, fileSystem?: Record<string, string>): Promise<{
51
+ bytecode: Encoded.ContractBytearray;
52
+ aci: Aci;
53
+ }>;
54
+ /**
55
+ * Verify that a contract bytecode is the result of compiling the given source code
56
+ * Available only in Node.js
57
+ * @param bytecode - Contract bytecode to verify
58
+ * @param path - Path to contract source code
59
+ * @returns ACI and bytecode
60
+ */
61
+ abstract validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean>;
62
+ /**
63
+ * Verify that a contract bytecode is the result of compiling the given source code
64
+ * @param bytecode - Contract bytecode to verify
65
+ * @param sourceCode - Contract source code as string
66
+ * @param fileSystem - A map of contract filename to the corresponding contract source code to
67
+ * include into the main contract
68
+ * @example
69
+ * ```js
70
+ * {
71
+ * 'library.aes': 'namespace TestLib =\n function sum(x: int, y: int) : int = x + y'
72
+ * }
73
+ * ```
74
+ */
75
+ abstract validateBySourceCode(bytecode: Encoded.ContractBytearray, sourceCode: string, fileSystem?: Record<string, string>): Promise<boolean>;
76
+ /**
77
+ * @returns Compiler version
78
+ */
79
+ abstract version(): Promise<string>;
80
+ }
81
+ export {};
@@ -0,0 +1,23 @@
1
+ import CompilerBase, { Aci } from './Base';
2
+ import { Encoded } from '../../utils/encoder';
3
+ /**
4
+ * A wrapper around aesophia_cli, available only in Node.js
5
+ * Assumes that `escript` is available in PATH.
6
+ */
7
+ export default class CompilerCli extends CompilerBase {
8
+ #private;
9
+ constructor(compilerPath?: string, { ignoreVersion }?: {
10
+ ignoreVersion?: boolean;
11
+ });
12
+ compile(path: string): Promise<{
13
+ bytecode: Encoded.ContractBytearray;
14
+ aci: Aci;
15
+ }>;
16
+ compileBySourceCode(sourceCode: string, fileSystem?: Record<string, string>): Promise<{
17
+ bytecode: Encoded.ContractBytearray;
18
+ aci: Aci;
19
+ }>;
20
+ validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean>;
21
+ validateBySourceCode(bytecode: Encoded.ContractBytearray, sourceCode: string, fileSystem?: Record<string, string>): Promise<boolean>;
22
+ version(): Promise<string>;
23
+ }
@@ -0,0 +1,32 @@
1
+ import { Compiler as CompilerApi } from '../../apis/compiler';
2
+ import CompilerBase, { Aci } from './Base';
3
+ import { Encoded } from '../../utils/encoder';
4
+ /**
5
+ * Contract Compiler over HTTP
6
+ *
7
+ * This class include api call's related to contract compiler functionality.
8
+ * @category contract
9
+ * @example CompilerHttp('COMPILER_URL')
10
+ */
11
+ export default class CompilerHttp extends CompilerBase {
12
+ readonly api: CompilerApi;
13
+ /**
14
+ * @param compilerUrl - Url for compiler API
15
+ * @param options - Options
16
+ * @param options.ignoreVersion - Don't check compiler version
17
+ */
18
+ constructor(compilerUrl: string, { ignoreVersion }?: {
19
+ ignoreVersion?: boolean;
20
+ });
21
+ compileBySourceCode(sourceCode: string, fileSystem?: Record<string, string>): Promise<{
22
+ bytecode: Encoded.ContractBytearray;
23
+ aci: Aci;
24
+ }>;
25
+ compile(path: string): Promise<{
26
+ bytecode: Encoded.ContractBytearray;
27
+ aci: Aci;
28
+ }>;
29
+ validateBySourceCode(bytecode: Encoded.ContractBytearray, sourceCode: string, fileSystem?: Record<string, string>): Promise<boolean>;
30
+ validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean>;
31
+ version(): Promise<string>;
32
+ }
@@ -0,0 +1,17 @@
1
+ import HttpBrowser from './Http';
2
+ import { Aci } from './Base';
3
+ import { Encoded } from '../../utils/encoder';
4
+ /**
5
+ * Contract Compiler over HTTP for Nodejs
6
+ *
7
+ * Inherits CompilerHttp and implements `compile`, `validate` methods
8
+ * @category contract
9
+ * @example CompilerHttpNode('COMPILER_URL')
10
+ */
11
+ export default class CompilerHttpNode extends HttpBrowser {
12
+ compile(path: string): Promise<{
13
+ bytecode: Encoded.ContractBytearray;
14
+ aci: Aci;
15
+ }>;
16
+ validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean>;
17
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reads all files included in the provided contract
3
+ * Available only in Node.js
4
+ * @param path - a path to the main contract source code
5
+ */
6
+ export default function getFileSystem(path: string): Promise<Record<string, string>>;