@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,169 @@
1
+ import * as chainMethods from './chain';
2
+ import * as aensMethods from './aens';
3
+ import * as spendMethods from './spend';
4
+ import * as oracleMethods from './oracle';
5
+ import Contract, { ContractMethodsBase } from './contract/Contract';
6
+ import * as contractGaMethods from './contract/ga';
7
+ import { _buildTx } from './tx';
8
+ import { mapObject, UnionToIntersection } from './utils/other';
9
+ import Node from './Node';
10
+ import { AE_AMOUNT_FORMATS } from './utils/amount-formatter';
11
+ import { Tag } from './tx/builder/constants';
12
+ import AccountBase from './account/Base';
13
+ import { Encoded } from './utils/encoder';
14
+ import CompilerBase from './contract/compiler/Base';
15
+ import { ArgumentError, NotImplementedError, TypeError } from './utils/errors';
16
+
17
+ export type OnAccount = Encoded.AccountAddress | AccountBase | undefined;
18
+
19
+ export function getValueOrErrorProxy<Value extends object>(valueCb: () => Value): Value {
20
+ return new Proxy({}, {
21
+ ...Object.fromEntries([
22
+ 'apply', 'construct', 'defineProperty', 'deleteProperty', 'getOwnPropertyDescriptor',
23
+ 'getPrototypeOf', 'isExtensible', 'ownKeys', 'preventExtensions', 'set', 'setPrototypeOf',
24
+ ].map((name) => [name, () => { throw new NotImplementedError(`${name} proxy request`); }])),
25
+ get(t: {}, property: string | symbol, receiver: any) {
26
+ const target = valueCb();
27
+ const value = Reflect.get(target, property, receiver);
28
+ return typeof value === 'function' ? value.bind(target) : value;
29
+ },
30
+ has(t: {}, property: string | symbol) {
31
+ return Reflect.has(valueCb(), property);
32
+ },
33
+ }) as Value;
34
+ }
35
+
36
+ const { InvalidTxError: _2, ...chainMethodsOther } = chainMethods;
37
+
38
+ const methods = {
39
+ ...chainMethodsOther,
40
+ ...aensMethods,
41
+ ...spendMethods,
42
+ ...oracleMethods,
43
+ ...contractGaMethods,
44
+ } as const;
45
+
46
+ type Decrement<Number extends number> = [-1, 0, 1, 2, 3, 4, 5][Number];
47
+ type GetMethodsOptions <Methods extends { [key: string]: Function }> =
48
+ {
49
+ [Name in keyof Methods]:
50
+ Methods[Name] extends (...args: infer Args) => any
51
+ ? Args[Decrement<Args['length']>] : never
52
+ };
53
+ type MethodsOptions = GetMethodsOptions<typeof methods>;
54
+ interface AeSdkMethodsOptions
55
+ extends Partial<UnionToIntersection<MethodsOptions[keyof MethodsOptions]>> {
56
+ nodes?: Array<{ name: string; instance: Node }>;
57
+ }
58
+
59
+ /**
60
+ * AeSdkMethods is the composition of:
61
+ * - chain methods
62
+ * - tx methods
63
+ * - aens methods
64
+ * - spend methods
65
+ * - oracle methods
66
+ * - contract methods
67
+ * - contract ga methods
68
+ *
69
+ * While these methods can be used separately, this class provides a handy way to store
70
+ * their context (current account, network, and compiler to use).
71
+ */
72
+ class AeSdkMethods {
73
+ _options: AeSdkMethodsOptions = { denomination: AE_AMOUNT_FORMATS.AETTOS };
74
+
75
+ /**
76
+ * @param options - Options
77
+ */
78
+ constructor(options: AeSdkMethodsOptions = {}) {
79
+ Object.assign(this._options, options);
80
+ }
81
+
82
+ /**
83
+ * Resolves an account
84
+ * @param account - ak-address, instance of AccountBase, or keypair
85
+ */
86
+ // eslint-disable-next-line class-methods-use-this
87
+ _resolveAccount(account?: OnAccount): AccountBase {
88
+ if (typeof account === 'string') throw new NotImplementedError('Address in AccountResolver');
89
+ if (typeof account === 'object') return account;
90
+ throw new TypeError(
91
+ 'Account should be an address (ak-prefixed string), '
92
+ + `or instance of AccountBase, got ${String(account)} instead`,
93
+ );
94
+ }
95
+
96
+ _getOptions(): AeSdkMethodsOptions & { onAccount: AccountBase } {
97
+ return {
98
+ ...this._options,
99
+ onAccount: getValueOrErrorProxy(() => this._resolveAccount()),
100
+ };
101
+ }
102
+
103
+ async buildTx<TxType extends Tag>(
104
+ txType: TxType,
105
+ options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node },
106
+ ): Promise<Encoded.Transaction> {
107
+ // @ts-expect-error TODO: need to figure out what's wrong here
108
+ return _buildTx<TxType>(txType, {
109
+ ...this._getOptions(),
110
+ ...options,
111
+ });
112
+ }
113
+
114
+ async initializeContract<Methods extends ContractMethodsBase>(
115
+ options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode'> & { onNode?: Node },
116
+ ): Promise<Contract<Methods>> {
117
+ const { onNode, onCompiler, ...otherOptions } = this._getOptions();
118
+ if (onCompiler == null || onNode == null) {
119
+ throw new ArgumentError('onCompiler, onNode', 'provided', null);
120
+ }
121
+ return Contract.initialize<Methods>({
122
+ ...otherOptions,
123
+ onNode,
124
+ onCompiler,
125
+ ...options,
126
+ });
127
+ }
128
+ }
129
+
130
+ type RequiredKeys<T> = {
131
+ [K in keyof T]-?: {} extends Pick<T, K> ? never : K
132
+ }[keyof T];
133
+
134
+ type OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T;
135
+
136
+ type MakeOptional<Options> = OptionalIfNotRequired<[
137
+ Omit<Options, 'onNode' | 'onCompiler' | 'onAccount'>
138
+ & { onNode?: Node; onCompiler?: CompilerBase; onAccount?: OnAccount },
139
+ ]>;
140
+
141
+ type TransformMethods <Methods extends { [key: string]: Function }> =
142
+ {
143
+ [Name in keyof Methods]:
144
+ Methods[Name] extends (...args: [...infer Args, infer Options]) => infer Ret
145
+ ? (...args: [...Args, ...MakeOptional<Options>]) => Ret
146
+ : never
147
+ };
148
+
149
+ interface AeSdkMethodsTransformed extends TransformMethods<typeof methods> {}
150
+
151
+ Object.assign(AeSdkMethods.prototype, mapObject<Function, Function>(
152
+ methods,
153
+ ([name, handler]) => [
154
+ name,
155
+ function methodWrapper(...args: any[]) {
156
+ args.length = handler.length;
157
+ const options = args[args.length - 1];
158
+ args[args.length - 1] = {
159
+ ...this._getOptions(),
160
+ ...options,
161
+ ...options?.onAccount != null && { onAccount: this._resolveAccount(options.onAccount) },
162
+ };
163
+ return handler(...args);
164
+ },
165
+ ],
166
+ ));
167
+
168
+ export default AeSdkMethods as new (options?: ConstructorParameters<typeof AeSdkMethods>[0]) =>
169
+ AeSdkMethods & AeSdkMethodsTransformed;
@@ -1,6 +1,5 @@
1
1
  import { v4 as uuid } from '@aeternity/uuid';
2
2
  import AeSdk from './AeSdk';
3
- import { Account } from './AeSdkBase';
4
3
  import verifyTransaction from './tx/validator';
5
4
  import RpcClient from './aepp-wallet-communication/rpc/RpcClient';
6
5
  import {
@@ -32,10 +31,6 @@ type OnSubscription = (
32
31
  clientId: string, params: Parameters<WalletApi[METHODS.subscribeAddress]>[0], origin: string
33
32
  ) => void;
34
33
 
35
- type OnSign = (
36
- clientId: string, params: Parameters<WalletApi[METHODS.sign]>[0], origin: string
37
- ) => Promise<{ tx?: Encoded.Transaction; onAccount?: Account } | undefined> | Promise<void>;
38
-
39
34
  type OnDisconnect = (
40
35
  clientId: string, params: Parameters<WalletApi[METHODS.closeConnection]>[0]
41
36
  ) => void;
@@ -44,10 +39,6 @@ type OnAskAccounts = (
44
39
  clientId: string, params: undefined, origin: string
45
40
  ) => void;
46
41
 
47
- type OnMessageSign = (
48
- clientId: string, params: Parameters<WalletApi[METHODS.signMessage]>[0], origin: string
49
- ) => Promise<{ onAccount?: Account } | undefined> | Promise<void>;
50
-
51
42
  interface RpcClientsInfo {
52
43
  id: string;
53
44
  status: RPC_STATUS;
@@ -67,20 +58,16 @@ export default class AeSdkWallet extends AeSdk {
67
58
 
68
59
  name: string;
69
60
 
70
- _clients: Map<string, RpcClientsInfo>;
61
+ _clients = new Map<string, RpcClientsInfo>();
71
62
 
72
63
  onConnection: OnConnection;
73
64
 
74
65
  onSubscription: OnSubscription;
75
66
 
76
- onSign: OnSign;
77
-
78
67
  onDisconnect: OnDisconnect;
79
68
 
80
69
  onAskAccounts: OnAskAccounts;
81
70
 
82
- onMessageSign: OnMessageSign;
83
-
84
71
  /**
85
72
  * @param options - Options
86
73
  * @param options.name - Wallet name
@@ -88,9 +75,7 @@ export default class AeSdkWallet extends AeSdk {
88
75
  * @param options.type - Wallet type
89
76
  * @param options.onConnection - Call-back function for incoming AEPP connection
90
77
  * @param options.onSubscription - Call-back function for incoming AEPP account subscription
91
- * @param options.onSign - Call-back function for incoming AEPP sign request
92
78
  * @param options.onAskAccounts - Call-back function for incoming AEPP get address request
93
- * @param options.onMessageSign - Call-back function for incoming AEPP sign message request
94
79
  * @param options.onDisconnect - Call-back function for disconnect event
95
80
  */
96
81
  constructor({
@@ -99,10 +84,8 @@ export default class AeSdkWallet extends AeSdk {
99
84
  type,
100
85
  onConnection,
101
86
  onSubscription,
102
- onSign,
103
87
  onDisconnect,
104
88
  onAskAccounts,
105
- onMessageSign,
106
89
  ...options
107
90
  }: {
108
91
  id: string;
@@ -110,52 +93,45 @@ export default class AeSdkWallet extends AeSdk {
110
93
  name: string;
111
94
  onConnection: OnConnection;
112
95
  onSubscription: OnSubscription;
113
- onSign: OnSign;
114
96
  onDisconnect: OnDisconnect;
115
97
  onAskAccounts: OnAskAccounts;
116
- onMessageSign: OnMessageSign;
117
98
  } & ConstructorParameters<typeof AeSdk>[0]) {
118
99
  super(options);
119
100
  this.onConnection = onConnection;
120
101
  this.onSubscription = onSubscription;
121
- this.onSign = onSign;
122
102
  this.onDisconnect = onDisconnect;
123
103
  this.onAskAccounts = onAskAccounts;
124
- this.onMessageSign = onMessageSign;
125
- this._clients = new Map();
126
104
  this.name = name;
127
105
  this.id = id;
128
106
  this._type = type;
129
107
  }
130
108
 
131
109
  _pushAccountsToApps(): void {
110
+ if (this._clients == null) return;
132
111
  Array.from(this._clients.keys())
133
112
  .filter((clientId) => this._isRpcClientSubscribed(clientId))
134
113
  .map((clientId) => this._getClient(clientId).rpc)
135
114
  .forEach((client) => client.notify(METHODS.updateAddress, this.getAccounts()));
136
115
  }
137
116
 
138
- selectAccount(address: Encoded.AccountAddress): void {
117
+ override selectAccount(address: Encoded.AccountAddress): void {
139
118
  super.selectAccount(address);
140
119
  this._pushAccountsToApps();
141
120
  }
142
121
 
143
- async addAccount(
144
- account: AccountBase,
145
- options?: Parameters<AeSdk['addAccount']>[1],
146
- ): Promise<void> {
147
- await super.addAccount(account, options);
122
+ override addAccount(account: AccountBase, options?: Parameters<AeSdk['addAccount']>[1]): void {
123
+ super.addAccount(account, options);
148
124
  this._pushAccountsToApps();
149
125
  }
150
126
 
151
127
  _getNode(): { node: Network['node'] } {
152
128
  this.ensureNodeConnected();
153
- return { node: { url: this.api.url, name: this.selectedNodeName } };
129
+ return { node: { url: this.api.$host, name: this.selectedNodeName } };
154
130
  }
155
131
 
156
- async selectNode(name: string): Promise<void> {
132
+ override async selectNode(name: string): Promise<void> {
157
133
  super.selectNode(name);
158
- const networkId = await this.getNetworkId();
134
+ const networkId = await this.api.getNetworkId();
159
135
  Array.from(this._clients.keys())
160
136
  .filter((clientId) => this._isRpcClientConnected(clientId))
161
137
  .map((clientId) => this._getClient(clientId))
@@ -266,22 +242,19 @@ export default class AeSdkWallet extends AeSdk {
266
242
  await this.onAskAccounts(id, params, origin);
267
243
  return this.addresses();
268
244
  },
269
- [METHODS.sign]: async ({ tx, onAccount, returnSigned }, origin) => {
245
+ [METHODS.sign]: async ({ tx, onAccount = this.address, returnSigned }, origin) => {
270
246
  if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
271
- onAccount ??= await this.address();
272
247
  if (!this.addresses().includes(onAccount)) {
273
248
  throw new RpcPermissionDenyError(onAccount);
274
249
  }
275
250
 
276
- const overrides = await this.onSign(id, { tx, returnSigned, onAccount }, origin);
277
- onAccount = overrides?.onAccount ?? onAccount;
278
- tx = overrides?.tx ?? tx;
251
+ const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };
279
252
  if (returnSigned) {
280
- return { signedTransaction: await this.signTransaction(tx, { onAccount }) };
253
+ return { signedTransaction: await this.signTransaction(tx, parameters) };
281
254
  }
282
255
  try {
283
256
  return jsonBig.parse(jsonBig.stringify({
284
- transactionHash: await this.send(tx, { onAccount, verify: false }),
257
+ transactionHash: await this.send(tx, { ...parameters, verify: false }),
285
258
  }));
286
259
  } catch (error) {
287
260
  const validation = await verifyTransaction(tx, this.api);
@@ -289,19 +262,15 @@ export default class AeSdkWallet extends AeSdk {
289
262
  throw new RpcBroadcastError(error.message);
290
263
  }
291
264
  },
292
- [METHODS.signMessage]: async ({ message, onAccount }, origin) => {
265
+ [METHODS.signMessage]: async ({ message, onAccount = this.address }, origin) => {
293
266
  if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
294
- onAccount ??= await this.address();
295
267
  if (!this.addresses().includes(onAccount)) {
296
268
  throw new RpcPermissionDenyError(onAccount);
297
269
  }
298
270
 
299
- const overrides = await this.onMessageSign(id, { message, onAccount }, origin);
300
- onAccount = overrides?.onAccount ?? onAccount;
271
+ const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };
301
272
  return {
302
- // TODO: fix signMessage return type
303
- signature: await this.signMessage(message, { onAccount, returnHex: true }) as
304
- unknown as string,
273
+ signature: Buffer.from(await this.signMessage(message, parameters)).toString('hex'),
305
274
  };
306
275
  },
307
276
  },
@@ -327,7 +296,7 @@ export default class AeSdkWallet extends AeSdk {
327
296
  return {
328
297
  id: this.id,
329
298
  name: this.name,
330
- networkId: await this.getNetworkId(),
299
+ networkId: await this.api.getNetworkId(),
331
300
  origin: window.location.origin,
332
301
  type: this._type,
333
302
  };
package/src/Node.ts CHANGED
@@ -8,16 +8,7 @@ import {
8
8
  import { Node as NodeApi, NodeOptionalParams, ErrorModel } from './apis/node';
9
9
  import { mapObject } from './utils/other';
10
10
  import { Encoded } from './utils/encoder';
11
- import { MissingParamError } from './utils/errors';
12
-
13
- /**
14
- * Obtain networkId from account or node
15
- */
16
- export async function getNetworkId({ networkId }: { networkId?: string } = {}): Promise<string> {
17
- const res = networkId ?? this.networkId ?? (await this.api?.getStatus())?.networkId;
18
- if (res != null) return res;
19
- throw new MissingParamError('networkId is not provided');
20
- }
11
+ import { ConsensusProtocolVersion } from './tx/builder/constants';
21
12
 
22
13
  const bigIntPropertyNames = [
23
14
  'balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount',
@@ -27,14 +18,14 @@ const bigIntPropertyNames = [
27
18
 
28
19
  const numberPropertyNames = [
29
20
  'time', 'gas', 'gasUsed', 'nameSalt',
30
- 'nonce', 'nextNonce', 'height', 'blockHeight', 'top', 'topBlockHeight',
21
+ 'nonce', 'nextNonce', 'height', 'blockHeight', 'topBlockHeight',
31
22
  'ttl', 'nameTtl', 'clientTtl',
32
23
  'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight',
33
24
  'version', 'solutions', 'round',
34
25
  ] as const;
35
26
 
36
27
  class NodeTransformed extends NodeApi {
37
- async sendOperationRequest(
28
+ override async sendOperationRequest(
38
29
  operationArguments: OperationArguments,
39
30
  operationSpec: OperationSpec,
40
31
  ): Promise<any> {
@@ -101,7 +92,9 @@ export type TransformNodeType<Type> =
101
92
  ? PreserveOptional<number, Type[Property]>
102
93
  : Property extends 'txHash'
103
94
  ? PreserveOptional<Encoded.TxHash, Type[Property]>
104
- : TransformNodeType<Type[Property]>
95
+ : Property extends 'bytecode'
96
+ ? PreserveOptional<Encoded.ContractBytearray, Type[Property]>
97
+ : TransformNodeType<Type[Property]>
105
98
  }
106
99
  : Type;
107
100
  type NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {
@@ -114,11 +107,11 @@ export interface NodeInfo {
114
107
  url: string;
115
108
  nodeNetworkId: string;
116
109
  version: string;
117
- consensusProtocolVersion: number;
110
+ consensusProtocolVersion: ConsensusProtocolVersion;
118
111
  }
119
112
 
120
113
  export default class Node extends (NodeTransformed as unknown as NodeTransformedApi) {
121
- url: string;
114
+ #networkIdPromise?: Promise<string>;
122
115
 
123
116
  /**
124
117
  * @param url - Url for node API
@@ -139,9 +132,10 @@ export default class Node extends (NodeTransformed as unknown as NodeTransformed
139
132
  ],
140
133
  ...options,
141
134
  });
142
- this.url = url;
143
135
  if (!ignoreVersion) {
144
- const versionPromise = this.getStatus().then(({ nodeVersion }) => nodeVersion);
136
+ const statusPromise = this.getStatus();
137
+ const versionPromise = statusPromise.then(({ nodeVersion }) => nodeVersion);
138
+ this.#networkIdPromise = statusPromise.then(({ networkId }) => networkId);
145
139
  this.pipeline.addPolicy(
146
140
  genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'),
147
141
  );
@@ -149,6 +143,11 @@ export default class Node extends (NodeTransformed as unknown as NodeTransformed
149
143
  this.intAsString = true;
150
144
  }
151
145
 
146
+ async getNetworkId(): Promise<string> {
147
+ this.#networkIdPromise ??= this.getStatus().then(({ networkId }) => networkId);
148
+ return this.#networkIdPromise;
149
+ }
150
+
152
151
  async getNodeInfo(): Promise<NodeInfo> {
153
152
  const {
154
153
  nodeVersion: version,
@@ -164,7 +163,7 @@ export default class Node extends (NodeTransformed as unknown as NodeTransformed
164
163
  )
165
164
  .version;
166
165
  return {
167
- url: this.url,
166
+ url: this.$host,
168
167
  nodeNetworkId,
169
168
  version,
170
169
  consensusProtocolVersion,
@@ -14,99 +14,54 @@
14
14
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
15
  * PERFORMANCE OF THIS SOFTWARE.
16
16
  */
17
- import { messageToHash, verifyMessage as verifyMessageCrypto, hash } from '../utils/crypto';
18
- import { buildTx } from '../tx/builder';
19
- import { decode, Encoded } from '../utils/encoder';
20
- import { Tag } from '../tx/builder/constants';
21
- import { getNetworkId } from '../Node';
22
- import { concatBuffers } from '../utils/other';
23
- import type { createMetaTx } from '../contract/ga';
24
-
25
- /**
26
- * Check is provided object looks like an instance of AccountBase
27
- * @param acc - Object to check
28
- */
29
- export const isAccountBase = (acc: AccountBase | any): boolean => (
30
- !['sign', 'address', 'signTransaction', 'signMessage'].some((f) => typeof acc[f] !== 'function')
31
- );
17
+ import { Encoded } from '../utils/encoder';
18
+ import Node from '../Node';
19
+ import CompilerBase from '../contract/compiler/Base';
32
20
 
33
21
  /**
34
22
  * Account is one of the three basic building blocks of an
35
23
  * {@link AeSdk} and provides access to a signing key pair.
36
24
  */
37
25
  export default abstract class AccountBase {
38
- networkId?: string;
39
-
40
- /**
41
- * @param options - Options
42
- * @param options.networkId - Using for signing transactions
43
- */
44
- constructor({ networkId }: { networkId?: string } = {}) {
45
- this.networkId ??= networkId;
46
- }
47
-
48
26
  /**
49
27
  * Sign encoded transaction
50
28
  * @param tx - Transaction to sign
51
- * @param opt - Options
52
- * @param opt.innerTx - Sign as inner transaction for PayingFor
29
+ * @param options - Options
30
+ * @param options.innerTx - Sign as inner transaction for PayingFor
31
+ * @param options.authData - Object with gaMeta params
53
32
  * @returns Signed transaction
54
33
  */
55
- async signTransaction(
34
+ abstract signTransaction(
56
35
  tx: Encoded.Transaction,
57
- { innerTx, networkId, ...options }: {
36
+ options: {
58
37
  innerTx?: boolean;
59
38
  networkId?: string;
60
- authData?: Parameters<typeof createMetaTx>[1];
61
- authFun?: Parameters<typeof createMetaTx>[2];
62
- } & Omit<Partial<Parameters<typeof createMetaTx>[3]>, 'onAccount'> = {},
63
- ): Promise<Encoded.Transaction> {
64
- const prefixes = [await this.getNetworkId({ networkId })];
65
- if (innerTx === true) prefixes.push('inner_tx');
66
- const rlpBinaryTx = decode(tx);
67
- const txWithNetworkId = concatBuffers([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);
68
-
69
- const signatures = [await this.sign(txWithNetworkId, options)];
70
- return buildTx({ encodedTx: rlpBinaryTx, signatures }, Tag.SignedTx).tx;
71
- }
72
-
73
- /**
74
- * Get network Id
75
- * @returns Network Id
76
- */
77
- readonly getNetworkId = getNetworkId;
39
+ authData?: {
40
+ gasLimit?: number;
41
+ callData?: Encoded.ContractBytearray;
42
+ sourceCode?: string;
43
+ args?: any[];
44
+ };
45
+ onNode?: Node;
46
+ onCompiler?: CompilerBase;
47
+ aeppOrigin?: string;
48
+ aeppRpcClientId?: string;
49
+ },
50
+ ): Promise<Encoded.Transaction>;
78
51
 
79
52
  /**
80
53
  * Sign message
81
54
  * @param message - Message to sign
82
- * @param opt - Options
83
- * @returns Signature as hex string of Uint8Array
84
- */
85
- async signMessage(
86
- message: string,
87
- { returnHex = false, ...options }: { returnHex?: boolean } = {},
88
- ): Promise<string | Uint8Array> {
89
- const sig = await this.sign(messageToHash(message), options);
90
- return returnHex ? Buffer.from(sig).toString('hex') : sig;
91
- }
92
-
93
- /**
94
- * Verify message
95
- * @param message - Message to verify
96
- * @param signature - Signature
97
55
  * @param options - Options
56
+ * @returns Signature as hex string of Uint8Array
98
57
  */
99
- async verifyMessage(
58
+ abstract signMessage(
100
59
  message: string,
101
- signature: string | Uint8Array,
102
- options?: object,
103
- ): Promise<boolean> {
104
- return verifyMessageCrypto(
105
- message,
106
- typeof signature === 'string' ? Buffer.from(signature, 'hex') : signature,
107
- decode(await this.address(options)),
108
- );
109
- }
60
+ options?: {
61
+ aeppOrigin?: string;
62
+ aeppRpcClientId?: string;
63
+ },
64
+ ): Promise<Uint8Array>;
110
65
 
111
66
  /**
112
67
  * Sign data blob
@@ -117,8 +72,7 @@ export default abstract class AccountBase {
117
72
  abstract sign(data: string | Uint8Array, options?: any): Promise<Uint8Array>;
118
73
 
119
74
  /**
120
- * Obtain account address
121
- * @returns Public account address
75
+ * Account address
122
76
  */
123
- abstract address(opt?: object): Promise<Encoded.AccountAddress>;
77
+ readonly address: Encoded.AccountAddress;
124
78
  }
@@ -0,0 +1,98 @@
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 AccountBase from './Base';
18
+ import {
19
+ ArgumentError,
20
+ InternalError,
21
+ InvalidAuthDataError,
22
+ NotImplementedError,
23
+ } from '../utils/errors';
24
+ import { decode, Encoded } from '../utils/encoder';
25
+ import { getAccount } from '../chain';
26
+ import Contract from '../contract/Contract';
27
+ import { _buildTx } from '../tx';
28
+ import { Tag } from '../tx/builder/constants';
29
+ import { buildTx } from '../tx/builder';
30
+
31
+ /**
32
+ * Generalized account class
33
+ */
34
+ export default class AccountGeneralized extends AccountBase {
35
+ override readonly address: Encoded.AccountAddress;
36
+
37
+ #authFun?: string;
38
+
39
+ /**
40
+ * @param address - Address of generalized account
41
+ */
42
+ constructor(address: Encoded.AccountAddress) {
43
+ super();
44
+ decode(address);
45
+ this.address = address;
46
+ }
47
+
48
+ // eslint-disable-next-line class-methods-use-this
49
+ override async sign(): Promise<Uint8Array> {
50
+ throw new NotImplementedError('Can\'t sign using generalized account');
51
+ }
52
+
53
+ // eslint-disable-next-line class-methods-use-this
54
+ override async signMessage(): Promise<Uint8Array> {
55
+ throw new NotImplementedError('Can\'t sign using generalized account');
56
+ }
57
+
58
+ override async signTransaction(
59
+ tx: Encoded.Transaction,
60
+ { authData, onCompiler, onNode }: Parameters<AccountBase['signTransaction']>[1],
61
+ ): Promise<Encoded.Transaction> {
62
+ if (authData == null || onCompiler == null || onNode == null) {
63
+ throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);
64
+ }
65
+ const {
66
+ callData, sourceCode, args, gasLimit,
67
+ } = authData;
68
+
69
+ const authCallData = callData ?? await (async () => {
70
+ if (this.#authFun == null) {
71
+ const account = await getAccount(this.address, { onNode });
72
+ if (account.kind !== 'generalized') {
73
+ throw new ArgumentError('account kind', 'generalized', account.kind);
74
+ }
75
+ this.#authFun = account.authFun;
76
+ }
77
+ if (this.#authFun == null) {
78
+ throw new InternalError('Account in generalised, but authFun not provided');
79
+ }
80
+
81
+ if (sourceCode == null || args == null) {
82
+ throw new InvalidAuthDataError('Auth data must contain source code and arguments.');
83
+ }
84
+ const contract = await Contract.initialize({ onCompiler, onNode, sourceCode });
85
+ return contract._calldata.encode(contract._name, this.#authFun, args);
86
+ })();
87
+
88
+ const gaMetaTx = await _buildTx(Tag.GaMetaTx, {
89
+ tx: decode(buildTx({ tag: Tag.SignedTx, encodedTx: decode(tx), signatures: [] })),
90
+ gaId: this.address,
91
+ authData: authCallData,
92
+ gasLimit,
93
+ nonce: 0,
94
+ onNode,
95
+ });
96
+ return buildTx({ tag: Tag.SignedTx, encodedTx: decode(gaMetaTx), signatures: [] });
97
+ }
98
+ }