@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,131 @@
1
+ import type Transport from '@ledgerhq/hw-transport';
2
+ import AccountBase from './Base';
3
+ import { ArgumentError, NotImplementedError } from '../utils/errors';
4
+ import { decode, Encoded } from '../utils/encoder';
5
+ import { buildTx } from '../tx/builder';
6
+ import { Tag } from '../tx/builder/constants';
7
+
8
+ export const CLA = 0xe0;
9
+ export const GET_ADDRESS = 0x02;
10
+ export const SIGN_TRANSACTION = 0x04;
11
+ export const GET_APP_CONFIGURATION = 0x06;
12
+ export const SIGN_PERSONAL_MESSAGE = 0x08;
13
+
14
+ /**
15
+ * Ledger wallet account class
16
+ */
17
+ export default class AccountLedger extends AccountBase {
18
+ readonly transport: Transport;
19
+
20
+ override readonly address: Encoded.AccountAddress;
21
+
22
+ readonly index: number;
23
+
24
+ /**
25
+ * @param transport - Connection to Ledger to use
26
+ * @param index - Index of account
27
+ * @param address - Address of account
28
+ */
29
+ constructor(transport: Transport, index: number, address: Encoded.AccountAddress) {
30
+ super();
31
+ this.transport = transport;
32
+ this.index = index;
33
+ this.address = address;
34
+ const scrambleKey = 'w0w';
35
+ transport.decorateAppAPIMethods(this, ['signTransaction', 'signMessage'], scrambleKey);
36
+ }
37
+
38
+ // eslint-disable-next-line class-methods-use-this
39
+ override async sign(): Promise<Uint8Array> {
40
+ throw new NotImplementedError('RAW signing using Ledger HW');
41
+ }
42
+
43
+ override async signTransaction(
44
+ tx: Encoded.Transaction,
45
+ { innerTx, networkId }: { innerTx?: boolean; networkId?: string } = {},
46
+ ): Promise<Encoded.Transaction> {
47
+ if (innerTx != null) throw new NotImplementedError('innerTx option in AccountLedger');
48
+ if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);
49
+
50
+ const rawTx = decode(tx);
51
+ let offset = 0;
52
+ const headerLength = 4 + 1 + 4;
53
+ const networkIdBuffer = Buffer.from(networkId);
54
+ const toSend = [];
55
+ while (offset !== rawTx.length) {
56
+ const maxChunkSize = offset === 0 ? 150 - headerLength - networkIdBuffer.length : 150;
57
+ const chunkSize = offset + maxChunkSize > rawTx.length
58
+ ? rawTx.length - offset : maxChunkSize;
59
+ const buffer = Buffer.alloc(
60
+ offset === 0 ? headerLength + networkIdBuffer.length + chunkSize : chunkSize,
61
+ );
62
+ if (offset === 0) {
63
+ let bufferOffset = buffer.writeUInt32BE(this.index, 0);
64
+ bufferOffset = buffer.writeUInt32BE(rawTx.length, bufferOffset);
65
+ bufferOffset = buffer.writeUInt8(networkIdBuffer.length, bufferOffset);
66
+ bufferOffset += networkIdBuffer.copy(
67
+ buffer,
68
+ bufferOffset,
69
+ 0,
70
+ networkIdBuffer.length,
71
+ );
72
+ rawTx.copy(buffer, bufferOffset, 0, 150 - bufferOffset);
73
+ } else {
74
+ rawTx.copy(buffer, 0, offset, offset + chunkSize);
75
+ }
76
+ toSend.push(buffer);
77
+ offset += chunkSize;
78
+ }
79
+ const response = await toSend.reduce(
80
+ async (previous, data, i) => {
81
+ await previous;
82
+ return this.transport.send(
83
+ CLA,
84
+ SIGN_TRANSACTION,
85
+ i === 0 ? 0x00 : 0x80,
86
+ 0x00,
87
+ data,
88
+ );
89
+ },
90
+ Promise.resolve(Buffer.alloc(0)),
91
+ );
92
+ const signatures = [response.subarray(0, 64)];
93
+
94
+ return buildTx({ tag: Tag.SignedTx, encodedTx: rawTx, signatures });
95
+ }
96
+
97
+ override async signMessage(messageStr: string): Promise<Uint8Array> {
98
+ let offset = 0;
99
+ const message = Buffer.from(messageStr);
100
+ const toSend = [];
101
+ while (offset !== message.length) {
102
+ const maxChunkSize = offset === 0 ? 150 - 4 - 4 : 150;
103
+ const chunkSize = offset + maxChunkSize > message.length
104
+ ? message.length - offset : maxChunkSize;
105
+ const buffer = Buffer.alloc(offset === 0 ? 4 + 4 + chunkSize : chunkSize);
106
+ if (offset === 0) {
107
+ buffer.writeUInt32BE(this.index, 0);
108
+ buffer.writeUInt32BE(message.length, 4);
109
+ message.copy(buffer, 4 + 4, offset, offset + chunkSize);
110
+ } else {
111
+ message.copy(buffer, 0, offset, offset + chunkSize);
112
+ }
113
+ toSend.push(buffer);
114
+ offset += chunkSize;
115
+ }
116
+ const response = await toSend.reduce(
117
+ async (previous, data, i) => {
118
+ await previous;
119
+ return this.transport.send(
120
+ CLA,
121
+ SIGN_PERSONAL_MESSAGE,
122
+ i === 0 ? 0x00 : 0x80,
123
+ 0x00,
124
+ data,
125
+ );
126
+ },
127
+ Promise.resolve(Buffer.alloc(0)),
128
+ );
129
+ return response.subarray(0, 64);
130
+ }
131
+ }
@@ -0,0 +1,86 @@
1
+ import type Transport from '@ledgerhq/hw-transport';
2
+ import AccountLedger, { CLA, GET_ADDRESS, GET_APP_CONFIGURATION } from './Ledger';
3
+ import { UnsupportedVersionError } from '../utils/errors';
4
+ import { Encoded } from '../utils/encoder';
5
+ import semverSatisfies from '../utils/semver-satisfies';
6
+ import Node from '../Node';
7
+
8
+ /**
9
+ * A factory class that generates instances of AccountLedger based on provided transport.
10
+ */
11
+ export default class AccountLedgerFactory {
12
+ readonly transport: Transport;
13
+
14
+ private readonly versionCheckPromise: Promise<void>;
15
+
16
+ /**
17
+ * @param transport - Connection to Ledger to use
18
+ */
19
+ constructor(transport: Transport) {
20
+ this.transport = transport;
21
+ this.versionCheckPromise = this.getAppConfiguration().then(({ version }) => {
22
+ const args = [version, '0.4.4', '0.5.0'] as const;
23
+ if (!semverSatisfies(...args)) throw new UnsupportedVersionError('app on ledger', ...args);
24
+ });
25
+ const scrambleKey = 'w0w';
26
+ transport.decorateAppAPIMethods(this, ['getAddress', 'getAppConfiguration'], scrambleKey);
27
+ }
28
+
29
+ /**
30
+ * @returns the version of app installed on Ledger wallet
31
+ */
32
+ async getAppConfiguration(): Promise<{ version: string }> {
33
+ await this.versionCheckPromise;
34
+ const response = await this.transport.send(CLA, GET_APP_CONFIGURATION, 0x00, 0x00);
35
+ return {
36
+ version: [response[1], response[2], response[3]].join('.'),
37
+ };
38
+ }
39
+
40
+ /**
41
+ * Get `ak_`-prefixed address for a given account index.
42
+ * @param accountIndex - Index of account
43
+ * @param verify - Ask user to confirm address by showing it on the device screen
44
+ */
45
+ async getAddress(accountIndex: number, verify = false): Promise<Encoded.AccountAddress> {
46
+ await this.versionCheckPromise;
47
+ const buffer = Buffer.alloc(4);
48
+ buffer.writeUInt32BE(accountIndex, 0);
49
+ const response = await this.transport.send(
50
+ CLA,
51
+ GET_ADDRESS,
52
+ verify ? 0x01 : 0x00,
53
+ 0x00,
54
+ buffer,
55
+ );
56
+ const addressLength = response[0];
57
+ return response.subarray(1, 1 + addressLength).toString('ascii') as Encoded.AccountAddress;
58
+ }
59
+
60
+ /**
61
+ * Get an instance of AccountLedger for a given account index.
62
+ * @param accountIndex - Index of account
63
+ */
64
+ async initialize(accountIndex: number): Promise<AccountLedger> {
65
+ await this.versionCheckPromise;
66
+ return new AccountLedger(this.transport, accountIndex, await this.getAddress(accountIndex));
67
+ }
68
+
69
+ /**
70
+ * Discovers accounts on Ledger that already have been used (has any on-chain transactions).
71
+ * It returns an empty array if none of accounts been used.
72
+ * If a used account is preceded by an unused account then it would be ignored.
73
+ * @param node - Instance of Node to get account information from
74
+ */
75
+ async discover(node: Node): Promise<AccountLedger[]> {
76
+ let index = 0;
77
+ const result = [];
78
+ let account;
79
+ do {
80
+ if (account != null) result.push(account);
81
+ account = await this.initialize(index);
82
+ index += 1;
83
+ } while (await node.getAccountByPubkey(account.address).then(() => true, () => false));
84
+ return result;
85
+ }
86
+ }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
3
+ * Copyright (c) 2022 aeternity developers
4
4
  *
5
5
  * Permission to use, copy, modify, and/or distribute this software for any
6
6
  * purpose with or without fee is hereby granted, provided that the above
@@ -15,84 +15,70 @@
15
15
  * PERFORMANCE OF THIS SOFTWARE.
16
16
  */
17
17
  import AccountBase from './Base';
18
- import { sign, isValidKeypair } from '../utils/crypto';
19
- import { isHex } from '../utils/string';
20
- import { ArgumentError, InvalidKeypairError, MissingParamError } from '../utils/errors';
21
- import { decode, Encoded } from '../utils/encoder';
22
- import { createMetaTx } from '../contract/ga';
18
+ import {
19
+ generateKeyPairFromSecret, sign, generateKeyPair, hash, messageToHash,
20
+ } from '../utils/crypto';
21
+ import { ArgumentError } from '../utils/errors';
22
+ import {
23
+ decode, encode, Encoded, Encoding,
24
+ } from '../utils/encoder';
25
+ import { concatBuffers } from '../utils/other';
26
+ import { buildTx } from '../tx/builder';
27
+ import { Tag } from '../tx/builder/constants';
23
28
 
24
- const secrets = new WeakMap();
25
-
26
- export interface Keypair {
27
- publicKey: Encoded.AccountAddress;
28
- secretKey: string | Uint8Array;
29
- }
29
+ const secretKeys = new WeakMap();
30
30
 
31
31
  /**
32
32
  * In-memory account class
33
33
  */
34
34
  export default class AccountMemory extends AccountBase {
35
- isGa: boolean;
35
+ override readonly address: Encoded.AccountAddress;
36
36
 
37
37
  /**
38
- * @param options - Options
39
- * @param options.keypair - Key pair to use
40
- * @param options.keypair.publicKey - Public key
41
- * @param options.keypair.secretKey - Private key
42
- * @param options.gaId - Address of generalized account
38
+ * @param secretKey - Secret key
43
39
  */
44
- constructor(
45
- { keypair, gaId, ...options }: { keypair?: Keypair; gaId?: Encoded.AccountAddress }
46
- & ConstructorParameters<typeof AccountBase>[0],
47
- ) {
48
- super(options);
49
-
50
- this.isGa = gaId != null;
51
- if (this.isGa && gaId != null) {
52
- decode(gaId);
53
- secrets.set(this, { publicKey: gaId });
54
- return;
55
- }
56
-
57
- if (keypair == null) throw new MissingParamError('Either gaId or keypair is required');
58
-
59
- if (
60
- !Buffer.isBuffer(keypair.secretKey)
61
- && typeof keypair.secretKey === 'string' && !isHex(keypair.secretKey)
62
- ) throw new InvalidKeypairError('Secret key must be hex string or Buffer');
63
- const secretKey = typeof keypair.secretKey === 'string'
64
- ? Buffer.from(keypair.secretKey, 'hex')
65
- : keypair.secretKey;
66
- if (!isValidKeypair(secretKey, decode(keypair.publicKey))) {
67
- throw new InvalidKeypairError('Invalid Key Pair');
40
+ constructor(secretKey: string | Uint8Array) {
41
+ super();
42
+ secretKey = typeof secretKey === 'string' ? Buffer.from(secretKey, 'hex') : secretKey;
43
+ if (secretKey.length !== 64) {
44
+ throw new ArgumentError('secretKey', '64 bytes', secretKey.length);
68
45
  }
46
+ secretKeys.set(this, secretKey);
47
+ this.address = encode(
48
+ generateKeyPairFromSecret(secretKeys.get(this)).publicKey,
49
+ Encoding.AccountAddress,
50
+ );
51
+ }
69
52
 
70
- secrets.set(this, {
71
- secretKey,
72
- publicKey: keypair.publicKey,
73
- });
53
+ /**
54
+ * Generates a new AccountMemory using a random secret key
55
+ */
56
+ static generate(): AccountMemory {
57
+ return new AccountMemory(generateKeyPair().secretKey);
74
58
  }
75
59
 
76
- async sign(data: string | Uint8Array): Promise<Uint8Array> {
77
- if (this.isGa) throw new InvalidKeypairError('You are trying to sign data using generalized account without keypair');
78
- return sign(data, secrets.get(this).secretKey);
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+ override async sign(data: string | Uint8Array, options?: any): Promise<Uint8Array> {
62
+ return sign(data, secretKeys.get(this));
79
63
  }
80
64
 
81
- async signTransaction(
65
+ override async signTransaction(
82
66
  tx: Encoded.Transaction,
83
- options: Parameters<AccountBase['signTransaction']>[1] = {},
67
+ { innerTx, networkId, ...options }: { innerTx?: boolean; networkId?: string } = {},
84
68
  ): Promise<Encoded.Transaction> {
85
- if (!this.isGa || options.innerTx === true) return super.signTransaction(tx, options);
86
- const {
87
- authData, authFun, onCompiler, onNode,
88
- } = options;
89
- if (authFun == null || authData == null || onCompiler == null || onNode == null) {
90
- throw new ArgumentError('authData, authFun, onCompiler, onNode', 'provided', null);
69
+ if (networkId == null) {
70
+ throw new ArgumentError('networkId', 'provided', networkId);
91
71
  }
92
- return createMetaTx(tx, authData, authFun, { onCompiler, onNode, onAccount: this });
72
+ const prefixes = [networkId];
73
+ if (innerTx === true) prefixes.push('inner_tx');
74
+ const rlpBinaryTx = decode(tx);
75
+ const txWithNetworkId = concatBuffers([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);
76
+
77
+ const signatures = [await this.sign(txWithNetworkId, options)];
78
+ return buildTx({ tag: Tag.SignedTx, encodedTx: rlpBinaryTx, signatures });
93
79
  }
94
80
 
95
- async address(): Promise<Encoded.AccountAddress> {
96
- return secrets.get(this).publicKey;
81
+ override async signMessage(message: string, options?: any): Promise<Uint8Array> {
82
+ return this.sign(messageToHash(message), options);
97
83
  }
98
84
  }
@@ -1,7 +1,9 @@
1
1
  import AccountBase from './Base';
2
2
  import { METHODS } from '../aepp-wallet-communication/schema';
3
- import { NotImplementedError } from '../utils/errors';
3
+ import { ArgumentError, NotImplementedError, UnsupportedProtocolError } from '../utils/errors';
4
4
  import { Encoded } from '../utils/encoder';
5
+ import RpcClient from '../aepp-wallet-communication/rpc/RpcClient';
6
+ import { AeppApi, WalletApi } from '../aepp-wallet-communication/rpc/types';
5
7
 
6
8
  /**
7
9
  * Account provided by wallet
@@ -11,17 +13,14 @@ import { Encoded } from '../utils/encoder';
11
13
  * @returns AccountRpc instance
12
14
  */
13
15
  export default class AccountRpc extends AccountBase {
14
- _rpcClient: any;
16
+ _rpcClient: RpcClient<WalletApi, AeppApi>;
15
17
 
16
- _address: Encoded.AccountAddress;
18
+ override readonly address: Encoded.AccountAddress;
17
19
 
18
- constructor(
19
- { rpcClient, address, ...options }: { rpcClient: any; address: Encoded.AccountAddress }
20
- & ConstructorParameters<typeof AccountBase>[0],
21
- ) {
22
- super(options);
20
+ constructor(rpcClient: RpcClient<WalletApi, AeppApi>, address: Encoded.AccountAddress) {
21
+ super();
23
22
  this._rpcClient = rpcClient;
24
- this._address = address;
23
+ this.address = address;
25
24
  }
26
25
 
27
26
  // eslint-disable-next-line class-methods-use-this
@@ -29,41 +28,33 @@ export default class AccountRpc extends AccountBase {
29
28
  throw new NotImplementedError('RAW signing using wallet');
30
29
  }
31
30
 
32
- async address(): Promise<Encoded.AccountAddress> {
33
- return this._address;
34
- }
35
-
36
31
  /**
37
32
  * @returns Signed transaction
38
33
  */
39
- async signTransaction(
34
+ override async signTransaction(
40
35
  tx: Encoded.Transaction,
41
36
  { innerTx, networkId }: Parameters<AccountBase['signTransaction']>[1] = {},
42
37
  ): Promise<Encoded.Transaction> {
43
38
  if (innerTx != null) throw new NotImplementedError('innerTx option in AccountRpc');
39
+ if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);
44
40
  const res = await this._rpcClient.request(METHODS.sign, {
45
- onAccount: this._address,
41
+ onAccount: this.address,
46
42
  tx,
47
43
  returnSigned: true,
48
- /**
49
- * @deprecated Wallet provided networkId will be used (current network)
50
- * required to maintain backward compatibility with wallets using SDK v11.0.1 and below
51
- * @see {@link https://github.com/aeternity/aepp-sdk-js/commit/153fd89a52c4eab39fcd659b356b36d32129c1ba}
52
- */
53
44
  networkId,
54
45
  });
46
+ if (res.signedTransaction == null) {
47
+ throw new UnsupportedProtocolError('signedTransaction is missed in wallet response');
48
+ }
55
49
  return res.signedTransaction;
56
50
  }
57
51
 
58
52
  /**
59
53
  * @returns Signed message
60
54
  */
61
- async signMessage(
62
- message: string,
63
- { returnHex = false }: Parameters<AccountBase['signMessage']>[1] = {},
64
- ): Promise<string | Uint8Array> {
55
+ override async signMessage(message: string): Promise<Uint8Array> {
65
56
  const { signature } = await this._rpcClient
66
- .request(METHODS.signMessage, { onAccount: this._address, message });
67
- return returnHex ? signature : Buffer.from(signature, 'hex');
57
+ .request(METHODS.signMessage, { onAccount: this.address, message });
58
+ return Buffer.from(signature, 'hex');
68
59
  }
69
60
  }
package/src/aens.ts CHANGED
@@ -37,9 +37,10 @@ import { _buildTx, BuildTxOptions } from './tx';
37
37
  import { TransformNodeType } from './Node';
38
38
  import { NameEntry, NamePointer } from './apis/node';
39
39
  import AccountBase from './account/Base';
40
+ import { AddressEncodings } from './tx/builder/field-types/address';
40
41
 
41
42
  interface KeyPointers {
42
- [key: string]: string | Buffer;
43
+ [key: string]: Encoded.Generic<AddressEncodings>;
43
44
  }
44
45
 
45
46
  /**
@@ -70,7 +71,7 @@ export async function aensRevoke(
70
71
  const nameRevokeTx = await _buildTx(Tag.NameRevokeTx, {
71
72
  ...options,
72
73
  nameId: name,
73
- accountId: await options.onAccount.address(options),
74
+ accountId: options.onAccount.address,
74
75
  });
75
76
  return send(nameRevokeTx, options);
76
77
  }
@@ -115,8 +116,7 @@ export async function aensUpdate(
115
116
  ): ReturnType<typeof send> {
116
117
  const allPointers = {
117
118
  ...extendPointers === true && Object.fromEntries(
118
- (await getName(name, options)).pointers
119
- .map(({ key, id }: { key: string; id: string }) => [key, id]),
119
+ (await getName(name, options)).pointers.map(({ key, id }) => [key, id]),
120
120
  ),
121
121
  ...pointers,
122
122
  };
@@ -126,8 +126,9 @@ export async function aensUpdate(
126
126
  nameTtl: NAME_TTL,
127
127
  ...options,
128
128
  nameId: name,
129
- accountId: await options.onAccount.address(options),
130
- pointers: Object.entries(allPointers).map(([key, id]) => ({ key, id: id.toString() })),
129
+ accountId: options.onAccount.address,
130
+ pointers: Object.entries(allPointers)
131
+ .map(([key, id]: [string, Encoded.Generic<AddressEncodings>]) => ({ key, id })),
131
132
  });
132
133
 
133
134
  return send(nameUpdateTx, options);
@@ -172,7 +173,7 @@ export async function aensTransfer(
172
173
  const nameTransferTx = await _buildTx(Tag.NameTransferTx, {
173
174
  ...options,
174
175
  nameId: name,
175
- accountId: await options.onAccount.address(options),
176
+ accountId: options.onAccount.address,
176
177
  recipientId: account,
177
178
  });
178
179
 
@@ -298,7 +299,7 @@ export async function aensClaim(
298
299
  ): Promise<AensClaimReturnType> {
299
300
  const claimTx = await _buildTx(Tag.NameClaimTx, {
300
301
  ...options,
301
- accountId: await options.onAccount.address(options),
302
+ accountId: options.onAccount.address,
302
303
  nameSalt: salt,
303
304
  name,
304
305
  });
@@ -358,7 +359,7 @@ Awaited<ReturnType<typeof send>> & {
358
359
 
359
360
  const preclaimTx = await _buildTx(Tag.NamePreclaimTx, {
360
361
  ...options,
361
- accountId: await options.onAccount.address(options),
362
+ accountId: options.onAccount.address,
362
363
  commitmentId,
363
364
  });
364
365
 
@@ -368,7 +369,8 @@ Awaited<ReturnType<typeof send>> & {
368
369
  salt,
369
370
  commitmentId,
370
371
  async claim(opts?: Parameters<typeof aensClaim>[2]) {
371
- return aensClaim(name, salt, { ...options, ...opts });
372
+ const { version, ...otherOptions } = options;
373
+ return aensClaim(name, salt, { ...otherOptions, ...opts });
372
374
  },
373
375
  });
374
376
  }
@@ -376,7 +378,7 @@ Awaited<ReturnType<typeof send>> & {
376
378
  interface AensPreclaimOptions extends
377
379
  BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>,
378
380
  SendOptions,
379
- AensClaimOptions {}
381
+ Omit<AensClaimOptions, 'version'> {}
380
382
 
381
383
  /**
382
384
  * Bid to name auction
@@ -17,6 +17,7 @@
17
17
 
18
18
  import { Runtime } from 'webextension-polyfill';
19
19
  import BrowserConnection from './Browser';
20
+ import { UnexpectedTsError } from '../../utils/errors';
20
21
 
21
22
  /**
22
23
  * BrowserRuntimeConnection
@@ -26,34 +27,45 @@ import BrowserConnection from './Browser';
26
27
  export default class BrowserRuntimeConnection extends BrowserConnection {
27
28
  port: Runtime.Port;
28
29
 
30
+ #listeners?: [(message: any, port: Runtime.Port) => void, () => void];
31
+
29
32
  constructor({ port, ...options }: { port: Runtime.Port; debug: boolean }) {
30
33
  super(options);
31
34
  this.port = port;
32
35
  }
33
36
 
34
- disconnect(): void {
37
+ override disconnect(): void {
35
38
  super.disconnect();
36
39
  this.port.disconnect();
40
+ if (this.#listeners == null) throw new UnexpectedTsError();
41
+ this.port.onMessage.removeListener(this.#listeners[0]);
42
+ this.port.onDisconnect.removeListener(this.#listeners[1]);
43
+ this.#listeners = undefined;
37
44
  }
38
45
 
39
- connect(
46
+ override connect(
40
47
  onMessage: (message: any, origin: string, source: Runtime.Port) => void,
41
48
  onDisconnect: () => void,
42
49
  ): void {
43
50
  super.connect(onMessage, onDisconnect);
44
- this.port.onMessage.addListener((message, port) => {
45
- this.receiveMessage(message);
46
- onMessage(message, port.name, port);
47
- });
48
- this.port.onDisconnect.addListener(onDisconnect);
51
+ this.#listeners = [
52
+ (message, port) => {
53
+ this.receiveMessage(message);
54
+ // TODO: make `origin` optional because sender url is not available on aepp side
55
+ onMessage(message, port.sender?.url ?? '', port);
56
+ },
57
+ onDisconnect,
58
+ ];
59
+ this.port.onMessage.addListener(this.#listeners[0]);
60
+ this.port.onDisconnect.addListener(this.#listeners[1]);
49
61
  }
50
62
 
51
- sendMessage(message: any): void {
63
+ override sendMessage(message: any): void {
52
64
  super.sendMessage(message);
53
65
  this.port.postMessage(message);
54
66
  }
55
67
 
56
68
  isConnected(): boolean {
57
- return this.port.onMessage.hasListeners();
69
+ return this.#listeners != null;
58
70
  }
59
71
  }
@@ -77,7 +77,7 @@ export default class BrowserWindowMessageConnection extends BrowserConnection {
77
77
  return this.listener != null;
78
78
  }
79
79
 
80
- connect(
80
+ override connect(
81
81
  onMessage: (message: any, origin: string, source: MessageEventSource | null) => void,
82
82
  onDisconnect: () => void,
83
83
  ): void {
@@ -102,7 +102,7 @@ export default class BrowserWindowMessageConnection extends BrowserConnection {
102
102
  this.#onDisconnect = onDisconnect;
103
103
  }
104
104
 
105
- disconnect(): void {
105
+ override disconnect(): void {
106
106
  super.disconnect();
107
107
  if (this.listener == null || this.#onDisconnect == null) {
108
108
  throw new InternalError('Expected to not happen, required for TS');
@@ -113,7 +113,7 @@ export default class BrowserWindowMessageConnection extends BrowserConnection {
113
113
  this.#onDisconnect = undefined;
114
114
  }
115
115
 
116
- sendMessage(msg: any): void {
116
+ override sendMessage(msg: any): void {
117
117
  if (this.#target == null) throw new RpcConnectionError('Can\'t send messages without target');
118
118
  const message = this.sendDirection != null ? { type: this.sendDirection, data: msg } : msg;
119
119
  super.sendMessage(message);
@@ -63,8 +63,8 @@ export default class RpcClient <
63
63
  }
64
64
 
65
65
  const request = msg as JsonRpcRequest;
66
- let result; let
67
- error;
66
+ let result;
67
+ let error;
68
68
  try {
69
69
  if (!(request.method in this.#methods)) throw new RpcMethodNotFoundError();
70
70
  const methodName = request.method as keyof LocalApi;
@@ -94,13 +94,13 @@ export default class RpcClient <
94
94
  id: number,
95
95
  method: keyof RemoteApi | keyof LocalApi, // TODO: remove as far it is not required in JSON RPC
96
96
  result?: any,
97
- error?: any,
97
+ error?: RpcError,
98
98
  ): void {
99
99
  this.connection.sendMessage({
100
100
  jsonrpc: '2.0',
101
101
  id,
102
102
  method,
103
- ...error != null ? { error } : { result },
103
+ ...error != null ? { error: error.toJSON() } : { result },
104
104
  });
105
105
  }
106
106
 
@@ -43,7 +43,17 @@ export interface WalletApi {
43
43
  [METHODS.address]: () => Promise<Encoded.AccountAddress[]>;
44
44
 
45
45
  [METHODS.sign]: ((
46
- p: { tx: Encoded.Transaction; onAccount: Encoded.AccountAddress; returnSigned: boolean }
46
+ p: {
47
+ tx: Encoded.Transaction;
48
+ onAccount: Encoded.AccountAddress;
49
+ returnSigned: boolean;
50
+ /**
51
+ * @deprecated Wallet provided networkId will be used (current network)
52
+ * required to maintain backward compatibility with wallets using SDK v11.0.1 and below
53
+ * @see {@link https://github.com/aeternity/aepp-sdk-js/commit/153fd89a52c4eab39fcd659b356b36d32129c1ba}
54
+ */
55
+ networkId: string;
56
+ }
47
57
  ) => Promise<{
48
58
  /**
49
59
  * @deprecated this is not a hash at all, will be removed later at the same time