@aeternity/aepp-sdk 10.0.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +15 -14
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +13 -40
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +1 -1
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.d.ts +37 -0
- package/es/AeSdk.mjs +81 -0
- package/es/AeSdk.mjs.map +1 -0
- package/es/AeSdkAepp.d.ts +69 -0
- package/es/AeSdkAepp.mjs +175 -0
- package/es/AeSdkAepp.mjs.map +1 -0
- package/es/AeSdkBase.d.ts +212 -0
- package/es/AeSdkBase.mjs +310 -0
- package/es/AeSdkBase.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +103 -0
- package/es/AeSdkWallet.mjs +322 -0
- package/es/AeSdkWallet.mjs.map +1 -0
- package/es/Node.d.ts +44 -0
- package/es/Node.mjs +141 -0
- package/es/Node.mjs.map +1 -0
- package/es/account/Base.d.ts +65 -0
- package/es/account/Base.mjs +123 -0
- package/es/account/Base.mjs.map +1 -0
- package/es/account/Memory.d.ts +25 -0
- package/es/account/Memory.mjs +81 -0
- package/es/account/Memory.mjs.map +1 -0
- package/es/account/Rpc.d.ts +27 -0
- package/es/account/Rpc.mjs +79 -0
- package/es/account/Rpc.mjs.map +1 -0
- package/es/aens.d.ts +209 -0
- package/es/aens.mjs +332 -0
- package/es/aens.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
- package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
- package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +118 -0
- package/es/aepp-wallet-communication/schema.mjs +214 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/apis/compiler/compiler.d.ts +92 -0
- package/es/apis/compiler/compiler.mjs +576 -0
- package/es/apis/compiler/compiler.mjs.map +1 -0
- package/es/apis/compiler/index.d.ts +2 -0
- package/es/apis/compiler/index.mjs +3 -0
- package/es/apis/compiler/index.mjs.map +1 -0
- package/es/apis/compiler/models/index.d.ts +248 -0
- package/es/apis/compiler/models/index.mjs +48 -0
- package/es/apis/compiler/models/index.mjs.map +1 -0
- package/es/apis/compiler/models/mappers.d.ts +23 -0
- package/es/apis/compiler/models/mappers.mjs +585 -0
- package/es/apis/compiler/models/mappers.mjs.map +1 -0
- package/es/apis/compiler/models/parameters.d.ts +13 -0
- package/es/apis/compiler/models/parameters.mjs +71 -0
- package/es/apis/compiler/models/parameters.mjs.map +1 -0
- package/es/apis/node/index.d.ts +2 -0
- package/es/apis/node/index.mjs +3 -0
- package/es/apis/node/index.mjs.map +1 -0
- package/es/apis/node/models/index.d.ts +1061 -0
- package/es/apis/node/models/index.mjs +2 -0
- package/es/apis/node/models/index.mjs.map +1 -0
- package/es/apis/node/models/mappers.d.ts +95 -0
- package/es/apis/node/models/mappers.mjs +4164 -0
- package/es/apis/node/models/mappers.mjs.map +1 -0
- package/es/apis/node/models/parameters.d.ts +17 -0
- package/es/apis/node/models/parameters.mjs +165 -0
- package/es/apis/node/models/parameters.mjs.map +1 -0
- package/es/apis/node/node.d.ts +215 -0
- package/es/apis/node/node.mjs +1165 -0
- package/es/apis/node/node.mjs.map +1 -0
- package/es/chain.d.ts +220 -0
- package/es/chain.mjs +524 -0
- package/es/chain.mjs.map +1 -0
- package/es/channel/handlers.d.ts +34 -0
- package/es/channel/{handlers.js → handlers.mjs} +163 -130
- package/es/channel/handlers.mjs.map +1 -0
- package/es/channel/index.d.ts +634 -0
- package/es/channel/index.mjs +978 -0
- package/es/channel/index.mjs.map +1 -0
- package/es/channel/internal.d.ts +100 -0
- package/es/channel/internal.mjs +328 -0
- package/es/channel/internal.mjs.map +1 -0
- package/es/contract/Compiler.d.ts +17 -0
- package/es/contract/Compiler.mjs +67 -0
- package/es/contract/Compiler.mjs.map +1 -0
- package/es/contract/aci.d.ts +125 -0
- package/es/contract/aci.mjs +496 -0
- package/es/contract/aci.mjs.map +1 -0
- package/es/contract/ga.d.ts +68 -0
- package/es/contract/ga.mjs +190 -0
- package/es/contract/ga.mjs.map +1 -0
- package/es/contract/methods.d.ts +68 -0
- package/es/contract/methods.mjs +101 -0
- package/es/contract/methods.mjs.map +1 -0
- package/es/index.d.ts +32 -0
- package/es/index.mjs +49 -0
- package/es/index.mjs.map +1 -0
- package/es/oracle.d.ts +154 -0
- package/es/oracle.mjs +288 -0
- package/es/oracle.mjs.map +1 -0
- package/es/spend.d.ts +61 -0
- package/es/spend.mjs +122 -0
- package/es/spend.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +41 -0
- package/es/tx/builder/constants.mjs +100 -0
- package/es/tx/builder/constants.mjs.map +1 -0
- package/es/tx/builder/field-types.d.ts +62 -0
- package/es/tx/builder/field-types.mjs +126 -0
- package/es/tx/builder/field-types.mjs.map +1 -0
- package/es/tx/builder/helpers.d.ts +131 -0
- package/es/tx/builder/helpers.mjs +223 -0
- package/es/tx/builder/helpers.mjs.map +1 -0
- package/es/tx/builder/index.d.ts +75 -0
- package/es/tx/builder/index.mjs +424 -0
- package/es/tx/builder/index.mjs.map +1 -0
- package/es/tx/builder/schema.d.ts +350 -0
- package/es/tx/builder/schema.mjs +320 -0
- package/es/tx/builder/schema.mjs.map +1 -0
- package/es/tx/index.d.ts +63 -0
- package/es/tx/index.mjs +209 -0
- package/es/tx/index.mjs.map +1 -0
- package/es/tx/min-fee.d.ts +20 -0
- package/es/tx/min-fee.mjs +148 -0
- package/es/tx/min-fee.mjs.map +1 -0
- package/es/tx/validator.d.ts +19 -0
- package/es/tx/validator.mjs +240 -0
- package/es/tx/validator.mjs.map +1 -0
- package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
- package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
- package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
- package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
- package/es/typings/bip32-path/index.d.mjs +2 -0
- package/es/typings/bip32-path/index.d.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs +2 -0
- package/es/typings/blakejs/index.d.mjs.map +1 -0
- package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
- package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
- package/es/utils/amount-formatter.d.ts +42 -0
- package/es/utils/{amount-formatter.js → amount-formatter.mjs} +38 -44
- package/es/utils/amount-formatter.mjs.map +1 -0
- package/es/utils/autorest.d.ts +6 -0
- package/es/utils/autorest.mjs +97 -0
- package/es/utils/autorest.mjs.map +1 -0
- package/es/utils/bignumber.d.ts +13 -0
- package/es/utils/bignumber.mjs +23 -0
- package/es/utils/bignumber.mjs.map +1 -0
- package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
- package/es/utils/{bytes.js → bytes.mjs} +26 -22
- package/es/utils/bytes.mjs.map +1 -0
- package/es/utils/crypto.d.ts +103 -0
- package/es/utils/crypto.mjs +221 -0
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/encoder.d.ts +26 -0
- package/es/utils/encoder.mjs +102 -0
- package/es/utils/encoder.mjs.map +1 -0
- package/es/utils/errors.d.ts +481 -0
- package/es/utils/errors.mjs +882 -0
- package/es/utils/errors.mjs.map +1 -0
- package/es/utils/hd-wallet.d.ts +34 -0
- package/es/utils/hd-wallet.mjs +122 -0
- package/es/utils/hd-wallet.mjs.map +1 -0
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +41 -0
- package/es/utils/json-big.mjs.map +1 -0
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +145 -0
- package/es/utils/keystore.mjs.map +1 -0
- package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
- package/es/utils/{mptree.js → mptree.mjs} +33 -25
- package/es/utils/mptree.mjs.map +1 -0
- package/es/utils/other.d.ts +14 -0
- package/es/utils/other.mjs +28 -0
- package/es/utils/other.mjs.map +1 -0
- package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
- package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
- package/es/utils/semver-satisfies.mjs.map +1 -0
- package/es/utils/string.d.ts +24 -0
- package/es/utils/{string.js → string.mjs} +9 -11
- package/es/utils/string.mjs.map +1 -0
- package/package.json +67 -64
- package/src/AeSdk.ts +65 -0
- package/src/AeSdkAepp.ts +167 -0
- package/src/AeSdkBase.ts +320 -0
- package/src/AeSdkWallet.ts +332 -0
- package/src/Node.ts +167 -0
- package/src/account/Base.ts +114 -0
- package/src/account/Memory.ts +83 -0
- package/src/account/Rpc.ts +67 -0
- package/src/aens.ts +391 -0
- package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
- package/{es/utils/crypto-ts.js → src/aepp-wallet-communication/connection-proxy.ts} +16 -9
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
- package/src/aepp-wallet-communication/rpc/types.ts +66 -0
- package/src/aepp-wallet-communication/schema.ts +181 -0
- package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
- package/src/apis/compiler/code-model-v4.yaml +2649 -0
- package/src/apis/compiler/compiler.ts +585 -0
- package/src/apis/compiler/index.ts +2 -0
- package/src/apis/compiler/models/index.ts +301 -0
- package/src/apis/compiler/models/mappers.ts +583 -0
- package/src/apis/compiler/models/parameters.ts +93 -0
- package/src/apis/node/code-model-v4.yaml +10046 -0
- package/src/apis/node/index.ts +2 -0
- package/src/apis/node/models/index.ts +1253 -0
- package/src/apis/node/models/mappers.ts +4278 -0
- package/src/apis/node/models/parameters.ts +188 -0
- package/src/apis/node/node.ts +1299 -0
- package/src/chain.ts +444 -0
- package/src/channel/{handlers.js → handlers.ts} +238 -143
- package/src/channel/index.ts +991 -0
- package/src/channel/internal.ts +345 -0
- package/src/contract/Compiler.ts +66 -0
- package/src/contract/aci.ts +529 -0
- package/src/contract/ga.ts +178 -0
- package/src/contract/methods.ts +118 -0
- package/src/index.ts +51 -0
- package/src/oracle.ts +342 -0
- package/src/spend.ts +152 -0
- package/src/tx/builder/constants.ts +96 -0
- package/src/tx/builder/field-types.ts +111 -0
- package/src/tx/builder/helpers.ts +253 -0
- package/src/tx/builder/index.ts +394 -0
- package/src/tx/builder/schema.ts +771 -0
- package/src/tx/index.ts +199 -0
- package/src/tx/min-fee.ts +136 -0
- package/src/tx/validator.ts +226 -0
- package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
- package/src/typings/@aeternity__uuid/index.d.ts +3 -0
- package/src/typings/bip32-path/index.d.ts +33 -0
- package/src/typings/tweetnacl-auth/index.d.ts +14 -0
- package/src/utils/amount-formatter.ts +29 -41
- package/src/utils/autorest.ts +90 -0
- package/src/utils/bignumber.ts +9 -19
- package/src/utils/bytes.ts +15 -16
- package/src/utils/crypto.ts +217 -0
- package/src/utils/encoder.ts +98 -0
- package/src/utils/errors.ts +817 -0
- package/src/utils/hd-wallet.ts +134 -0
- package/src/utils/json-big.ts +26 -0
- package/src/utils/keystore.ts +179 -0
- package/src/utils/mptree.ts +26 -20
- package/src/utils/other.ts +28 -43
- package/src/utils/string.ts +8 -10
- package/CHANGELOG.md +0 -1603
- package/es/account/base.js +0 -169
- package/es/account/base.js.map +0 -1
- package/es/account/memory.js +0 -84
- package/es/account/memory.js.map +0 -1
- package/es/account/multiple.js +0 -178
- package/es/account/multiple.js.map +0 -1
- package/es/ae/aens.js +0 -408
- package/es/ae/aens.js.map +0 -1
- package/es/ae/aepp.js +0 -45
- package/es/ae/aepp.js.map +0 -1
- package/es/ae/contract.js +0 -312
- package/es/ae/contract.js.map +0 -1
- package/es/ae/index.js +0 -206
- package/es/ae/index.js.map +0 -1
- package/es/ae/oracle.js +0 -322
- package/es/ae/oracle.js.map +0 -1
- package/es/ae/universal.js +0 -45
- package/es/ae/universal.js.map +0 -1
- package/es/ae/wallet.js +0 -50
- package/es/ae/wallet.js.map +0 -1
- package/es/amount-formatter.d.ts +0 -58
- package/es/bignumber.d.ts +0 -24
- package/es/chain/index.js +0 -256
- package/es/chain/index.js.map +0 -1
- package/es/chain/node.js +0 -394
- package/es/chain/node.js.map +0 -1
- package/es/channel/handlers.js.map +0 -1
- package/es/channel/index.js +0 -980
- package/es/channel/index.js.map +0 -1
- package/es/channel/internal.js +0 -266
- package/es/channel/internal.js.map +0 -1
- package/es/contract/aci/helpers.js +0 -298
- package/es/contract/aci/helpers.js.map +0 -1
- package/es/contract/aci/index.js +0 -361
- package/es/contract/aci/index.js.map +0 -1
- package/es/contract/aci/transformation.js +0 -66
- package/es/contract/aci/transformation.js.map +0 -1
- package/es/contract/compiler.js +0 -244
- package/es/contract/compiler.js.map +0 -1
- package/es/contract/ga/helpers.js +0 -22
- package/es/contract/ga/helpers.js.map +0 -1
- package/es/contract/ga/index.js +0 -170
- package/es/contract/ga/index.js.map +0 -1
- package/es/contract/index.js +0 -162
- package/es/contract/index.js.map +0 -1
- package/es/crypto-ts.d.ts +0 -9
- package/es/index.js +0 -57
- package/es/index.js.map +0 -1
- package/es/node-pool/index.js +0 -187
- package/es/node-pool/index.js.map +0 -1
- package/es/node.js +0 -132
- package/es/node.js.map +0 -1
- package/es/other.d.ts +0 -31
- package/es/string.d.ts +0 -26
- package/es/tx/builder/helpers.js +0 -305
- package/es/tx/builder/helpers.js.map +0 -1
- package/es/tx/builder/index.js +0 -595
- package/es/tx/builder/index.js.map +0 -1
- package/es/tx/builder/schema.js +0 -814
- package/es/tx/builder/schema.js.map +0 -1
- package/es/tx/index.js +0 -300
- package/es/tx/index.js.map +0 -1
- package/es/tx/tx-object.js +0 -276
- package/es/tx/tx-object.js.map +0 -1
- package/es/tx/tx.js +0 -937
- package/es/tx/tx.js.map +0 -1
- package/es/tx/validator.js +0 -208
- package/es/tx/validator.js.map +0 -1
- package/es/typings/blakejs/index.d.js +0 -2
- package/es/typings/blakejs/index.d.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -131
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -184
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.js +0 -84
- package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js +0 -97
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.js +0 -103
- package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -329
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -270
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -533
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.js +0 -107
- package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -109
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
- package/es/utils/amount-formatter.js.map +0 -1
- package/es/utils/async-init.js +0 -67
- package/es/utils/async-init.js.map +0 -1
- package/es/utils/bignumber.js +0 -28
- package/es/utils/bignumber.js.map +0 -1
- package/es/utils/bytes.js.map +0 -1
- package/es/utils/crypto-ts.js.map +0 -1
- package/es/utils/crypto.js +0 -304
- package/es/utils/crypto.js.map +0 -1
- package/es/utils/hd-wallet.js +0 -112
- package/es/utils/hd-wallet.js.map +0 -1
- package/es/utils/json-big.js +0 -45
- package/es/utils/json-big.js.map +0 -1
- package/es/utils/keystore.js +0 -228
- package/es/utils/keystore.js.map +0 -1
- package/es/utils/mptree.js.map +0 -1
- package/es/utils/other.js +0 -43
- package/es/utils/other.js.map +0 -1
- package/es/utils/semver-satisfies.js.map +0 -1
- package/es/utils/string.js.map +0 -1
- package/es/utils/swagger.js +0 -132
- package/es/utils/swagger.js.map +0 -1
- package/src/account/base.js +0 -153
- package/src/account/memory.js +0 -78
- package/src/account/multiple.js +0 -154
- package/src/ae/aens.js +0 -366
- package/src/ae/aepp.js +0 -45
- package/src/ae/contract.js +0 -285
- package/src/ae/index.js +0 -167
- package/src/ae/oracle.js +0 -296
- package/src/ae/universal.js +0 -47
- package/src/ae/wallet.js +0 -50
- package/src/chain/index.js +0 -250
- package/src/chain/node.js +0 -293
- package/src/channel/index.js +0 -898
- package/src/channel/internal.js +0 -231
- package/src/contract/aci/index.js +0 -317
- package/src/contract/aci/transformation.js +0 -72
- package/src/contract/compiler.js +0 -195
- package/src/contract/ga/helpers.js +0 -17
- package/src/contract/ga/index.js +0 -147
- package/src/contract/index.js +0 -163
- package/src/index.js +0 -90
- package/src/node-pool/index.js +0 -171
- package/src/node.js +0 -118
- package/src/tx/builder/helpers.js +0 -325
- package/src/tx/builder/index.js +0 -460
- package/src/tx/builder/schema.js +0 -1211
- package/src/tx/index.js +0 -301
- package/src/tx/tx-object.js +0 -186
- package/src/tx/tx.js +0 -622
- package/src/tx/validator.js +0 -161
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -114
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -161
- package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -85
- package/src/utils/aepp-wallet-communication/helpers.js +0 -70
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -268
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -223
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -390
- package/src/utils/aepp-wallet-communication/schema.js +0 -108
- package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -91
- package/src/utils/async-init.js +0 -41
- package/src/utils/crypto.js +0 -312
- package/src/utils/hd-wallet.js +0 -115
- package/src/utils/json-big.js +0 -26
- package/src/utils/keystore.js +0 -223
- package/src/utils/swagger.js +0 -133
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RPC handler for WAELLET side
|
|
3
|
-
*
|
|
4
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/wallet-rpc
|
|
5
|
-
* @export WalletRpc
|
|
6
|
-
* @example
|
|
7
|
-
* import WalletRpc from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/wallet-rpc'
|
|
8
|
-
*/
|
|
9
|
-
import { v4 as uuid } from 'uuid'
|
|
10
|
-
import Ae from '../../../ae'
|
|
11
|
-
import verifyTransaction from '../../../tx/validator'
|
|
12
|
-
import AccountMultiple from '../../../account/multiple'
|
|
13
|
-
import TxObject from '../../../tx/tx-object'
|
|
14
|
-
import RpcClient from './rpc-client'
|
|
15
|
-
import { getBrowserAPI, getHandler, isValidAccounts, message, resolveOnAccount, sendResponseMessage } from '../helpers'
|
|
16
|
-
import { ERRORS, METHODS, RPC_STATUS, VERSION, WALLET_TYPE } from '../schema'
|
|
17
|
-
|
|
18
|
-
const NOTIFICATIONS = {
|
|
19
|
-
[METHODS.closeConnection]: (instance, { client }) =>
|
|
20
|
-
async (msg) => {
|
|
21
|
-
client.disconnect(true)
|
|
22
|
-
instance.onDisconnect(msg.params, client)
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const RESPONSES = {}
|
|
27
|
-
|
|
28
|
-
const REQUESTS = {
|
|
29
|
-
// Store client info and prepare two fn for each client `connect` and `denyConnection`
|
|
30
|
-
// which automatically prepare and send response for that client
|
|
31
|
-
[METHODS.aepp.connect] (callInstance, instance, client, { name, networkId, version, icons }) {
|
|
32
|
-
// Check if protocol and network is compatible with wallet
|
|
33
|
-
if (version !== VERSION) return { error: ERRORS.unsupportedProtocol() }
|
|
34
|
-
|
|
35
|
-
// Store new AEPP and wait for connection approve
|
|
36
|
-
client.updateInfo({
|
|
37
|
-
status: RPC_STATUS.WAITING_FOR_CONNECTION_APPROVE,
|
|
38
|
-
name,
|
|
39
|
-
networkId,
|
|
40
|
-
icons,
|
|
41
|
-
version
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
// Call onConnection callBack to notice Wallet about new AEPP
|
|
45
|
-
return callInstance(
|
|
46
|
-
'onConnection',
|
|
47
|
-
{ name, networkId, version },
|
|
48
|
-
() => {
|
|
49
|
-
client.updateInfo({ status: RPC_STATUS.CONNECTED })
|
|
50
|
-
return { result: instance.getWalletInfo() }
|
|
51
|
-
},
|
|
52
|
-
(error) => {
|
|
53
|
-
client.updateInfo({ status: RPC_STATUS.CONNECTION_REJECTED })
|
|
54
|
-
return { error: ERRORS.connectionDeny(error) }
|
|
55
|
-
}
|
|
56
|
-
)
|
|
57
|
-
},
|
|
58
|
-
[METHODS.aepp.subscribeAddress] (callInstance, instance, client, { type, value }) {
|
|
59
|
-
// Authorization check
|
|
60
|
-
if (!client.isConnected()) return { error: ERRORS.notAuthorize() }
|
|
61
|
-
|
|
62
|
-
return callInstance(
|
|
63
|
-
'onSubscription',
|
|
64
|
-
{ type, value },
|
|
65
|
-
async ({ accounts } = {}) => {
|
|
66
|
-
try {
|
|
67
|
-
const clientAccounts = accounts || instance.getAccounts()
|
|
68
|
-
if (!isValidAccounts(clientAccounts)) throw new Error('Invalid provided accounts object')
|
|
69
|
-
const subscription = client.updateSubscription(type, value)
|
|
70
|
-
client.setAccounts(clientAccounts, { forceNotification: true })
|
|
71
|
-
return {
|
|
72
|
-
result: {
|
|
73
|
-
subscription,
|
|
74
|
-
address: clientAccounts
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
} catch (e) {
|
|
78
|
-
if (instance.debug) console.error(e)
|
|
79
|
-
return { error: ERRORS.internalError({ msg: e.message }) }
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
(error) => ({ error: ERRORS.rejectedByUser(error) })
|
|
83
|
-
)
|
|
84
|
-
},
|
|
85
|
-
[METHODS.aepp.address] (callInstance, instance, client) {
|
|
86
|
-
// Authorization check
|
|
87
|
-
if (!client.isConnected()) return { error: ERRORS.notAuthorize() }
|
|
88
|
-
if (!client.isSubscribed()) return { error: ERRORS.notAuthorize() }
|
|
89
|
-
|
|
90
|
-
return callInstance(
|
|
91
|
-
'onAskAccounts',
|
|
92
|
-
{},
|
|
93
|
-
({ accounts } = {}) => ({
|
|
94
|
-
result: accounts ||
|
|
95
|
-
[...Object.keys(client.accounts.current), ...Object.keys(client.accounts.connected)]
|
|
96
|
-
}),
|
|
97
|
-
(error) => ({ error: ERRORS.rejectedByUser(error) })
|
|
98
|
-
)
|
|
99
|
-
},
|
|
100
|
-
[METHODS.aepp.sign] (callInstance, instance, client, options) {
|
|
101
|
-
const { tx, onAccount, networkId, returnSigned = false } = options
|
|
102
|
-
const address = onAccount || client.currentAccount
|
|
103
|
-
// Update client with new networkId
|
|
104
|
-
networkId && client.updateInfo({ networkId })
|
|
105
|
-
// Authorization check
|
|
106
|
-
if (!client.isConnected()) return { error: ERRORS.notAuthorize() }
|
|
107
|
-
// Account permission check
|
|
108
|
-
if (!client.hasAccessToAccount(address)) {
|
|
109
|
-
return { error: ERRORS.permissionDeny({ account: address }) }
|
|
110
|
-
}
|
|
111
|
-
// NetworkId check
|
|
112
|
-
if (!networkId || networkId !== instance.getNetworkId()) {
|
|
113
|
-
return { error: ERRORS.unsupportedNetwork() }
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return callInstance(
|
|
117
|
-
'onSign',
|
|
118
|
-
{ tx, returnSigned, onAccount: address, txObject: TxObject.fromString(tx) },
|
|
119
|
-
async (rawTx, opt = {}) => {
|
|
120
|
-
let onAcc
|
|
121
|
-
try {
|
|
122
|
-
onAcc = resolveOnAccount(instance.addresses(), address, opt)
|
|
123
|
-
} catch (e) {
|
|
124
|
-
if (instance.debug) console.error(e)
|
|
125
|
-
return { error: ERRORS.internalError({ msg: e.message }) }
|
|
126
|
-
}
|
|
127
|
-
try {
|
|
128
|
-
const t = rawTx || tx
|
|
129
|
-
const result = returnSigned
|
|
130
|
-
? { signedTransaction: await instance.signTransaction(t, { onAccount: onAcc }) }
|
|
131
|
-
: { transactionHash: await instance.send(t, { onAccount: onAcc, verify: false }) }
|
|
132
|
-
return { result }
|
|
133
|
-
} catch (e) {
|
|
134
|
-
if (!returnSigned) {
|
|
135
|
-
// Validate transaction
|
|
136
|
-
const validation = await verifyTransaction(rawTx || tx, instance.selectedNode.instance)
|
|
137
|
-
if (validation.length) return { error: ERRORS.invalidTransaction(validation) }
|
|
138
|
-
// Send broadcast failed error to aepp
|
|
139
|
-
return { error: ERRORS.broadcastFailed(e.message) }
|
|
140
|
-
}
|
|
141
|
-
throw e
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
(error) => ({ error: ERRORS.rejectedByUser(error) })
|
|
145
|
-
)
|
|
146
|
-
},
|
|
147
|
-
[METHODS.aepp.signMessage] (callInstance, instance, client, { message, onAccount }) {
|
|
148
|
-
// Authorization check
|
|
149
|
-
if (!client.isConnected()) return { error: ERRORS.notAuthorize() }
|
|
150
|
-
const address = onAccount || client.currentAccount
|
|
151
|
-
if (!client.hasAccessToAccount(address)) {
|
|
152
|
-
return { error: ERRORS.permissionDeny({ account: address }) }
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
return callInstance(
|
|
156
|
-
'onMessageSign',
|
|
157
|
-
{ message, onAccount: address },
|
|
158
|
-
async (opt = {}) => {
|
|
159
|
-
try {
|
|
160
|
-
const onAcc = resolveOnAccount(instance.addresses(), address, opt)
|
|
161
|
-
return {
|
|
162
|
-
result: {
|
|
163
|
-
signature: await instance.signMessage(message, {
|
|
164
|
-
onAccount: onAcc,
|
|
165
|
-
returnHex: true
|
|
166
|
-
})
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
} catch (e) {
|
|
170
|
-
if (instance.debug) console.error(e)
|
|
171
|
-
return { error: ERRORS.internalError({ msg: e.message }) }
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
(error) => ({ error: ERRORS.rejectedByUser(error) })
|
|
175
|
-
)
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const handleMessage = (instance, id) => async (msg, origin) => {
|
|
180
|
-
const client = instance.rpcClients[id]
|
|
181
|
-
if (!msg.id) {
|
|
182
|
-
return getHandler(
|
|
183
|
-
NOTIFICATIONS, msg, { debug: instance.debug }
|
|
184
|
-
)(instance, { client })(msg, origin)
|
|
185
|
-
}
|
|
186
|
-
if (Object.prototype.hasOwnProperty.call(client.callbacks, msg.id)) {
|
|
187
|
-
return getHandler(RESPONSES, msg, { debug: instance.debug })(instance, { client })(msg, origin)
|
|
188
|
-
} else {
|
|
189
|
-
const { id, method } = msg
|
|
190
|
-
const callInstance = (methodName, params, accept, deny) => () => new Promise(resolve => {
|
|
191
|
-
instance[methodName](
|
|
192
|
-
client,
|
|
193
|
-
{
|
|
194
|
-
id,
|
|
195
|
-
method,
|
|
196
|
-
params,
|
|
197
|
-
accept: (...args) => resolve(accept(...args)),
|
|
198
|
-
deny: (...args) => resolve(deny(...args))
|
|
199
|
-
},
|
|
200
|
-
origin
|
|
201
|
-
)
|
|
202
|
-
})
|
|
203
|
-
// TODO make one structure for handler functions
|
|
204
|
-
const errorObjectOrHandler = getHandler(REQUESTS, msg, { debug: instance.debug })(
|
|
205
|
-
callInstance, instance, client, msg.params
|
|
206
|
-
)
|
|
207
|
-
const response = typeof errorObjectOrHandler === 'function' ? await errorObjectOrHandler() : errorObjectOrHandler
|
|
208
|
-
sendResponseMessage(client)(id, method, response)
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Contain functionality for aepp interaction and managing multiple aepps
|
|
214
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/wallet-rpc
|
|
215
|
-
* @function
|
|
216
|
-
* @rtype Stamp
|
|
217
|
-
* @param {Object} param Init params object
|
|
218
|
-
* @param {String=} [param.name] Wallet name
|
|
219
|
-
* @param {Function} onConnection Call-back function for incoming AEPP connection
|
|
220
|
-
* @param {Function} onSubscription Call-back function for incoming AEPP account subscription
|
|
221
|
-
* @param {Function} onSign Call-back function for incoming AEPP sign request
|
|
222
|
-
* @param {Function} onAskAccounts Call-back function for incoming AEPP get address request
|
|
223
|
-
* @param {Function} onMessageSign Call-back function for incoming AEPP sign message request
|
|
224
|
-
* Second argument of incoming call-backs contain function for accept/deny request
|
|
225
|
-
* @param {Function} onDisconnect Call-back function for disconnect event
|
|
226
|
-
* @return {Object}
|
|
227
|
-
*/
|
|
228
|
-
export default Ae.compose(AccountMultiple, {
|
|
229
|
-
init ({
|
|
230
|
-
name,
|
|
231
|
-
onConnection,
|
|
232
|
-
onSubscription,
|
|
233
|
-
onSign,
|
|
234
|
-
onDisconnect,
|
|
235
|
-
onAskAccounts,
|
|
236
|
-
onMessageSign,
|
|
237
|
-
forceValidation = false,
|
|
238
|
-
debug = false
|
|
239
|
-
} = {}) {
|
|
240
|
-
this.debug = debug
|
|
241
|
-
const eventsHandlers = [
|
|
242
|
-
'onConnection', 'onSubscription', 'onSign', 'onDisconnect', 'onMessageSign'
|
|
243
|
-
]
|
|
244
|
-
// CallBacks for events
|
|
245
|
-
this.onConnection = onConnection
|
|
246
|
-
this.onSubscription = onSubscription
|
|
247
|
-
this.onSign = onSign
|
|
248
|
-
this.onDisconnect = onDisconnect
|
|
249
|
-
this.onAskAccounts = onAskAccounts
|
|
250
|
-
this.onMessageSign = onMessageSign
|
|
251
|
-
this.rpcClients = {}
|
|
252
|
-
|
|
253
|
-
eventsHandlers.forEach(event => {
|
|
254
|
-
if (!forceValidation && typeof this[event] !== 'function') {
|
|
255
|
-
throw new Error(`Call-back for ${event} must be an function!`)
|
|
256
|
-
}
|
|
257
|
-
})
|
|
258
|
-
//
|
|
259
|
-
this.name = name
|
|
260
|
-
this.id = uuid()
|
|
261
|
-
|
|
262
|
-
const _selectAccount = this.selectAccount.bind(this)
|
|
263
|
-
const _addAccount = this.addAccount.bind(this)
|
|
264
|
-
const _selectNode = this.selectNode.bind(this)
|
|
265
|
-
|
|
266
|
-
// Overwrite AE methods
|
|
267
|
-
this.selectAccount = (address, { condition = () => true } = {}) => {
|
|
268
|
-
_selectAccount(address)
|
|
269
|
-
Object.values(this.rpcClients)
|
|
270
|
-
.filter(client => client.isConnected() && client.isSubscribed() &&
|
|
271
|
-
client.hasAccessToAccount(address) && condition(client))
|
|
272
|
-
.forEach(client => client.setAccounts({
|
|
273
|
-
current: { [address]: {} },
|
|
274
|
-
connected: {
|
|
275
|
-
...client.accounts.current,
|
|
276
|
-
...Object.entries(client.accounts.connected)
|
|
277
|
-
.filter(([k, v]) => k !== address)
|
|
278
|
-
.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})
|
|
279
|
-
}
|
|
280
|
-
}))
|
|
281
|
-
}
|
|
282
|
-
this.addAccount = async (account, { select, meta = {}, condition = () => true } = {}) => {
|
|
283
|
-
await _addAccount(account, { select })
|
|
284
|
-
const address = await account.address()
|
|
285
|
-
// Send notification 'update.address' to all Aepp which are subscribed for connected accounts
|
|
286
|
-
Object.values(this.rpcClients)
|
|
287
|
-
.filter(client => client.isConnected() && client.isSubscribed() && condition(client))
|
|
288
|
-
.forEach(client => client.setAccounts({
|
|
289
|
-
current: { ...select ? { [address]: meta } : client.accounts.current },
|
|
290
|
-
connected: {
|
|
291
|
-
...select ? client.accounts.current : { [address]: meta },
|
|
292
|
-
...client.accounts.connected
|
|
293
|
-
}
|
|
294
|
-
}))
|
|
295
|
-
}
|
|
296
|
-
this.selectNode = (name) => {
|
|
297
|
-
_selectNode(name)
|
|
298
|
-
// Send notification 'update.network' to all Aepp which connected
|
|
299
|
-
Object.values(this.rpcClients)
|
|
300
|
-
.filter(client => client.isConnected())
|
|
301
|
-
.forEach(client => client.sendMessage(
|
|
302
|
-
message(METHODS.updateNetwork, { networkId: this.getNetworkId() }), true
|
|
303
|
-
))
|
|
304
|
-
}
|
|
305
|
-
},
|
|
306
|
-
methods: {
|
|
307
|
-
/**
|
|
308
|
-
* Remove specific RpcClient by ID
|
|
309
|
-
* @function removeRpcClient
|
|
310
|
-
* @instance
|
|
311
|
-
* @rtype (id: string) => void
|
|
312
|
-
* @param {String} id Client ID
|
|
313
|
-
* @param {Object} [opt = {}]
|
|
314
|
-
* @return {void}
|
|
315
|
-
*/
|
|
316
|
-
removeRpcClient (id, { forceConnectionClose = false } = {}) {
|
|
317
|
-
const client = this.rpcClients[id]
|
|
318
|
-
if (!client) throw new Error(`RpcClient with id ${id} do not exist`)
|
|
319
|
-
client.disconnect(forceConnectionClose)
|
|
320
|
-
delete this.rpcClients[id]
|
|
321
|
-
},
|
|
322
|
-
/**
|
|
323
|
-
* Add new client by AEPP connection
|
|
324
|
-
* @function addRpcClient
|
|
325
|
-
* @instance
|
|
326
|
-
* @rtype (clientConnection: Object) => Object
|
|
327
|
-
* @param {Object} clientConnection AEPP connection object
|
|
328
|
-
* @return {String} Client ID
|
|
329
|
-
*/
|
|
330
|
-
addRpcClient (clientConnection) {
|
|
331
|
-
// @TODO detect if aepp has some history based on origin????
|
|
332
|
-
// if yes use this instance for connection
|
|
333
|
-
const id = uuid()
|
|
334
|
-
this.rpcClients[id] = RpcClient({
|
|
335
|
-
id,
|
|
336
|
-
info: { status: RPC_STATUS.WAITING_FOR_CONNECTION_REQUEST },
|
|
337
|
-
connection: clientConnection,
|
|
338
|
-
handlers: [handleMessage(this, id), this.onDisconnect]
|
|
339
|
-
})
|
|
340
|
-
return id
|
|
341
|
-
},
|
|
342
|
-
/**
|
|
343
|
-
* Share wallet info
|
|
344
|
-
* Send shareWalletInfo message to notify AEPP about wallet
|
|
345
|
-
* @function shareWalletInfo
|
|
346
|
-
* @instance
|
|
347
|
-
* @rtype (postFn: Function) => void
|
|
348
|
-
* @param {Function} postFn Send message function like `(msg) => void`
|
|
349
|
-
* @return {void}
|
|
350
|
-
*/
|
|
351
|
-
shareWalletInfo (postFn) {
|
|
352
|
-
postFn({
|
|
353
|
-
jsonrpc: '2.0',
|
|
354
|
-
...message(METHODS.wallet.readyToConnect, this.getWalletInfo())
|
|
355
|
-
})
|
|
356
|
-
},
|
|
357
|
-
/**
|
|
358
|
-
* Get Wallet info object
|
|
359
|
-
* @function getWalletInfo
|
|
360
|
-
* @instance
|
|
361
|
-
* @rtype () => Object
|
|
362
|
-
* @return {Object} Object with wallet information(id, name, network, ...)
|
|
363
|
-
*/
|
|
364
|
-
getWalletInfo () {
|
|
365
|
-
const runtime = getBrowserAPI(true).runtime
|
|
366
|
-
return {
|
|
367
|
-
id: runtime && runtime.id ? runtime.id : this.id,
|
|
368
|
-
name: this.name,
|
|
369
|
-
networkId: this.getNetworkId(),
|
|
370
|
-
origin: window.location.origin,
|
|
371
|
-
type: runtime && runtime.id ? WALLET_TYPE.extension : WALLET_TYPE.window
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
/**
|
|
375
|
-
* Get Wallet accounts
|
|
376
|
-
* @function getAccounts
|
|
377
|
-
* @instance
|
|
378
|
-
* @rtype () => Object
|
|
379
|
-
* @return {Object} Object with accounts information({ connected: Object, current: Object })
|
|
380
|
-
*/
|
|
381
|
-
getAccounts () {
|
|
382
|
-
return {
|
|
383
|
-
current: this.selectedAddress ? { [this.selectedAddress]: {} } : {},
|
|
384
|
-
connected: this.addresses()
|
|
385
|
-
.filter(a => a !== this.selectedAddress)
|
|
386
|
-
.reduce((acc, a) => ({ ...acc, [a]: {} }), {})
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
})
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
const asEnum = (array) => Object.fromEntries(array.map(a => [a, a]))
|
|
2
|
-
|
|
3
|
-
export const VERSION = 1
|
|
4
|
-
|
|
5
|
-
export const MESSAGE_DIRECTION = asEnum(['to_waellet', 'to_aepp'])
|
|
6
|
-
|
|
7
|
-
export const WALLET_TYPE = asEnum([
|
|
8
|
-
'window',
|
|
9
|
-
'extension'
|
|
10
|
-
])
|
|
11
|
-
|
|
12
|
-
export const NOTIFICATIONS = asEnum([
|
|
13
|
-
'readyToConnect',
|
|
14
|
-
'closeConnection',
|
|
15
|
-
'updateNetwork',
|
|
16
|
-
'updateAddress'
|
|
17
|
-
])
|
|
18
|
-
|
|
19
|
-
export const REQUESTS = asEnum([
|
|
20
|
-
'connect',
|
|
21
|
-
'subscribeAddress',
|
|
22
|
-
'sign',
|
|
23
|
-
'address',
|
|
24
|
-
'signMessage'
|
|
25
|
-
])
|
|
26
|
-
|
|
27
|
-
export const SUBSCRIPTION_VALUES = asEnum([
|
|
28
|
-
'current',
|
|
29
|
-
'connected'
|
|
30
|
-
])
|
|
31
|
-
|
|
32
|
-
export const SUBSCRIPTION_TYPES = asEnum([
|
|
33
|
-
'subscribe',
|
|
34
|
-
'unsubscribe'
|
|
35
|
-
])
|
|
36
|
-
|
|
37
|
-
export const METHODS = {
|
|
38
|
-
wallet: {
|
|
39
|
-
[NOTIFICATIONS.readyToConnect]: 'connection.announcePresence',
|
|
40
|
-
[NOTIFICATIONS.updateAddress]: 'address.update'
|
|
41
|
-
},
|
|
42
|
-
aepp: {
|
|
43
|
-
[REQUESTS.address]: 'address.get',
|
|
44
|
-
[REQUESTS.connect]: 'connection.open',
|
|
45
|
-
[REQUESTS.sign]: 'transaction.sign',
|
|
46
|
-
[REQUESTS.signMessage]: 'message.sign',
|
|
47
|
-
[REQUESTS.subscribeAddress]: 'address.subscribe'
|
|
48
|
-
},
|
|
49
|
-
[NOTIFICATIONS.updateNetwork]: 'networkId.update',
|
|
50
|
-
[NOTIFICATIONS.closeConnection]: 'connection.close'
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export const RPC_STATUS = {
|
|
54
|
-
CONNECTED: 'CONNECTED',
|
|
55
|
-
DISCONNECTED: 'DISCONNECTED',
|
|
56
|
-
CONNECTION_REJECTED: 'CONNECTION_REJECTED',
|
|
57
|
-
WAITING_FOR_CONNECTION_APPROVE: 'WAITING_FOR_CONNECTION_APPROVE',
|
|
58
|
-
WAITING_FOR_CONNECTION_REQUEST: 'WAITING_FOR_CONNECTION_REQUEST',
|
|
59
|
-
WAITING_FOR_SUBSCRIPTION: 'WAITING_FOR_SUBSCRIPTION'
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export const ERRORS = {
|
|
63
|
-
broadcastFailed: (error = {}) => ({
|
|
64
|
-
code: 3,
|
|
65
|
-
data: error,
|
|
66
|
-
message: 'Broadcast failed'
|
|
67
|
-
}),
|
|
68
|
-
invalidTransaction: (error = {}) => ({
|
|
69
|
-
code: 2,
|
|
70
|
-
data: error,
|
|
71
|
-
message: 'Invalid transaction'
|
|
72
|
-
}),
|
|
73
|
-
rejectedByUser: (error = {}) => ({
|
|
74
|
-
code: 4,
|
|
75
|
-
data: error,
|
|
76
|
-
message: 'Operation rejected by user'
|
|
77
|
-
}),
|
|
78
|
-
connectionDeny: (error = {}) => ({
|
|
79
|
-
code: 9,
|
|
80
|
-
data: error,
|
|
81
|
-
message: 'Wallet deny your connection request'
|
|
82
|
-
}),
|
|
83
|
-
permissionDeny: (error = {}) => ({
|
|
84
|
-
code: 11,
|
|
85
|
-
data: error,
|
|
86
|
-
message: `You are not subscribed for account ${error.account}`
|
|
87
|
-
}),
|
|
88
|
-
internalError: (error = {}) => ({
|
|
89
|
-
code: 12,
|
|
90
|
-
data: error,
|
|
91
|
-
message: error.msg
|
|
92
|
-
}),
|
|
93
|
-
notAuthorize: (error = {}) => ({
|
|
94
|
-
code: 10,
|
|
95
|
-
data: error,
|
|
96
|
-
message: 'You are not connected to the wallet'
|
|
97
|
-
}),
|
|
98
|
-
unsupportedProtocol: (error = {}) => ({
|
|
99
|
-
code: 5,
|
|
100
|
-
data: error,
|
|
101
|
-
message: 'Unsupported Protocol Version'
|
|
102
|
-
}),
|
|
103
|
-
unsupportedNetwork: (error = {}) => ({
|
|
104
|
-
code: 8,
|
|
105
|
-
data: error,
|
|
106
|
-
message: 'Unsupported Network'
|
|
107
|
-
})
|
|
108
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2018 aeternity developers
|
|
4
|
-
*
|
|
5
|
-
* Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
* purpose with or without fee is hereby granted, provided that the above
|
|
7
|
-
* copyright notice and this permission notice appear in all copies.
|
|
8
|
-
*
|
|
9
|
-
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
-
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
-
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
-
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
-
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
-
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
-
* PERFORMANCE OF THIS SOFTWARE.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Wallet Detector
|
|
20
|
-
*
|
|
21
|
-
* This is the complement to {@link module:@aeternity/aepp-sdk/es/utils}.
|
|
22
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/wallet-detector
|
|
23
|
-
* @export WalletDetector
|
|
24
|
-
*/
|
|
25
|
-
import stampit from '@stamp/it'
|
|
26
|
-
import BrowserWindowMessageConnection from './connection/browser-window-message'
|
|
27
|
-
import { MESSAGE_DIRECTION, METHODS } from './schema'
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* WalletDetector stamp
|
|
31
|
-
* @function
|
|
32
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/wallet-detector
|
|
33
|
-
* @rtype Stamp
|
|
34
|
-
* @param {Object} params={} - Initializer object
|
|
35
|
-
* @param {WalletConnection} params.connection - Connection for listening for wallets
|
|
36
|
-
* @return {WalletDetector}
|
|
37
|
-
*/
|
|
38
|
-
export default stampit({
|
|
39
|
-
init ({ connection } = {}) {
|
|
40
|
-
if (!window) throw new Error('Window object not found, you can run wallet detector only in browser')
|
|
41
|
-
this.connection = connection || BrowserWindowMessageConnection({ connectionInfo: { id: 'spy' } })
|
|
42
|
-
this.wallets = {}
|
|
43
|
-
},
|
|
44
|
-
methods: {
|
|
45
|
-
/**
|
|
46
|
-
* Start scanning
|
|
47
|
-
* @function scan
|
|
48
|
-
* @instance
|
|
49
|
-
* @param {Function} onDetected Call-back function which trigger on new wallet
|
|
50
|
-
* @return {void}
|
|
51
|
-
*/
|
|
52
|
-
scan (onDetected) {
|
|
53
|
-
const { wallets } = this
|
|
54
|
-
this.connection.connect(({ method, params }, origin, source) => {
|
|
55
|
-
if (
|
|
56
|
-
!method || !params ||
|
|
57
|
-
method !== METHODS.wallet.readyToConnect || wallets[params.id]
|
|
58
|
-
) return
|
|
59
|
-
|
|
60
|
-
const wallet = {
|
|
61
|
-
...params,
|
|
62
|
-
async getConnection () {
|
|
63
|
-
// if detect extension wallet or page wallet
|
|
64
|
-
const isExtension = this.type === 'extension'
|
|
65
|
-
const origin = isExtension ? window.origin : this.origin
|
|
66
|
-
return BrowserWindowMessageConnection({
|
|
67
|
-
connectionInfo: this,
|
|
68
|
-
sendDirection: isExtension ? MESSAGE_DIRECTION.to_waellet : undefined,
|
|
69
|
-
receiveDirection: isExtension ? MESSAGE_DIRECTION.to_aepp : undefined,
|
|
70
|
-
target: source,
|
|
71
|
-
origin
|
|
72
|
-
})
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
wallets[wallet.id] = wallet
|
|
76
|
-
onDetected({ wallets, newWallet: wallet })
|
|
77
|
-
})
|
|
78
|
-
if (Object.keys(wallets).length) onDetected({ wallets })
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Stop scanning
|
|
83
|
-
* @function stopScan
|
|
84
|
-
* @instance
|
|
85
|
-
* @return {void}
|
|
86
|
-
*/
|
|
87
|
-
stopScan () {
|
|
88
|
-
this.connection.disconnect()
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
})
|
package/src/utils/async-init.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2018 aeternity developers
|
|
4
|
-
*
|
|
5
|
-
* Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
* purpose with or without fee is hereby granted, provided that the above
|
|
7
|
-
* copyright notice and this permission notice appear in all copies.
|
|
8
|
-
*
|
|
9
|
-
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
-
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
-
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
-
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
-
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
-
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
-
* PERFORMANCE OF THIS SOFTWARE.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import stampit from '@stamp/it'
|
|
19
|
-
import * as R from 'ramda'
|
|
20
|
-
|
|
21
|
-
function asyncInit (options = {}, { stamp, args, instance }) {
|
|
22
|
-
return stamp.compose.deepConfiguration.AsyncInit.initializers.reduce(async (instance, init) => {
|
|
23
|
-
instance = await Promise.resolve(instance)
|
|
24
|
-
if (typeof init === 'function') {
|
|
25
|
-
const ret = await Promise.resolve(init.call(instance, options, { stamp, args, instance }))
|
|
26
|
-
return ret === undefined ? instance : ret
|
|
27
|
-
}
|
|
28
|
-
return instance
|
|
29
|
-
}, instance)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const AsyncInit = stampit({
|
|
33
|
-
deepConf: { AsyncInit: { initializers: [] } },
|
|
34
|
-
composers ({ stamp, composables }) {
|
|
35
|
-
const conf = stamp.compose.deepConfiguration.AsyncInit
|
|
36
|
-
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 || []))))
|
|
37
|
-
stamp.compose.initializers = [asyncInit]
|
|
38
|
-
}
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
export default AsyncInit
|