@aeternity/aepp-sdk 8.2.0 → 10.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +16 -9
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
  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.js +33 -119
  10. package/es/account/base.js.map +1 -1
  11. package/es/account/memory.js +17 -19
  12. package/es/account/memory.js.map +1 -1
  13. package/es/account/multiple.js +75 -154
  14. package/es/account/multiple.js.map +1 -1
  15. package/es/ae/aens.js +164 -599
  16. package/es/ae/aens.js.map +1 -1
  17. package/es/ae/contract.js +108 -916
  18. package/es/ae/contract.js.map +1 -1
  19. package/es/ae/index.js +89 -250
  20. package/es/ae/index.js.map +1 -1
  21. package/es/ae/oracle.js +132 -500
  22. package/es/ae/oracle.js.map +1 -1
  23. package/es/chain/index.js +4 -23
  24. package/es/chain/index.js.map +1 -1
  25. package/es/chain/node.js +292 -1018
  26. package/es/chain/node.js.map +1 -1
  27. package/es/channel/handlers.js +597 -1086
  28. package/es/channel/handlers.js.map +1 -1
  29. package/es/channel/index.js +203 -451
  30. package/es/channel/index.js.map +1 -1
  31. package/es/channel/internal.js +129 -301
  32. package/es/channel/internal.js.map +1 -1
  33. package/es/contract/aci/index.js +319 -491
  34. package/es/contract/aci/index.js.map +1 -1
  35. package/es/contract/aci/transformation.js +35 -711
  36. package/es/contract/aci/transformation.js.map +1 -1
  37. package/es/contract/compiler.js +129 -203
  38. package/es/contract/compiler.js.map +1 -1
  39. package/es/contract/ga/helpers.js +17 -122
  40. package/es/contract/ga/helpers.js.map +1 -1
  41. package/es/contract/ga/index.js +102 -247
  42. package/es/contract/ga/index.js.map +1 -1
  43. package/es/contract/index.js +1 -1
  44. package/es/contract/index.js.map +1 -1
  45. package/es/index.js +2 -3
  46. package/es/index.js.map +1 -1
  47. package/es/node-pool/index.js +54 -73
  48. package/es/node-pool/index.js.map +1 -1
  49. package/es/node.js +56 -157
  50. package/es/node.js.map +1 -1
  51. package/es/other.d.ts +1 -1
  52. package/es/tx/builder/helpers.js +49 -89
  53. package/es/tx/builder/helpers.js.map +1 -1
  54. package/es/tx/builder/index.js +205 -303
  55. package/es/tx/builder/index.js.map +1 -1
  56. package/es/tx/builder/schema.js +585 -573
  57. package/es/tx/builder/schema.js.map +1 -1
  58. package/es/tx/index.js +1 -1
  59. package/es/tx/index.js.map +1 -1
  60. package/es/tx/tx-object.js +105 -135
  61. package/es/tx/tx-object.js.map +1 -1
  62. package/es/tx/tx.js +810 -1586
  63. package/es/tx/tx.js.map +1 -1
  64. package/es/tx/validator.js +191 -426
  65. package/es/tx/validator.js.map +1 -1
  66. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +17 -21
  67. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  68. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +38 -74
  69. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  70. package/es/utils/aepp-wallet-communication/content-script-bridge.js +14 -15
  71. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  72. package/es/utils/aepp-wallet-communication/helpers.js +60 -105
  73. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  74. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +179 -510
  75. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  76. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +70 -89
  77. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  78. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +354 -603
  79. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  80. package/es/utils/aepp-wallet-communication/schema.js +43 -39
  81. package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
  82. package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
  83. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  84. package/es/utils/amount-formatter.js +41 -61
  85. package/es/utils/amount-formatter.js.map +1 -1
  86. package/es/utils/async-init.js +28 -64
  87. package/es/utils/async-init.js.map +1 -1
  88. package/es/utils/bignumber.js +3 -11
  89. package/es/utils/bignumber.js.map +1 -1
  90. package/es/utils/bytes.js +5 -9
  91. package/es/utils/bytes.js.map +1 -1
  92. package/es/utils/crypto.js +49 -75
  93. package/es/utils/crypto.js.map +1 -1
  94. package/es/utils/hd-wallet.js +45 -81
  95. package/es/utils/hd-wallet.js.map +1 -1
  96. package/es/utils/json-big.js +16 -49
  97. package/es/utils/json-big.js.map +1 -1
  98. package/es/utils/keystore.js +81 -246
  99. package/es/utils/keystore.js.map +1 -1
  100. package/es/utils/mptree.js +88 -134
  101. package/es/utils/mptree.js.map +1 -1
  102. package/es/utils/other.js +10 -60
  103. package/es/utils/other.js.map +1 -1
  104. package/es/utils/semver-satisfies.js +9 -28
  105. package/es/utils/semver-satisfies.js.map +1 -1
  106. package/es/utils/string.js +4 -13
  107. package/es/utils/string.js.map +1 -1
  108. package/es/utils/swagger.js +85 -218
  109. package/es/utils/swagger.js.map +1 -1
  110. package/package.json +52 -43
  111. package/src/account/base.js +8 -9
  112. package/src/account/multiple.js +20 -16
  113. package/src/ae/aens.js +25 -21
  114. package/src/ae/contract.js +65 -246
  115. package/src/ae/index.js +31 -7
  116. package/src/ae/oracle.js +21 -17
  117. package/src/chain/index.js +2 -12
  118. package/src/chain/node.js +26 -29
  119. package/src/channel/handlers.js +0 -1
  120. package/src/channel/index.js +4 -5
  121. package/src/contract/aci/index.js +221 -106
  122. package/src/contract/aci/transformation.js +30 -422
  123. package/src/contract/compiler.js +45 -4
  124. package/src/contract/ga/helpers.js +2 -12
  125. package/src/contract/ga/index.js +22 -26
  126. package/src/index.js +2 -4
  127. package/src/node-pool/index.js +21 -12
  128. package/src/node.js +22 -26
  129. package/src/tx/builder/helpers.js +12 -24
  130. package/src/tx/builder/index.js +18 -15
  131. package/src/tx/builder/schema.js +43 -108
  132. package/src/tx/tx-object.js +0 -2
  133. package/src/tx/tx.js +157 -144
  134. package/src/tx/validator.js +134 -202
  135. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +1 -3
  136. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +9 -10
  137. package/src/utils/aepp-wallet-communication/schema.js +1 -3
  138. package/src/utils/amount-formatter.ts +1 -1
  139. package/src/utils/bignumber.ts +2 -1
  140. package/src/utils/crypto.js +4 -17
  141. package/src/utils/other.ts +1 -1
  142. package/src/utils/semver-satisfies.ts +1 -1
  143. package/src/utils/swagger.js +24 -7
  144. package/CHANGELOG.md +0 -1716
  145. package/src/contract/aci/helpers.js +0 -140
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/rpc/wallet-rpc.js"],"names":["v4","uuid","Ae","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","unpackAndVerify","validationResult","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,EAAE,IAAIC,IAAf,QAA2B,MAA3B;AACA,OAAOC,EAAP,MAAe,aAAf;AACA,OAAOC,eAAP,MAA4B,2BAA5B;AACA,OAAOC,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,SAASC,aAAT,EAAwBC,UAAxB,EAAoCC,eAApC,EAAqDC,OAArD,EAA8DC,gBAA9D,EAAgFC,mBAAhF,QAA2G,YAA3G;AACA,SAASC,MAAT,EAAiBC,OAAjB,EAA0BC,UAA1B,EAAsCC,OAAtC,EAA+CC,WAA/C,QAAkE,WAAlE;;AAEA,IAAMC,aAAa,uBAChBJ,OAAO,CAACK,eADQ,EACU,UAACC,QAAD;AAAA,MAAaC,MAAb,QAAaA,MAAb;AAAA;AAAA,yEACzB,iBAAOC,GAAP;AAAA;AAAA;AAAA;AAAA;AACED,cAAAA,MAAM,CAACE,UAAP,CAAkB,IAAlB;AACAH,cAAAA,QAAQ,CAACI,YAAT,CAAsBF,GAAG,CAACG,MAA1B,EAAkCJ,MAAlC;;AAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADyB;;AAAA;AAAA;AAAA;AAAA;AAAA,CADV,CAAnB;;AAQA,IAAMK,SAAS,GAAG,EAAlB;AAEA,IAAMC,QAAQ,+CAGXb,OAAO,CAACc,IAAR,CAAaC,OAHF,YAGYC,YAHZ,EAG0BV,QAH1B,EAGoCC,MAHpC,SAGiF;AAAA,MAAnCU,IAAmC,SAAnCA,IAAmC;AAAA,MAA7BC,SAA6B,SAA7BA,SAA6B;AAAA,MAAlBC,OAAkB,SAAlBA,OAAkB;AAAA,MAATC,KAAS,SAATA,KAAS;AAC3F;AACA,MAAID,OAAO,KAAKjB,OAAhB,EAAyB,OAAO;AAAEmB,IAAAA,KAAK,EAAEtB,MAAM,CAACuB,mBAAP;AAAT,GAAP,CAFkE,CAI3F;;AACAf,EAAAA,MAAM,CAACgB,UAAP,CAAkB;AAChBC,IAAAA,MAAM,EAAEvB,UAAU,CAACwB,8BADH;AAEhBR,IAAAA,IAAI,EAAJA,IAFgB;AAGhBC,IAAAA,SAAS,EAATA,SAHgB;AAIhBE,IAAAA,KAAK,EAALA,KAJgB;AAKhBD,IAAAA,OAAO,EAAPA;AALgB,GAAlB,EAL2F,CAa3F;;AACA,SAAOH,YAAY,CACjB,cADiB,EAEjB;AAAEC,IAAAA,IAAI,EAAJA,IAAF;AAAQC,IAAAA,SAAS,EAATA,SAAR;AAAmBC,IAAAA,OAAO,EAAPA;AAAnB,GAFiB,EAGjB,YAAM;AACJZ,IAAAA,MAAM,CAACgB,UAAP,CAAkB;AAAEC,MAAAA,MAAM,EAAEvB,UAAU,CAACyB;AAArB,KAAlB;AACA,WAAO;AAAEC,MAAAA,MAAM,EAAErB,QAAQ,CAACsB,aAAT;AAAV,KAAP;AACD,GANgB,EAOjB,UAACP,KAAD,EAAW;AACTd,IAAAA,MAAM,CAACgB,UAAP,CAAkB;AAAEC,MAAAA,MAAM,EAAEvB,UAAU,CAAC4B;AAArB,KAAlB;AACA,WAAO;AAAER,MAAAA,KAAK,EAAEtB,MAAM,CAAC+B,cAAP,CAAsBT,KAAtB;AAAT,KAAP;AACD,GAVgB,CAAnB;AAYD,CA7BW,8BA8BXrB,OAAO,CAACc,IAAR,CAAaiB,gBA9BF,YA8BqBf,YA9BrB,EA8BmCV,QA9BnC,EA8B6CC,MA9B7C,SA8BsE;AAAA,MAAfyB,IAAe,SAAfA,IAAe;AAAA,MAATC,KAAS,SAATA,KAAS;AAChF;AACA,MAAI,CAAC1B,MAAM,CAAC2B,WAAP,EAAL,EAA2B,OAAO;AAAEb,IAAAA,KAAK,EAAEtB,MAAM,CAACoC,YAAP;AAAT,GAAP;AAE3B,SAAOnB,YAAY,CACjB,gBADiB,EAEjB;AAAEgB,IAAAA,IAAI,EAAJA,IAAF;AAAQC,IAAAA,KAAK,EAALA;AAAR,GAFiB,wEAGjB;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,+EAAsB,EAAtB,EAASG,QAAT,SAASA,QAAT;AAAA;AAEUC,YAAAA,cAFV,GAE2BD,QAAQ,IAAI9B,QAAQ,CAACgC,WAAT,EAFvC;;AAAA,gBAGS3C,eAAe,CAAC0C,cAAD,CAHxB;AAAA;AAAA;AAAA;;AAAA,kBAGgD,IAAIE,KAAJ,CAAU,kCAAV,CAHhD;;AAAA;AAIUC,YAAAA,YAJV,GAIyBjC,MAAM,CAACkC,kBAAP,CAA0BT,IAA1B,EAAgCC,KAAhC,CAJzB;AAKI1B,YAAAA,MAAM,CAACmC,WAAP,CAAmBL,cAAnB,EAAmC;AAAEM,cAAAA,iBAAiB,EAAE;AAArB,aAAnC;AALJ,8CAMW;AACLhB,cAAAA,MAAM,EAAE;AACNa,gBAAAA,YAAY,EAAZA,YADM;AAENI,gBAAAA,OAAO,EAAEP;AAFH;AADH,aANX;;AAAA;AAAA;AAAA;AAaIQ,YAAAA,OAAO,CAACxB,KAAR;AAbJ,8CAcW;AAAEA,cAAAA,KAAK,EAAEtB,MAAM,CAAC+C,aAAP,CAAqB;AAAEtC,gBAAAA,GAAG,EAAE,aAAEZ;AAAT,eAArB;AAAT,aAdX;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAHiB,IAoBjB,UAACyB,KAAD;AAAA,WAAY;AAAEA,MAAAA,KAAK,EAAEtB,MAAM,CAACgD,cAAP,CAAsB1B,KAAtB;AAAT,KAAZ;AAAA,GApBiB,CAAnB;AAsBD,CAxDW,8BAyDXrB,OAAO,CAACc,IAAR,CAAa8B,OAzDF,YAyDY5B,YAzDZ,EAyD0BV,QAzD1B,EAyDoCC,MAzDpC,EAyD4C;AACtD;AACA,MAAI,CAACA,MAAM,CAAC2B,WAAP,EAAL,EAA2B,OAAO;AAAEb,IAAAA,KAAK,EAAEtB,MAAM,CAACoC,YAAP;AAAT,GAAP;AAC3B,MAAI,CAAC5B,MAAM,CAACyC,YAAP,EAAL,EAA4B,OAAO;AAAE3B,IAAAA,KAAK,EAAEtB,MAAM,CAACoC,YAAP;AAAT,GAAP;AAE5B,SAAOnB,YAAY,CACjB,eADiB,EAEjB,EAFiB,EAGjB;AAAA;;AAAA,oFAAgB,EAAhB;AAAA,QAAGoB,QAAH,SAAGA,QAAH;;AAAA,WAAwB;AAAET,MAAAA,MAAM,EAAES,QAAQ,+EAAQ,aAAY7B,MAAM,CAAC6B,QAAP,CAAgBa,OAA5B,CAAR,sBAAiD,aAAY1C,MAAM,CAAC6B,QAAP,CAAgBc,SAA5B,CAAjD;AAAlB,KAAxB;AAAA,GAHiB,EAIjB,UAAC7B,KAAD;AAAA,WAAY;AAAEA,MAAAA,KAAK,EAAEtB,MAAM,CAACgD,cAAP,CAAsB1B,KAAtB;AAAT,KAAZ;AAAA,GAJiB,CAAnB;AAMD,CApEW,8BAqEXrB,OAAO,CAACc,IAAR,CAAaqC,IArEF,YAqESnC,YArET,EAqEuBV,QArEvB,EAqEiCC,MArEjC,SAqE6F;AAAA,MAAlD6C,EAAkD,SAAlDA,EAAkD;AAAA,MAA9CC,SAA8C,SAA9CA,SAA8C;AAAA,MAAnCnC,SAAmC,SAAnCA,SAAmC;AAAA,iCAAxBoC,YAAwB;AAAA,MAAxBA,YAAwB,mCAAT,KAAS;AACvG,MAAMV,OAAO,GAAGS,SAAS,IAAI9C,MAAM,CAACgD,cAApC,CADuG,CAEvG;;AACArC,EAAAA,SAAS,IAAIX,MAAM,CAACgB,UAAP,CAAkB;AAAEL,IAAAA,SAAS,EAATA;AAAF,GAAlB,CAAb,CAHuG,CAIvG;;AACA,MAAI,CAACX,MAAM,CAAC2B,WAAP,EAAL,EAA2B,OAAO;AAAEb,IAAAA,KAAK,EAAEtB,MAAM,CAACoC,YAAP;AAAT,GAAP,CAL4E,CAMvG;;AACA,MAAI,CAAC5B,MAAM,CAACiD,kBAAP,CAA0BZ,OAA1B,CAAL,EAAyC,OAAO;AAAEvB,IAAAA,KAAK,EAAEtB,MAAM,CAAC0D,cAAP,CAAsB;AAAEC,MAAAA,OAAO,EAAEd;AAAX,KAAtB;AAAT,GAAP,CAP8D,CAQvG;;AACA,MAAI,CAAC1B,SAAD,IAAcA,SAAS,KAAKZ,QAAQ,CAACqD,YAAT,EAAhC,EAAyD,OAAO;AAAEtC,IAAAA,KAAK,EAAEtB,MAAM,CAAC6D,kBAAP;AAAT,GAAP;AAEzD,SAAO5C,YAAY,CACjB,QADiB,EAEjB;AAAEoC,IAAAA,EAAE,EAAFA,EAAF;AAAME,IAAAA,YAAY,EAAZA,YAAN;AAAoBD,IAAAA,SAAS,EAAET,OAA/B;AAAwCiB,IAAAA,QAAQ,EAAEtE,QAAQ,CAACuE,UAAT,CAAoBV,EAApB;AAAlD,GAFiB;AAAA,yEAGjB,kBAAOW,KAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAcC,cAAAA,GAAd,8DAAoB,EAApB;AAAA;AAGIC,cAAAA,KAAK,GAAGpE,gBAAgB,CAACS,QAAQ,CAAC4D,SAAT,EAAD,EAAuBtB,OAAvB,EAAgCoB,GAAhC,CAAxB;AAHJ;AAAA;;AAAA;AAAA;AAAA;AAKInB,cAAAA,OAAO,CAACxB,KAAR;AALJ,gDAMW;AAAEA,gBAAAA,KAAK,EAAEtB,MAAM,CAAC+C,aAAP,CAAqB;AAAEtC,kBAAAA,GAAG,EAAE,aAAEZ;AAAT,iBAArB;AAAT,eANX;;AAAA;AAAA;AAAA;AAAA;;AAAA,mBAWW0D,YAXX;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAYuChD,QAAQ,CAAC6D,eAAT,CAAyBJ,KAAK,IAAIX,EAAlC,EAAsC;AAAEC,gBAAAA,SAAS,EAAEY;AAAb,eAAtC,CAZvC;;AAAA;AAAA;AAAA;AAYcG,gBAAAA,iBAZd;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,qBAaqC9D,QAAQ,CAAC+D,IAAT,CAAcN,KAAK,IAAIX,EAAvB,EAA2B;AAAEC,gBAAAA,SAAS,EAAEY,KAAb;AAAoBK,gBAAAA,MAAM,EAAE;AAA5B,eAA3B,CAbrC;;AAAA;AAAA;AAAA;AAacC,gBAAAA,eAbd;AAAA;;AAAA;AAAA;AAAA;AAAA;AAUM5C,gBAAAA,MAVN;AAAA;;AAAA;AAAA;AAAA;;AAAA,kBAiBS2B,YAjBT;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAmBqChD,QAAQ,CAACkE,eAAT,CAAyBT,KAAK,IAAIX,EAAlC,CAnBrC;;AAAA;AAmBYqB,cAAAA,gBAnBZ;;AAAA,mBAoBUA,gBAAgB,CAACC,UAAjB,CAA4BC,MApBtC;AAAA;AAAA;AAAA;;AAAA,gDAoBqD;AAAEtD,gBAAAA,KAAK,EAAEtB,MAAM,CAAC6E,kBAAP,CAA0BH,gBAA1B;AAAT,eApBrD;;AAAA;AAAA,gDAsBa;AAAEpD,gBAAAA,KAAK,EAAEtB,MAAM,CAAC8E,eAAP,CAAuB,aAAEjF,OAAzB;AAAT,eAtBb;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAHiB;;AAAA;AAAA;AAAA;AAAA,OA8BjB,UAACyB,KAAD;AAAA,WAAY;AAAEA,MAAAA,KAAK,EAAEtB,MAAM,CAACgD,cAAP,CAAsB1B,KAAtB;AAAT,KAAZ;AAAA,GA9BiB,CAAnB;AAgCD,CAhHW,8BAiHXrB,OAAO,CAACc,IAAR,CAAagE,WAjHF,YAiHgB9D,YAjHhB,EAiH8BV,QAjH9B,EAiHwCC,MAjHxC,UAiHwE;AAAA,MAAtBX,OAAsB,UAAtBA,OAAsB;AAAA,MAAbyD,SAAa,UAAbA,SAAa;AAClF;AACA,MAAI,CAAC9C,MAAM,CAAC2B,WAAP,EAAL,EAA2B,OAAO;AAAEb,IAAAA,KAAK,EAAEtB,MAAM,CAACoC,YAAP;AAAT,GAAP;AAC3B,MAAMS,OAAO,GAAGS,SAAS,IAAI9C,MAAM,CAACgD,cAApC;AACA,MAAI,CAAChD,MAAM,CAACiD,kBAAP,CAA0BZ,OAA1B,CAAL,EAAyC,OAAO;AAAEvB,IAAAA,KAAK,EAAEtB,MAAM,CAAC0D,cAAP,CAAsB;AAAEC,MAAAA,OAAO,EAAEd;AAAX,KAAtB;AAAT,GAAP;AAEzC,SAAO5B,YAAY,CACjB,eADiB,EAEjB;AAAEpB,IAAAA,OAAO,EAAPA,OAAF;AAAWyD,IAAAA,SAAS,EAAET;AAAtB,GAFiB,wEAGjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAOoB,YAAAA,GAAP,8DAAa,EAAb;AAAA;AAEUC,YAAAA,KAFV,GAEkBpE,gBAAgB,CAACS,QAAQ,CAAC4D,SAAT,EAAD,EAAuBtB,OAAvB,EAAgCoB,GAAhC,CAFlC;AAAA;AAAA,mBAKyB1D,QAAQ,CAACwE,WAAT,CAAqBlF,OAArB,EAA8B;AAC7CyD,cAAAA,SAAS,EAAEY,KADkC;AAE7Cc,cAAAA,SAAS,EAAE;AAFkC,aAA9B,CALzB;;AAAA;AAAA;AAAA;AAKQC,cAAAA,SALR;AAAA;AAAA;AAIMrD,cAAAA,MAJN;AAAA;;AAAA;AAAA;AAAA;AAYIkB,YAAAA,OAAO,CAACxB,KAAR;AAZJ,8CAaW;AAAEA,cAAAA,KAAK,EAAEtB,MAAM,CAAC+C,aAAP,CAAqB;AAAEtC,gBAAAA,GAAG,EAAE,aAAEZ;AAAT,eAArB;AAAT,aAbX;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAHiB,IAmBjB,UAACyB,KAAD;AAAA,WAAY;AAAEA,MAAAA,KAAK,EAAEtB,MAAM,CAACgD,cAAP,CAAsB1B,KAAtB;AAAT,KAAZ;AAAA,GAnBiB,CAAnB;AAqBD,CA5IW,aAAd;;AA+IA,IAAM4D,aAAa,GAAG,SAAhBA,aAAgB,CAAC3E,QAAD,EAAW4E,EAAX;AAAA;AAAA,0EAAkB,kBAAO1E,GAAP,EAAY2E,MAAZ;AAAA;;AAAA;AAAA;AAAA;AAAA;AAChC5E,cAAAA,MADgC,GACvBD,QAAQ,CAAC8E,UAAT,CAAoBF,EAApB,CADuB;;AAAA,kBAEjC1E,GAAG,CAAC0E,EAF6B;AAAA;AAAA;AAAA;;AAAA,gDAG7BxF,UAAU,CAACU,aAAD,EAAgBI,GAAhB,EAAqB;AAAE6E,gBAAAA,KAAK,EAAE/E,QAAQ,CAAC+E;AAAlB,eAArB,CAAV,CAA0D/E,QAA1D,EAAoE;AAAEC,gBAAAA,MAAM,EAANA;AAAF,eAApE,EAAgFC,GAAhF,EAAqF2E,MAArF,CAH6B;;AAAA;AAAA,mBAKlCG,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqClF,MAAM,CAACmF,SAA5C,EAAuDlF,GAAG,CAAC0E,EAA3D,CALkC;AAAA;AAAA;AAAA;;AAAA,gDAM7BxF,UAAU,CAACkB,SAAD,EAAYJ,GAAZ,EAAiB;AAAE6E,gBAAAA,KAAK,EAAE/E,QAAQ,CAAC+E;AAAlB,eAAjB,CAAV,CAAsD/E,QAAtD,EAAgE;AAAEC,gBAAAA,MAAM,EAANA;AAAF,eAAhE,EAA4EC,GAA5E,EAAiF2E,MAAjF,CAN6B;;AAAA;AAQ5BD,cAAAA,GAR4B,GAQb1E,GARa,CAQ5B0E,EAR4B,EAQxBS,MARwB,GAQbnF,GARa,CAQxBmF,MARwB;;AAS9B3E,cAAAA,YAT8B,GASf,SAAfA,YAAe,CAAC4E,UAAD,EAAajF,MAAb,EAAqBkF,OAArB,EAA6BC,KAA7B;AAAA,uBAAsC;AAAA,yBAAM,aAAY,UAAAC,OAAO,EAAI;AACtFzF,oBAAAA,QAAQ,CAACsF,UAAD,CAAR,CACErF,MADF,EAEE;AACE2E,sBAAAA,EAAE,EAAFA,GADF;AAEES,sBAAAA,MAAM,EAANA,MAFF;AAGEhF,sBAAAA,MAAM,EAANA,MAHF;AAIEkF,sBAAAA,MAAM,EAAE;AAAA,+BAAaE,OAAO,CAACF,OAAM,MAAN,mBAAD,CAApB;AAAA,uBAJV;AAKEC,sBAAAA,IAAI,EAAE;AAAA,+BAAaC,OAAO,CAACD,KAAI,MAAJ,mBAAD,CAApB;AAAA;AALR,qBAFF,EASEX,MATF;AAWD,mBAZgE,CAAN;AAAA,iBAAtC;AAAA,eATe,EAsBpC;;;AACMa,cAAAA,oBAvB8B,GAuBPtG,UAAU,CAACmB,QAAD,EAAWL,GAAX,EAAgB;AAAE6E,gBAAAA,KAAK,EAAE/E,QAAQ,CAAC+E;AAAlB,eAAhB,CAAV,CAAqDrE,YAArD,EAAmEV,QAAnE,EAA6EC,MAA7E,EAAqFC,GAAG,CAACG,MAAzF,CAvBO;;AAAA,oBAwBnB,OAAOqF,oBAAP,KAAgC,UAxBb;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAwBgCA,oBAAoB,EAxBpD;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,6BAwByDA,oBAxBzD;;AAAA;AAwB9BC,cAAAA,QAxB8B;AAyBpCnG,cAAAA,mBAAmB,CAACS,MAAD,CAAnB,CAA4B2E,GAA5B,EAAgCS,MAAhC,EAAwCM,QAAxC;;AAzBoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAlB;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAtB;AA6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAe5G,EAAE,CAAC6G,OAAH,CAAW5G,eAAX,EAA4B;AACzC6G,EAAAA,IADyC,kBACsG;AAAA;AAAA;AAAA;AAAA;;AAAA,qFAAJ,EAAI;AAAA,QAAvIlF,IAAuI,UAAvIA,IAAuI;AAAA,QAAjImF,YAAiI,UAAjIA,YAAiI;AAAA,QAAnHC,cAAmH,UAAnHA,cAAmH;AAAA,QAAnGC,MAAmG,UAAnGA,MAAmG;AAAA,QAA3F5F,YAA2F,UAA3FA,YAA2F;AAAA,QAA7E6F,aAA6E,UAA7EA,aAA6E;AAAA,QAA9DC,aAA8D,UAA9DA,aAA8D;AAAA,uCAA/CC,eAA+C;AAAA,QAA/CA,eAA+C,sCAA7B,KAA6B;AAAA,8BAAtBpB,KAAsB;AAAA,QAAtBA,KAAsB,6BAAd,KAAc;;AAC7I,SAAKA,KAAL,GAAaA,KAAb;AACA,QAAMqB,cAAc,GAAG,CAAC,cAAD,EAAiB,gBAAjB,EAAmC,QAAnC,EAA6C,cAA7C,EAA6D,eAA7D,CAAvB,CAF6I,CAG7I;;AACA,SAAKN,YAAL,GAAoBA,YAApB;AACA,SAAKC,cAAL,GAAsBA,cAAtB;AACA,SAAKC,MAAL,GAAcA,MAAd;AACA,SAAK5F,YAAL,GAAoBA,YAApB;AACA,SAAK6F,aAAL,GAAqBA,aAArB;AACA,SAAKC,aAAL,GAAqBA,aAArB;AACA,SAAKpB,UAAL,GAAkB,EAAlB;;AAEA,6BAAAsB,cAAc,MAAd,CAAAA,cAAc,EAAS,UAAAC,KAAK,EAAI;AAC9B,UAAI,CAACF,eAAD,IAAoB,OAAO,KAAI,CAACE,KAAD,CAAX,KAAuB,UAA/C,EAA2D,MAAM,IAAIpE,KAAJ,yBAA2BoE,KAA3B,2BAAN;AAC5D,KAFa,CAAd,CAZ6I,CAe7I;;;AACA,SAAK1F,IAAL,GAAYA,IAAZ;AACA,SAAKiE,EAAL,GAAU9F,IAAI,EAAd;;AAEA,QAAMwH,cAAc,GAAG,uCAAKC,aAAL,kBAAwB,IAAxB,CAAvB;;AACA,QAAMC,WAAW,GAAG,uCAAKC,UAAL,kBAAqB,IAArB,CAApB;;AACA,QAAMC,WAAW,GAAG,uCAAKC,UAAL,kBAAqB,IAArB,CAApB,CArB6I,CAuB7I;;;AACA,SAAKJ,aAAL,GAAqB,UAACjE,OAAD,EAA8C;AAAA;;AAAA,uFAAP,EAAO;AAAA,oCAAlCsE,SAAkC;AAAA,UAAlCA,SAAkC,iCAAtB;AAAA,eAAM,IAAN;AAAA,OAAsB;;AACjEN,MAAAA,cAAc,CAAChE,OAAD,CAAd;;AACA,gGAAc,KAAI,CAACwC,UAAnB,oBACU,UAAA7E,MAAM;AAAA,eAAIA,MAAM,CAAC2B,WAAP,MAAwB3B,MAAM,CAACyC,YAAP,EAAxB,IAChBzC,MAAM,CAACiD,kBAAP,CAA0BZ,OAA1B,CADgB,IACsBsE,SAAS,CAAC3G,MAAD,CADnC;AAAA,OADhB,oBAGW,UAAAA,MAAM;AAAA;;AAAA,eAAIA,MAAM,CAACmC,WAAP,CAAmB;AACpCO,UAAAA,OAAO,sBAAKL,OAAL,EAAe,EAAf,CAD6B;AAEpCM,UAAAA,SAAS,kCACJ3C,MAAM,CAAC6B,QAAP,CAAgBa,OADZ,GAEJ,0FAAe1C,MAAM,CAAC6B,QAAP,CAAgBc,SAA/B,oBACO;AAAA;AAAA,gBAAEiE,CAAF;AAAA,gBAAKC,CAAL;;AAAA,mBAAYD,CAAC,KAAKvE,OAAlB;AAAA,WADP,oBAEO,UAACyE,GAAD;AAAA;AAAA,gBAAOF,CAAP;AAAA,gBAAUC,CAAV;;AAAA,mDAAuBC,GAAvB,2BAA6BF,CAA7B,EAAiCC,CAAjC;AAAA,WAFP,EAE8C,EAF9C,CAFI;AAF2B,SAAnB,CAAJ;AAAA,OAHjB;AAYD,KAdD;;AAeA,SAAKL,UAAL;AAAA,4EAAkB,kBAAOrD,OAAP;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,oFAAgE,EAAhE,EAAkB4D,MAAlB,UAAkBA,MAAlB,uBAA0BC,IAA1B,EAA0BA,IAA1B,4BAAiC,EAAjC,0CAAqCL,SAArC,EAAqCA,SAArC,iCAAiD;AAAA,yBAAM,IAAN;AAAA,iBAAjD;AAAA;AAAA,uBACVJ,WAAW,CAACpD,OAAD,EAAU;AAAE4D,kBAAAA,MAAM,EAANA;AAAF,iBAAV,CADD;;AAAA;AAAA;AAAA,uBAEM5D,OAAO,CAACd,OAAR,EAFN;;AAAA;AAEVA,gBAAAA,OAFU;;AAGhB;AACA,0GAAc,KAAI,CAACwC,UAAnB,oBACU,UAAA7E,MAAM;AAAA,yBAAIA,MAAM,CAAC2B,WAAP,MAAwB3B,MAAM,CAACyC,YAAP,EAAxB,IAAiDkE,SAAS,CAAC3G,MAAD,CAA9D;AAAA,iBADhB,oBAEW,UAAAA,MAAM;AAAA,yBAAIA,MAAM,CAACmC,WAAP,CAAmB;AACpCO,oBAAAA,OAAO,oBAAOqE,MAAM,uBAAM1E,OAAN,EAAgB2E,IAAhB,IAAyBhH,MAAM,CAAC6B,QAAP,CAAgBa,OAAtD,CAD6B;AAEpCC,oBAAAA,SAAS,kCACJoE,MAAM,GAAG/G,MAAM,CAAC6B,QAAP,CAAgBa,OAAnB,uBAAgCL,OAAhC,EAA0C2E,IAA1C,CADF,GAEJhH,MAAM,CAAC6B,QAAP,CAAgBc,SAFZ;AAF2B,mBAAnB,CAAJ;AAAA,iBAFjB;;AAJgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAlB;;AAAA;AAAA;AAAA;AAAA;;AAcA,SAAK+D,UAAL,GAAkB,UAAChG,IAAD,EAAU;AAAA;;AAC1B+F,MAAAA,WAAW,CAAC/F,IAAD,CAAX,CAD0B,CAE1B;;;AACA,gGAAc,KAAI,CAACmE,UAAnB,oBACU,UAAA7E,MAAM;AAAA,eAAIA,MAAM,CAAC2B,WAAP,EAAJ;AAAA,OADhB,oBAEW,UAAA3B,MAAM;AAAA,eAAIA,MAAM,CAACiH,WAAP,CACjB5H,OAAO,CAACI,OAAO,CAACyH,aAAT,EAAwB;AAAEvG,UAAAA,SAAS,EAAE,KAAI,CAACyC,YAAL;AAAb,SAAxB,CADU,EACmD,IADnD,CAAJ;AAAA,OAFjB;AAKD,KARD;AASD,GA/DwC;AAgEzC+D,EAAAA,OAAO,EAAE;AACP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,eAVO,2BAUUzC,EAVV,EAUqD;AAAA,uFAAJ,EAAI;AAAA,yCAArC0C,oBAAqC;AAAA,UAArCA,oBAAqC,sCAAd,KAAc;;AAC1D,UAAMrH,MAAM,GAAG,KAAK6E,UAAL,CAAgBF,EAAhB,CAAf;AACA,UAAI,CAAC3E,MAAL,EAAa,MAAM,IAAIgC,KAAJ,6BAA+B2C,EAA/B,mBAAN;AACb3E,MAAAA,MAAM,CAACE,UAAP,CAAkBmH,oBAAlB;AACA,aAAO,KAAKxC,UAAL,CAAgBF,EAAhB,CAAP;AACD,KAfM;;AAgBP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI2C,IAAAA,YAxBO,wBAwBOC,gBAxBP,EAwByB;AAC9B;AACA,UAAM5C,EAAE,GAAG9F,IAAI,EAAf;AACA,WAAKgG,UAAL,CAAgBF,EAAhB,IAAsB1F,SAAS,CAAC;AAC9B0F,QAAAA,EAAE,EAAFA,EAD8B;AAE9B6C,QAAAA,IAAI,EAAE;AAAEvG,UAAAA,MAAM,EAAEvB,UAAU,CAAC+H;AAArB,SAFwB;AAG9BC,QAAAA,UAAU,EAAEH,gBAHkB;AAI9BI,QAAAA,QAAQ,EAAE,CAACjD,aAAa,CAAC,IAAD,EAAOC,EAAP,CAAd,EAA0B,KAAKxE,YAA/B;AAJoB,OAAD,CAA/B;AAMA,aAAOwE,EAAP;AACD,KAlCM;;AAmCP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIiD,IAAAA,eA5CO,2BA4CUC,MA5CV,EA4CkB;AACvBA,MAAAA,MAAM;AACJC,QAAAA,OAAO,EAAE;AADL,SAEDzI,OAAO,CAACI,OAAO,CAACsI,MAAR,CAAeC,cAAhB,EAAgC,KAAK3G,aAAL,EAAhC,CAFN,EAAN;AAID,KAjDM;;AAkDP;AACJ;AACA;AACA;AACA;AACA;AACA;AACIA,IAAAA,aAzDO,2BAyDU;AACf,UAAM4G,OAAO,GAAG/I,aAAa,CAAC,IAAD,CAAb,CAAoB+I,OAApC;AACA,aAAO;AACLtD,QAAAA,EAAE,EAAEsD,OAAO,IAAIA,OAAO,CAACtD,EAAnB,GAAwBsD,OAAO,CAACtD,EAAhC,GAAqC,KAAKA,EADzC;AAELjE,QAAAA,IAAI,EAAE,KAAKA,IAFN;AAGLC,QAAAA,SAAS,EAAE,KAAKyC,YAAL,EAHN;AAILwB,QAAAA,MAAM,EAAEsD,MAAM,CAACC,QAAP,CAAgBvD,MAJnB;AAKLnD,QAAAA,IAAI,EAAEwG,OAAO,IAAIA,OAAO,CAACtD,EAAnB,GAAwB/E,WAAW,CAACwI,SAApC,GAAgDxI,WAAW,CAACsI;AAL7D,OAAP;AAOD,KAlEM;;AAmEP;AACJ;AACA;AACA;AACA;AACA;AACA;AACInG,IAAAA,WA1EO,yBA0EQ;AAAA;AAAA;AAAA;;AACb,aAAO;AACLW,QAAAA,OAAO,EAAE,KAAK2F,eAAL,uBAA0B,KAAKA,eAA/B,EAAiD,EAAjD,IAAwD,EAD5D;AAEL1F,QAAAA,SAAS,EAAE,+EAAKgB,SAAL,qBACD,UAAA2E,CAAC;AAAA,iBAAIA,CAAC,KAAK,MAAI,CAACD,eAAf;AAAA,SADA,oBAED,UAACvB,GAAD,EAAMwB,CAAN;AAAA,iDAAkBxB,GAAlB,2BAAwBwB,CAAxB,EAA4B,EAA5B;AAAA,SAFC,EAEkC,EAFlC;AAFN,OAAP;AAMD;AAjFM;AAhEgC,CAA5B,CAAf","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 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: {\n ...returnSigned\n ? { signedTransaction: await instance.signTransaction(rawTx || tx, { onAccount: onAcc }) }\n : { transactionHash: await instance.send(rawTx || tx, { onAccount: onAcc, verify: false }) }\n }\n }\n } catch (e) {\n if (!returnSigned) {\n // Validate transaction\n const validationResult = await instance.unpackAndVerify(rawTx || tx)\n if (validationResult.validation.length) return { error: ERRORS.invalidTransaction(validationResult) }\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
+ {"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","e","debug","console","internalError","rejectedByUser","isSubscribed","Object","keys","current","connected","sign","tx","onAccount","returnSigned","currentAccount","hasAccessToAccount","permissionDeny","account","getNetworkId","unsupportedNetwork","txObject","fromString","rawTx","opt","onAcc","addresses","signedTransaction","signTransaction","transactionHash","send","verify","validation","selectedNode","length","invalidTransaction","broadcastFailed","signMessage","signature","returnHex","handleMessage","id","origin","rpcClients","prototype","hasOwnProperty","call","callbacks","method","methodName","accept","deny","Promise","resolve","errorObjectOrHandler","response","compose","init","onConnection","onSubscription","onSign","onAskAccounts","onMessageSign","forceValidation","eventsHandlers","forEach","event","_selectAccount","selectAccount","bind","_addAccount","addAccount","_selectNode","selectNode","condition","values","filter","entries","k","v","reduce","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 if (instance.debug) 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 if (instance.debug) 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 if (instance.debug) 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,24 +1,28 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
- import _zipObj from "ramda/src/zipObj";
1
+ const asEnum = array => Object.fromEntries(array.map(a => [a, a]));
3
2
 
4
- var _wallet, _aepp, _METHODS;
5
-
6
- var asEnum = function asEnum(array) {
7
- return _zipObj(array, array);
3
+ export const VERSION = 1;
4
+ export const MESSAGE_DIRECTION = asEnum(['to_waellet', 'to_aepp']);
5
+ export const WALLET_TYPE = asEnum(['window', 'extension']);
6
+ export const NOTIFICATIONS = asEnum(['readyToConnect', 'closeConnection', 'updateNetwork', 'updateAddress']);
7
+ export const REQUESTS = asEnum(['connect', 'subscribeAddress', 'sign', 'address', 'signMessage']);
8
+ export const SUBSCRIPTION_VALUES = asEnum(['current', 'connected']);
9
+ export const SUBSCRIPTION_TYPES = asEnum(['subscribe', 'unsubscribe']);
10
+ export const METHODS = {
11
+ wallet: {
12
+ [NOTIFICATIONS.readyToConnect]: 'connection.announcePresence',
13
+ [NOTIFICATIONS.updateAddress]: 'address.update'
14
+ },
15
+ aepp: {
16
+ [REQUESTS.address]: 'address.get',
17
+ [REQUESTS.connect]: 'connection.open',
18
+ [REQUESTS.sign]: 'transaction.sign',
19
+ [REQUESTS.signMessage]: 'message.sign',
20
+ [REQUESTS.subscribeAddress]: 'address.subscribe'
21
+ },
22
+ [NOTIFICATIONS.updateNetwork]: 'networkId.update',
23
+ [NOTIFICATIONS.closeConnection]: 'connection.close'
8
24
  };
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 = {
25
+ export const RPC_STATUS = {
22
26
  CONNECTED: 'CONNECTED',
23
27
  DISCONNECTED: 'DISCONNECTED',
24
28
  CONNECTION_REJECTED: 'CONNECTION_REJECTED',
@@ -26,73 +30,73 @@ export var RPC_STATUS = {
26
30
  WAITING_FOR_CONNECTION_REQUEST: 'WAITING_FOR_CONNECTION_REQUEST',
27
31
  WAITING_FOR_SUBSCRIPTION: 'WAITING_FOR_SUBSCRIPTION'
28
32
  };
29
- export var ERRORS = {
30
- broadcastFailed: function broadcastFailed() {
31
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
33
+ export const ERRORS = {
34
+ broadcastFailed: function () {
35
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
32
36
  return {
33
37
  code: 3,
34
38
  data: error,
35
39
  message: 'Broadcast failed'
36
40
  };
37
41
  },
38
- invalidTransaction: function invalidTransaction() {
39
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
42
+ invalidTransaction: function () {
43
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
44
  return {
41
45
  code: 2,
42
46
  data: error,
43
47
  message: 'Invalid transaction'
44
48
  };
45
49
  },
46
- rejectedByUser: function rejectedByUser() {
47
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
50
+ rejectedByUser: function () {
51
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
48
52
  return {
49
53
  code: 4,
50
54
  data: error,
51
55
  message: 'Operation rejected by user'
52
56
  };
53
57
  },
54
- connectionDeny: function connectionDeny() {
55
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
+ connectionDeny: function () {
59
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
56
60
  return {
57
61
  code: 9,
58
62
  data: error,
59
63
  message: 'Wallet deny your connection request'
60
64
  };
61
65
  },
62
- permissionDeny: function permissionDeny() {
63
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
66
+ permissionDeny: function () {
67
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
64
68
  return {
65
69
  code: 11,
66
70
  data: error,
67
- message: "You are not subscribed for account ".concat(error.account)
71
+ message: `You are not subscribed for account ${error.account}`
68
72
  };
69
73
  },
70
- internalError: function internalError() {
71
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
74
+ internalError: function () {
75
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
72
76
  return {
73
77
  code: 12,
74
78
  data: error,
75
79
  message: error.msg
76
80
  };
77
81
  },
78
- notAuthorize: function notAuthorize() {
79
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
82
+ notAuthorize: function () {
83
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
80
84
  return {
81
85
  code: 10,
82
86
  data: error,
83
87
  message: 'You are not connected to the wallet'
84
88
  };
85
89
  },
86
- unsupportedProtocol: function unsupportedProtocol() {
87
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
90
+ unsupportedProtocol: function () {
91
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
88
92
  return {
89
93
  code: 5,
90
94
  data: error,
91
95
  message: 'Unsupported Protocol Version'
92
96
  };
93
97
  },
94
- unsupportedNetwork: function unsupportedNetwork() {
95
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
98
+ unsupportedNetwork: function () {
99
+ let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
96
100
  return {
97
101
  code: 8,
98
102
  data: error,
@@ -1 +1 @@
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
+ {"version":3,"sources":["../../../src/utils/aepp-wallet-communication/schema.js"],"names":["asEnum","array","Object","fromEntries","map","a","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":["const asEnum = (array) => Object.fromEntries(array.map(a => [a, a]))\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,19 +1,3 @@
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
1
  /*
18
2
  * ISC License (ISC)
19
3
  * Copyright (c) 2018 aeternity developers
@@ -52,10 +36,10 @@ import { MESSAGE_DIRECTION, METHODS } from './schema';
52
36
  */
53
37
 
54
38
  export default stampit({
55
- init: function init() {
56
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
57
- connection = _ref.connection;
58
-
39
+ init() {
40
+ let {
41
+ connection
42
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
59
43
  if (!window) throw new Error('Window object not found, you can run wallet detector only in browser');
60
44
  this.connection = connection || BrowserWindowMessageConnection({
61
45
  connectionInfo: {
@@ -64,6 +48,7 @@ export default stampit({
64
48
  });
65
49
  this.wallets = {};
66
50
  },
51
+
67
52
  methods: {
68
53
  /**
69
54
  * Start scanning
@@ -72,52 +57,40 @@ export default stampit({
72
57
  * @param {Function} onDetected Call-back function which trigger on new wallet
73
58
  * @return {void}
74
59
  */
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;
60
+ scan(onDetected) {
61
+ const {
62
+ wallets
63
+ } = this;
64
+ this.connection.connect((_ref, origin, source) => {
65
+ let {
66
+ method,
67
+ params
68
+ } = _ref;
80
69
  if (!method || !params || method !== METHODS.wallet.readyToConnect || wallets[params.id]) return;
70
+ const wallet = { ...params,
81
71
 
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
- }))();
72
+ async getConnection() {
73
+ // if detect extension wallet or page wallet
74
+ const isExtension = this.type === 'extension';
75
+ const origin = isExtension ? window.origin : this.origin;
76
+ return BrowserWindowMessageConnection({
77
+ connectionInfo: this,
78
+ sendDirection: isExtension ? MESSAGE_DIRECTION.to_waellet : undefined,
79
+ receiveDirection: isExtension ? MESSAGE_DIRECTION.to_aepp : undefined,
80
+ target: source,
81
+ origin
82
+ });
110
83
  }
111
- });
112
84
 
85
+ };
113
86
  wallets[wallet.id] = wallet;
114
87
  onDetected({
115
- wallets: wallets,
88
+ wallets,
116
89
  newWallet: wallet
117
90
  });
118
91
  });
119
- if (_Object$keys(wallets).length) onDetected({
120
- wallets: wallets
92
+ if (Object.keys(wallets).length) onDetected({
93
+ wallets
121
94
  });
122
95
  },
123
96
 
@@ -127,9 +100,10 @@ export default stampit({
127
100
  * @instance
128
101
  * @return {void}
129
102
  */
130
- stopScan: function stopScan() {
103
+ stopScan() {
131
104
  this.connection.disconnect();
132
105
  }
106
+
133
107
  }
134
108
  });
135
109
  //# sourceMappingURL=wallet-detector.js.map
@@ -1 +1 @@
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
+ {"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","Object","keys","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,IAAI,GAAuB;AAAA,QAArB;AAAEC,MAAAA;AAAF,KAAqB,uEAAJ,EAAI;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,IAAI,CAAEC,UAAF,EAAc;AAChB,YAAM;AAAEH,QAAAA;AAAF,UAAc,IAApB;AACA,WAAKL,UAAL,CAAgBS,OAAhB,CAAwB,OAAqBC,MAArB,EAA6BC,MAA7B,KAAwC;AAAA,YAAvC;AAAEC,UAAAA,MAAF;AAAUC,UAAAA;AAAV,SAAuC;AAC9D,YAAI,CAACD,MAAD,IAAW,CAACC,MAAZ,IAAsBD,MAAM,KAAKd,OAAO,CAACgB,MAAR,CAAeC,cAAhD,IAAkEV,OAAO,CAACQ,MAAM,CAACT,EAAR,CAA7E,EAA0F;AAE1F,cAAMU,MAAM,GAAG,EACb,GAAGD,MADU;;AAEb,gBAAMG,aAAN,GAAuB;AACrB;AACA,kBAAMC,WAAW,GAAG,KAAKC,IAAL,KAAc,WAAlC;AACA,kBAAMR,MAAM,GAAGO,WAAW,GAAGhB,MAAM,CAACS,MAAV,GAAmB,KAAKA,MAAlD;AACA,mBAAOd,8BAA8B,CAAC;AACpCO,cAAAA,cAAc,EAAE,IADoB;AAEpCgB,cAAAA,aAAa,EAAEF,WAAW,GAAGpB,iBAAiB,CAACuB,UAArB,GAAkCC,SAFxB;AAGpCC,cAAAA,gBAAgB,EAAEL,WAAW,GAAGpB,iBAAiB,CAAC0B,OAArB,GAA+BF,SAHxB;AAIpCG,cAAAA,MAAM,EAAEb,MAJ4B;AAKpCD,cAAAA;AALoC,aAAD,CAArC;AAOD;;AAbY,SAAf;AAeAL,QAAAA,OAAO,CAACS,MAAM,CAACV,EAAR,CAAP,GAAqBU,MAArB;AACAN,QAAAA,UAAU,CAAC;AAAEH,UAAAA,OAAF;AAAWoB,UAAAA,SAAS,EAAEX;AAAtB,SAAD,CAAV;AACD,OApBD;AAqBA,UAAIY,MAAM,CAACC,IAAP,CAAYtB,OAAZ,EAAqBuB,MAAzB,EAAiCpB,UAAU,CAAC;AAAEH,QAAAA;AAAF,OAAD,CAAV;AAClC,KAhCM;;AAkCP;AACJ;AACA;AACA;AACA;AACA;AACIwB,IAAAA,QAAQ,GAAI;AACV,WAAK7B,UAAL,CAAgB8B,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"}