@aeternity/aepp-sdk 9.0.1 → 11.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 (284) hide show
  1. package/README.md +15 -14
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -36
  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/account/base.mjs +179 -0
  10. package/es/account/base.mjs.map +1 -0
  11. package/es/account/memory.mjs +99 -0
  12. package/es/account/memory.mjs.map +1 -0
  13. package/es/account/multiple.mjs +179 -0
  14. package/es/account/multiple.mjs.map +1 -0
  15. package/es/ae/aens.mjs +404 -0
  16. package/es/ae/aens.mjs.map +1 -0
  17. package/es/ae/{aepp.js → aepp.mjs} +9 -9
  18. package/es/ae/aepp.mjs.map +1 -0
  19. package/es/ae/contract.mjs +159 -0
  20. package/es/ae/contract.mjs.map +1 -0
  21. package/es/ae/index.mjs +207 -0
  22. package/es/ae/index.mjs.map +1 -0
  23. package/es/ae/oracle.mjs +339 -0
  24. package/es/ae/oracle.mjs.map +1 -0
  25. package/es/ae/{universal.js → universal.mjs} +10 -10
  26. package/es/ae/universal.mjs.map +1 -0
  27. package/es/ae/{wallet.js → wallet.mjs} +10 -10
  28. package/es/ae/wallet.mjs.map +1 -0
  29. package/es/aepp-wallet-communication/schema.d.ts +74 -0
  30. package/es/bignumber.d.ts +1 -7
  31. package/es/chain/{index.js → index.mjs} +29 -9
  32. package/es/chain/index.mjs.map +1 -0
  33. package/es/chain/node.mjs +442 -0
  34. package/es/chain/node.mjs.map +1 -0
  35. package/es/channel/handlers.mjs +1110 -0
  36. package/es/channel/handlers.mjs.map +1 -0
  37. package/es/channel/{index.js → index.mjs} +245 -472
  38. package/es/channel/index.mjs.map +1 -0
  39. package/es/channel/internal.mjs +283 -0
  40. package/es/channel/internal.mjs.map +1 -0
  41. package/es/contract/aci.mjs +477 -0
  42. package/es/contract/aci.mjs.map +1 -0
  43. package/es/contract/compiler.mjs +115 -0
  44. package/es/contract/compiler.mjs.map +1 -0
  45. package/es/contract/ga/helpers.mjs +30 -0
  46. package/es/contract/ga/helpers.mjs.map +1 -0
  47. package/es/contract/ga/index.mjs +178 -0
  48. package/es/contract/ga/index.mjs.map +1 -0
  49. package/es/errors.d.ts +284 -0
  50. package/es/index.mjs +57 -0
  51. package/es/index.mjs.map +1 -0
  52. package/es/node-pool/index.mjs +188 -0
  53. package/es/node-pool/index.mjs.map +1 -0
  54. package/es/node.mjs +133 -0
  55. package/es/node.mjs.map +1 -0
  56. package/es/other.d.ts +1 -1
  57. package/es/tx/builder/field-types.mjs +74 -0
  58. package/es/tx/builder/field-types.mjs.map +1 -0
  59. package/es/tx/builder/helpers.mjs +363 -0
  60. package/es/tx/builder/helpers.mjs.map +1 -0
  61. package/es/tx/builder/index.mjs +606 -0
  62. package/es/tx/builder/index.mjs.map +1 -0
  63. package/es/tx/builder/schema.mjs +760 -0
  64. package/es/tx/builder/schema.mjs.map +1 -0
  65. package/es/tx/{index.js → index.mjs} +107 -15
  66. package/es/tx/index.mjs.map +1 -0
  67. package/es/tx/tx-object.mjs +283 -0
  68. package/es/tx/tx-object.mjs.map +1 -0
  69. package/es/tx/tx.mjs +938 -0
  70. package/es/tx/tx.mjs.map +1 -0
  71. package/es/tx/validator.mjs +247 -0
  72. package/es/tx/validator.mjs.map +1 -0
  73. package/es/typings/blakejs/index.d.mjs +2 -0
  74. package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
  75. package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +27 -29
  76. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
  77. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +183 -0
  78. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
  79. package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +7 -3
  80. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
  81. package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +29 -23
  82. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
  83. package/es/utils/aepp-wallet-communication/helpers.mjs +92 -0
  84. package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
  85. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +375 -0
  86. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
  87. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +275 -0
  88. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
  89. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +541 -0
  90. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
  91. package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
  92. package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
  93. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +110 -0
  94. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  95. package/es/utils/amount-formatter.mjs +139 -0
  96. package/es/utils/amount-formatter.mjs.map +1 -0
  97. package/es/utils/async-init.mjs +64 -0
  98. package/es/utils/async-init.mjs.map +1 -0
  99. package/es/utils/bignumber.mjs +21 -0
  100. package/es/utils/bignumber.mjs.map +1 -0
  101. package/es/utils/{bytes.js → bytes.mjs} +16 -12
  102. package/es/utils/bytes.mjs.map +1 -0
  103. package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
  104. package/es/utils/crypto-ts.mjs.map +1 -0
  105. package/es/utils/crypto.mjs +239 -0
  106. package/es/utils/crypto.mjs.map +1 -0
  107. package/es/utils/errors.mjs +689 -0
  108. package/es/utils/errors.mjs.map +1 -0
  109. package/es/utils/hd-wallet.mjs +111 -0
  110. package/es/utils/hd-wallet.mjs.map +1 -0
  111. package/es/utils/json-big.mjs +45 -0
  112. package/es/utils/json-big.mjs.map +1 -0
  113. package/es/utils/keystore.mjs +240 -0
  114. package/es/utils/keystore.mjs.map +1 -0
  115. package/es/utils/mptree.mjs +161 -0
  116. package/es/utils/mptree.mjs.map +1 -0
  117. package/es/utils/other.mjs +43 -0
  118. package/es/utils/other.mjs.map +1 -0
  119. package/es/utils/semver-satisfies.mjs +16 -0
  120. package/es/utils/semver-satisfies.mjs.map +1 -0
  121. package/es/utils/{string.js → string.mjs} +5 -14
  122. package/es/utils/string.mjs.map +1 -0
  123. package/es/utils/swagger.mjs +164 -0
  124. package/es/utils/swagger.mjs.map +1 -0
  125. package/package.json +55 -62
  126. package/src/account/base.js +3 -1
  127. package/src/account/memory.js +13 -8
  128. package/src/account/multiple.js +31 -22
  129. package/src/ae/aens.js +75 -77
  130. package/src/ae/aepp.js +2 -2
  131. package/src/ae/contract.js +27 -291
  132. package/src/ae/index.js +9 -7
  133. package/src/ae/oracle.js +51 -28
  134. package/src/ae/universal.js +4 -2
  135. package/src/ae/wallet.js +2 -2
  136. package/src/chain/index.js +29 -6
  137. package/src/chain/node.js +95 -67
  138. package/src/channel/handlers.js +30 -21
  139. package/src/channel/index.js +44 -20
  140. package/src/channel/internal.js +30 -24
  141. package/src/contract/aci.js +376 -0
  142. package/src/contract/compiler.js +41 -91
  143. package/src/contract/ga/helpers.js +10 -13
  144. package/src/contract/ga/index.js +42 -33
  145. package/src/index.js +9 -10
  146. package/src/node-pool/index.js +29 -17
  147. package/src/node.js +33 -36
  148. package/src/tx/builder/field-types.js +61 -0
  149. package/src/tx/builder/helpers.js +126 -84
  150. package/src/tx/builder/index.js +83 -41
  151. package/src/tx/builder/schema.js +50 -40
  152. package/src/tx/index.js +101 -12
  153. package/src/tx/tx-object.js +35 -15
  154. package/src/tx/tx.js +232 -153
  155. package/src/tx/validator.js +34 -12
  156. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +11 -5
  157. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +35 -13
  158. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  159. package/src/utils/aepp-wallet-communication/content-script-bridge.js +14 -7
  160. package/src/utils/aepp-wallet-communication/helpers.js +6 -14
  161. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +107 -60
  162. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +24 -11
  163. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +98 -56
  164. package/src/utils/aepp-wallet-communication/schema.ts +80 -0
  165. package/src/utils/aepp-wallet-communication/wallet-detector.js +6 -2
  166. package/src/utils/amount-formatter.ts +4 -3
  167. package/src/utils/async-init.js +10 -6
  168. package/src/utils/bignumber.ts +3 -10
  169. package/src/utils/bytes.ts +3 -2
  170. package/src/utils/crypto-ts.ts +2 -2
  171. package/src/utils/crypto.js +10 -144
  172. package/src/utils/errors.ts +683 -0
  173. package/src/utils/hd-wallet.js +11 -26
  174. package/src/utils/keystore.js +57 -53
  175. package/src/utils/mptree.ts +12 -6
  176. package/src/utils/other.ts +1 -1
  177. package/src/utils/semver-satisfies.ts +1 -1
  178. package/src/utils/swagger.js +75 -45
  179. package/es/account/base.js +0 -259
  180. package/es/account/base.js.map +0 -1
  181. package/es/account/memory.js +0 -86
  182. package/es/account/memory.js.map +0 -1
  183. package/es/account/multiple.js +0 -267
  184. package/es/account/multiple.js.map +0 -1
  185. package/es/ae/aens.js +0 -829
  186. package/es/ae/aens.js.map +0 -1
  187. package/es/ae/aepp.js.map +0 -1
  188. package/es/ae/contract.js +0 -985
  189. package/es/ae/contract.js.map +0 -1
  190. package/es/ae/index.js +0 -442
  191. package/es/ae/index.js.map +0 -1
  192. package/es/ae/oracle.js +0 -690
  193. package/es/ae/oracle.js.map +0 -1
  194. package/es/ae/universal.js.map +0 -1
  195. package/es/ae/wallet.js.map +0 -1
  196. package/es/chain/index.js.map +0 -1
  197. package/es/chain/node.js +0 -1119
  198. package/es/chain/node.js.map +0 -1
  199. package/es/channel/handlers.js +0 -1601
  200. package/es/channel/handlers.js.map +0 -1
  201. package/es/channel/index.js.map +0 -1
  202. package/es/channel/internal.js +0 -438
  203. package/es/channel/internal.js.map +0 -1
  204. package/es/contract/aci/helpers.js +0 -298
  205. package/es/contract/aci/helpers.js.map +0 -1
  206. package/es/contract/aci/index.js +0 -517
  207. package/es/contract/aci/index.js.map +0 -1
  208. package/es/contract/aci/transformation.js +0 -742
  209. package/es/contract/aci/transformation.js.map +0 -1
  210. package/es/contract/compiler.js +0 -316
  211. package/es/contract/compiler.js.map +0 -1
  212. package/es/contract/ga/helpers.js +0 -120
  213. package/es/contract/ga/helpers.js.map +0 -1
  214. package/es/contract/ga/index.js +0 -307
  215. package/es/contract/ga/index.js.map +0 -1
  216. package/es/contract/index.js +0 -158
  217. package/es/contract/index.js.map +0 -1
  218. package/es/index.js +0 -57
  219. package/es/index.js.map +0 -1
  220. package/es/node-pool/index.js +0 -204
  221. package/es/node-pool/index.js.map +0 -1
  222. package/es/node.js +0 -228
  223. package/es/node.js.map +0 -1
  224. package/es/tx/builder/helpers.js +0 -355
  225. package/es/tx/builder/helpers.js.map +0 -1
  226. package/es/tx/builder/index.js +0 -686
  227. package/es/tx/builder/index.js.map +0 -1
  228. package/es/tx/builder/schema.js +0 -695
  229. package/es/tx/builder/schema.js.map +0 -1
  230. package/es/tx/index.js.map +0 -1
  231. package/es/tx/tx-object.js +0 -297
  232. package/es/tx/tx-object.js.map +0 -1
  233. package/es/tx/tx.js +0 -1757
  234. package/es/tx/tx.js.map +0 -1
  235. package/es/tx/validator.js +0 -344
  236. package/es/tx/validator.js.map +0 -1
  237. package/es/typings/blakejs/index.d.js +0 -2
  238. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  239. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -211
  240. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  241. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  242. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  243. package/es/utils/aepp-wallet-communication/helpers.js +0 -148
  244. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  245. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -652
  246. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  247. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -285
  248. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  249. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -763
  250. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  251. package/es/utils/aepp-wallet-communication/schema.js +0 -103
  252. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  253. package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -135
  254. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  255. package/es/utils/amount-formatter.js +0 -152
  256. package/es/utils/amount-formatter.js.map +0 -1
  257. package/es/utils/async-init.js +0 -103
  258. package/es/utils/async-init.js.map +0 -1
  259. package/es/utils/bignumber.js +0 -36
  260. package/es/utils/bignumber.js.map +0 -1
  261. package/es/utils/bytes.js.map +0 -1
  262. package/es/utils/crypto-ts.js.map +0 -1
  263. package/es/utils/crypto.js +0 -358
  264. package/es/utils/crypto.js.map +0 -1
  265. package/es/utils/hd-wallet.js +0 -148
  266. package/es/utils/hd-wallet.js.map +0 -1
  267. package/es/utils/json-big.js +0 -78
  268. package/es/utils/json-big.js.map +0 -1
  269. package/es/utils/keystore.js +0 -393
  270. package/es/utils/keystore.js.map +0 -1
  271. package/es/utils/mptree.js +0 -198
  272. package/es/utils/mptree.js.map +0 -1
  273. package/es/utils/other.js +0 -93
  274. package/es/utils/other.js.map +0 -1
  275. package/es/utils/semver-satisfies.js +0 -35
  276. package/es/utils/semver-satisfies.js.map +0 -1
  277. package/es/utils/string.js.map +0 -1
  278. package/es/utils/swagger.js +0 -269
  279. package/es/utils/swagger.js.map +0 -1
  280. package/src/contract/aci/helpers.js +0 -140
  281. package/src/contract/aci/index.js +0 -191
  282. package/src/contract/aci/transformation.js +0 -464
  283. package/src/contract/index.js +0 -159
  284. package/src/utils/aepp-wallet-communication/schema.js +0 -110
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/rpc/aepp-rpc.js"],"names":["v4","uuid","Ae","RpcClient","getHandler","message","voidFn","METHODS","RPC_STATUS","VERSION","NOTIFICATIONS","wallet","updateAddress","instance","params","rpcClient","accounts","onAddressChange","updateNetwork","msg","info","networkId","onNetworkChange","closeConnection","disconnectWallet","onDisconnect","RESPONSES","aepp","address","processResponse","connect","result","status","CONNECTED","subscribeAddress","subscription","addressSubscription","id","sign","signedTransaction","transactionHash","signMessage","signature","REQUESTS","handleMessage","debug","Object","prototype","hasOwnProperty","call","callbacks","compose","init","name","connection","forceValidation","eventsHandlers","connectToWallet","event","Error","deepProps","defaults","walletBroadcast","methods","addresses","currentAccount","connected","isConnected","getNetworkId","force","connectionInfo","handlers","sendConnectRequest","sendDisconnect","sendMessage","reason","disconnect","onAccount","current","hasAccessToAccount","askAddresses","request","type","value","signTransaction","tx","opt","returnSigned","version","send","options","signed","sendTransaction"],"mappings":"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","sourcesContent":["/**\n * RPC handler for AEPP side\n *\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/aepp-rpc\n * @export AeppRpc\n * @example import ContentScriptBridge from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/aepp-rpc'\n */\nimport * as R from 'ramda'\nimport { v4 as uuid } from 'uuid'\n\nimport Ae from '../../../ae'\nimport RpcClient from './rpc-client'\nimport { getHandler, message, voidFn } from '../helpers'\nimport { METHODS, RPC_STATUS, VERSION } from '../schema'\n\nconst NOTIFICATIONS = {\n [METHODS.wallet.updateAddress]: (instance) =>\n ({ params }) => {\n instance.rpcClient.accounts = params\n instance.onAddressChange(params)\n },\n [METHODS.updateNetwork]: (instance) =>\n (msg) => {\n instance.rpcClient.info.networkId = msg.params.networkId\n instance.onNetworkChange(msg.params)\n },\n [METHODS.closeConnection]: (instance) =>\n (msg) => {\n instance.disconnectWallet()\n instance.onDisconnect(msg.params)\n }\n}\n\nconst RESPONSES = {\n [METHODS.aepp.address]: (instance) =>\n (msg) => instance.rpcClient.processResponse(msg),\n [METHODS.aepp.connect]: (instance) =>\n (msg) => {\n if (msg.result) instance.rpcClient.info.status = RPC_STATUS.CONNECTED\n instance.rpcClient.processResponse(msg)\n },\n [METHODS.aepp.subscribeAddress]: (instance) =>\n (msg) => {\n if (msg.result) {\n msg.result.address && (instance.rpcClient.accounts = msg.result.address)\n msg.result.subscription && (instance.rpcClient.addressSubscription = msg.result.subscription)\n }\n\n instance.rpcClient.processResponse(msg, ({ id, result }) => [result])\n },\n [METHODS.aepp.sign]: (instance) =>\n (msg) => {\n instance.rpcClient.processResponse(msg, ({ id, result }) => [result.signedTransaction || result.transactionHash])\n },\n [METHODS.aepp.signMessage]: (instance) =>\n (msg) => {\n instance.rpcClient.processResponse(msg, ({ id, result }) => [result.signature])\n }\n}\n\nconst REQUESTS = {}\n\nconst handleMessage = (instance) => async (msg) => {\n if (!msg.id) {\n return getHandler(NOTIFICATIONS, msg, { debug: instance.debug })(instance)(msg)\n } else if (Object.prototype.hasOwnProperty.call(instance.rpcClient.callbacks, msg.id)) {\n return getHandler(RESPONSES, msg, { debug: instance.debug })(instance)(msg)\n } else {\n return getHandler(REQUESTS, msg, { debug: instance.debug })(instance)(msg)\n }\n}\n\n/**\n * Contain functionality for wallet interaction and connect it to sdk\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/aepp-rpc\n * @function\n * @rtype Stamp\n * @param {Object} param Init params object\n * @param {String=} [param.name] Aepp name\n * @param {Function} onAddressChange Call-back function for update address event\n * @param {Function} onDisconnect Call-back function for disconnect event\n * @param {Function} onNetworkChange Call-back function for update network event\n * @param {Object} connection Wallet connection object\n * @return {Object}\n */\nexport default Ae.compose({\n async init ({ name, onAddressChange = voidFn, onDisconnect = voidFn, onNetworkChange = voidFn, connection, forceValidation = false, debug = false }) {\n const eventsHandlers = ['onDisconnect', 'onAddressChange', 'onNetworkChange']\n this.connection = connection\n this.name = name\n this.debug = debug\n\n if (connection) {\n // Init RPCClient\n await this.connectToWallet(connection)\n }\n // Event callbacks\n this.onDisconnect = onDisconnect\n this.onAddressChange = onAddressChange\n this.onNetworkChange = onNetworkChange\n // validation\n eventsHandlers.forEach(event => {\n if (!forceValidation && typeof this[event] !== 'function') throw new Error(`Call-back for ${event} must be an function!`)\n })\n },\n deepProps: { Ae: { defaults: { walletBroadcast: true } } },\n methods: {\n sign () {\n },\n addresses () {\n if (!this.rpcClient.currentAccount) throw new Error('You are not subscribed for an account.')\n return [this.rpcClient.currentAccount, ...Object.keys(this.rpcClient.accounts.connected)]\n },\n /**\n * Connect to wallet\n * @function connectToWallet\n * @instance\n * @rtype (connection: Object) => void\n * @param {Object} connection Wallet connection object\n * @return {void}\n */\n async connectToWallet (connection) {\n if (this.rpcClient && this.rpcClient.isConnected()) throw new Error('You are already connected to wallet ' + this.rpcClient)\n this.rpcClient = RpcClient({\n connection,\n networkId: this.getNetworkId({ force: true }),\n ...connection.connectionInfo,\n id: uuid(),\n handlers: [handleMessage(this), this.onDisconnect]\n })\n return this.sendConnectRequest()\n },\n /**\n * Disconnect from wallet\n * @function disconnectWallet\n * @instance\n * @rtype (force: Boolean = false) => void\n * @param {Boolean} sendDisconnect=false Force sending close connection message\n * @return {void}\n */\n async disconnectWallet (sendDisconnect = true) {\n if (!this.rpcClient || !this.rpcClient.isConnected()) throw new Error('You are not connected to Wallet')\n sendDisconnect && this.rpcClient.sendMessage(message(METHODS.closeConnection, { reason: 'bye' }), true)\n this.rpcClient.disconnect()\n this.rpcClient = null\n },\n async address ({ onAccount } = {}) {\n if (!this.rpcClient || !this.rpcClient.isConnected()) throw new Error('You are not connected to Wallet')\n const current = this.rpcClient.currentAccount\n if (!current) throw new Error('You are not subscribed for an account.')\n if (onAccount && !this.rpcClient.hasAccessToAccount(onAccount)) throw new Error(`You do not have access to account ${onAccount}`)\n return onAccount || current\n },\n /**\n * Ask address from wallet\n * @function askAddresses\n * @instance\n * @rtype () => Promise\n * @return {Promise} Address from wallet\n */\n async askAddresses () {\n if (!this.rpcClient || !this.rpcClient.isConnected()) throw new Error('You are not connected to Wallet')\n if (!this.rpcClient.currentAccount) throw new Error('You are not subscribed for an account.')\n return this.rpcClient.request(METHODS.aepp.address)\n },\n /**\n * Subscribe for addresses from wallet\n * @function subscribeAddress\n * @instance\n * @rtype (type: String, value: String) => Promise\n * @param {String} type Type of subscription can be one of ['current'(just for selected account updates), 'connected(all accounts)']\n * @param {String} value Subscription action('subscribe'|'unsubscribe')\n * @return {Promise} Address from wallet\n */\n async subscribeAddress (type, value) {\n if (!this.rpcClient || !this.rpcClient.isConnected()) throw new Error('You are not connected to Wallet')\n return this.rpcClient.request(METHODS.aepp.subscribeAddress, { type, value })\n },\n /**\n * Overwriting of `signTransaction` AE method\n * All sdk API which use it will be send notification to wallet and wait for callBack\n * @function signTransaction\n * @instance\n * @rtype (tx: String, options = {}) => Promise\n * @return {Promise<String>} Signed transaction\n */\n async signTransaction (tx, opt = {}) {\n if (!this.rpcClient || !this.rpcClient.isConnected()) throw new Error('You are not connected to Wallet')\n if (!this.rpcClient.currentAccount) throw new Error('You are not subscribed for an account.')\n if (opt.onAccount && !this.rpcClient.hasAccessToAccount(opt.onAccount)) throw new Error(`You do not have access to account ${opt.onAccount}`)\n return this.rpcClient.request(METHODS.aepp.sign, { ...opt, tx, returnSigned: true, networkId: this.getNetworkId() })\n },\n /**\n * Overwriting of `signMessage` AE method\n * All sdk API which use it will be send notification to wallet and wait for callBack\n * @function signMessage\n * @instance\n * @rtype (msg: String, options = {}) => Promise\n * @return {Promise<String>} Signed transaction\n */\n async signMessage (msg, opt = {}) {\n if (!this.rpcClient || !this.rpcClient.isConnected()) throw new Error('You are not connected to Wallet')\n if (!this.rpcClient.currentAccount) throw new Error('You are not subscribed for an account.')\n if (opt.onAccount && !this.rpcClient.hasAccessToAccount(opt.onAccount)) throw new Error(`You do not have access to account ${opt.onAccount}`)\n return this.rpcClient.request(METHODS.aepp.signMessage, { ...opt, message: msg })\n },\n /**\n * Send connection request to wallet\n * @function sendConnectRequest\n * @instance\n * @rtype () => Promise\n * @return {Promise} Connection response\n */\n async sendConnectRequest () {\n return this.rpcClient.request(\n METHODS.aepp.connect, {\n name: this.name,\n version: VERSION,\n networkId: this.getNetworkId({ force: true })\n }\n )\n },\n /**\n * Overwriting of `send` AE method\n * All sdk API which use it will be send notification to wallet and wait for callBack\n * This method will sign, broadcast and wait until transaction will be accepted using rpc communication with wallet\n * @function send\n * @instance\n * @rtype (tx: String, options = {}) => Promise\n * @param {String} tx\n * @param {Object} [options={}]\n * @param {Object} [options.walletBroadcast=true]\n * @return {Promise<Object>} Transaction broadcast result\n */\n async send (tx, options = {}) {\n if (!this.rpcClient || !this.rpcClient.isConnected()) throw new Error('You are not connected to Wallet')\n if (!this.rpcClient.currentAccount) throw new Error('You are not subscribed for an account.')\n if (options.onAccount && !this.rpcClient.hasAccessToAccount(options.onAccount)) throw new Error(`You do not have access to account ${options.onAccount}`)\n const opt = R.merge(this.Ae.defaults, options)\n if (!opt.walletBroadcast) {\n const signed = await this.signTransaction(tx, { onAccount: opt.onAccount })\n return this.sendTransaction(signed, opt)\n }\n return this.rpcClient.request(METHODS.aepp.sign, { onAccount: opt.onAccount, tx, returnSigned: false, networkId: this.getNetworkId() })\n }\n }\n})\n"],"file":"aepp-rpc.js"}
@@ -1,285 +0,0 @@
1
- import _typeof from "@babel/runtime-corejs3/helpers/typeof";
2
- import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
3
- import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
4
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
5
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
6
- import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
7
- import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
8
- import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
9
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
10
- import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
11
-
12
- /**
13
- * RpcClient module
14
- *
15
- * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client
16
- * @export { RpcClient, RpcClients }
17
- * @example import RpcClient from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client'
18
- */
19
- import stampit from '@stamp/it';
20
- import { METHODS, RPC_STATUS, SUBSCRIPTION_TYPES } from '../schema';
21
- import { sendMessage, message, isValidAccounts } from '../helpers';
22
- /**
23
- * Contain functionality for using RPC conection
24
- * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client
25
- * @function
26
- * @rtype Stamp
27
- * @param {Object} param Init params object
28
- * @param {String} param.name Client name
29
- * @param {Object} param.connection Connection object
30
- * @param {Function[]} param.handlers Arrays with two function for handling messages ([ onMessage: Function, onDisconnect: Function])
31
- * @return {Object}
32
- */
33
-
34
- export default stampit({
35
- init: function init(_ref) {
36
- var _this = this;
37
-
38
- var id = _ref.id,
39
- name = _ref.name,
40
- networkId = _ref.networkId,
41
- icons = _ref.icons,
42
- connection = _ref.connection,
43
- _ref$handlers = _slicedToArray(_ref.handlers, 2),
44
- onMessage = _ref$handlers[0],
45
- onDisconnect = _ref$handlers[1];
46
-
47
- this.id = id;
48
- this.connection = connection;
49
- this.info = {
50
- name: name,
51
- networkId: networkId,
52
- icons: icons
53
- }; // {
54
- // [msg.id]: { resolve, reject }
55
- // }
56
-
57
- this.callbacks = {}; // ['connected', 'current']
58
-
59
- this.addressSubscription = []; // {
60
- // connected: { [pub]: {...meta} },
61
- // current: { [pub]: {...meta} }
62
- // }
63
-
64
- this.accounts = {};
65
- this.sendMessage = sendMessage(this.connection);
66
-
67
- var handleMessage = function handleMessage(msg, origin) {
68
- if (!msg || !msg.jsonrpc || msg.jsonrpc !== '2.0' || !msg.method) {
69
- throw new Error("Received invalid message: ".concat(msg));
70
- }
71
-
72
- onMessage(msg, origin);
73
- };
74
-
75
- var disconnect = function disconnect(aepp, connection) {
76
- _this.disconnect(true);
77
-
78
- typeof onDisconnect === 'function' && onDisconnect(connection, _this);
79
- };
80
-
81
- connection.connect(handleMessage, disconnect);
82
- },
83
- propertyDescriptors: {
84
- currentAccount: {
85
- enumerable: true,
86
- configurable: false,
87
- get: function get() {
88
- return this.isHasAccounts() ? _Object$keys(this.accounts.current)[0] : undefined;
89
- }
90
- },
91
- addresses: {
92
- enumerable: true,
93
- configurable: false,
94
- get: function get() {
95
- var _context;
96
-
97
- return this.isHasAccounts() ? _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(_Object$keys(this.accounts.current)), _toConsumableArray(_Object$keys(this.accounts.connected))) : [];
98
- }
99
- },
100
- origin: {
101
- enumerable: true,
102
- configurable: false,
103
- get: function get() {
104
- return this.connection;
105
- }
106
- }
107
- },
108
- methods: {
109
- /**
110
- * Update info
111
- * @function updateInfo
112
- * @instance
113
- * @rtype (info: Object) => void
114
- * @param {Object} info Info to update (will be merged with current info object)
115
- * @return {void}
116
- */
117
- updateInfo: function updateInfo(info) {
118
- _Object$assign(this.info, info);
119
- },
120
- isHasAccounts: function isHasAccounts() {
121
- return _typeof(this.accounts) === 'object' && _typeof(this.accounts.connected) === 'object' && _typeof(this.accounts.current) === 'object';
122
- },
123
- isSubscribed: function isSubscribed() {
124
- return this.addressSubscription.length && this.isHasAccounts();
125
- },
126
-
127
- /**
128
- * Check if aepp has access to account
129
- * @function hasAccessToAccount
130
- * @instance
131
- * @rtype (address: String) => Boolean
132
- * @param {String} address Account address
133
- * @return {Boolean} is connected
134
- */
135
- hasAccessToAccount: function hasAccessToAccount(address) {
136
- var _context2;
137
-
138
- return !!address && _findInstanceProperty(_context2 = this.addresses).call(_context2, function (a) {
139
- return a === address;
140
- });
141
- },
142
-
143
- /**
144
- * Check if is connected
145
- * @function isConnected
146
- * @instance
147
- * @rtype () => Boolean
148
- * @return {Boolean} is connected
149
- */
150
- isConnected: function isConnected() {
151
- return this.connection.isConnected() && this.info.status === RPC_STATUS.CONNECTED;
152
- },
153
-
154
- /**
155
- * Get selected account
156
- * @function getCurrentAccount
157
- * @instance
158
- * @rtype ({ onAccount } = {}) => String
159
- * @param {Object} options Options
160
- * @return {String}
161
- */
162
- getCurrentAccount: function getCurrentAccount() {
163
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
164
- onAccount = _ref2.onAccount;
165
-
166
- return onAccount || _Object$keys(this.accounts.current)[0];
167
- },
168
-
169
- /**
170
- * Disconnect
171
- * @function disconnect
172
- * @instance
173
- * @rtype () => void
174
- * @return {void}
175
- */
176
- disconnect: function disconnect() {
177
- var forceConnectionClose = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
178
- this.info.status = RPC_STATUS.DISCONNECTED;
179
- this.addressSubscription = [];
180
- this.accounts = {};
181
- forceConnectionClose || this.connection.disconnect();
182
- },
183
-
184
- /**
185
- * Update accounts and sent `update.address` notification to AEPP
186
- * @param {{ current: Object, connected: Object }} accounts Object with current and connected accounts
187
- * @param {{ forceNotification: Boolean }} [options={ forceNotification: false }] Don not sent update notification to AEPP
188
- */
189
- setAccounts: function setAccounts(accounts) {
190
- var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
191
- _ref3$forceNotificati = _ref3.forceNotification,
192
- forceNotification = _ref3$forceNotificati === void 0 ? false : _ref3$forceNotificati;
193
-
194
- if (!isValidAccounts(accounts)) {
195
- throw new Error('Invalid accounts object. Should be object like: `{ connected: {}, selected: {} }`');
196
- }
197
-
198
- this.accounts = accounts;
199
-
200
- if (!forceNotification) {
201
- // Sent notification about account updates
202
- this.sendMessage(message(METHODS.wallet.updateAddress, this.accounts), true);
203
- }
204
- },
205
-
206
- /**
207
- * Update subscription
208
- * @function updateSubscription
209
- * @instance
210
- * @rtype (type: String, value: String) => void
211
- * @param {String} type Subscription type
212
- * @param {String} value Subscription value
213
- * @return {String[]}
214
- */
215
- updateSubscription: function updateSubscription(type, value) {
216
- var _context3, _context4;
217
-
218
- if (type === SUBSCRIPTION_TYPES.subscribe && !_includesInstanceProperty(_context3 = this.addressSubscription).call(_context3, value)) {
219
- this.addressSubscription.push(value);
220
- }
221
-
222
- if (type === SUBSCRIPTION_TYPES.unsubscribe && _includesInstanceProperty(_context4 = this.addressSubscription).call(_context4, value)) {
223
- var _context5;
224
-
225
- this.addressSubscription = _filterInstanceProperty(_context5 = this.addressSubscription).call(_context5, function (s) {
226
- return s !== value;
227
- });
228
- }
229
-
230
- return this.addressSubscription;
231
- },
232
-
233
- /**
234
- * Make a request
235
- * @function request
236
- * @instance
237
- * @rtype (name: String, params: Object) => Promise
238
- * @param {String} name Method name
239
- * @param {Object} params Method params
240
- * @return {Promise} Promise which will be resolved after receiving response message
241
- */
242
- request: function request(name, params) {
243
- var _this2 = this;
244
-
245
- var msgId = this.sendMessage(message(name, params));
246
- if (Object.prototype.hasOwnProperty.call(this.callbacks, msgId)) throw new Error('Callback Already exist');
247
- return new _Promise(function (resolve, reject) {
248
- _this2.callbacks[msgId] = {
249
- resolve: resolve,
250
- reject: reject
251
- };
252
- });
253
- },
254
-
255
- /**
256
- * Process response message
257
- * @function processResponse
258
- * @instance
259
- * @rtype (msg: Object, transformResult: Function) => void
260
- * @param {Object} msg Message object
261
- * @param {Function=} transformResult Optional parser function for message
262
- * @return {void}
263
- */
264
- processResponse: function processResponse(_ref4, transformResult) {
265
- var id = _ref4.id,
266
- error = _ref4.error,
267
- result = _ref4.result;
268
- if (!this.callbacks[id]) throw new Error("Can't find callback for this messageId ".concat(id));
269
-
270
- if (result) {
271
- var _this$callbacks$id;
272
-
273
- (_this$callbacks$id = this.callbacks[id]).resolve.apply(_this$callbacks$id, _toConsumableArray(typeof transformResult === 'function' ? transformResult({
274
- id: id,
275
- result: result
276
- }) : [result]));
277
- } else {
278
- this.callbacks[id].reject(error);
279
- }
280
-
281
- delete this.callbacks[id];
282
- }
283
- }
284
- });
285
- //# sourceMappingURL=rpc-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/rpc/rpc-client.js"],"names":["stampit","METHODS","RPC_STATUS","SUBSCRIPTION_TYPES","sendMessage","message","isValidAccounts","init","id","name","networkId","icons","connection","handlers","onMessage","onDisconnect","info","callbacks","addressSubscription","accounts","handleMessage","msg","origin","jsonrpc","method","Error","disconnect","aepp","connect","propertyDescriptors","currentAccount","enumerable","configurable","get","isHasAccounts","current","undefined","addresses","connected","methods","updateInfo","isSubscribed","length","hasAccessToAccount","address","a","isConnected","status","CONNECTED","getCurrentAccount","onAccount","forceConnectionClose","DISCONNECTED","setAccounts","forceNotification","wallet","updateAddress","updateSubscription","type","value","subscribe","push","unsubscribe","s","request","params","msgId","Object","prototype","hasOwnProperty","call","resolve","reject","processResponse","transformResult","error","result"],"mappings":"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","sourcesContent":["/**\n * RpcClient module\n *\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client\n * @export { RpcClient, RpcClients }\n * @example import RpcClient from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client'\n */\nimport stampit from '@stamp/it'\n\nimport { METHODS, RPC_STATUS, SUBSCRIPTION_TYPES } from '../schema'\nimport { sendMessage, message, isValidAccounts } from '../helpers'\n\n/**\n * Contain functionality for using RPC conection\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client\n * @function\n * @rtype Stamp\n * @param {Object} param Init params object\n * @param {String} param.name Client name\n * @param {Object} param.connection Connection object\n * @param {Function[]} param.handlers Arrays with two function for handling messages ([ onMessage: Function, onDisconnect: Function])\n * @return {Object}\n */\nexport default stampit({\n init ({ id, name, networkId, icons, connection, handlers: [onMessage, onDisconnect] }) {\n this.id = id\n this.connection = connection\n this.info = { name, networkId, icons }\n // {\n // [msg.id]: { resolve, reject }\n // }\n this.callbacks = {}\n // ['connected', 'current']\n this.addressSubscription = []\n // {\n // connected: { [pub]: {...meta} },\n // current: { [pub]: {...meta} }\n // }\n this.accounts = {}\n\n this.sendMessage = sendMessage(this.connection)\n\n const handleMessage = (msg, origin) => {\n if (!msg || !msg.jsonrpc || msg.jsonrpc !== '2.0' || !msg.method) {\n throw new Error(`Received invalid message: ${msg}`)\n }\n onMessage(msg, origin)\n }\n\n const disconnect = (aepp, connection) => {\n this.disconnect(true)\n typeof onDisconnect === 'function' && onDisconnect(connection, this)\n }\n\n connection.connect(handleMessage, disconnect)\n },\n propertyDescriptors: {\n currentAccount: {\n enumerable: true,\n configurable: false,\n get () {\n return this.isHasAccounts()\n ? Object.keys(this.accounts.current)[0]\n : undefined\n }\n },\n addresses: {\n enumerable: true,\n configurable: false,\n get () {\n return this.isHasAccounts()\n ? [...Object.keys(this.accounts.current), ...Object.keys(this.accounts.connected)]\n : []\n }\n },\n origin: {\n enumerable: true,\n configurable: false,\n get () {\n return this.connection\n }\n }\n },\n methods: {\n /**\n * Update info\n * @function updateInfo\n * @instance\n * @rtype (info: Object) => void\n * @param {Object} info Info to update (will be merged with current info object)\n * @return {void}\n */\n updateInfo (info) {\n Object.assign(this.info, info)\n },\n isHasAccounts () {\n return typeof this.accounts === 'object' &&\n typeof this.accounts.connected === 'object' &&\n typeof this.accounts.current === 'object'\n },\n isSubscribed () {\n return this.addressSubscription.length && this.isHasAccounts()\n },\n /**\n * Check if aepp has access to account\n * @function hasAccessToAccount\n * @instance\n * @rtype (address: String) => Boolean\n * @param {String} address Account address\n * @return {Boolean} is connected\n */\n hasAccessToAccount (address) {\n return !!address && this.addresses.find(a => a === address)\n },\n /**\n * Check if is connected\n * @function isConnected\n * @instance\n * @rtype () => Boolean\n * @return {Boolean} is connected\n */\n isConnected () {\n return this.connection.isConnected() && this.info.status === RPC_STATUS.CONNECTED\n },\n /**\n * Get selected account\n * @function getCurrentAccount\n * @instance\n * @rtype ({ onAccount } = {}) => String\n * @param {Object} options Options\n * @return {String}\n */\n getCurrentAccount ({ onAccount } = {}) {\n return onAccount || Object.keys(this.accounts.current)[0]\n },\n /**\n * Disconnect\n * @function disconnect\n * @instance\n * @rtype () => void\n * @return {void}\n */\n disconnect (forceConnectionClose = false) {\n this.info.status = RPC_STATUS.DISCONNECTED\n this.addressSubscription = []\n this.accounts = {}\n forceConnectionClose || this.connection.disconnect()\n },\n /**\n * Update accounts and sent `update.address` notification to AEPP\n * @param {{ current: Object, connected: Object }} accounts Object with current and connected accounts\n * @param {{ forceNotification: Boolean }} [options={ forceNotification: false }] Don not sent update notification to AEPP\n */\n setAccounts (accounts, { forceNotification = false } = {}) {\n if (!isValidAccounts(accounts)) {\n throw new Error('Invalid accounts object. Should be object like: `{ connected: {}, selected: {} }`')\n }\n this.accounts = accounts\n if (!forceNotification) {\n // Sent notification about account updates\n this.sendMessage(message(METHODS.wallet.updateAddress, this.accounts), true)\n }\n },\n /**\n * Update subscription\n * @function updateSubscription\n * @instance\n * @rtype (type: String, value: String) => void\n * @param {String} type Subscription type\n * @param {String} value Subscription value\n * @return {String[]}\n */\n updateSubscription (type, value) {\n if (type === SUBSCRIPTION_TYPES.subscribe && !this.addressSubscription.includes(value)) {\n this.addressSubscription.push(value)\n }\n if (type === SUBSCRIPTION_TYPES.unsubscribe && this.addressSubscription.includes(value)) {\n this.addressSubscription = this.addressSubscription.filter(s => s !== value)\n }\n return this.addressSubscription\n },\n /**\n * Make a request\n * @function request\n * @instance\n * @rtype (name: String, params: Object) => Promise\n * @param {String} name Method name\n * @param {Object} params Method params\n * @return {Promise} Promise which will be resolved after receiving response message\n */\n request (name, params) {\n const msgId = this.sendMessage(message(name, params))\n if (Object.prototype.hasOwnProperty.call(this.callbacks, msgId)) throw new Error('Callback Already exist')\n return new Promise((resolve, reject) => {\n this.callbacks[msgId] = { resolve, reject }\n })\n },\n /**\n * Process response message\n * @function processResponse\n * @instance\n * @rtype (msg: Object, transformResult: Function) => void\n * @param {Object} msg Message object\n * @param {Function=} transformResult Optional parser function for message\n * @return {void}\n */\n processResponse ({ id, error, result }, transformResult) {\n if (!this.callbacks[id]) throw new Error(`Can't find callback for this messageId ${id}`)\n if (result) {\n this.callbacks[id].resolve(...typeof transformResult === 'function'\n ? transformResult({ id, result })\n : [result])\n } else {\n this.callbacks[id].reject(error)\n }\n delete this.callbacks[id]\n }\n }\n})\n"],"file":"rpc-client.js"}