@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/wallet-rpc.js"],"names":["v4","uuid","Ae","verifyTransaction","AccountMultiple","TxObject","RpcClient","getBrowserAPI","getHandler","isValidAccounts","message","resolveOnAccount","sendResponseMessage","ERRORS","METHODS","RPC_STATUS","VERSION","WALLET_TYPE","NOTIFICATIONS","closeConnection","instance","client","msg","disconnect","onDisconnect","params","RESPONSES","REQUESTS","aepp","connect","callInstance","name","networkId","version","icons","error","unsupportedProtocol","updateInfo","status","WAITING_FOR_CONNECTION_APPROVE","CONNECTED","result","getWalletInfo","CONNECTION_REJECTED","connectionDeny","subscribeAddress","type","value","isConnected","notAuthorize","accounts","clientAccounts","getAccounts","Error","subscription","updateSubscription","setAccounts","forceNotification","address","console","internalError","rejectedByUser","isSubscribed","current","connected","sign","tx","onAccount","returnSigned","currentAccount","hasAccessToAccount","permissionDeny","account","getNetworkId","unsupportedNetwork","txObject","fromString","rawTx","opt","onAcc","addresses","signTransaction","signedTransaction","send","verify","transactionHash","selectedNode","validation","length","invalidTransaction","broadcastFailed","signMessage","returnHex","signature","handleMessage","id","origin","rpcClients","debug","Object","prototype","hasOwnProperty","call","callbacks","method","methodName","accept","deny","resolve","errorObjectOrHandler","response","compose","init","onConnection","onSubscription","onSign","onAskAccounts","onMessageSign","forceValidation","eventsHandlers","event","_selectAccount","selectAccount","_addAccount","addAccount","_selectNode","selectNode","condition","k","v","acc","select","meta","sendMessage","updateNetwork","methods","removeRpcClient","forceConnectionClose","addRpcClient","clientConnection","info","WAITING_FOR_CONNECTION_REQUEST","connection","handlers","shareWalletInfo","postFn","jsonrpc","wallet","readyToConnect","runtime","window","location","extension","selectedAddress","a"],"mappings":"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","sourcesContent":["/**\n * RPC handler for WAELLET side\n *\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/wallet-rpc\n * @export WalletRpc\n * @example import WalletRpc from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/wallet-rpc'\n */\nimport { v4 as uuid } from 'uuid'\nimport Ae from '../../../ae'\nimport verifyTransaction from '../../../tx/validator'\nimport AccountMultiple from '../../../account/multiple'\nimport TxObject from '../../../tx/tx-object'\nimport RpcClient from './rpc-client'\nimport { getBrowserAPI, getHandler, isValidAccounts, message, resolveOnAccount, sendResponseMessage } from '../helpers'\nimport { ERRORS, METHODS, RPC_STATUS, VERSION, WALLET_TYPE } from '../schema'\n\nconst NOTIFICATIONS = {\n [METHODS.closeConnection]: (instance, { client }) =>\n async (msg) => {\n client.disconnect(true)\n instance.onDisconnect(msg.params, client)\n }\n}\n\nconst RESPONSES = {}\n\nconst REQUESTS = {\n // Store client info and prepare two fn for each client `connect` and `denyConnection`\n // which automatically prepare and send response for that client\n [METHODS.aepp.connect] (callInstance, instance, client, { name, networkId, version, icons }) {\n // Check if protocol and network is compatible with wallet\n if (version !== VERSION) return { error: ERRORS.unsupportedProtocol() }\n\n // Store new AEPP and wait for connection approve\n client.updateInfo({\n status: RPC_STATUS.WAITING_FOR_CONNECTION_APPROVE,\n name,\n networkId,\n icons,\n version\n })\n\n // Call onConnection callBack to notice Wallet about new AEPP\n return callInstance(\n 'onConnection',\n { name, networkId, version },\n () => {\n client.updateInfo({ status: RPC_STATUS.CONNECTED })\n return { result: instance.getWalletInfo() }\n },\n (error) => {\n client.updateInfo({ status: RPC_STATUS.CONNECTION_REJECTED })\n return { error: ERRORS.connectionDeny(error) }\n }\n )\n },\n [METHODS.aepp.subscribeAddress] (callInstance, instance, client, { type, value }) {\n // Authorization check\n if (!client.isConnected()) return { error: ERRORS.notAuthorize() }\n\n return callInstance(\n 'onSubscription',\n { type, value },\n async ({ accounts } = {}) => {\n try {\n const clientAccounts = accounts || instance.getAccounts()\n if (!isValidAccounts(clientAccounts)) throw new Error('Invalid provided accounts object')\n const subscription = client.updateSubscription(type, value)\n client.setAccounts(clientAccounts, { forceNotification: true })\n return {\n result: {\n subscription,\n address: clientAccounts\n }\n }\n } catch (e) {\n console.error(e)\n return { error: ERRORS.internalError({ msg: e.message }) }\n }\n },\n (error) => ({ error: ERRORS.rejectedByUser(error) })\n )\n },\n [METHODS.aepp.address] (callInstance, instance, client) {\n // Authorization check\n if (!client.isConnected()) return { error: ERRORS.notAuthorize() }\n if (!client.isSubscribed()) return { error: ERRORS.notAuthorize() }\n\n return callInstance(\n 'onAskAccounts',\n {},\n ({ accounts } = {}) => ({ result: accounts || [...Object.keys(client.accounts.current), ...Object.keys(client.accounts.connected)] }),\n (error) => ({ error: ERRORS.rejectedByUser(error) })\n )\n },\n [METHODS.aepp.sign] (callInstance, instance, client, { tx, onAccount, networkId, returnSigned = false }) {\n const address = onAccount || client.currentAccount\n // Update client with new networkId\n networkId && client.updateInfo({ networkId })\n // Authorization check\n if (!client.isConnected()) return { error: ERRORS.notAuthorize() }\n // Account permission check\n if (!client.hasAccessToAccount(address)) return { error: ERRORS.permissionDeny({ account: address }) }\n // NetworkId check\n if (!networkId || networkId !== instance.getNetworkId()) return { error: ERRORS.unsupportedNetwork() }\n\n return callInstance(\n 'onSign',\n { tx, returnSigned, onAccount: address, txObject: TxObject.fromString(tx) },\n async (rawTx, opt = {}) => {\n let onAcc\n try {\n onAcc = resolveOnAccount(instance.addresses(), address, opt)\n } catch (e) {\n console.error(e)\n return { error: ERRORS.internalError({ msg: e.message }) }\n }\n try {\n return {\n result: returnSigned\n ? { signedTransaction: await instance.signTransaction(rawTx || tx, { onAccount: onAcc }) }\n : { transactionHash: await instance.send(rawTx || tx, { onAccount: onAcc, verify: false }) }\n }\n } catch (e) {\n if (!returnSigned) {\n // Validate transaction\n const validation = await verifyTransaction(rawTx || tx, instance.selectedNode.instance)\n if (validation.length) return { error: ERRORS.invalidTransaction(validation) }\n // Send broadcast failed error to aepp\n return { error: ERRORS.broadcastFailed(e.message) }\n }\n throw e\n }\n },\n (error) => ({ error: ERRORS.rejectedByUser(error) })\n )\n },\n [METHODS.aepp.signMessage] (callInstance, instance, client, { message, onAccount }) {\n // Authorization check\n if (!client.isConnected()) return { error: ERRORS.notAuthorize() }\n const address = onAccount || client.currentAccount\n if (!client.hasAccessToAccount(address)) return { error: ERRORS.permissionDeny({ account: address }) }\n\n return callInstance(\n 'onMessageSign',\n { message, onAccount: address },\n async (opt = {}) => {\n try {\n const onAcc = resolveOnAccount(instance.addresses(), address, opt)\n return {\n result: {\n signature: await instance.signMessage(message, {\n onAccount: onAcc,\n returnHex: true\n })\n }\n }\n } catch (e) {\n console.error(e)\n return { error: ERRORS.internalError({ msg: e.message }) }\n }\n },\n (error) => ({ error: ERRORS.rejectedByUser(error) })\n )\n }\n}\n\nconst handleMessage = (instance, id) => async (msg, origin) => {\n const client = instance.rpcClients[id]\n if (!msg.id) {\n return getHandler(NOTIFICATIONS, msg, { debug: instance.debug })(instance, { client })(msg, origin)\n }\n if (Object.prototype.hasOwnProperty.call(client.callbacks, msg.id)) {\n return getHandler(RESPONSES, msg, { debug: instance.debug })(instance, { client })(msg, origin)\n } else {\n const { id, method } = msg\n const callInstance = (methodName, params, accept, deny) => () => new Promise(resolve => {\n instance[methodName](\n client,\n {\n id,\n method,\n params,\n accept: (...args) => resolve(accept(...args)),\n deny: (...args) => resolve(deny(...args))\n },\n origin\n )\n })\n // TODO make one structure for handler functions\n const errorObjectOrHandler = getHandler(REQUESTS, msg, { debug: instance.debug })(callInstance, instance, client, msg.params)\n const response = typeof errorObjectOrHandler === 'function' ? await errorObjectOrHandler() : errorObjectOrHandler\n sendResponseMessage(client)(id, method, response)\n }\n}\n\n/**\n * Contain functionality for aepp interaction and managing multiple aepps\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/wallet-rpc\n * @function\n * @rtype Stamp\n * @param {Object} param Init params object\n * @param {String=} [param.name] Wallet name\n * @param {Function} onConnection Call-back function for incoming AEPP connection (Second argument contain function for accept/deny request)\n * @param {Function} onSubscription Call-back function for incoming AEPP account subscription (Second argument contain function for accept/deny request)\n * @param {Function} onSign Call-back function for incoming AEPP sign request (Second argument contain function for accept/deny request)\n * @param {Function} onAskAccounts Call-back function for incoming AEPP get address request (Second argument contain function for accept/deny request)\n * @param {Function} onMessageSign Call-back function for incoming AEPP sign message request (Second argument contain function for accept/deny request)\n * @param {Function} onDisconnect Call-back function for disconnect event\n * @return {Object}\n */\nexport default Ae.compose(AccountMultiple, {\n init ({ name, onConnection, onSubscription, onSign, onDisconnect, onAskAccounts, onMessageSign, forceValidation = false, debug = false } = {}) {\n this.debug = debug\n const eventsHandlers = ['onConnection', 'onSubscription', 'onSign', 'onDisconnect', 'onMessageSign']\n // CallBacks for events\n this.onConnection = onConnection\n this.onSubscription = onSubscription\n this.onSign = onSign\n this.onDisconnect = onDisconnect\n this.onAskAccounts = onAskAccounts\n this.onMessageSign = onMessageSign\n this.rpcClients = {}\n\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 this.name = name\n this.id = uuid()\n\n const _selectAccount = this.selectAccount.bind(this)\n const _addAccount = this.addAccount.bind(this)\n const _selectNode = this.selectNode.bind(this)\n\n // Overwrite AE methods\n this.selectAccount = (address, { condition = () => true } = {}) => {\n _selectAccount(address)\n Object.values(this.rpcClients)\n .filter(client => client.isConnected() && client.isSubscribed() &&\n client.hasAccessToAccount(address) && condition(client))\n .forEach(client => client.setAccounts({\n current: { [address]: {} },\n connected: {\n ...client.accounts.current,\n ...Object.entries(client.accounts.connected)\n .filter(([k, v]) => k !== address)\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})\n }\n }))\n }\n this.addAccount = async (account, { select, meta = {}, condition = () => true } = {}) => {\n await _addAccount(account, { select })\n const address = await account.address()\n // Send notification 'update.address' to all Aepp which are subscribed for connected accounts\n Object.values(this.rpcClients)\n .filter(client => client.isConnected() && client.isSubscribed() && condition(client))\n .forEach(client => client.setAccounts({\n current: { ...select ? { [address]: meta } : client.accounts.current },\n connected: {\n ...select ? client.accounts.current : { [address]: meta },\n ...client.accounts.connected\n }\n }))\n }\n this.selectNode = (name) => {\n _selectNode(name)\n // Send notification 'update.network' to all Aepp which connected\n Object.values(this.rpcClients)\n .filter(client => client.isConnected())\n .forEach(client => client.sendMessage(\n message(METHODS.updateNetwork, { networkId: this.getNetworkId() }), true\n ))\n }\n },\n methods: {\n /**\n * Remove specific RpcClient by ID\n * @function removeRpcClient\n * @instance\n * @rtype (id: string) => void\n * @param {String} id Client ID\n * @param {Object} [opt = {}]\n * @return {void}\n */\n removeRpcClient (id, { forceConnectionClose = false } = {}) {\n const client = this.rpcClients[id]\n if (!client) throw new Error(`RpcClient with id ${id} do not exist`)\n client.disconnect(forceConnectionClose)\n delete this.rpcClients[id]\n },\n /**\n * Add new client by AEPP connection\n * @function addRpcClient\n * @instance\n * @rtype (clientConnection: Object) => Object\n * @param {Object} clientConnection AEPP connection object\n * @return {String} Client ID\n */\n addRpcClient (clientConnection) {\n // @TODO detect if aepp has some history based on origin????: if yes use this instance for connection\n const id = uuid()\n this.rpcClients[id] = RpcClient({\n id,\n info: { status: RPC_STATUS.WAITING_FOR_CONNECTION_REQUEST },\n connection: clientConnection,\n handlers: [handleMessage(this, id), this.onDisconnect]\n })\n return id\n },\n /**\n * Share wallet info\n * Send shareWalletInfo message to notify AEPP about wallet\n * @function shareWalletInfo\n * @instance\n * @rtype (postFn: Function) => void\n * @param {Function} postFn Send message function like `(msg) => void`\n * @return {void}\n */\n shareWalletInfo (postFn) {\n postFn({\n jsonrpc: '2.0',\n ...message(METHODS.wallet.readyToConnect, this.getWalletInfo())\n })\n },\n /**\n * Get Wallet info object\n * @function getWalletInfo\n * @instance\n * @rtype () => Object\n * @return {Object} Object with wallet information(id, name, network, ...)\n */\n getWalletInfo () {\n const runtime = getBrowserAPI(true).runtime\n return {\n id: runtime && runtime.id ? runtime.id : this.id,\n name: this.name,\n networkId: this.getNetworkId(),\n origin: window.location.origin,\n type: runtime && runtime.id ? WALLET_TYPE.extension : WALLET_TYPE.window\n }\n },\n /**\n * Get Wallet accounts\n * @function getAccounts\n * @instance\n * @rtype () => Object\n * @return {Object} Object with accounts information({ connected: Object, current: Object })\n */\n getAccounts () {\n return {\n current: this.selectedAddress ? { [this.selectedAddress]: {} } : {},\n connected: this.addresses()\n .filter(a => a !== this.selectedAddress)\n .reduce((acc, a) => ({ ...acc, [a]: {} }), {})\n }\n }\n }\n})\n"],"file":"wallet-rpc.js"}
@@ -1,103 +0,0 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
- import _zipObj from "ramda/src/zipObj";
3
-
4
- var _wallet, _aepp, _METHODS;
5
-
6
- var asEnum = function asEnum(array) {
7
- return _zipObj(array, array);
8
- };
9
-
10
- export var VERSION = 1;
11
- export var MESSAGE_DIRECTION = asEnum(['to_waellet', 'to_aepp']);
12
- export var WALLET_TYPE = asEnum(['window', 'extension']);
13
- export var NOTIFICATIONS = asEnum(['readyToConnect', 'closeConnection', 'updateNetwork', 'updateAddress']);
14
- export var REQUESTS = asEnum(['connect', 'subscribeAddress', 'sign', 'address', 'signMessage']);
15
- export var SUBSCRIPTION_VALUES = asEnum(['current', 'connected']);
16
- export var SUBSCRIPTION_TYPES = asEnum(['subscribe', 'unsubscribe']);
17
- export var METHODS = (_METHODS = {
18
- wallet: (_wallet = {}, _defineProperty(_wallet, NOTIFICATIONS.readyToConnect, 'connection.announcePresence'), _defineProperty(_wallet, NOTIFICATIONS.updateAddress, 'address.update'), _wallet),
19
- aepp: (_aepp = {}, _defineProperty(_aepp, REQUESTS.address, 'address.get'), _defineProperty(_aepp, REQUESTS.connect, 'connection.open'), _defineProperty(_aepp, REQUESTS.sign, 'transaction.sign'), _defineProperty(_aepp, REQUESTS.signMessage, 'message.sign'), _defineProperty(_aepp, REQUESTS.subscribeAddress, 'address.subscribe'), _aepp)
20
- }, _defineProperty(_METHODS, NOTIFICATIONS.updateNetwork, 'networkId.update'), _defineProperty(_METHODS, NOTIFICATIONS.closeConnection, 'connection.close'), _METHODS);
21
- export var RPC_STATUS = {
22
- CONNECTED: 'CONNECTED',
23
- DISCONNECTED: 'DISCONNECTED',
24
- CONNECTION_REJECTED: 'CONNECTION_REJECTED',
25
- WAITING_FOR_CONNECTION_APPROVE: 'WAITING_FOR_CONNECTION_APPROVE',
26
- WAITING_FOR_CONNECTION_REQUEST: 'WAITING_FOR_CONNECTION_REQUEST',
27
- WAITING_FOR_SUBSCRIPTION: 'WAITING_FOR_SUBSCRIPTION'
28
- };
29
- export var ERRORS = {
30
- broadcastFailed: function broadcastFailed() {
31
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
32
- return {
33
- code: 3,
34
- data: error,
35
- message: 'Broadcast failed'
36
- };
37
- },
38
- invalidTransaction: function invalidTransaction() {
39
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
- return {
41
- code: 2,
42
- data: error,
43
- message: 'Invalid transaction'
44
- };
45
- },
46
- rejectedByUser: function rejectedByUser() {
47
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
48
- return {
49
- code: 4,
50
- data: error,
51
- message: 'Operation rejected by user'
52
- };
53
- },
54
- connectionDeny: function connectionDeny() {
55
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
56
- return {
57
- code: 9,
58
- data: error,
59
- message: 'Wallet deny your connection request'
60
- };
61
- },
62
- permissionDeny: function permissionDeny() {
63
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
64
- return {
65
- code: 11,
66
- data: error,
67
- message: "You are not subscribed for account ".concat(error.account)
68
- };
69
- },
70
- internalError: function internalError() {
71
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
72
- return {
73
- code: 12,
74
- data: error,
75
- message: error.msg
76
- };
77
- },
78
- notAuthorize: function notAuthorize() {
79
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
80
- return {
81
- code: 10,
82
- data: error,
83
- message: 'You are not connected to the wallet'
84
- };
85
- },
86
- unsupportedProtocol: function unsupportedProtocol() {
87
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
88
- return {
89
- code: 5,
90
- data: error,
91
- message: 'Unsupported Protocol Version'
92
- };
93
- },
94
- unsupportedNetwork: function unsupportedNetwork() {
95
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
96
- return {
97
- code: 8,
98
- data: error,
99
- message: 'Unsupported Network'
100
- };
101
- }
102
- };
103
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/aepp-wallet-communication/schema.js"],"names":["asEnum","array","VERSION","MESSAGE_DIRECTION","WALLET_TYPE","NOTIFICATIONS","REQUESTS","SUBSCRIPTION_VALUES","SUBSCRIPTION_TYPES","METHODS","wallet","readyToConnect","updateAddress","aepp","address","connect","sign","signMessage","subscribeAddress","updateNetwork","closeConnection","RPC_STATUS","CONNECTED","DISCONNECTED","CONNECTION_REJECTED","WAITING_FOR_CONNECTION_APPROVE","WAITING_FOR_CONNECTION_REQUEST","WAITING_FOR_SUBSCRIPTION","ERRORS","broadcastFailed","error","code","data","message","invalidTransaction","rejectedByUser","connectionDeny","permissionDeny","account","internalError","msg","notAuthorize","unsupportedProtocol","unsupportedNetwork"],"mappings":"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","sourcesContent":["import * as R from 'ramda'\n\nconst asEnum = (array) => R.zipObj(array, array)\n\nexport const VERSION = 1\n\nexport const MESSAGE_DIRECTION = asEnum(['to_waellet', 'to_aepp'])\n\nexport const WALLET_TYPE = asEnum([\n 'window',\n 'extension'\n])\n\nexport const NOTIFICATIONS = asEnum([\n 'readyToConnect',\n 'closeConnection',\n 'updateNetwork',\n 'updateAddress'\n])\n\nexport const REQUESTS = asEnum([\n 'connect',\n 'subscribeAddress',\n 'sign',\n 'address',\n 'signMessage'\n])\n\nexport const SUBSCRIPTION_VALUES = asEnum([\n 'current',\n 'connected'\n])\n\nexport const SUBSCRIPTION_TYPES = asEnum([\n 'subscribe',\n 'unsubscribe'\n])\n\nexport const METHODS = {\n wallet: {\n [NOTIFICATIONS.readyToConnect]: 'connection.announcePresence',\n [NOTIFICATIONS.updateAddress]: 'address.update'\n },\n aepp: {\n [REQUESTS.address]: 'address.get',\n [REQUESTS.connect]: 'connection.open',\n [REQUESTS.sign]: 'transaction.sign',\n [REQUESTS.signMessage]: 'message.sign',\n [REQUESTS.subscribeAddress]: 'address.subscribe'\n },\n [NOTIFICATIONS.updateNetwork]: 'networkId.update',\n [NOTIFICATIONS.closeConnection]: 'connection.close'\n}\n\nexport const RPC_STATUS = {\n CONNECTED: 'CONNECTED',\n DISCONNECTED: 'DISCONNECTED',\n CONNECTION_REJECTED: 'CONNECTION_REJECTED',\n WAITING_FOR_CONNECTION_APPROVE: 'WAITING_FOR_CONNECTION_APPROVE',\n WAITING_FOR_CONNECTION_REQUEST: 'WAITING_FOR_CONNECTION_REQUEST',\n WAITING_FOR_SUBSCRIPTION: 'WAITING_FOR_SUBSCRIPTION'\n}\n\nexport const ERRORS = {\n broadcastFailed: (error = {}) => ({\n code: 3,\n data: error,\n message: 'Broadcast failed'\n }),\n invalidTransaction: (error = {}) => ({\n code: 2,\n data: error,\n message: 'Invalid transaction'\n }),\n rejectedByUser: (error = {}) => ({\n code: 4,\n data: error,\n message: 'Operation rejected by user'\n }),\n connectionDeny: (error = {}) => ({\n code: 9,\n data: error,\n message: 'Wallet deny your connection request'\n }),\n permissionDeny: (error = {}) => ({\n code: 11,\n data: error,\n message: `You are not subscribed for account ${error.account}`\n }),\n internalError: (error = {}) => ({\n code: 12,\n data: error,\n message: error.msg\n }),\n notAuthorize: (error = {}) => ({\n code: 10,\n data: error,\n message: 'You are not connected to the wallet'\n }),\n unsupportedProtocol: (error = {}) => ({\n code: 5,\n data: error,\n message: 'Unsupported Protocol Version'\n }),\n unsupportedNetwork: (error = {}) => ({\n code: 8,\n data: error,\n message: 'Unsupported Network'\n })\n}\n"],"file":"schema.js"}
@@ -1,135 +0,0 @@
1
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
2
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
3
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
4
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
6
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
7
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
8
- import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
9
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
10
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
11
- import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
12
-
13
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
-
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty(_context2 = ownKeys(Object(source), true)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context3; _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
-
17
- /*
18
- * ISC License (ISC)
19
- * Copyright (c) 2018 aeternity developers
20
- *
21
- * Permission to use, copy, modify, and/or distribute this software for any
22
- * purpose with or without fee is hereby granted, provided that the above
23
- * copyright notice and this permission notice appear in all copies.
24
- *
25
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
26
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
27
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
28
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
29
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
30
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
31
- * PERFORMANCE OF THIS SOFTWARE.
32
- */
33
-
34
- /**
35
- * Wallet Detector
36
- *
37
- * This is the complement to {@link module:@aeternity/aepp-sdk/es/utils}.
38
- * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/wallet-detector
39
- * @export WalletDetector
40
- */
41
- import stampit from '@stamp/it';
42
- import BrowserWindowMessageConnection from './connection/browser-window-message';
43
- import { MESSAGE_DIRECTION, METHODS } from './schema';
44
- /**
45
- * WalletDetector stamp
46
- * @function
47
- * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/wallet-detector
48
- * @rtype Stamp
49
- * @param {Object} params={} - Initializer object
50
- * @param {WalletConnection} params.connection - Connection for listening for wallets
51
- * @return {WalletDetector}
52
- */
53
-
54
- export default stampit({
55
- init: function init() {
56
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
57
- connection = _ref.connection;
58
-
59
- if (!window) throw new Error('Window object not found, you can run wallet detector only in browser');
60
- this.connection = connection || BrowserWindowMessageConnection({
61
- connectionInfo: {
62
- id: 'spy'
63
- }
64
- });
65
- this.wallets = {};
66
- },
67
- methods: {
68
- /**
69
- * Start scanning
70
- * @function scan
71
- * @instance
72
- * @param {Function} onDetected Call-back function which trigger on new wallet
73
- * @return {void}
74
- */
75
- scan: function scan(onDetected) {
76
- var wallets = this.wallets;
77
- this.connection.connect(function (_ref2, origin, source) {
78
- var method = _ref2.method,
79
- params = _ref2.params;
80
- if (!method || !params || method !== METHODS.wallet.readyToConnect || wallets[params.id]) return;
81
-
82
- var wallet = _objectSpread(_objectSpread({}, params), {}, {
83
- getConnection: function getConnection() {
84
- var _this = this;
85
-
86
- return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
87
- var isExtension, origin;
88
- return _regeneratorRuntime.wrap(function _callee$(_context) {
89
- while (1) {
90
- switch (_context.prev = _context.next) {
91
- case 0:
92
- // if detect extension wallet or page wallet
93
- isExtension = _this.type === 'extension';
94
- origin = isExtension ? window.origin : _this.origin;
95
- return _context.abrupt("return", BrowserWindowMessageConnection({
96
- connectionInfo: _this,
97
- sendDirection: isExtension ? MESSAGE_DIRECTION.to_waellet : undefined,
98
- receiveDirection: isExtension ? MESSAGE_DIRECTION.to_aepp : undefined,
99
- target: source,
100
- origin: origin
101
- }));
102
-
103
- case 3:
104
- case "end":
105
- return _context.stop();
106
- }
107
- }
108
- }, _callee);
109
- }))();
110
- }
111
- });
112
-
113
- wallets[wallet.id] = wallet;
114
- onDetected({
115
- wallets: wallets,
116
- newWallet: wallet
117
- });
118
- });
119
- if (_Object$keys(wallets).length) onDetected({
120
- wallets: wallets
121
- });
122
- },
123
-
124
- /**
125
- * Stop scanning
126
- * @function stopScan
127
- * @instance
128
- * @return {void}
129
- */
130
- stopScan: function stopScan() {
131
- this.connection.disconnect();
132
- }
133
- }
134
- });
135
- //# sourceMappingURL=wallet-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/aepp-wallet-communication/wallet-detector.js"],"names":["stampit","BrowserWindowMessageConnection","MESSAGE_DIRECTION","METHODS","init","connection","window","Error","connectionInfo","id","wallets","methods","scan","onDetected","connect","origin","source","method","params","wallet","readyToConnect","getConnection","isExtension","type","sendDirection","to_waellet","undefined","receiveDirection","to_aepp","target","newWallet","length","stopScan","disconnect"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,WAApB;AACA,OAAOC,8BAAP,MAA2C,qCAA3C;AACA,SAASC,iBAAT,EAA4BC,OAA5B,QAA2C,UAA3C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeH,OAAO,CAAC;AACrBI,EAAAA,IADqB,kBACM;AAAA,mFAAJ,EAAI;AAAA,QAAnBC,UAAmB,QAAnBA,UAAmB;;AACzB,QAAI,CAACC,MAAL,EAAa,MAAM,IAAIC,KAAJ,CAAU,sEAAV,CAAN;AACb,SAAKF,UAAL,GAAkBA,UAAU,IAAIJ,8BAA8B,CAAC;AAAEO,MAAAA,cAAc,EAAE;AAAEC,QAAAA,EAAE,EAAE;AAAN;AAAlB,KAAD,CAA9D;AACA,SAAKC,OAAL,GAAe,EAAf;AACD,GALoB;AAMrBC,EAAAA,OAAO,EAAE;AACP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,IARO,gBAQDC,UARC,EAQW;AAChB,UAAQH,OAAR,GAAoB,IAApB,CAAQA,OAAR;AACA,WAAKL,UAAL,CAAgBS,OAAhB,CAAwB,iBAAqBC,MAArB,EAA6BC,MAA7B,EAAwC;AAAA,YAArCC,MAAqC,SAArCA,MAAqC;AAAA,YAA7BC,MAA6B,SAA7BA,MAA6B;AAC9D,YAAI,CAACD,MAAD,IAAW,CAACC,MAAZ,IAAsBD,MAAM,KAAKd,OAAO,CAACgB,MAAR,CAAeC,cAAhD,IAAkEV,OAAO,CAACQ,MAAM,CAACT,EAAR,CAA7E,EAA0F;;AAE1F,YAAMU,MAAM,mCACPD,MADO;AAEJG,UAAAA,aAFI,2BAEa;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACrB;AACMC,sBAAAA,WAFe,GAED,KAAI,CAACC,IAAL,KAAc,WAFb;AAGfR,sBAAAA,MAHe,GAGNO,WAAW,GAAGhB,MAAM,CAACS,MAAV,GAAmB,KAAI,CAACA,MAH7B;AAAA,uDAIdd,8BAA8B,CAAC;AACpCO,wBAAAA,cAAc,EAAE,KADoB;AAEpCgB,wBAAAA,aAAa,EAAEF,WAAW,GAAGpB,iBAAiB,CAACuB,UAArB,GAAkCC,SAFxB;AAGpCC,wBAAAA,gBAAgB,EAAEL,WAAW,GAAGpB,iBAAiB,CAAC0B,OAArB,GAA+BF,SAHxB;AAIpCG,wBAAAA,MAAM,EAAEb,MAJ4B;AAKpCD,wBAAAA,MAAM,EAANA;AALoC,uBAAD,CAJhB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWtB;AAbS,UAAZ;;AAeAL,QAAAA,OAAO,CAACS,MAAM,CAACV,EAAR,CAAP,GAAqBU,MAArB;AACAN,QAAAA,UAAU,CAAC;AAAEH,UAAAA,OAAO,EAAPA,OAAF;AAAWoB,UAAAA,SAAS,EAAEX;AAAtB,SAAD,CAAV;AACD,OApBD;AAqBA,UAAI,aAAYT,OAAZ,EAAqBqB,MAAzB,EAAiClB,UAAU,CAAC;AAAEH,QAAAA,OAAO,EAAPA;AAAF,OAAD,CAAV;AAClC,KAhCM;;AAkCP;AACJ;AACA;AACA;AACA;AACA;AACIsB,IAAAA,QAxCO,sBAwCK;AACV,WAAK3B,UAAL,CAAgB4B,UAAhB;AACD;AA1CM;AANY,CAAD,CAAtB","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Wallet Detector\n *\n * This is the complement to {@link module:@aeternity/aepp-sdk/es/utils}.\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/wallet-detector\n * @export WalletDetector\n */\nimport stampit from '@stamp/it'\nimport BrowserWindowMessageConnection from './connection/browser-window-message'\nimport { MESSAGE_DIRECTION, METHODS } from './schema'\n\n/**\n * WalletDetector stamp\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/wallet-detector\n * @rtype Stamp\n * @param {Object} params={} - Initializer object\n * @param {WalletConnection} params.connection - Connection for listening for wallets\n * @return {WalletDetector}\n */\nexport default stampit({\n init ({ connection } = {}) {\n if (!window) throw new Error('Window object not found, you can run wallet detector only in browser')\n this.connection = connection || BrowserWindowMessageConnection({ connectionInfo: { id: 'spy' } })\n this.wallets = {}\n },\n methods: {\n /**\n * Start scanning\n * @function scan\n * @instance\n * @param {Function} onDetected Call-back function which trigger on new wallet\n * @return {void}\n */\n scan (onDetected) {\n const { wallets } = this\n this.connection.connect(({ method, params }, origin, source) => {\n if (!method || !params || method !== METHODS.wallet.readyToConnect || wallets[params.id]) return\n\n const wallet = {\n ...params,\n async getConnection () {\n // if detect extension wallet or page wallet\n const isExtension = this.type === 'extension'\n const origin = isExtension ? window.origin : this.origin\n return BrowserWindowMessageConnection({\n connectionInfo: this,\n sendDirection: isExtension ? MESSAGE_DIRECTION.to_waellet : undefined,\n receiveDirection: isExtension ? MESSAGE_DIRECTION.to_aepp : undefined,\n target: source,\n origin\n })\n }\n }\n wallets[wallet.id] = wallet\n onDetected({ wallets, newWallet: wallet })\n })\n if (Object.keys(wallets).length) onDetected({ wallets })\n },\n\n /**\n * Stop scanning\n * @function stopScan\n * @instance\n * @return {void}\n */\n stopScan () {\n this.connection.disconnect()\n }\n }\n})\n"],"file":"wallet-detector.js"}
@@ -1,152 +0,0 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
-
3
- var _DENOMINATION_MAGNITU;
4
-
5
- import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
6
- import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
7
- import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
8
- import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
9
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
10
-
11
- /*
12
- * ISC License (ISC)
13
- * Copyright (c) 2018 aeternity developers
14
- *
15
- * Permission to use, copy, modify, and/or distribute this software for any
16
- * purpose with or without fee is hereby granted, provided that the above
17
- * copyright notice and this permission notice appear in all copies.
18
- *
19
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
20
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
21
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
22
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
23
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
24
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
25
- * PERFORMANCE OF THIS SOFTWARE.
26
- */
27
-
28
- /**
29
- * Amount Formatter
30
- * @module @aeternity/aepp-sdk/es/utils/amount-formatter
31
- * @example import { AmountFormatter } from '@aeternity/aepp-sdk'
32
- */
33
- import BigNumber from 'bignumber.js';
34
- import { isBigNumber } from './bignumber';
35
- /**
36
- * AE amount formats
37
- */
38
-
39
- export var AE_AMOUNT_FORMATS = {
40
- AE: 'ae',
41
- MILI_AE: 'miliAE',
42
- MICRO_AE: 'microAE',
43
- NANO_AE: 'nanoAE',
44
- PICO_AE: 'picoAE',
45
- FEMTO_AE: 'femtoAE',
46
- AETTOS: 'aettos'
47
- };
48
- /**
49
- * DENOMINATION_MAGNITUDE
50
- */
51
-
52
- export var DENOMINATION_MAGNITUDE = (_DENOMINATION_MAGNITU = {}, _defineProperty(_DENOMINATION_MAGNITU, AE_AMOUNT_FORMATS.AE, 0), _defineProperty(_DENOMINATION_MAGNITU, AE_AMOUNT_FORMATS.MILI_AE, -3), _defineProperty(_DENOMINATION_MAGNITU, AE_AMOUNT_FORMATS.MICRO_AE, -6), _defineProperty(_DENOMINATION_MAGNITU, AE_AMOUNT_FORMATS.NANO_AE, -9), _defineProperty(_DENOMINATION_MAGNITU, AE_AMOUNT_FORMATS.PICO_AE, -12), _defineProperty(_DENOMINATION_MAGNITU, AE_AMOUNT_FORMATS.FEMTO_AE, -15), _defineProperty(_DENOMINATION_MAGNITU, AE_AMOUNT_FORMATS.AETTOS, -18), _DENOMINATION_MAGNITU);
53
- /**
54
- * Convert amount to AE
55
- * @param {String|Number|BigNumber} value amount to convert
56
- * @param {Object} [options={}] options
57
- * @param {String} [options.denomination='aettos'] denomination of amount, can be ['ae', 'aettos']
58
- * @return {String}
59
- */
60
-
61
- export var toAe = function toAe(value) {
62
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
63
- _ref$denomination = _ref.denomination,
64
- denomination = _ref$denomination === void 0 ? AE_AMOUNT_FORMATS.AETTOS : _ref$denomination;
65
-
66
- return formatAmount(value, {
67
- denomination: denomination,
68
- targetDenomination: AE_AMOUNT_FORMATS.AE
69
- });
70
- };
71
- /**
72
- * Convert amount to aettos
73
- * @param {String|Number|BigNumber} value amount to convert
74
- * @param {Object} [options={}] options
75
- * @param {String} [options.denomination='ae'] denomination of amount, can be ['ae', 'aettos']
76
- * @return {String}
77
- */
78
-
79
- export var toAettos = function toAettos(value) {
80
- var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
81
- _ref2$denomination = _ref2.denomination,
82
- denomination = _ref2$denomination === void 0 ? AE_AMOUNT_FORMATS.AE : _ref2$denomination;
83
-
84
- return formatAmount(value, {
85
- denomination: denomination
86
- });
87
- };
88
- /**
89
- * Convert amount from one to other denomination
90
- * @param {String|Number|BigNumber} value amount to convert
91
- * @param {Object} [options={}] options
92
- * @param {String} [options.denomination='aettos'] denomination of amount, can be ['ae', 'aettos']
93
- * @param {String} [options.targetDenomination='aettos'] target denomination, can be ['ae', 'aettos']
94
- * @return {String}
95
- */
96
-
97
- export var formatAmount = function formatAmount(value) {
98
- var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
99
- _ref3$denomination = _ref3.denomination,
100
- denomination = _ref3$denomination === void 0 ? AE_AMOUNT_FORMATS.AETTOS : _ref3$denomination,
101
- _ref3$targetDenominat = _ref3.targetDenomination,
102
- targetDenomination = _ref3$targetDenominat === void 0 ? AE_AMOUNT_FORMATS.AETTOS : _ref3$targetDenominat;
103
-
104
- var denominations = _Object$values(AE_AMOUNT_FORMATS);
105
-
106
- if (!_includesInstanceProperty(denominations).call(denominations, denomination)) throw new Error("Invalid denomination: ".concat(denomination));
107
- if (!_includesInstanceProperty(denominations).call(denominations, targetDenomination)) throw new Error("Invalid target denomination: ".concat(targetDenomination));
108
- if (!isBigNumber(value)) throw new Error("Value ".concat(value === null || value === void 0 ? void 0 : value.toString(), " is not type of number"));
109
- return new BigNumber(value).shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination]).toFixed();
110
- };
111
- var prefixes = [{
112
- name: 'exa',
113
- magnitude: 18
114
- }, {
115
- name: 'giga',
116
- magnitude: 9
117
- }, {
118
- name: '',
119
- magnitude: 0
120
- }, {
121
- name: 'pico',
122
- magnitude: -12
123
- }];
124
-
125
- var getNearestPrefix = function getNearestPrefix(exponent) {
126
- return _reduceInstanceProperty(prefixes).call(prefixes, function (p, n) {
127
- return Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p;
128
- });
129
- };
130
-
131
- var getLowerBoundPrefix = function getLowerBoundPrefix(exponent) {
132
- var _prefixes$find;
133
-
134
- return (_prefixes$find = _findInstanceProperty(prefixes).call(prefixes, function (p) {
135
- return p.magnitude <= exponent;
136
- })) !== null && _prefixes$find !== void 0 ? _prefixes$find : prefixes[prefixes.length - 1];
137
- };
138
-
139
- export default (function (rawValue) {
140
- var _value$e, _context, _context2;
141
-
142
- var value = new BigNumber(rawValue);
143
- var exp = (_value$e = value.e) !== null && _value$e !== void 0 ? _value$e : 0;
144
-
145
- var _ref4 = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp),
146
- name = _ref4.name,
147
- magnitude = _ref4.magnitude;
148
-
149
- var v = value.shiftedBy(-magnitude).precision(9 + Math.min(exp - magnitude, 0)).toFixed();
150
- return _concatInstanceProperty(_context = _concatInstanceProperty(_context2 = "".concat(v)).call(_context2, name !== '' ? ' ' : '')).call(_context, name);
151
- });
152
- //# sourceMappingURL=amount-formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/amount-formatter.ts"],"names":["BigNumber","isBigNumber","AE_AMOUNT_FORMATS","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","DENOMINATION_MAGNITUDE","toAe","value","denomination","formatAmount","targetDenomination","toAettos","denominations","Error","toString","shiftedBy","toFixed","prefixes","name","magnitude","getNearestPrefix","exponent","p","n","Math","abs","getLowerBoundPrefix","length","rawValue","exp","e","v","precision","min"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Amount Formatter\n * @module @aeternity/aepp-sdk/es/utils/amount-formatter\n * @example import { AmountFormatter } from '@aeternity/aepp-sdk'\n */\nimport BigNumber from 'bignumber.js'\nimport { isBigNumber } from './bignumber'\n\n/**\n * AE amount formats\n */\nexport const AE_AMOUNT_FORMATS = {\n AE: 'ae',\n MILI_AE: 'miliAE',\n MICRO_AE: 'microAE',\n NANO_AE: 'nanoAE',\n PICO_AE: 'picoAE',\n FEMTO_AE: 'femtoAE',\n AETTOS: 'aettos'\n}\n\n/**\n * DENOMINATION_MAGNITUDE\n */\nexport const DENOMINATION_MAGNITUDE = {\n [AE_AMOUNT_FORMATS.AE]: 0,\n [AE_AMOUNT_FORMATS.MILI_AE]: -3,\n [AE_AMOUNT_FORMATS.MICRO_AE]: -6,\n [AE_AMOUNT_FORMATS.NANO_AE]: -9,\n [AE_AMOUNT_FORMATS.PICO_AE]: -12,\n [AE_AMOUNT_FORMATS.FEMTO_AE]: -15,\n [AE_AMOUNT_FORMATS.AETTOS]: -18\n}\n\n/**\n * Convert amount to AE\n * @param {String|Number|BigNumber} value amount to convert\n * @param {Object} [options={}] options\n * @param {String} [options.denomination='aettos'] denomination of amount, can be ['ae', 'aettos']\n * @return {String}\n */\nexport const toAe = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n): string => formatAmount(value, { denomination, targetDenomination: AE_AMOUNT_FORMATS.AE })\n\n/**\n * Convert amount to aettos\n * @param {String|Number|BigNumber} value amount to convert\n * @param {Object} [options={}] options\n * @param {String} [options.denomination='ae'] denomination of amount, can be ['ae', 'aettos']\n * @return {String}\n */\nexport const toAettos = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AE } = {}\n): string => formatAmount(value, { denomination })\n\n/**\n * Convert amount from one to other denomination\n * @param {String|Number|BigNumber} value amount to convert\n * @param {Object} [options={}] options\n * @param {String} [options.denomination='aettos'] denomination of amount, can be ['ae', 'aettos']\n * @param {String} [options.targetDenomination='aettos'] target denomination, can be ['ae', 'aettos']\n * @return {String}\n */\nexport const formatAmount = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AETTOS, targetDenomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n): string => {\n const denominations = Object.values(AE_AMOUNT_FORMATS)\n if (!denominations.includes(denomination)) throw new Error(`Invalid denomination: ${denomination}`)\n if (!denominations.includes(targetDenomination)) throw new Error(`Invalid target denomination: ${targetDenomination}`)\n if (!isBigNumber(value)) throw new Error(`Value ${value?.toString()} is not type of number`)\n\n return new BigNumber(value)\n .shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination])\n .toFixed()\n}\n\ninterface Prefix {\n name: string\n magnitude: number\n}\n\nconst prefixes: Prefix[] = [\n { name: 'exa', magnitude: 18 },\n { name: 'giga', magnitude: 9 },\n { name: '', magnitude: 0 },\n { name: 'pico', magnitude: -12 }\n]\n\nconst getNearestPrefix = (exponent: number): Prefix => prefixes.reduce((p, n) => (\n Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p))\n\nconst getLowerBoundPrefix = (exponent: number): Prefix => prefixes\n .find(p => p.magnitude <= exponent) ?? prefixes[prefixes.length - 1]\n\nexport default (rawValue: string | number | BigNumber): string => {\n const value: BigNumber = new BigNumber(rawValue)\n\n const exp = value.e ?? 0\n const { name, magnitude } = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp)\n const v = value\n .shiftedBy(-magnitude)\n .precision(9 + Math.min(exp - magnitude, 0))\n .toFixed()\n return `${v}${name !== '' ? ' ' : ''}${name}`\n}\n"],"file":"amount-formatter.js"}
@@ -1,103 +0,0 @@
1
- import _path from "ramda/src/path";
2
- import _flatten from "ramda/src/flatten";
3
- import _identical from "ramda/src/identical";
4
- import _uniqWith from "ramda/src/uniqWith";
5
- import _without from "ramda/src/without";
6
- import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
7
- import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
8
- import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
9
- import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
10
- import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
11
-
12
- /*
13
- * ISC License (ISC)
14
- * Copyright (c) 2018 aeternity developers
15
- *
16
- * Permission to use, copy, modify, and/or distribute this software for any
17
- * purpose with or without fee is hereby granted, provided that the above
18
- * copyright notice and this permission notice appear in all copies.
19
- *
20
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
21
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
22
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
23
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
24
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
25
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
26
- * PERFORMANCE OF THIS SOFTWARE.
27
- */
28
- import stampit from '@stamp/it';
29
-
30
- function asyncInit() {
31
- var _context;
32
-
33
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
34
-
35
- var _ref = arguments.length > 1 ? arguments[1] : undefined,
36
- stamp = _ref.stamp,
37
- args = _ref.args,
38
- instance = _ref.instance;
39
-
40
- return _reduceInstanceProperty(_context = stamp.compose.deepConfiguration.AsyncInit.initializers).call(_context, /*#__PURE__*/function () {
41
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(instance, init) {
42
- var ret;
43
- return _regeneratorRuntime.wrap(function _callee$(_context2) {
44
- while (1) {
45
- switch (_context2.prev = _context2.next) {
46
- case 0:
47
- _context2.next = 2;
48
- return _Promise.resolve(instance);
49
-
50
- case 2:
51
- instance = _context2.sent;
52
-
53
- if (!(typeof init === 'function')) {
54
- _context2.next = 8;
55
- break;
56
- }
57
-
58
- _context2.next = 6;
59
- return _Promise.resolve(init.call(instance, options, {
60
- stamp: stamp,
61
- args: args,
62
- instance: instance
63
- }));
64
-
65
- case 6:
66
- ret = _context2.sent;
67
- return _context2.abrupt("return", ret === undefined ? instance : ret);
68
-
69
- case 8:
70
- return _context2.abrupt("return", instance);
71
-
72
- case 9:
73
- case "end":
74
- return _context2.stop();
75
- }
76
- }
77
- }, _callee);
78
- }));
79
-
80
- return function (_x, _x2) {
81
- return _ref2.apply(this, arguments);
82
- };
83
- }(), instance);
84
- }
85
-
86
- var AsyncInit = stampit({
87
- deepConf: {
88
- AsyncInit: {
89
- initializers: []
90
- }
91
- },
92
- composers: function composers(_ref3) {
93
- var stamp = _ref3.stamp,
94
- composables = _ref3.composables;
95
- var conf = stamp.compose.deepConfiguration.AsyncInit;
96
- conf.initializers = _without([asyncInit], _uniqWith(_identical, _flatten(_mapInstanceProperty(composables).call(composables, function (c) {
97
- return _path(['compose', 'deepConfiguration', 'AsyncInit', 'initializers'], c) || (c.compose || c).initializers || [];
98
- }))));
99
- stamp.compose.initializers = [asyncInit];
100
- }
101
- });
102
- export default AsyncInit;
103
- //# sourceMappingURL=async-init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/async-init.js"],"names":["stampit","asyncInit","options","stamp","args","instance","compose","deepConfiguration","AsyncInit","initializers","init","resolve","call","ret","undefined","deepConf","composers","composables","conf","c"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;;AAGA,SAASC,SAAT,GAA6D;AAAA;;AAAA,MAAzCC,OAAyC,uEAA/B,EAA+B;;AAAA;AAAA,MAAzBC,KAAyB,QAAzBA,KAAyB;AAAA,MAAlBC,IAAkB,QAAlBA,IAAkB;AAAA,MAAZC,QAAY,QAAZA,QAAY;;AAC3D,SAAO,mCAAAF,KAAK,CAACG,OAAN,CAAcC,iBAAd,CAAgCC,SAAhC,CAA0CC,YAA1C;AAAA,yEAA8D,iBAAOJ,QAAP,EAAiBK,IAAjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAClD,SAAQC,OAAR,CAAgBN,QAAhB,CADkD;;AAAA;AACnEA,cAAAA,QADmE;;AAAA,oBAE/D,OAAOK,IAAP,KAAgB,UAF+C;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAG/C,SAAQC,OAAR,CAAgBD,IAAI,CAACE,IAAL,CAAUP,QAAV,EAAoBH,OAApB,EAA6B;AAAEC,gBAAAA,KAAK,EAALA,KAAF;AAASC,gBAAAA,IAAI,EAAJA,IAAT;AAAeC,gBAAAA,QAAQ,EAARA;AAAf,eAA7B,CAAhB,CAH+C;;AAAA;AAG3DQ,cAAAA,GAH2D;AAAA,gDAI1DA,GAAG,KAAKC,SAAR,GAAoBT,QAApB,GAA+BQ,GAJ2B;;AAAA;AAAA,gDAM5DR,QAN4D;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA9D;;AAAA;AAAA;AAAA;AAAA,OAOJA,QAPI,CAAP;AAQD;;AAED,IAAMG,SAAS,GAAGR,OAAO,CAAC;AACxBe,EAAAA,QAAQ,EAAE;AAAEP,IAAAA,SAAS,EAAE;AAAEC,MAAAA,YAAY,EAAE;AAAhB;AAAb,GADc;AAExBO,EAAAA,SAFwB,4BAEW;AAAA,QAAtBb,KAAsB,SAAtBA,KAAsB;AAAA,QAAfc,WAAe,SAAfA,WAAe;AACjC,QAAMC,IAAI,GAAGf,KAAK,CAACG,OAAN,CAAcC,iBAAd,CAAgCC,SAA7C;AACAU,IAAAA,IAAI,CAACT,YAAL,GAAoB,SAAU,CAACR,SAAD,CAAV,EAAuB,sBAAwB,SAAU,qBAAAgB,WAAW,MAAX,CAAAA,WAAW,EAAK,UAAAE,CAAC;AAAA,aAAI,MAAO,CAAC,SAAD,EAAY,mBAAZ,EAAiC,WAAjC,EAA8C,cAA9C,CAAP,EAAsEA,CAAtE,KAA4E,CAACA,CAAC,CAACb,OAAF,IAAaa,CAAd,EAAiBV,YAA7F,IAA6G,EAAjH;AAAA,KAAN,CAArB,CAAxB,CAAvB,CAApB;AACAN,IAAAA,KAAK,CAACG,OAAN,CAAcG,YAAd,GAA6B,CAACR,SAAD,CAA7B;AACD;AANuB,CAAD,CAAzB;AASA,eAAeO,SAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\nimport stampit from '@stamp/it'\nimport * as R from 'ramda'\n\nfunction asyncInit (options = {}, { stamp, args, instance }) {\n return stamp.compose.deepConfiguration.AsyncInit.initializers.reduce(async (instance, init) => {\n instance = await Promise.resolve(instance)\n if (typeof init === 'function') {\n const ret = await Promise.resolve(init.call(instance, options, { stamp, args, instance }))\n return ret === undefined ? instance : ret\n }\n return instance\n }, instance)\n}\n\nconst AsyncInit = stampit({\n deepConf: { AsyncInit: { initializers: [] } },\n composers ({ stamp, composables }) {\n const conf = stamp.compose.deepConfiguration.AsyncInit\n conf.initializers = R.without([asyncInit], R.uniqWith(R.identical, R.flatten(composables.map(c => R.path(['compose', 'deepConfiguration', 'AsyncInit', 'initializers'], c) || (c.compose || c).initializers || []))))\n stamp.compose.initializers = [asyncInit]\n }\n})\n\nexport default AsyncInit\n"],"file":"async-init.js"}