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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +12031 -11231
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.d.ts +7 -3
  9. package/es/AeSdk.mjs +17 -22
  10. package/es/AeSdk.mjs.map +1 -1
  11. package/es/AeSdkAepp.d.ts +6 -5
  12. package/es/AeSdkAepp.mjs +7 -30
  13. package/es/AeSdkAepp.mjs.map +1 -1
  14. package/es/AeSdkBase.d.ts +18 -140
  15. package/es/AeSdkBase.mjs +30 -184
  16. package/es/AeSdkBase.mjs.map +1 -1
  17. package/es/AeSdkMethods.d.ts +123 -0
  18. package/es/AeSdkMethods.mjs +122 -0
  19. package/es/AeSdkMethods.mjs.map +1 -0
  20. package/es/AeSdkWallet.d.ts +7 -21
  21. package/es/AeSdkWallet.mjs +38 -86
  22. package/es/AeSdkWallet.mjs.map +1 -1
  23. package/es/Node.d.ts +11 -15
  24. package/es/Node.mjs +35 -48
  25. package/es/Node.mjs.map +1 -1
  26. package/es/account/Base.d.ts +24 -40
  27. package/es/account/Base.mjs +1 -101
  28. package/es/account/Base.mjs.map +1 -1
  29. package/es/account/Generalized.d.ts +16 -0
  30. package/es/account/Generalized.mjs +113 -0
  31. package/es/account/Generalized.mjs.map +1 -0
  32. package/es/account/Ledger.d.ts +28 -0
  33. package/es/account/Ledger.mjs +102 -0
  34. package/es/account/Ledger.mjs.map +1 -0
  35. package/es/account/LedgerFactory.d.ts +39 -0
  36. package/es/account/LedgerFactory.mjs +81 -0
  37. package/es/account/LedgerFactory.mjs.map +1 -0
  38. package/es/account/Memory.d.ts +13 -17
  39. package/es/account/Memory.mjs +43 -64
  40. package/es/account/Memory.mjs.map +1 -1
  41. package/es/account/Rpc.d.ts +6 -8
  42. package/es/account/Rpc.mjs +14 -32
  43. package/es/account/Rpc.mjs.map +1 -1
  44. package/es/aens.d.ts +4 -4
  45. package/es/aens.mjs +46 -41
  46. package/es/aens.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  48. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  50. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +22 -11
  51. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  53. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  54. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  55. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  56. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  57. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -42
  58. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  60. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/schema.mjs +14 -68
  62. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  63. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  64. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  65. package/es/apis/compiler/compiler.d.ts +23 -29
  66. package/es/apis/compiler/compiler.mjs +128 -189
  67. package/es/apis/compiler/compiler.mjs.map +1 -1
  68. package/es/apis/compiler/index.mjs.map +1 -1
  69. package/es/apis/compiler/models/index.d.ts +82 -135
  70. package/es/apis/compiler/models/index.mjs +1 -47
  71. package/es/apis/compiler/models/index.mjs.map +1 -1
  72. package/es/apis/compiler/models/mappers.d.ts +8 -8
  73. package/es/apis/compiler/models/mappers.mjs +165 -183
  74. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  75. package/es/apis/compiler/models/parameters.d.ts +0 -1
  76. package/es/apis/compiler/models/parameters.mjs +5 -9
  77. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  78. package/es/apis/node/index.mjs.map +1 -1
  79. package/es/apis/node/models/index.d.ts +48 -48
  80. package/es/apis/node/models/mappers.mjs +12 -6
  81. package/es/apis/node/models/mappers.mjs.map +1 -1
  82. package/es/apis/node/models/parameters.mjs.map +1 -1
  83. package/es/apis/node/node.mjs +43 -84
  84. package/es/apis/node/node.mjs.map +1 -1
  85. package/es/chain.d.ts +10 -2
  86. package/es/chain.mjs +37 -59
  87. package/es/chain.mjs.map +1 -1
  88. package/es/channel/Base.d.ts +200 -0
  89. package/es/channel/Base.mjs +293 -0
  90. package/es/channel/Base.mjs.map +1 -0
  91. package/es/channel/Contract.d.ts +248 -0
  92. package/es/channel/Contract.mjs +420 -0
  93. package/es/channel/Contract.mjs.map +1 -0
  94. package/es/channel/Spend.d.ts +219 -0
  95. package/es/channel/Spend.mjs +385 -0
  96. package/es/channel/Spend.mjs.map +1 -0
  97. package/es/channel/handlers.d.ts +8 -21
  98. package/es/channel/handlers.mjs +151 -899
  99. package/es/channel/handlers.mjs.map +1 -1
  100. package/es/channel/internal.d.ts +27 -21
  101. package/es/channel/internal.mjs +101 -191
  102. package/es/channel/internal.mjs.map +1 -1
  103. package/es/contract/Contract.d.ts +210 -0
  104. package/es/contract/Contract.mjs +551 -0
  105. package/es/contract/Contract.mjs.map +1 -0
  106. package/es/contract/compiler/Base.d.ts +81 -0
  107. package/es/contract/compiler/Base.mjs +5 -0
  108. package/es/contract/compiler/Base.mjs.map +1 -0
  109. package/es/contract/compiler/Cli.d.ts +23 -0
  110. package/es/contract/compiler/Cli.mjs +155 -0
  111. package/es/contract/compiler/Cli.mjs.map +1 -0
  112. package/es/contract/compiler/Http.d.ts +32 -0
  113. package/es/contract/compiler/Http.mjs +118 -0
  114. package/es/contract/compiler/Http.mjs.map +1 -0
  115. package/es/contract/compiler/HttpNode.d.ts +17 -0
  116. package/es/contract/compiler/HttpNode.mjs +26 -0
  117. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  118. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  119. package/es/contract/compiler/getFileSystem.mjs +40 -0
  120. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  121. package/es/contract/ga.d.ts +9 -34
  122. package/es/contract/ga.mjs +29 -112
  123. package/es/contract/ga.mjs.map +1 -1
  124. package/es/index-browser.d.ts +39 -0
  125. package/es/index-browser.mjs +55 -0
  126. package/es/index-browser.mjs.map +1 -0
  127. package/es/index.d.ts +4 -35
  128. package/es/index.mjs +4 -51
  129. package/es/index.mjs.map +1 -1
  130. package/es/oracle.d.ts +5 -5
  131. package/es/oracle.mjs +34 -40
  132. package/es/oracle.mjs.map +1 -1
  133. package/es/spend.d.ts +3 -3
  134. package/es/spend.mjs +18 -23
  135. package/es/spend.mjs.map +1 -1
  136. package/es/tx/builder/constants.d.ts +30 -2
  137. package/es/tx/builder/constants.mjs +43 -14
  138. package/es/tx/builder/constants.mjs.map +1 -1
  139. package/es/tx/builder/field-types/abi-version.d.ts +10 -0
  140. package/es/tx/builder/field-types/abi-version.mjs +20 -0
  141. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  142. package/es/tx/builder/field-types/address.d.ts +14 -0
  143. package/es/tx/builder/field-types/address.mjs +51 -0
  144. package/es/tx/builder/field-types/address.mjs.map +1 -0
  145. package/es/tx/builder/field-types/array.d.ts +7 -0
  146. package/es/tx/builder/field-types/array.mjs +11 -0
  147. package/es/tx/builder/field-types/array.mjs.map +1 -0
  148. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  149. package/es/tx/builder/field-types/boolean.mjs +13 -0
  150. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  151. package/es/tx/builder/field-types/coin-amount.d.ts +2 -3
  152. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  153. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  154. package/es/tx/builder/field-types/ct-version.d.ts +30 -0
  155. package/es/tx/builder/field-types/ct-version.mjs +48 -0
  156. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  157. package/es/tx/builder/field-types/deposit.d.ts +1 -2
  158. package/es/tx/builder/field-types/deposit.mjs +2 -4
  159. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  160. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  161. package/es/tx/builder/field-types/encoded.mjs +21 -0
  162. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  163. package/es/tx/builder/field-types/entry.d.ts +11 -0
  164. package/es/tx/builder/field-types/entry.mjs +31 -0
  165. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  166. package/es/tx/builder/field-types/enumeration.d.ts +7 -0
  167. package/es/tx/builder/field-types/enumeration.mjs +30 -0
  168. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  169. package/es/tx/builder/field-types/fee.d.ts +10 -15
  170. package/es/tx/builder/field-types/fee.mjs +31 -43
  171. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  172. package/es/tx/builder/field-types/field.mjs +0 -2
  173. package/es/tx/builder/field-types/field.mjs.map +1 -1
  174. package/es/tx/builder/field-types/gas-limit.d.ts +5 -2
  175. package/es/tx/builder/field-types/gas-limit.mjs +12 -14
  176. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  177. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  178. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  179. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  180. package/es/tx/builder/field-types/index.d.ts +80 -30
  181. package/es/tx/builder/field-types/index.mjs +34 -9
  182. package/es/tx/builder/field-types/index.mjs.map +1 -1
  183. package/es/tx/builder/field-types/mptree.d.ts +37 -0
  184. package/es/tx/builder/field-types/mptree.mjs +268 -0
  185. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  186. package/es/tx/builder/field-types/name-fee.d.ts +1 -3
  187. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  188. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  189. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  190. package/es/tx/builder/field-types/name-id.mjs +5 -10
  191. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  192. package/es/tx/builder/field-types/name.mjs +0 -2
  193. package/es/tx/builder/field-types/name.mjs.map +1 -1
  194. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  195. package/es/tx/builder/field-types/pointers.mjs +36 -0
  196. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  197. package/es/tx/builder/field-types/raw.d.ts +6 -0
  198. package/es/tx/builder/field-types/raw.mjs +13 -0
  199. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  200. package/es/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  201. package/es/tx/builder/field-types/short-u-int-const.mjs +16 -0
  202. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  203. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  204. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  205. package/es/tx/builder/field-types/string.d.ts +6 -0
  206. package/es/tx/builder/field-types/string.mjs +10 -0
  207. package/es/tx/builder/field-types/string.mjs.map +1 -0
  208. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  209. package/es/tx/builder/field-types/u-int.mjs +3 -4
  210. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  211. package/es/tx/builder/helpers.d.ts +2 -32
  212. package/es/tx/builder/helpers.mjs +19 -71
  213. package/es/tx/builder/helpers.mjs.map +1 -1
  214. package/es/tx/builder/index.d.ts +11 -49
  215. package/es/tx/builder/index.mjs +57 -337
  216. package/es/tx/builder/index.mjs.map +1 -1
  217. package/es/tx/builder/schema.d.ts +2367 -667
  218. package/es/tx/builder/schema.mjs +70 -145
  219. package/es/tx/builder/schema.mjs.map +1 -1
  220. package/es/tx/index.d.ts +4 -49
  221. package/es/tx/index.mjs +38 -112
  222. package/es/tx/index.mjs.map +1 -1
  223. package/es/tx/validator.d.ts +4 -6
  224. package/es/tx/validator.mjs +104 -90
  225. package/es/tx/validator.mjs.map +1 -1
  226. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  227. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  228. package/es/utils/amount-formatter.mjs +4 -10
  229. package/es/utils/amount-formatter.mjs.map +1 -1
  230. package/es/utils/autorest.d.ts +1 -0
  231. package/es/utils/autorest.mjs +17 -19
  232. package/es/utils/autorest.mjs.map +1 -1
  233. package/es/utils/bignumber.mjs +4 -7
  234. package/es/utils/bignumber.mjs.map +1 -1
  235. package/es/utils/bytes.d.ts +0 -17
  236. package/es/utils/bytes.mjs +6 -35
  237. package/es/utils/bytes.mjs.map +1 -1
  238. package/es/utils/crypto.d.ts +15 -8
  239. package/es/utils/crypto.mjs +40 -40
  240. package/es/utils/crypto.mjs.map +1 -1
  241. package/es/utils/encoder-types.d.ts +28 -28
  242. package/es/utils/encoder-types.mjs +0 -1
  243. package/es/utils/encoder-types.mjs.map +1 -1
  244. package/es/utils/encoder.d.ts +0 -1
  245. package/es/utils/encoder.mjs +7 -15
  246. package/es/utils/encoder.mjs.map +1 -1
  247. package/es/utils/errors.d.ts +15 -14
  248. package/es/utils/errors.mjs +86 -172
  249. package/es/utils/errors.mjs.map +1 -1
  250. package/es/utils/hd-wallet.d.ts +27 -19
  251. package/es/utils/hd-wallet.mjs +42 -26
  252. package/es/utils/hd-wallet.mjs.map +1 -1
  253. package/es/utils/json-big.mjs +0 -8
  254. package/es/utils/json-big.mjs.map +1 -1
  255. package/es/utils/keystore.d.ts +2 -0
  256. package/es/utils/keystore.mjs +37 -36
  257. package/es/utils/keystore.mjs.map +1 -1
  258. package/es/utils/other.d.ts +4 -2
  259. package/es/utils/other.mjs +11 -7
  260. package/es/utils/other.mjs.map +1 -1
  261. package/es/utils/semver-satisfies.mjs +0 -3
  262. package/es/utils/semver-satisfies.mjs.map +1 -1
  263. package/es/utils/string.d.ts +0 -12
  264. package/es/utils/string.mjs +1 -21
  265. package/es/utils/string.mjs.map +1 -1
  266. package/package.json +98 -51
  267. package/src/AeSdk.ts +15 -11
  268. package/src/AeSdkAepp.ts +9 -7
  269. package/src/AeSdkBase.ts +31 -202
  270. package/src/AeSdkMethods.ts +169 -0
  271. package/src/AeSdkWallet.ts +16 -47
  272. package/src/Node.ts +17 -18
  273. package/src/account/Base.ts +29 -75
  274. package/src/account/Generalized.ts +98 -0
  275. package/src/account/Ledger.ts +131 -0
  276. package/src/account/LedgerFactory.ts +86 -0
  277. package/src/account/Memory.ts +46 -60
  278. package/src/account/Rpc.ts +17 -26
  279. package/src/aens.ts +13 -11
  280. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +21 -9
  281. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  282. package/src/aepp-wallet-communication/rpc/RpcClient.ts +4 -4
  283. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  284. package/src/aepp-wallet-communication/schema.ts +18 -18
  285. package/src/apis/compiler/code-model-v4.yaml +681 -888
  286. package/src/apis/compiler/compiler.ts +113 -154
  287. package/src/apis/compiler/models/index.ts +80 -140
  288. package/src/apis/compiler/models/mappers.ts +165 -183
  289. package/src/apis/compiler/models/parameters.ts +6 -12
  290. package/src/chain.ts +11 -6
  291. package/src/channel/Base.ts +335 -0
  292. package/src/channel/Contract.ts +488 -0
  293. package/src/channel/Spend.ts +408 -0
  294. package/src/channel/handlers.ts +164 -582
  295. package/src/channel/internal.ts +114 -143
  296. package/src/contract/Contract.ts +610 -0
  297. package/src/contract/compiler/Base.ts +94 -0
  298. package/src/contract/compiler/Cli.ts +134 -0
  299. package/src/contract/compiler/Http.ts +124 -0
  300. package/src/contract/compiler/HttpNode.ts +26 -0
  301. package/src/contract/compiler/getFileSystem.ts +42 -0
  302. package/src/contract/ga.ts +23 -106
  303. package/src/index-browser.ts +58 -0
  304. package/src/index.ts +4 -55
  305. package/src/oracle.ts +8 -8
  306. package/src/spend.ts +6 -14
  307. package/src/tx/builder/constants.ts +33 -3
  308. package/src/tx/builder/field-types/abi-version.ts +21 -0
  309. package/src/tx/builder/field-types/address.ts +62 -0
  310. package/src/tx/builder/field-types/array.ts +19 -0
  311. package/src/tx/builder/field-types/boolean.ts +9 -0
  312. package/src/tx/builder/field-types/coin-amount.ts +4 -9
  313. package/src/tx/builder/field-types/ct-version.ts +50 -0
  314. package/src/tx/builder/field-types/deposit.ts +1 -1
  315. package/src/tx/builder/field-types/encoded.ts +27 -0
  316. package/src/tx/builder/field-types/entry.ts +31 -0
  317. package/src/tx/builder/field-types/enumeration.ts +32 -0
  318. package/src/tx/builder/field-types/fee.ts +39 -21
  319. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  320. package/src/tx/builder/field-types/gas-price.ts +0 -2
  321. package/src/tx/builder/field-types/index.ts +54 -15
  322. package/src/tx/builder/field-types/mptree.ts +242 -0
  323. package/src/tx/builder/field-types/name-fee.ts +2 -3
  324. package/src/tx/builder/field-types/name-id.ts +7 -10
  325. package/src/tx/builder/field-types/pointers.ts +41 -0
  326. package/src/tx/builder/field-types/raw.ts +9 -0
  327. package/src/tx/builder/field-types/short-u-int-const.ts +20 -0
  328. package/src/tx/builder/field-types/string.ts +11 -0
  329. package/src/tx/builder/field-types/u-int.ts +4 -5
  330. package/src/tx/builder/helpers.ts +10 -60
  331. package/src/tx/builder/index.ts +65 -308
  332. package/src/tx/builder/schema.ts +280 -341
  333. package/src/tx/index.ts +40 -103
  334. package/src/tx/validator.ts +91 -96
  335. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  336. package/src/utils/autorest.ts +16 -1
  337. package/src/utils/bytes.ts +6 -34
  338. package/src/utils/crypto.ts +23 -16
  339. package/src/utils/encoder.ts +0 -1
  340. package/src/utils/errors.ts +22 -25
  341. package/src/utils/hd-wallet.ts +30 -9
  342. package/src/utils/keystore.ts +24 -21
  343. package/src/utils/other.ts +16 -1
  344. package/src/utils/string.ts +0 -20
  345. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  346. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  347. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  348. package/types-legacy/ts4.2/AeSdkMethods.d.ts +140 -0
  349. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  350. package/types-legacy/ts4.2/Node.d.ts +78 -0
  351. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  352. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  353. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  354. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  355. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  356. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  357. package/types-legacy/ts4.2/aens.d.ts +222 -0
  358. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  359. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  360. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  361. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  362. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  363. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  364. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  365. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  366. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  367. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  368. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  369. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  370. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  371. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  372. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  373. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  374. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  375. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  376. package/types-legacy/ts4.2/chain.d.ts +256 -0
  377. package/types-legacy/ts4.2/channel/Base.d.ts +199 -0
  378. package/types-legacy/ts4.2/channel/Contract.d.ts +248 -0
  379. package/types-legacy/ts4.2/channel/Spend.d.ts +219 -0
  380. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  381. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  382. package/types-legacy/ts4.2/contract/Contract.d.ts +212 -0
  383. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +81 -0
  384. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  385. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  386. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  387. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  388. package/types-legacy/ts4.2/contract/ga.d.ts +44 -0
  389. package/types-legacy/ts4.2/globals.d.ts +16 -0
  390. package/types-legacy/ts4.2/index-browser.d.ts +39 -0
  391. package/types-legacy/ts4.2/index.d.ts +5 -0
  392. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  393. package/types-legacy/ts4.2/spend.d.ts +62 -0
  394. package/types-legacy/ts4.2/tx/builder/constants.d.ts +98 -0
  395. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +10 -0
  396. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +21 -0
  397. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  398. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  399. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  400. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +42 -0
  401. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  402. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  403. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  404. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +7 -0
  405. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +20 -0
  406. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  407. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +15 -0
  408. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  409. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +129 -0
  410. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +43 -0
  411. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +18 -0
  412. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  413. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  414. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  415. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  416. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  417. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  418. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  419. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +7 -0
  420. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  421. package/types-legacy/ts4.2/tx/builder/index.d.ts +50 -0
  422. package/types-legacy/ts4.2/tx/builder/schema.d.ts +4675 -0
  423. package/types-legacy/ts4.2/tx/index.d.ts +19 -0
  424. package/types-legacy/ts4.2/tx/validator.d.ts +18 -0
  425. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  426. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  427. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  428. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  429. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  430. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  431. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  432. package/types-legacy/ts4.2/utils/errors.d.ts +475 -0
  433. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  434. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  435. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  436. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  437. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  438. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  439. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  440. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  441. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  442. package/types-legacy/ts4.5/AeSdkMethods.d.ts +140 -0
  443. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  444. package/types-legacy/ts4.5/Node.d.ts +78 -0
  445. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  446. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  447. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  448. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  449. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  450. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  451. package/types-legacy/ts4.5/aens.d.ts +222 -0
  452. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  453. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
  454. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  455. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  456. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  457. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  458. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  459. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  460. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  461. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  462. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  463. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  464. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  465. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  466. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  467. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  468. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  469. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  470. package/types-legacy/ts4.5/chain.d.ts +256 -0
  471. package/types-legacy/ts4.5/channel/Base.d.ts +199 -0
  472. package/types-legacy/ts4.5/channel/Contract.d.ts +248 -0
  473. package/types-legacy/ts4.5/channel/Spend.d.ts +219 -0
  474. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  475. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  476. package/types-legacy/ts4.5/contract/Contract.d.ts +212 -0
  477. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +81 -0
  478. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  479. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  480. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  481. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  482. package/types-legacy/ts4.5/contract/ga.d.ts +44 -0
  483. package/types-legacy/ts4.5/index-browser.d.ts +39 -0
  484. package/types-legacy/ts4.5/index.d.ts +4 -0
  485. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  486. package/types-legacy/ts4.5/spend.d.ts +62 -0
  487. package/types-legacy/ts4.5/tx/builder/constants.d.ts +98 -0
  488. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +10 -0
  489. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +21 -0
  490. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  491. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  492. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  493. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +42 -0
  494. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  495. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  496. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  497. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +7 -0
  498. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +20 -0
  499. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  500. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +15 -0
  501. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  502. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +129 -0
  503. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +43 -0
  504. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +18 -0
  505. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  506. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  507. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  508. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  509. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  510. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  511. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  512. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +7 -0
  513. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  514. package/types-legacy/ts4.5/tx/builder/index.d.ts +50 -0
  515. package/types-legacy/ts4.5/tx/builder/schema.d.ts +4675 -0
  516. package/types-legacy/ts4.5/tx/index.d.ts +19 -0
  517. package/types-legacy/ts4.5/tx/validator.d.ts +18 -0
  518. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  519. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  520. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  521. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  522. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  523. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  524. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  525. package/types-legacy/ts4.5/utils/errors.d.ts +475 -0
  526. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  527. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  528. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  529. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  530. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  531. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  532. package/es/channel/index.d.ts +0 -625
  533. package/es/channel/index.mjs +0 -975
  534. package/es/channel/index.mjs.map +0 -1
  535. package/es/contract/Compiler.d.ts +0 -18
  536. package/es/contract/Compiler.mjs +0 -68
  537. package/es/contract/Compiler.mjs.map +0 -1
  538. package/es/contract/aci.d.ts +0 -127
  539. package/es/contract/aci.mjs +0 -508
  540. package/es/contract/aci.mjs.map +0 -1
  541. package/es/contract/methods.d.ts +0 -71
  542. package/es/contract/methods.mjs +0 -104
  543. package/es/contract/methods.mjs.map +0 -1
  544. package/es/deprecated/index.d.ts +0 -143
  545. package/es/deprecated/index.mjs +0 -162
  546. package/es/deprecated/index.mjs.map +0 -1
  547. package/es/deprecated/methods.d.ts +0 -18
  548. package/es/deprecated/methods.mjs +0 -26
  549. package/es/deprecated/methods.mjs.map +0 -1
  550. package/es/tx/builder/address.d.ts +0 -25
  551. package/es/tx/builder/address.mjs +0 -45
  552. package/es/tx/builder/address.mjs.map +0 -1
  553. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  554. package/es/utils/mptree.d.ts +0 -26
  555. package/es/utils/mptree.mjs +0 -165
  556. package/es/utils/mptree.mjs.map +0 -1
  557. package/src/channel/index.ts +0 -1025
  558. package/src/contract/Compiler.ts +0 -67
  559. package/src/contract/aci.ts +0 -537
  560. package/src/contract/methods.ts +0 -123
  561. package/src/deprecated/index.ts +0 -172
  562. package/src/deprecated/methods.ts +0 -25
  563. package/src/tx/builder/address.ts +0 -50
  564. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
  565. package/src/utils/mptree.ts +0 -145
@@ -0,0 +1,134 @@
1
+ import { execFile } from 'child_process';
2
+ import { tmpdir } from 'os';
3
+ import { resolve, dirname, basename } from 'path';
4
+ import { mkdir, writeFile, rm } from 'fs/promises';
5
+ import { fileURLToPath } from 'url';
6
+ import CompilerBase, { Aci } from './Base';
7
+ import { Encoded } from '../../utils/encoder';
8
+ import { CompilerError, InternalError, UnsupportedVersionError } from '../../utils/errors';
9
+ import semverSatisfies from '../../utils/semver-satisfies';
10
+
11
+ const getPackagePath = (): string => {
12
+ const path = dirname(fileURLToPath(import.meta.url));
13
+ if (basename(path) === 'dist') return resolve(path, '..');
14
+ if (basename(path) === 'compiler') return resolve(path, '../../..');
15
+ throw new InternalError('Can\'t get package path');
16
+ };
17
+
18
+ /**
19
+ * A wrapper around aesophia_cli, available only in Node.js
20
+ * Assumes that `escript` is available in PATH.
21
+ */
22
+ export default class CompilerCli extends CompilerBase {
23
+ #path: string;
24
+
25
+ #ensureCompatibleVersion: Promise<void>;
26
+
27
+ constructor(
28
+ compilerPath = resolve(getPackagePath(), './bin/aesophia_cli'),
29
+ { ignoreVersion }: { ignoreVersion?: boolean } = {},
30
+ ) {
31
+ super();
32
+ this.#path = compilerPath;
33
+ if (ignoreVersion !== true) {
34
+ this.#ensureCompatibleVersion = this.version().then((version) => {
35
+ const versions = [version, '7.0.1', '8.0.0'] as const;
36
+ if (!semverSatisfies(...versions)) throw new UnsupportedVersionError('compiler', ...versions);
37
+ });
38
+ }
39
+ }
40
+
41
+ async #run(...parameters: string[]): Promise<string> {
42
+ return new Promise((pResolve, pReject) => {
43
+ execFile('escript', [this.#path, ...parameters], (error, stdout, stderr) => {
44
+ if (error != null) pReject(error);
45
+ else if (stderr !== '') pReject(new CompilerError(stderr));
46
+ else pResolve(stdout);
47
+ });
48
+ });
49
+ }
50
+
51
+ static async #saveContractToTmpDir(
52
+ sourceCode: string,
53
+ fileSystem: Record<string, string> = {},
54
+ ): Promise<string> {
55
+ const randomName = (): string => Math.random().toString(36).slice(2);
56
+ const path = resolve(tmpdir(), `aepp-sdk-js-${randomName()}`);
57
+ await mkdir(path);
58
+ const sourceCodePath = resolve(path, `${randomName()}.aes`);
59
+ await writeFile(sourceCodePath, sourceCode);
60
+ await Promise.all(Object.entries(fileSystem)
61
+ .map(async ([name, src]) => {
62
+ const p = resolve(path, name);
63
+ await mkdir(dirname(p), { recursive: true });
64
+ return writeFile(p, src);
65
+ }));
66
+ return sourceCodePath;
67
+ }
68
+
69
+ async compile(path: string): Promise<{
70
+ bytecode: Encoded.ContractBytearray;
71
+ aci: Aci;
72
+ }> {
73
+ await this.#ensureCompatibleVersion;
74
+ let bytecode;
75
+ let aciCli;
76
+ try {
77
+ [bytecode, aciCli] = await Promise.all([
78
+ this.#run(path),
79
+ this.#run('--create_json_aci', path).then((res) => JSON.parse(res)),
80
+ ]);
81
+ } catch (error) {
82
+ throw new CompilerError(error.message);
83
+ }
84
+ const aci = {
85
+ encodedAci: aciCli[0],
86
+ externalEncodedAci: aciCli.slice(1),
87
+ };
88
+ return {
89
+ bytecode: bytecode.trimEnd() as Encoded.ContractBytearray,
90
+ aci: aci as Aci,
91
+ };
92
+ }
93
+
94
+ async compileBySourceCode(sourceCode: string, fileSystem?: Record<string, string>): Promise<{
95
+ bytecode: Encoded.ContractBytearray;
96
+ aci: Aci;
97
+ }> {
98
+ const tmp = await CompilerCli.#saveContractToTmpDir(sourceCode, fileSystem);
99
+ try {
100
+ return await this.compile(tmp);
101
+ } finally {
102
+ await rm(dirname(tmp), { recursive: true });
103
+ }
104
+ }
105
+
106
+ async validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean> {
107
+ await this.#ensureCompatibleVersion;
108
+ try {
109
+ return (await this.#run(path, '--validate', bytecode)).includes('Validation successful.');
110
+ } catch (error) {
111
+ return false;
112
+ }
113
+ }
114
+
115
+ async validateBySourceCode(
116
+ bytecode: Encoded.ContractBytearray,
117
+ sourceCode: string,
118
+ fileSystem?: Record<string, string>,
119
+ ): Promise<boolean> {
120
+ const tmp = await CompilerCli.#saveContractToTmpDir(sourceCode, fileSystem);
121
+ try {
122
+ return await this.validate(bytecode, tmp);
123
+ } finally {
124
+ await rm(dirname(tmp), { recursive: true });
125
+ }
126
+ }
127
+
128
+ async version(): Promise<string> {
129
+ const verMessage = await this.#run('--version');
130
+ const ver = verMessage.match(/Sophia compiler version ([\d.]+)\n/)?.[1];
131
+ if (ver == null) throw new CompilerError('Can\'t get compiler version');
132
+ return ver;
133
+ }
134
+ }
@@ -0,0 +1,124 @@
1
+ /*
2
+ * ISC License (ISC)
3
+ * Copyright (c) 2022 aeternity developers
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose with or without fee is hereby granted, provided that the above
7
+ * copyright notice and this permission notice appear in all copies.
8
+ *
9
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ * PERFORMANCE OF THIS SOFTWARE.
16
+ */
17
+ import { RestError } from '@azure/core-rest-pipeline';
18
+ import {
19
+ Compiler as CompilerApi,
20
+ ErrorModel,
21
+ CompilerError as CompilerErrorApi,
22
+ } from '../../apis/compiler';
23
+ import { genErrorFormatterPolicy, genVersionCheckPolicy } from '../../utils/autorest';
24
+ import CompilerBase, { Aci } from './Base';
25
+ import { Encoded } from '../../utils/encoder';
26
+ import { CompilerError, NotImplementedError } from '../../utils/errors';
27
+
28
+ type GeneralCompilerError = ErrorModel & {
29
+ info?: object;
30
+ parameter?: string;
31
+ };
32
+
33
+ /**
34
+ * Contract Compiler over HTTP
35
+ *
36
+ * This class include api call's related to contract compiler functionality.
37
+ * @category contract
38
+ * @example CompilerHttp('COMPILER_URL')
39
+ */
40
+ export default class CompilerHttp extends CompilerBase {
41
+ readonly api: CompilerApi;
42
+
43
+ /**
44
+ * @param compilerUrl - Url for compiler API
45
+ * @param options - Options
46
+ * @param options.ignoreVersion - Don't check compiler version
47
+ */
48
+ constructor(compilerUrl: string, { ignoreVersion }: { ignoreVersion?: boolean } = {}) {
49
+ super();
50
+ this.api = new CompilerApi(compilerUrl, {
51
+ allowInsecureConnection: true,
52
+ additionalPolicies: [
53
+ genErrorFormatterPolicy((body: GeneralCompilerError | CompilerErrorApi[]) => {
54
+ let message = '';
55
+ if ('reason' in body) {
56
+ message += ` ${body.reason
57
+ }${body.parameter != null ? ` in ${body.parameter}` : ''
58
+ // TODO: revising after improving documentation https://github.com/aeternity/aesophia_http/issues/78
59
+ }${body.info != null ? ` (${JSON.stringify(body.info)})` : ''}`;
60
+ }
61
+ if (Array.isArray(body)) {
62
+ message += `\n${body
63
+ .map((e) => `${e.type}:${e.pos.line}:${e.pos.col}: ${e.message}${e.context != null ? `(${e.context})` : ''}`)
64
+ .join('\n')}`;
65
+ }
66
+ return message;
67
+ }),
68
+ ],
69
+ });
70
+ if (ignoreVersion !== true) {
71
+ const versionPromise = this.api.apiVersion().then(({ apiVersion }) => apiVersion);
72
+ this.api.pipeline.addPolicy(
73
+ genVersionCheckPolicy('compiler', '/api-version', versionPromise, '7.0.1', '8.0.0'),
74
+ );
75
+ }
76
+ }
77
+
78
+ async compileBySourceCode(
79
+ sourceCode: string,
80
+ fileSystem?: Record<string, string>,
81
+ ): Promise<{ bytecode: Encoded.ContractBytearray; aci: Aci }> {
82
+ try {
83
+ const [bytecode, aci] = await Promise.all([
84
+ this.api.compileContract({ code: sourceCode, options: { fileSystem } })
85
+ .then((res) => res.bytecode as Encoded.ContractBytearray),
86
+ this.api.generateACI({ code: sourceCode, options: { fileSystem } }),
87
+ ]);
88
+ // TODO: should be fixed when the compiledAci interface gets updated
89
+ return { bytecode, aci: aci as Aci };
90
+ } catch (error) {
91
+ if (error instanceof RestError && error.statusCode === 400) {
92
+ throw new CompilerError(error.message.replace(/^aci error:/, 'compile error:'));
93
+ }
94
+ throw error;
95
+ }
96
+ }
97
+
98
+ // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars
99
+ async compile(path: string): Promise<{ bytecode: Encoded.ContractBytearray; aci: Aci }> {
100
+ throw new NotImplementedError('File system access, use CompilerHttpNode instead');
101
+ }
102
+
103
+ async validateBySourceCode(
104
+ bytecode: Encoded.ContractBytearray,
105
+ sourceCode: string,
106
+ fileSystem?: Record<string, string>,
107
+ ): Promise<boolean> {
108
+ try {
109
+ await this.api.validateByteCode({ bytecode, source: sourceCode, options: { fileSystem } });
110
+ return true;
111
+ } catch {
112
+ return false;
113
+ }
114
+ }
115
+
116
+ // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars
117
+ async validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean> {
118
+ throw new NotImplementedError('File system access, use CompilerHttpNode instead');
119
+ }
120
+
121
+ async version(): Promise<string> {
122
+ return (await this.api.version()).version;
123
+ }
124
+ }
@@ -0,0 +1,26 @@
1
+ import { readFile } from 'fs/promises';
2
+ import HttpBrowser from './Http';
3
+ import { Aci } from './Base';
4
+ import { Encoded } from '../../utils/encoder';
5
+ import getFileSystem from './getFileSystem';
6
+
7
+ /**
8
+ * Contract Compiler over HTTP for Nodejs
9
+ *
10
+ * Inherits CompilerHttp and implements `compile`, `validate` methods
11
+ * @category contract
12
+ * @example CompilerHttpNode('COMPILER_URL')
13
+ */
14
+ export default class CompilerHttpNode extends HttpBrowser {
15
+ override async compile(path: string): Promise<{ bytecode: Encoded.ContractBytearray; aci: Aci }> {
16
+ const fileSystem = await getFileSystem(path);
17
+ const sourceCode = await readFile(path, 'utf8');
18
+ return this.compileBySourceCode(sourceCode, fileSystem);
19
+ }
20
+
21
+ override async validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean> {
22
+ const fileSystem = await getFileSystem(path);
23
+ const sourceCode = await readFile(path, 'utf8');
24
+ return this.validateBySourceCode(bytecode, sourceCode, fileSystem);
25
+ }
26
+ }
@@ -0,0 +1,42 @@
1
+ import { readFile } from 'fs/promises';
2
+ import { dirname, resolve, basename } from 'path';
3
+ import { InternalError } from '../../utils/errors';
4
+
5
+ const defaultIncludes = [
6
+ 'List.aes', 'Option.aes', 'String.aes',
7
+ 'Func.aes', 'Pair.aes', 'Triple.aes',
8
+ 'BLS12_381.aes', 'Frac.aes', 'Set.aes',
9
+ 'Bitwise.aes',
10
+ ];
11
+ const includeRegExp = /^include\s*"([\w/.-]+)"/mi;
12
+ const includesRegExp = new RegExp(includeRegExp.source, `${includeRegExp.flags}g`);
13
+
14
+ async function getFileSystemRec(
15
+ root: string,
16
+ relative: string,
17
+ ): Promise<Record<string, string>> {
18
+ const sourceCode = await readFile(resolve(root, relative), 'utf8');
19
+ const filesystem: Record<string, string> = {};
20
+ await Promise.all((sourceCode.match(includesRegExp) ?? [])
21
+ .map((include) => {
22
+ const m = include.match(includeRegExp);
23
+ if (m?.length !== 2) throw new InternalError('Unexpected match length');
24
+ return m[1];
25
+ })
26
+ .filter((include) => !defaultIncludes.includes(include))
27
+ .map(async (include) => {
28
+ const includePath = resolve(root, include);
29
+ filesystem[include] = await readFile(includePath, 'utf8');
30
+ Object.assign(filesystem, await getFileSystemRec(root, include));
31
+ }));
32
+ return filesystem;
33
+ }
34
+
35
+ /**
36
+ * Reads all files included in the provided contract
37
+ * Available only in Node.js
38
+ * @param path - a path to the main contract source code
39
+ */
40
+ export default async function getFileSystem(path: string): Promise<Record<string, string>> {
41
+ return getFileSystemRec(dirname(path), basename(path));
42
+ }
@@ -19,55 +19,34 @@
19
19
  * Generalized Account module - routines to use generalized account
20
20
  */
21
21
 
22
- import { MAX_AUTH_FUN_GAS, TxSchema } from '../tx/builder/schema';
23
22
  import { Tag } from '../tx/builder/constants';
24
- import {
25
- buildContractIdByContractTx, buildTx, BuiltTx, TxUnpacked, unpackTx,
26
- } from '../tx/builder';
27
- import {
28
- _buildTx, BuildTxOptions, getVmVersion, prepareTxParams,
29
- } from '../tx';
23
+ import { buildContractIdByContractTx } from '../tx/builder';
24
+ import { _buildTx, BuildTxOptions } from '../tx';
30
25
  import { hash } from '../utils/crypto';
31
- import { decode, Encoded, Encoding } from '../utils/encoder';
32
- import { IllegalArgumentError, MissingParamError, InvalidAuthDataError } from '../utils/errors';
26
+ import { decode, Encoded } from '../utils/encoder';
27
+ import { IllegalArgumentError } from '../utils/errors';
33
28
  import { concatBuffers } from '../utils/other';
34
29
  import AccountBase from '../account/Base';
35
- import { getContractInstance } from './methods';
30
+ import Contract from './Contract';
36
31
  import { send, SendOptions } from '../spend';
37
32
  import Node from '../Node';
38
33
  import { getAccount } from '../chain';
39
- import Compiler from './Compiler';
40
-
41
- /**
42
- * Check if account is GA
43
- * @category contract
44
- * @param address - Account address
45
- * @param options - Options
46
- * @returns if account is GA
47
- */
48
- export async function isGA(
49
- address: Encoded.AccountAddress,
50
- options: Parameters<typeof getAccount>[1],
51
- ): Promise<boolean> {
52
- const { contractId } = await getAccount(address, options);
53
- return contractId != null;
54
- }
34
+ import CompilerBase from './compiler/Base';
55
35
 
56
36
  /**
57
37
  * Convert current account to GA
58
38
  * @category contract
59
39
  * @param authFnName - Authorization function name
60
- * @param source - Auth contract source code
40
+ * @param sourceCode - Auth contract source code
61
41
  * @param args - init arguments
62
42
  * @param options - Options
63
43
  * @returns General Account Object
64
44
  */
65
45
  export async function createGeneralizedAccount(
66
46
  authFnName: string,
67
- source: string,
68
47
  args: any[],
69
48
  {
70
- onAccount, onCompiler, onNode, ...options
49
+ onAccount, onCompiler, onNode, bytecode, aci, sourceCodePath, sourceCode, fileSystem, ...options
71
50
  }: CreateGeneralizedAccountOptions,
72
51
  ): Promise<Readonly<{
73
52
  owner: Encoded.AccountAddress;
@@ -75,20 +54,22 @@ export async function createGeneralizedAccount(
75
54
  rawTx: Encoded.Transaction;
76
55
  gaContractId: Encoded.ContractAddress;
77
56
  }>> {
78
- const ownerId = await onAccount.address(options);
79
- if (await isGA(ownerId, { onNode })) throw new IllegalArgumentError(`Account ${ownerId} is already GA`);
57
+ const ownerId = onAccount.address;
58
+ if ((await getAccount(ownerId, { onNode })).kind === 'generalized') {
59
+ throw new IllegalArgumentError(`Account ${ownerId} is already GA`);
60
+ }
80
61
 
81
- const contract = await getContractInstance({
82
- onAccount, onCompiler, onNode, source,
62
+ const contract = await Contract.initialize<{ init: (...a: any[]) => void }>({
63
+ onAccount, onCompiler, onNode, bytecode, aci, sourceCodePath, sourceCode, fileSystem,
83
64
  });
84
65
 
85
66
  const tx = await _buildTx(Tag.GaAttachTx, {
86
67
  ...options,
87
68
  onNode,
88
- code: await contract.compile(),
69
+ code: await contract.$compile(),
89
70
  gasLimit: options.gasLimit ?? await contract._estimateGas('init', args, options),
90
71
  ownerId,
91
- callData: contract.calldata.encode(contract._name, 'init', args),
72
+ callData: contract._calldata.encode(contract._name, 'init', args),
92
73
  authFun: hash(authFnName),
93
74
  });
94
75
  const contractId = buildContractIdByContractTx(tx);
@@ -106,80 +87,17 @@ export async function createGeneralizedAccount(
106
87
 
107
88
  interface CreateGeneralizedAccountOptions extends
108
89
  BuildTxOptions<Tag.GaAttachTx, 'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit'>,
109
- SendOptions {
90
+ SendOptions,
91
+ Pick<
92
+ Parameters<typeof Contract.initialize>[0],
93
+ 'bytecode' | 'aci' | 'sourceCodePath' | 'sourceCode' | 'fileSystem'
94
+ > {
110
95
  onAccount: AccountBase;
111
- onCompiler: Compiler;
96
+ onCompiler: CompilerBase;
112
97
  onNode: Node;
113
98
  gasLimit?: number;
114
99
  }
115
100
 
116
- /**
117
- * Create a metaTx transaction
118
- * @category contract
119
- * @param rawTransaction - Inner transaction
120
- * @param authData - Object with gaMeta params
121
- * @param authFnName - Authorization function name
122
- * @param options - Options
123
- * @param options.onAccount - Account to use
124
- * @returns Transaction string
125
- */
126
- export async function createMetaTx(
127
- rawTransaction: Encoded.Transaction,
128
- authData: {
129
- gasLimit?: number;
130
- callData?: Encoded.ContractBytearray;
131
- source?: string;
132
- args?: any[];
133
- },
134
- authFnName: string,
135
- {
136
- onAccount, onCompiler, onNode, ...options
137
- }:
138
- { onAccount: AccountBase; onCompiler: Compiler; onNode: Node }
139
- & Parameters<AccountBase['address']>[0],
140
- ): Promise<Encoded.Transaction> {
141
- const wrapInEmptySignedTx = (
142
- tx: Encoded.Transaction | Uint8Array | TxUnpacked<TxSchema>,
143
- ): BuiltTx<TxSchema, Encoding.Transaction> => (
144
- buildTx({ encodedTx: tx, signatures: [] }, Tag.SignedTx)
145
- );
146
-
147
- if (Object.keys(authData).length <= 0) throw new MissingParamError('authData is required');
148
-
149
- const gasLimit = authData.gasLimit ?? MAX_AUTH_FUN_GAS;
150
- if (gasLimit > MAX_AUTH_FUN_GAS) {
151
- throw new InvalidAuthDataError(`the maximum gasLimit value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${gasLimit}`);
152
- }
153
-
154
- const authCallData = authData.callData ?? await (async () => {
155
- if (authData.source == null || authData.args == null) throw new InvalidAuthDataError('Auth data must contain source code and arguments.');
156
- const contract = await getContractInstance({
157
- onCompiler, onNode, source: authData.source,
158
- });
159
- return contract.calldata.encode(contract._name, authFnName, authData.args);
160
- })();
161
-
162
- const { abiVersion } = await getVmVersion(Tag.ContractCallTx, { onNode });
163
- const wrappedTx = wrapInEmptySignedTx(unpackTx<Tag.SignedTx>(rawTransaction));
164
- const params = {
165
- ...options,
166
- tx: {
167
- ...wrappedTx,
168
- tx: wrappedTx.txObject,
169
- },
170
- // TODO: accept an address instead
171
- gaId: await onAccount.address(options),
172
- abiVersion,
173
- authData: authCallData,
174
- gasLimit,
175
- vsn: 2,
176
- };
177
- // @ts-expect-error createMetaTx needs to be integrated into tx builder
178
- const { fee } = await prepareTxParams(Tag.GaMetaTx, { ...params, onNode });
179
- const { rlpEncoded: metaTxRlp } = buildTx({ ...params, fee }, Tag.GaMetaTx);
180
- return wrapInEmptySignedTx(metaTxRlp).tx;
181
- }
182
-
183
101
  /**
184
102
  * Build a transaction hash the same as `Auth.tx_hash`
185
103
  * @category contract
@@ -192,8 +110,7 @@ export async function buildAuthTxHash(
192
110
  transaction: Encoded.Transaction,
193
111
  { onNode }: { onNode: Node },
194
112
  ): Promise<Uint8Array> {
195
- const { networkId } = await onNode.getStatus();
196
113
  return new Uint8Array(hash(
197
- concatBuffers([Buffer.from(networkId), decode(transaction)]),
114
+ concatBuffers([Buffer.from(await onNode.getNetworkId()), decode(transaction)]),
198
115
  ));
199
116
  }
@@ -0,0 +1,58 @@
1
+ /*
2
+ * ISC License (ISC)
3
+ * Copyright (c) 2022 aeternity developers
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose with or without fee is hereby granted, provided that the above
7
+ * copyright notice and this permission notice appear in all copies.
8
+ *
9
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ * PERFORMANCE OF THIS SOFTWARE.
16
+ */
17
+
18
+ export * from './chain';
19
+ export * from './utils/crypto';
20
+ export * from './utils/keystore';
21
+ export * from './utils/bytes';
22
+ export * from './tx';
23
+ export * from './tx/builder';
24
+ export * from './tx/builder/helpers';
25
+ export * from './tx/builder/constants';
26
+ export * from './tx/builder/schema';
27
+ export * from './utils/amount-formatter';
28
+ export * from './utils/hd-wallet';
29
+ export { encode, decode, Encoding } from './utils/encoder';
30
+ export * from './aens';
31
+ export { default as Contract } from './contract/Contract';
32
+ export type { ContractMethodsBase } from './contract/Contract';
33
+ export * from './oracle';
34
+ export * from './spend';
35
+ export * from './contract/ga';
36
+
37
+ export { default as AeSdkMethods } from './AeSdkMethods';
38
+ export { default as AeSdkBase } from './AeSdkBase';
39
+ export { default as AeSdk } from './AeSdk';
40
+ export { default as AeSdkAepp } from './AeSdkAepp';
41
+ export { default as AeSdkWallet } from './AeSdkWallet';
42
+ export { default as Node } from './Node';
43
+ export { default as verifyTransaction } from './tx/validator';
44
+ export { default as AccountBase } from './account/Base';
45
+ export { default as MemoryAccount } from './account/Memory';
46
+ export { default as AccountGeneralized } from './account/Generalized';
47
+ export { default as AccountLedger } from './account/Ledger';
48
+ export { default as AccountLedgerFactory } from './account/LedgerFactory';
49
+ export { default as CompilerBase } from './contract/compiler/Base';
50
+ export { default as CompilerHttp } from './contract/compiler/Http';
51
+ export { default as Channel } from './channel/Contract';
52
+
53
+ export { default as connectionProxy } from './aepp-wallet-communication/connection-proxy';
54
+ export * from './aepp-wallet-communication/schema';
55
+ export { default as walletDetector } from './aepp-wallet-communication/wallet-detector';
56
+ export { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime';
57
+ export { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage';
58
+ export * from './utils/errors';
package/src/index.ts CHANGED
@@ -1,56 +1,5 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2022 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
1
+ export * from './index-browser';
17
2
 
18
- export * from './chain';
19
- export * from './utils/crypto';
20
- export * from './utils/keystore';
21
- export * from './utils/bytes';
22
- export * from './tx';
23
- export * from './tx/builder';
24
- export * from './tx/builder/helpers';
25
- export * from './tx/builder/constants';
26
- export * from './tx/builder/schema';
27
- export * from './tx/builder/address';
28
- export * from './utils/amount-formatter';
29
- export * from './utils/hd-wallet';
30
- export {
31
- sha256hash, encode, decode, Encoding,
32
- } from './utils/encoder';
33
- export * from './aens';
34
- export * from './contract/methods';
35
- export * from './oracle';
36
- export * from './spend';
37
- export * from './contract/ga';
38
- export * from './deprecated';
39
-
40
- export { default as AeSdkBase } from './AeSdkBase';
41
- export { default as AeSdk } from './AeSdk';
42
- export { default as AeSdkAepp } from './AeSdkAepp';
43
- export { default as AeSdkWallet } from './AeSdkWallet';
44
- export { default as Node } from './Node';
45
- export { default as verifyTransaction } from './tx/validator';
46
- export { default as AccountBase } from './account/Base';
47
- export { default as MemoryAccount } from './account/Memory';
48
- export { default as Compiler } from './contract/Compiler';
49
- export { default as Channel } from './channel';
50
-
51
- export { default as connectionProxy } from './aepp-wallet-communication/connection-proxy';
52
- export * from './aepp-wallet-communication/schema';
53
- export { default as walletDetector } from './aepp-wallet-communication/wallet-detector';
54
- export { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime';
55
- export { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage';
56
- export * from './utils/errors';
3
+ export { default as CompilerCli } from './contract/compiler/Cli';
4
+ export { default as getFileSystem } from './contract/compiler/getFileSystem';
5
+ export { default as CompilerHttpNode } from './contract/compiler/HttpNode';