@aeternity/aepp-sdk 11.0.1 → 12.0.0

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 (376) hide show
  1. package/LICENSE +1 -1
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +12 -19
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/AeSdk.d.ts +37 -0
  10. package/es/AeSdk.mjs +81 -0
  11. package/es/AeSdk.mjs.map +1 -0
  12. package/es/AeSdkAepp.d.ts +69 -0
  13. package/es/AeSdkAepp.mjs +175 -0
  14. package/es/AeSdkAepp.mjs.map +1 -0
  15. package/es/AeSdkBase.d.ts +212 -0
  16. package/es/AeSdkBase.mjs +310 -0
  17. package/es/AeSdkBase.mjs.map +1 -0
  18. package/es/AeSdkWallet.d.ts +103 -0
  19. package/es/AeSdkWallet.mjs +322 -0
  20. package/es/AeSdkWallet.mjs.map +1 -0
  21. package/es/Node.d.ts +44 -0
  22. package/es/Node.mjs +141 -0
  23. package/es/Node.mjs.map +1 -0
  24. package/es/account/Base.d.ts +65 -0
  25. package/es/account/Base.mjs +123 -0
  26. package/es/account/Base.mjs.map +1 -0
  27. package/es/account/Memory.d.ts +25 -0
  28. package/es/account/Memory.mjs +81 -0
  29. package/es/account/Memory.mjs.map +1 -0
  30. package/es/account/Rpc.d.ts +27 -0
  31. package/es/account/Rpc.mjs +79 -0
  32. package/es/account/Rpc.mjs.map +1 -0
  33. package/es/aens.d.ts +209 -0
  34. package/es/aens.mjs +332 -0
  35. package/es/aens.mjs.map +1 -0
  36. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  37. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  45. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  46. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  47. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  48. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  51. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  52. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  54. package/es/aepp-wallet-communication/schema.d.ts +90 -46
  55. package/es/aepp-wallet-communication/schema.mjs +214 -0
  56. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  57. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  58. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  60. package/es/apis/compiler/compiler.d.ts +92 -0
  61. package/es/apis/compiler/compiler.mjs +576 -0
  62. package/es/apis/compiler/compiler.mjs.map +1 -0
  63. package/es/apis/compiler/index.d.ts +2 -0
  64. package/es/apis/compiler/index.mjs +3 -0
  65. package/es/apis/compiler/index.mjs.map +1 -0
  66. package/es/apis/compiler/models/index.d.ts +248 -0
  67. package/es/apis/compiler/models/index.mjs +48 -0
  68. package/es/apis/compiler/models/index.mjs.map +1 -0
  69. package/es/apis/compiler/models/mappers.d.ts +23 -0
  70. package/es/apis/compiler/models/mappers.mjs +585 -0
  71. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  72. package/es/apis/compiler/models/parameters.d.ts +13 -0
  73. package/es/apis/compiler/models/parameters.mjs +71 -0
  74. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  75. package/es/apis/node/index.d.ts +2 -0
  76. package/es/apis/node/index.mjs +3 -0
  77. package/es/apis/node/index.mjs.map +1 -0
  78. package/es/apis/node/models/index.d.ts +1061 -0
  79. package/es/apis/node/models/index.mjs +2 -0
  80. package/es/apis/node/models/index.mjs.map +1 -0
  81. package/es/apis/node/models/mappers.d.ts +95 -0
  82. package/es/apis/node/models/mappers.mjs +4164 -0
  83. package/es/apis/node/models/mappers.mjs.map +1 -0
  84. package/es/apis/node/models/parameters.d.ts +17 -0
  85. package/es/apis/node/models/parameters.mjs +165 -0
  86. package/es/apis/node/models/parameters.mjs.map +1 -0
  87. package/es/apis/node/node.d.ts +215 -0
  88. package/es/apis/node/node.mjs +1165 -0
  89. package/es/apis/node/node.mjs.map +1 -0
  90. package/es/chain.d.ts +220 -0
  91. package/es/chain.mjs +524 -0
  92. package/es/chain.mjs.map +1 -0
  93. package/es/channel/handlers.d.ts +34 -0
  94. package/es/channel/handlers.mjs +147 -112
  95. package/es/channel/handlers.mjs.map +1 -1
  96. package/es/channel/index.d.ts +634 -0
  97. package/es/channel/index.mjs +898 -900
  98. package/es/channel/index.mjs.map +1 -1
  99. package/es/channel/internal.d.ts +100 -0
  100. package/es/channel/internal.mjs +97 -51
  101. package/es/channel/internal.mjs.map +1 -1
  102. package/es/contract/Compiler.d.ts +17 -0
  103. package/es/contract/Compiler.mjs +67 -0
  104. package/es/contract/Compiler.mjs.map +1 -0
  105. package/es/contract/aci.d.ts +125 -0
  106. package/es/contract/aci.mjs +199 -180
  107. package/es/contract/aci.mjs.map +1 -1
  108. package/es/contract/ga.d.ts +68 -0
  109. package/es/contract/ga.mjs +190 -0
  110. package/es/contract/ga.mjs.map +1 -0
  111. package/es/contract/methods.d.ts +68 -0
  112. package/es/contract/methods.mjs +101 -0
  113. package/es/contract/methods.mjs.map +1 -0
  114. package/es/index.d.ts +32 -0
  115. package/es/index.mjs +32 -40
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +154 -0
  118. package/es/oracle.mjs +288 -0
  119. package/es/oracle.mjs.map +1 -0
  120. package/es/spend.d.ts +61 -0
  121. package/es/spend.mjs +122 -0
  122. package/es/spend.mjs.map +1 -0
  123. package/es/tx/builder/constants.d.ts +41 -0
  124. package/es/tx/builder/constants.mjs +11 -19
  125. package/es/tx/builder/constants.mjs.map +1 -1
  126. package/es/tx/builder/field-types.d.ts +62 -0
  127. package/es/tx/builder/field-types.mjs +62 -10
  128. package/es/tx/builder/field-types.mjs.map +1 -1
  129. package/es/tx/builder/helpers.d.ts +131 -0
  130. package/es/tx/builder/helpers.mjs +71 -169
  131. package/es/tx/builder/helpers.mjs.map +1 -1
  132. package/es/tx/builder/index.d.ts +75 -0
  133. package/es/tx/builder/index.mjs +141 -323
  134. package/es/tx/builder/index.mjs.map +1 -1
  135. package/es/tx/builder/schema.d.ts +350 -0
  136. package/es/tx/builder/schema.mjs +173 -510
  137. package/es/tx/builder/schema.mjs.map +1 -1
  138. package/es/tx/index.d.ts +63 -0
  139. package/es/tx/index.mjs +171 -265
  140. package/es/tx/index.mjs.map +1 -1
  141. package/es/tx/min-fee.d.ts +20 -0
  142. package/es/tx/min-fee.mjs +148 -0
  143. package/es/tx/min-fee.mjs.map +1 -0
  144. package/es/tx/validator.d.ts +19 -0
  145. package/es/tx/validator.mjs +64 -71
  146. package/es/tx/validator.mjs.map +1 -1
  147. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  149. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  151. package/es/typings/bip32-path/index.d.mjs +2 -0
  152. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  153. package/es/typings/blakejs/index.d.mjs.map +1 -1
  154. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  155. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  156. package/es/utils/amount-formatter.d.ts +42 -0
  157. package/es/utils/amount-formatter.mjs +28 -41
  158. package/es/utils/amount-formatter.mjs.map +1 -1
  159. package/es/utils/autorest.d.ts +6 -0
  160. package/es/utils/autorest.mjs +97 -0
  161. package/es/utils/autorest.mjs.map +1 -0
  162. package/es/utils/bignumber.d.ts +13 -0
  163. package/es/utils/bignumber.mjs +10 -8
  164. package/es/utils/bignumber.mjs.map +1 -1
  165. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  166. package/es/utils/bytes.mjs +10 -14
  167. package/es/utils/bytes.mjs.map +1 -1
  168. package/es/utils/crypto.d.ts +103 -0
  169. package/es/utils/crypto.mjs +60 -68
  170. package/es/utils/crypto.mjs.map +1 -1
  171. package/es/utils/encoder.d.ts +26 -0
  172. package/es/utils/encoder.mjs +47 -51
  173. package/es/utils/encoder.mjs.map +1 -1
  174. package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
  175. package/es/utils/errors.mjs +318 -125
  176. package/es/utils/errors.mjs.map +1 -1
  177. package/es/utils/hd-wallet.d.ts +34 -0
  178. package/es/utils/hd-wallet.mjs +27 -16
  179. package/es/utils/hd-wallet.mjs.map +1 -1
  180. package/es/utils/json-big.d.ts +5 -0
  181. package/es/utils/json-big.mjs +10 -14
  182. package/es/utils/json-big.mjs.map +1 -1
  183. package/es/utils/keystore.d.ts +51 -0
  184. package/es/utils/keystore.mjs +98 -193
  185. package/es/utils/keystore.mjs.map +1 -1
  186. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  187. package/es/utils/mptree.mjs +13 -14
  188. package/es/utils/mptree.mjs.map +1 -1
  189. package/es/utils/other.d.ts +14 -0
  190. package/es/utils/other.mjs +21 -36
  191. package/es/utils/other.mjs.map +1 -1
  192. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  193. package/es/utils/semver-satisfies.mjs.map +1 -1
  194. package/es/utils/string.d.ts +24 -0
  195. package/es/utils/string.mjs +8 -10
  196. package/es/utils/string.mjs.map +1 -1
  197. package/package.json +49 -39
  198. package/src/AeSdk.ts +65 -0
  199. package/src/AeSdkAepp.ts +167 -0
  200. package/src/AeSdkBase.ts +320 -0
  201. package/src/AeSdkWallet.ts +332 -0
  202. package/src/Node.ts +167 -0
  203. package/src/account/Base.ts +114 -0
  204. package/src/account/Memory.ts +83 -0
  205. package/src/account/Rpc.ts +67 -0
  206. package/src/aens.ts +391 -0
  207. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  208. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  209. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  210. package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
  211. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  212. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  213. package/src/aepp-wallet-communication/schema.ts +181 -0
  214. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  215. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  216. package/src/apis/compiler/compiler.ts +585 -0
  217. package/src/apis/compiler/index.ts +2 -0
  218. package/src/apis/compiler/models/index.ts +301 -0
  219. package/src/apis/compiler/models/mappers.ts +583 -0
  220. package/src/apis/compiler/models/parameters.ts +93 -0
  221. package/src/apis/node/code-model-v4.yaml +10046 -0
  222. package/src/apis/node/index.ts +2 -0
  223. package/src/apis/node/models/index.ts +1253 -0
  224. package/src/apis/node/models/mappers.ts +4278 -0
  225. package/src/apis/node/models/parameters.ts +188 -0
  226. package/src/apis/node/node.ts +1299 -0
  227. package/src/chain.ts +444 -0
  228. package/src/channel/{handlers.js → handlers.ts} +220 -128
  229. package/src/channel/index.ts +991 -0
  230. package/src/channel/internal.ts +345 -0
  231. package/src/contract/Compiler.ts +66 -0
  232. package/src/contract/aci.ts +529 -0
  233. package/src/contract/ga.ts +178 -0
  234. package/src/contract/methods.ts +118 -0
  235. package/src/index.ts +51 -0
  236. package/src/oracle.ts +342 -0
  237. package/src/spend.ts +152 -0
  238. package/src/tx/builder/{constants.js → constants.ts} +12 -16
  239. package/src/tx/builder/field-types.ts +111 -0
  240. package/src/tx/builder/helpers.ts +253 -0
  241. package/src/tx/builder/index.ts +394 -0
  242. package/src/tx/builder/schema.ts +771 -0
  243. package/src/tx/index.ts +199 -0
  244. package/src/tx/min-fee.ts +136 -0
  245. package/src/tx/validator.ts +226 -0
  246. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  247. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  248. package/src/typings/bip32-path/index.d.ts +33 -0
  249. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  250. package/src/utils/amount-formatter.ts +29 -42
  251. package/src/utils/autorest.ts +90 -0
  252. package/src/utils/bignumber.ts +9 -11
  253. package/src/utils/bytes.ts +12 -14
  254. package/src/utils/crypto.ts +217 -0
  255. package/src/utils/encoder.ts +52 -55
  256. package/src/utils/errors.ts +268 -134
  257. package/src/utils/hd-wallet.ts +134 -0
  258. package/src/utils/json-big.ts +26 -0
  259. package/src/utils/keystore.ts +179 -0
  260. package/src/utils/mptree.ts +14 -14
  261. package/src/utils/other.ts +28 -43
  262. package/src/utils/string.ts +8 -10
  263. package/es/account/base.mjs +0 -179
  264. package/es/account/base.mjs.map +0 -1
  265. package/es/account/memory.mjs +0 -99
  266. package/es/account/memory.mjs.map +0 -1
  267. package/es/account/multiple.mjs +0 -179
  268. package/es/account/multiple.mjs.map +0 -1
  269. package/es/ae/aens.mjs +0 -404
  270. package/es/ae/aens.mjs.map +0 -1
  271. package/es/ae/aepp.mjs +0 -45
  272. package/es/ae/aepp.mjs.map +0 -1
  273. package/es/ae/contract.mjs +0 -159
  274. package/es/ae/contract.mjs.map +0 -1
  275. package/es/ae/index.mjs +0 -207
  276. package/es/ae/index.mjs.map +0 -1
  277. package/es/ae/oracle.mjs +0 -339
  278. package/es/ae/oracle.mjs.map +0 -1
  279. package/es/ae/universal.mjs +0 -45
  280. package/es/ae/universal.mjs.map +0 -1
  281. package/es/ae/wallet.mjs +0 -50
  282. package/es/ae/wallet.mjs.map +0 -1
  283. package/es/amount-formatter.d.ts +0 -58
  284. package/es/bignumber.d.ts +0 -18
  285. package/es/chain/index.mjs +0 -272
  286. package/es/chain/index.mjs.map +0 -1
  287. package/es/chain/node.mjs +0 -442
  288. package/es/chain/node.mjs.map +0 -1
  289. package/es/contract/compiler.mjs +0 -115
  290. package/es/contract/compiler.mjs.map +0 -1
  291. package/es/contract/ga/helpers.mjs +0 -30
  292. package/es/contract/ga/helpers.mjs.map +0 -1
  293. package/es/contract/ga/index.mjs +0 -178
  294. package/es/contract/ga/index.mjs.map +0 -1
  295. package/es/crypto-ts.d.ts +0 -9
  296. package/es/encoder.d.ts +0 -26
  297. package/es/node-pool/index.mjs +0 -188
  298. package/es/node-pool/index.mjs.map +0 -1
  299. package/es/node.mjs +0 -133
  300. package/es/node.mjs.map +0 -1
  301. package/es/other.d.ts +0 -31
  302. package/es/string.d.ts +0 -26
  303. package/es/tx/tx-object.mjs +0 -283
  304. package/es/tx/tx-object.mjs.map +0 -1
  305. package/es/tx/tx.mjs +0 -938
  306. package/es/tx/tx.mjs.map +0 -1
  307. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  308. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  309. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  310. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  311. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  312. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  313. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  314. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  315. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  316. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  317. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  318. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  319. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  320. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  321. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  322. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  323. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  324. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  325. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  326. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  327. package/es/utils/async-init.mjs +0 -64
  328. package/es/utils/async-init.mjs.map +0 -1
  329. package/es/utils/crypto-ts.mjs.map +0 -1
  330. package/es/utils/swagger.mjs +0 -164
  331. package/es/utils/swagger.mjs.map +0 -1
  332. package/src/account/base.js +0 -153
  333. package/src/account/memory.js +0 -83
  334. package/src/account/multiple.js +0 -162
  335. package/src/ae/aens.js +0 -361
  336. package/src/ae/aepp.js +0 -45
  337. package/src/ae/contract.js +0 -148
  338. package/src/ae/index.js +0 -168
  339. package/src/ae/oracle.js +0 -311
  340. package/src/ae/universal.js +0 -47
  341. package/src/ae/wallet.js +0 -50
  342. package/src/chain/index.js +0 -269
  343. package/src/chain/node.js +0 -320
  344. package/src/channel/index.js +0 -903
  345. package/src/channel/internal.js +0 -236
  346. package/src/contract/aci.js +0 -376
  347. package/src/contract/compiler.js +0 -100
  348. package/src/contract/ga/helpers.js +0 -19
  349. package/src/contract/ga/index.js +0 -150
  350. package/src/index.js +0 -89
  351. package/src/node-pool/index.js +0 -172
  352. package/src/node.js +0 -116
  353. package/src/tx/builder/field-types.js +0 -61
  354. package/src/tx/builder/helpers.js +0 -334
  355. package/src/tx/builder/index.js +0 -465
  356. package/src/tx/builder/schema.js +0 -1100
  357. package/src/tx/index.js +0 -301
  358. package/src/tx/tx-object.js +0 -187
  359. package/src/tx/tx.js +0 -631
  360. package/src/tx/validator.js +0 -181
  361. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  362. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  363. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  364. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  365. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  366. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  367. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  368. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  369. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  370. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  371. package/src/utils/async-init.js +0 -45
  372. package/src/utils/crypto.js +0 -219
  373. package/src/utils/hd-wallet.js +0 -100
  374. package/src/utils/json-big.js +0 -26
  375. package/src/utils/keystore.js +0 -219
  376. package/src/utils/swagger.js +0 -156
@@ -0,0 +1,310 @@
1
+ import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
+ import * as chainMethods from "./chain.mjs";
3
+ import * as txMethods from "./tx/index.mjs";
4
+ import * as aensMethods from "./aens.mjs";
5
+ import * as spendMethods from "./spend.mjs";
6
+ import * as oracleMethods from "./oracle.mjs";
7
+ import * as contractMethods from "./contract/methods.mjs";
8
+ import * as contractGaMethods from "./contract/ga.mjs";
9
+ import { _buildTx } from "./tx/index.mjs";
10
+ import { mapObject } from "./utils/other.mjs";
11
+ import { getNetworkId } from "./Node.mjs";
12
+ import { AE_AMOUNT_FORMATS } from "./utils/amount-formatter.mjs";
13
+ import { AMOUNT } from "./tx/builder/schema.mjs";
14
+ import MemoryAccount from "./account/Memory.mjs";
15
+ import { isAccountBase } from "./account/Base.mjs";
16
+ import { CompilerError, DuplicateNodeError, NodeNotFoundError, NotImplementedError, TypeError } from "./utils/errors.mjs";
17
+ import Compiler from "./contract/Compiler.mjs";
18
+
19
+ function getValueOrErrorProxy(valueCb) {
20
+ try {
21
+ return valueCb();
22
+ } catch (error) {
23
+ return new Proxy({}, Object.fromEntries(['get', 'set', 'has'].map(name => [name, () => {
24
+ throw error;
25
+ }])));
26
+ }
27
+ }
28
+ /**
29
+ * Basic AeSdk class
30
+ *
31
+ * AeSdkBase objects are the composition of:
32
+ * - chain methods
33
+ * - tx methods
34
+ * - aens methods
35
+ * - spend methods
36
+ * - oracle methods
37
+ * - contract methods
38
+ * - contract ga methods
39
+ * Only by providing the joint functionality of them, most more advanced
40
+ * operations, i.e. the ones with actual use value on the chain, become
41
+ * available.
42
+ */
43
+
44
+
45
+ class AeSdkBase {
46
+ /**
47
+ * @param options - Options
48
+ * @param options.nodes - Array of nodes
49
+ * @param options.compilerUrl - Url for compiler API
50
+ * @param options.ignoreVersion - Don't check node or compiler version
51
+ */
52
+ constructor() {
53
+ let {
54
+ nodes = [],
55
+ compilerUrl,
56
+ ignoreVersion = false,
57
+ ...options
58
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
59
+
60
+ _defineProperty(this, "_options", {
61
+ denomination: AE_AMOUNT_FORMATS.AETTOS,
62
+ amount: AMOUNT
63
+ });
64
+
65
+ _defineProperty(this, "pool", new Map());
66
+
67
+ _defineProperty(this, "getNetworkId", getNetworkId);
68
+
69
+ Object.assign(this._options, options);
70
+ nodes.forEach((_ref, i) => {
71
+ let {
72
+ name,
73
+ instance
74
+ } = _ref;
75
+ return this.addNode(name, instance, i === 0);
76
+ });
77
+
78
+ if (compilerUrl == null) {
79
+ this.compilerApi = getValueOrErrorProxy(() => {
80
+ throw new CompilerError('You can\'t use Compiler API. Compiler is not ready!');
81
+ });
82
+ } else this.setCompilerUrl(compilerUrl, {
83
+ ignoreVersion
84
+ });
85
+ }
86
+
87
+ setCompilerUrl(compilerUrl) {
88
+ let {
89
+ ignoreVersion = false
90
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
91
+ this.compilerApi = new Compiler(compilerUrl, {
92
+ ignoreVersion
93
+ });
94
+ }
95
+
96
+ get api() {
97
+ this.ensureNodeConnected();
98
+ return this.pool.get(this.selectedNodeName);
99
+ }
100
+ /**
101
+ * Add Node
102
+ * @param name - Node name
103
+ * @param node - Node instance
104
+ * @param select - Select this node as current
105
+ * @example
106
+ * ```js
107
+ * // add and select new node with name 'testNode'
108
+ * aeSdkBase.addNode('testNode', new Node({ url }), true)
109
+ * ```
110
+ */
111
+
112
+
113
+ addNode(name, node) {
114
+ let select = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
115
+ if (this.pool.has(name)) throw new DuplicateNodeError(name);
116
+ this.pool.set(name, node);
117
+
118
+ if (select || this.selectedNodeName == null) {
119
+ this.selectNode(name);
120
+ }
121
+ }
122
+ /**
123
+ * Select Node
124
+ * @param name - Node name
125
+ * @example
126
+ * nodePool.selectNode('testNode')
127
+ */
128
+
129
+
130
+ selectNode(name) {
131
+ if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`);
132
+ this.selectedNodeName = name;
133
+ }
134
+ /**
135
+ * Get NetworkId of current Node
136
+ * @example
137
+ * nodePool.getNetworkId()
138
+ */
139
+
140
+
141
+ /**
142
+ * Check if you have selected node
143
+ * @example
144
+ * nodePool.isNodeConnected()
145
+ */
146
+ isNodeConnected() {
147
+ return this.selectedNodeName != null;
148
+ }
149
+
150
+ ensureNodeConnected() {
151
+ if (!this.isNodeConnected()) {
152
+ throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!');
153
+ }
154
+ }
155
+ /**
156
+ * Get information about node
157
+ * @example
158
+ * ```js
159
+ * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
160
+ * ```
161
+ */
162
+
163
+
164
+ async getNodeInfo() {
165
+ this.ensureNodeConnected();
166
+ return {
167
+ name: this.selectedNodeName,
168
+ ...(await this.api.getNodeInfo())
169
+ };
170
+ }
171
+ /**
172
+ * Get array of available nodes
173
+ * @example
174
+ * nodePool.getNodesInPool()
175
+ */
176
+
177
+
178
+ async getNodesInPool() {
179
+ return await Promise.all(Array.from(this.pool.entries()).map(async _ref2 => {
180
+ let [name, node] = _ref2;
181
+ return {
182
+ name,
183
+ ...(await node.getNodeInfo())
184
+ };
185
+ }));
186
+ }
187
+
188
+ addresses() {
189
+ return [];
190
+ }
191
+
192
+ async address() {
193
+ let {
194
+ onAccount
195
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
196
+ return await this._resolveAccount(onAccount).address();
197
+ }
198
+
199
+ async sign(data) {
200
+ let {
201
+ onAccount,
202
+ ...options
203
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
204
+ return await this._resolveAccount(onAccount).sign(data, options);
205
+ }
206
+
207
+ async signTransaction(tx) {
208
+ let {
209
+ onAccount,
210
+ ...options
211
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
212
+ return await this._resolveAccount(onAccount).signTransaction(tx, { ...options,
213
+ networkId: await this.getNetworkId(options)
214
+ });
215
+ }
216
+
217
+ async signMessage(message) {
218
+ let {
219
+ onAccount,
220
+ ...options
221
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
222
+ return await this._resolveAccount(onAccount).signMessage(message, options);
223
+ }
224
+
225
+ async verifyMessage(message, signature) {
226
+ let {
227
+ onAccount,
228
+ ...options
229
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
230
+ return await this._resolveAccount(onAccount).verifyMessage(message, signature, options);
231
+ }
232
+ /**
233
+ * Resolves an account
234
+ * @param account - ak-address, instance of AccountBase, or keypair
235
+ */
236
+
237
+
238
+ _resolveAccount(account) {
239
+ switch (account !== null && typeof account) {
240
+ case 'string':
241
+ throw new NotImplementedError('Address in AccountResolver');
242
+
243
+ case 'object':
244
+ return isAccountBase(account) ? account : new MemoryAccount({
245
+ keypair: account
246
+ });
247
+
248
+ default:
249
+ throw new TypeError('Account should be an address (ak-prefixed string), ' + `keypair, or instance of AccountBase, got ${String(account)} instead`);
250
+ }
251
+ }
252
+
253
+ async _getOptions() {
254
+ var _this$api;
255
+
256
+ return { ...this._options,
257
+ onNode: getValueOrErrorProxy(() => this.api),
258
+ onAccount: getValueOrErrorProxy(() => this._resolveAccount()),
259
+ onCompiler: getValueOrErrorProxy(() => this.compilerApi),
260
+ // TODO: remove networkId
261
+ networkId: (await ((_this$api = this.api) === null || _this$api === void 0 ? void 0 : _this$api.getStatus())).networkId
262
+ };
263
+ }
264
+
265
+ async buildTx(txType, options) {
266
+ // @ts-expect-error
267
+ return await _buildTx(txType, { ...(await this._getOptions()),
268
+ ...options
269
+ });
270
+ }
271
+
272
+ }
273
+
274
+ const {
275
+ _buildTx: _,
276
+ ...txMethodsOther
277
+ } = txMethods;
278
+ const methods = { ...chainMethods,
279
+ ...txMethodsOther,
280
+ ...aensMethods,
281
+ ...spendMethods,
282
+ ...oracleMethods,
283
+ ...contractMethods,
284
+ ...contractGaMethods
285
+ };
286
+ Object.assign(AeSdkBase.prototype, mapObject(methods, _ref3 => {
287
+ let [name, handler] = _ref3;
288
+ return [name, async function () {
289
+ const instanceOptions = await this._getOptions();
290
+
291
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
292
+ args[_key] = arguments[_key];
293
+ }
294
+
295
+ const lastArg = args[args.length - 1];
296
+
297
+ if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {
298
+ Object.assign(lastArg, { ...instanceOptions,
299
+ ...lastArg,
300
+ ...(lastArg.onAccount != null && {
301
+ onAccount: this._resolveAccount(lastArg.onAccount)
302
+ })
303
+ });
304
+ } else args.push(instanceOptions);
305
+
306
+ return handler(...args);
307
+ }];
308
+ }));
309
+ export default AeSdkBase;
310
+ //# sourceMappingURL=AeSdkBase.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AeSdkBase.mjs","names":["chainMethods","txMethods","aensMethods","spendMethods","oracleMethods","contractMethods","contractGaMethods","_buildTx","mapObject","getNetworkId","AE_AMOUNT_FORMATS","AMOUNT","MemoryAccount","isAccountBase","CompilerError","DuplicateNodeError","NodeNotFoundError","NotImplementedError","TypeError","Compiler","getValueOrErrorProxy","valueCb","error","Proxy","Object","fromEntries","map","name","AeSdkBase","constructor","nodes","compilerUrl","ignoreVersion","options","denomination","AETTOS","amount","Map","assign","_options","forEach","i","instance","addNode","compilerApi","setCompilerUrl","api","ensureNodeConnected","pool","get","selectedNodeName","node","select","has","set","selectNode","isNodeConnected","getNodeInfo","getNodesInPool","Promise","all","Array","from","entries","addresses","address","onAccount","_resolveAccount","sign","data","signTransaction","tx","networkId","signMessage","message","verifyMessage","signature","account","keypair","String","_getOptions","onNode","onCompiler","getStatus","buildTx","txType","_","txMethodsOther","methods","prototype","handler","instanceOptions","args","lastArg","length","push"],"sources":["../src/AeSdkBase.ts"],"sourcesContent":["import * as chainMethods from './chain'\nimport * as txMethods from './tx'\nimport * as aensMethods from './aens'\nimport * as spendMethods from './spend'\nimport * as oracleMethods from './oracle'\nimport * as contractMethods from './contract/methods'\nimport * as contractGaMethods from './contract/ga'\nimport { _buildTx } from './tx'\nimport { mapObject } from './utils/other'\nimport Node, { getNetworkId } from './Node'\nimport { AE_AMOUNT_FORMATS } from './utils/amount-formatter'\nimport { AMOUNT, TX_TYPE } from './tx/builder/schema'\nimport MemoryAccount, { Keypair } from './account/Memory'\nimport AccountBase, { isAccountBase } from './account/Base'\nimport {\n CompilerError,\n DuplicateNodeError,\n NodeNotFoundError,\n NotImplementedError,\n TypeError\n} from './utils/errors'\nimport { EncodedData } from './utils/encoder'\nimport Compiler from './contract/Compiler'\n\nexport type Account = Keypair | AccountBase | any\n\ntype NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string }\n\nfunction getValueOrErrorProxy<Value extends object> (valueCb: () => Value): Value {\n try {\n return valueCb()\n } catch (error) {\n return new Proxy(\n {},\n Object.fromEntries(['get', 'set', 'has'].map(name => [name, () => { throw error }]))\n ) as Value\n }\n}\n\n/**\n * Basic AeSdk class\n *\n * AeSdkBase objects are the composition of:\n * - chain methods\n * - tx methods\n * - aens methods\n * - spend methods\n * - oracle methods\n * - contract methods\n * - contract ga methods\n * Only by providing the joint functionality of them, most more advanced\n * operations, i.e. the ones with actual use value on the chain, become\n * available.\n */\nclass AeSdkBase {\n _options: {\n denomination: AE_AMOUNT_FORMATS\n amount: number\n [key: string]: any\n } = { denomination: AE_AMOUNT_FORMATS.AETTOS, amount: AMOUNT }\n\n pool: Map<string, Node> = new Map()\n selectedNodeName?: string\n compilerApi: Compiler\n\n /**\n * @param options - Options\n * @param options.nodes - Array of nodes\n * @param options.compilerUrl - Url for compiler API\n * @param options.ignoreVersion - Don't check node or compiler version\n */\n constructor (\n { nodes = [], compilerUrl, ignoreVersion = false, ...options }:\n {\n nodes?: Array<{ name: string, instance: Node }>\n compilerUrl?: string\n ignoreVersion?: boolean\n [key: string]: any // TODO: consider combining all possible options instead\n } = {}\n ) {\n Object.assign(this._options, options)\n\n nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0))\n\n if (compilerUrl == null) {\n this.compilerApi = getValueOrErrorProxy(() => {\n throw new CompilerError('You can\\'t use Compiler API. Compiler is not ready!')\n })\n } else this.setCompilerUrl(compilerUrl, { ignoreVersion })\n }\n\n setCompilerUrl (\n compilerUrl: string, { ignoreVersion = false }: { ignoreVersion?: boolean } = {}\n ): void {\n this.compilerApi = new Compiler(compilerUrl, { ignoreVersion })\n }\n\n get api (): Node {\n this.ensureNodeConnected()\n return this.pool.get(this.selectedNodeName) as Node\n }\n\n /**\n * Add Node\n * @param name - Node name\n * @param node - Node instance\n * @param select - Select this node as current\n * @example\n * ```js\n * // add and select new node with name 'testNode'\n * aeSdkBase.addNode('testNode', new Node({ url }), true)\n * ```\n */\n addNode (name: string, node: Node, select = false): void {\n if (this.pool.has(name)) throw new DuplicateNodeError(name)\n\n this.pool.set(name, node)\n if (select || this.selectedNodeName == null) {\n this.selectNode(name)\n }\n }\n\n /**\n * Select Node\n * @param name - Node name\n * @example\n * nodePool.selectNode('testNode')\n */\n selectNode (name: string): void {\n if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`)\n this.selectedNodeName = name\n }\n\n /**\n * Get NetworkId of current Node\n * @example\n * nodePool.getNetworkId()\n */\n readonly getNetworkId = getNetworkId\n\n /**\n * Check if you have selected node\n * @example\n * nodePool.isNodeConnected()\n */\n isNodeConnected (): this is AeSdkBase & { selectedNodeName: string } {\n return this.selectedNodeName != null\n }\n\n protected ensureNodeConnected (): asserts this is AeSdkBase & { selectedNodeName: string } {\n if (!this.isNodeConnected()) {\n throw new NodeNotFoundError('You can\\'t use Node API. Node is not connected or not defined!')\n }\n }\n\n /**\n * Get information about node\n * @example\n * ```js\n * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }\n * ```\n */\n async getNodeInfo (): Promise<NodeInfo> {\n this.ensureNodeConnected()\n return {\n name: this.selectedNodeName,\n ...await this.api.getNodeInfo()\n }\n }\n\n /**\n * Get array of available nodes\n * @example\n * nodePool.getNodesInPool()\n */\n async getNodesInPool (): Promise<NodeInfo[]> {\n return await Promise.all(\n Array.from(this.pool.entries()).map(async ([name, node]) => ({\n name,\n ...await node.getNodeInfo()\n }))\n )\n }\n\n addresses (): Array<EncodedData<'ak'>> {\n return []\n }\n\n async address ({ onAccount }: { onAccount?: Account } = {}): Promise<EncodedData<'ak'>> {\n return await this._resolveAccount(onAccount).address()\n }\n\n async sign (\n data: string | Uint8Array, { onAccount, ...options }: { onAccount?: Account } = {}\n ): Promise<Uint8Array> {\n return await this._resolveAccount(onAccount).sign(data, options)\n }\n\n async signTransaction (\n tx: EncodedData<'tx'>,\n { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signTransaction']>[1] = {}\n ): Promise<EncodedData<'tx'>> {\n return await this._resolveAccount(onAccount)\n .signTransaction(tx, { ...options, networkId: await this.getNetworkId(options) })\n }\n\n async signMessage (\n message: string,\n { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signMessage']>[1] = {}\n ): Promise<string | Uint8Array> {\n return await this._resolveAccount(onAccount).signMessage(message, options)\n }\n\n async verifyMessage (\n message: string,\n signature: string | Uint8Array,\n { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['verifyMessage']>[2] = {}\n ): Promise<boolean> {\n return await this._resolveAccount(onAccount).verifyMessage(message, signature, options)\n }\n\n /**\n * Resolves an account\n * @param account - ak-address, instance of AccountBase, or keypair\n */\n _resolveAccount (account?: Account): AccountBase {\n switch (account !== null && typeof account) {\n case 'string':\n throw new NotImplementedError('Address in AccountResolver')\n case 'object':\n return isAccountBase(account) ? account : new MemoryAccount({ keypair: account })\n default:\n throw new TypeError(\n 'Account should be an address (ak-prefixed string), ' +\n `keypair, or instance of AccountBase, got ${String(account)} instead`)\n }\n }\n\n async _getOptions (\n ): Promise<{ onNode: Node, onAccount: AccountBase, onCompiler: Compiler, networkId: string }> {\n return {\n ...this._options,\n onNode: getValueOrErrorProxy(() => this.api),\n onAccount: getValueOrErrorProxy(() => this._resolveAccount()),\n onCompiler: getValueOrErrorProxy(() => this.compilerApi),\n // TODO: remove networkId\n networkId: (await this.api?.getStatus()).networkId\n }\n }\n\n async buildTx<TxType extends TX_TYPE> (\n txType: TxType,\n options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node }\n ): Promise<EncodedData<'tx'>> {\n // @ts-expect-error\n return await _buildTx<TxType>(txType, {\n ...await this._getOptions(),\n ...options\n })\n }\n}\n\nconst { _buildTx: _, ...txMethodsOther } = txMethods\n\nconst methods = {\n ...chainMethods,\n ...txMethodsOther,\n ...aensMethods,\n ...spendMethods,\n ...oracleMethods,\n ...contractMethods,\n ...contractGaMethods\n} as const\n\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T]\n\ntype OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T\n\ntype MakeOptional<Args extends any[]> = Args extends [infer Head, ...infer Tail]\n ? Tail extends []\n ? Head extends object\n ? OptionalIfNotRequired<[Omit<Head, 'onNode' | 'onCompiler' | 'onAccount'>\n & { onNode?: Node, onCompiler?: Compiler, onAccount?: AccountBase | EncodedData<'ak'> | Keypair }]>\n : [Head]\n : [Head, ...MakeOptional<Tail>]\n : never\n\ntype TransformMethods <Methods extends { [key: string]: Function }> =\n {\n [Name in keyof Methods]:\n Methods[Name] extends (...args: infer Args) => infer Ret\n ? (...args: MakeOptional<Args>) => Ret\n : never\n }\n\ninterface AeSdkBaseMethods extends TransformMethods<typeof methods> {}\n\nObject.assign(AeSdkBase.prototype, mapObject<Function, Function>(\n methods,\n ([name, handler]) => [\n name,\n async function (...args: any[]) {\n const instanceOptions = await this._getOptions()\n const lastArg = args[args.length - 1]\n if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {\n Object.assign(lastArg, {\n ...instanceOptions,\n ...lastArg,\n ...lastArg.onAccount != null && { onAccount: this._resolveAccount(lastArg.onAccount) }\n })\n } else args.push(instanceOptions)\n return handler(...args)\n }\n ]\n))\n\nexport default AeSdkBase as new (options: ConstructorParameters<typeof AeSdkBase>[0]) =>\nAeSdkBase & AeSdkBaseMethods\n"],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import AeSdk from './AeSdk';
2
+ import { Account } from './AeSdkBase';
3
+ import RpcClient from './aepp-wallet-communication/rpc/RpcClient';
4
+ import { METHODS, RPC_STATUS, WALLET_TYPE } from './aepp-wallet-communication/schema';
5
+ import AccountBase from './account/Base';
6
+ import BrowserConnection from './aepp-wallet-communication/connection/Browser';
7
+ import { Accounts, AeppApi, Network, WalletApi, WalletInfo } from './aepp-wallet-communication/rpc/types';
8
+ import { EncodedData } from './utils/encoder';
9
+ declare type RpcClientWallet = RpcClient<AeppApi, WalletApi>;
10
+ declare type OnConnection = (clientId: string, params: Omit<Parameters<WalletApi[METHODS.connect]>[0], 'version'>, origin: string) => void;
11
+ declare type OnSubscription = (clientId: string, params: Parameters<WalletApi[METHODS.subscribeAddress]>[0], origin: string) => void;
12
+ declare type OnSign = (clientId: string, params: Parameters<WalletApi[METHODS.sign]>[0], origin: string) => Promise<{
13
+ tx?: EncodedData<'tx'>;
14
+ onAccount?: Account;
15
+ } | undefined> | Promise<void>;
16
+ declare type OnDisconnect = (clientId: string, params: Parameters<WalletApi[METHODS.closeConnection]>[0]) => void;
17
+ declare type OnAskAccounts = (clientId: string, params: undefined, origin: string) => void;
18
+ declare type OnMessageSign = (clientId: string, params: Parameters<WalletApi[METHODS.signMessage]>[0], origin: string) => Promise<{
19
+ onAccount?: Account;
20
+ } | undefined> | Promise<void>;
21
+ interface RpcClientsInfo {
22
+ id: string;
23
+ status: RPC_STATUS;
24
+ connectNode: boolean;
25
+ addressSubscription: Set<'connected' | 'current'>;
26
+ rpc: RpcClientWallet;
27
+ }
28
+ /**
29
+ * Contain functionality for aepp interaction and managing multiple aepps
30
+ */
31
+ export default class AeSdkWallet extends AeSdk {
32
+ id: string;
33
+ _type: WALLET_TYPE;
34
+ name: string;
35
+ _clients: Map<string, RpcClientsInfo>;
36
+ onConnection: OnConnection;
37
+ onSubscription: OnSubscription;
38
+ onSign: OnSign;
39
+ onDisconnect: OnDisconnect;
40
+ onAskAccounts: OnAskAccounts;
41
+ onMessageSign: OnMessageSign;
42
+ /**
43
+ * @param options - Options
44
+ * @param options.name - Wallet name
45
+ * @param options.id - Wallet id
46
+ * @param options.type - Wallet type
47
+ * @param options.onConnection - Call-back function for incoming AEPP connection
48
+ * @param options.onSubscription - Call-back function for incoming AEPP account subscription
49
+ * @param options.onSign - Call-back function for incoming AEPP sign request
50
+ * @param options.onAskAccounts - Call-back function for incoming AEPP get address request
51
+ * @param options.onMessageSign - Call-back function for incoming AEPP sign message request
52
+ * @param options.onDisconnect - Call-back function for disconnect event
53
+ */
54
+ constructor({ name, id, type, onConnection, onSubscription, onSign, onDisconnect, onAskAccounts, onMessageSign, ...options }: {
55
+ id: string;
56
+ type: WALLET_TYPE;
57
+ name: string;
58
+ onConnection: OnConnection;
59
+ onSubscription: OnSubscription;
60
+ onSign: OnSign;
61
+ onDisconnect: OnDisconnect;
62
+ onAskAccounts: OnAskAccounts;
63
+ onMessageSign: OnMessageSign;
64
+ } & ConstructorParameters<typeof AeSdk>[0]);
65
+ _pushAccountsToApps(): void;
66
+ selectAccount(address: EncodedData<'ak'>): void;
67
+ addAccount(account: AccountBase, options?: Parameters<AeSdk['addAccount']>[1]): Promise<void>;
68
+ _getNode(): {
69
+ node: Network['node'];
70
+ };
71
+ selectNode(name: string): Promise<void>;
72
+ _getClient(clientId: string): RpcClientsInfo;
73
+ _isRpcClientSubscribed(clientId: string): boolean;
74
+ _isRpcClientConnected(clientId: string): boolean;
75
+ _disconnectRpcClient(clientId: string): void;
76
+ /**
77
+ * Remove specific RpcClient by ID
78
+ * @param id - Client ID
79
+ */
80
+ removeRpcClient(id: string): void;
81
+ /**
82
+ * Add new client by AEPP connection
83
+ * @param clientConnection - AEPP connection object
84
+ * @returns Client ID
85
+ */
86
+ addRpcClient(clientConnection: BrowserConnection): string;
87
+ /**
88
+ * Send shareWalletInfo message to notify AEPP about wallet
89
+ * @param clientId - ID of RPC client send message to
90
+ */
91
+ shareWalletInfo(clientId: string): Promise<void>;
92
+ /**
93
+ * Get Wallet info object
94
+ * @returns Object with wallet information
95
+ */
96
+ getWalletInfo(): Promise<WalletInfo>;
97
+ /**
98
+ * Get Wallet accounts
99
+ * @returns Object with accounts information (\{ connected: Object, current: Object \})
100
+ */
101
+ getAccounts(): Accounts;
102
+ }
103
+ export {};