@aeternity/aepp-sdk 11.0.0 → 12.1.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/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -22
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +2 -1
- package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +20764 -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 +70 -0
- package/es/AeSdkAepp.mjs +176 -0
- package/es/AeSdkAepp.mjs.map +1 -0
- package/es/AeSdkBase.d.ts +213 -0
- package/es/AeSdkBase.mjs +314 -0
- package/es/AeSdkBase.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +104 -0
- package/es/AeSdkWallet.mjs +326 -0
- package/es/AeSdkWallet.mjs.map +1 -0
- package/es/Node.d.ts +41 -0
- package/es/Node.mjs +147 -0
- package/es/Node.mjs.map +1 -0
- package/es/account/Base.d.ts +68 -0
- package/es/account/Base.mjs +123 -0
- package/es/account/Base.mjs.map +1 -0
- package/es/account/Memory.d.ts +26 -0
- package/es/account/Memory.mjs +103 -0
- package/es/account/Memory.mjs.map +1 -0
- package/es/account/Rpc.d.ts +27 -0
- package/es/account/Rpc.mjs +80 -0
- package/es/account/Rpc.mjs.map +1 -0
- package/es/aens.d.ts +222 -0
- package/es/aens.mjs +338 -0
- package/es/aens.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/Browser.d.ts +33 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs +73 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +58 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +146 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection-proxy.d.ts +11 -0
- package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +16 -11
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -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 +105 -46
- package/es/aepp-wallet-communication/schema.mjs +251 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/aepp-wallet-communication/wallet-detector.d.ts +25 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs +62 -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 +1065 -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 +4166 -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 +248 -0
- package/es/chain.mjs +560 -0
- package/es/chain.mjs.map +1 -0
- package/es/channel/handlers.d.ts +34 -0
- package/es/channel/handlers.mjs +164 -131
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/index.d.ts +625 -0
- package/es/channel/index.mjs +897 -902
- package/es/channel/index.mjs.map +1 -1
- package/es/channel/internal.d.ts +101 -0
- package/es/channel/internal.mjs +138 -88
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Compiler.d.ts +18 -0
- package/es/contract/Compiler.mjs +68 -0
- package/es/contract/Compiler.mjs.map +1 -0
- package/es/contract/aci.d.ts +127 -0
- package/es/contract/aci.mjs +225 -193
- package/es/contract/aci.mjs.map +1 -1
- package/es/contract/ga.d.ts +69 -0
- package/es/contract/ga.mjs +195 -0
- package/es/contract/ga.mjs.map +1 -0
- package/es/contract/methods.d.ts +71 -0
- package/es/contract/methods.mjs +104 -0
- package/es/contract/methods.mjs.map +1 -0
- package/es/deprecated/index.d.ts +143 -0
- package/es/deprecated/index.mjs +162 -0
- package/es/deprecated/index.mjs.map +1 -0
- package/es/deprecated/methods.d.ts +18 -0
- package/es/deprecated/methods.mjs +26 -0
- package/es/deprecated/methods.mjs.map +1 -0
- package/es/index.d.ts +35 -0
- package/es/index.mjs +35 -40
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +161 -0
- package/es/oracle.mjs +306 -0
- package/es/oracle.mjs.map +1 -0
- package/es/spend.d.ts +62 -0
- package/es/spend.mjs +111 -0
- package/es/spend.mjs.map +1 -0
- package/es/tx/builder/address.d.ts +25 -0
- package/es/tx/builder/address.mjs +45 -0
- package/es/tx/builder/address.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +70 -0
- package/es/tx/builder/constants.mjs +122 -0
- package/es/tx/builder/constants.mjs.map +1 -0
- package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
- package/es/tx/builder/field-types/coin-amount.mjs +26 -0
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
- package/es/tx/builder/field-types/deposit.d.ts +15 -0
- package/es/tx/builder/field-types/deposit.mjs +19 -0
- package/es/tx/builder/field-types/deposit.mjs.map +1 -0
- package/es/tx/builder/field-types/fee.d.ts +25 -0
- package/es/tx/builder/field-types/fee.mjs +150 -0
- package/es/tx/builder/field-types/fee.mjs.map +1 -0
- package/es/tx/builder/field-types/field.d.ts +6 -0
- package/es/tx/builder/field-types/field.mjs +15 -0
- package/es/tx/builder/field-types/field.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
- package/es/tx/builder/field-types/gas-limit.mjs +33 -0
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-price.d.ts +8 -0
- package/es/tx/builder/field-types/gas-price.mjs +18 -0
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
- package/es/tx/builder/field-types/index.d.ts +70 -0
- package/es/tx/builder/field-types/index.mjs +25 -0
- package/es/tx/builder/field-types/index.mjs.map +1 -0
- package/es/tx/builder/field-types/name-fee.d.ts +20 -0
- package/es/tx/builder/field-types/name-fee.mjs +24 -0
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
- package/es/tx/builder/field-types/name-id.d.ts +14 -0
- package/es/tx/builder/field-types/name-id.mjs +19 -0
- package/es/tx/builder/field-types/name-id.mjs.map +1 -0
- package/es/tx/builder/field-types/name.d.ts +13 -0
- package/es/tx/builder/field-types/name.mjs +18 -0
- package/es/tx/builder/field-types/name.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
- package/es/tx/builder/field-types/short-u-int.mjs +12 -0
- package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
- package/es/tx/builder/field-types/u-int.d.ts +8 -0
- package/es/tx/builder/field-types/u-int.mjs +14 -0
- package/es/tx/builder/field-types/u-int.mjs.map +1 -0
- package/es/tx/builder/helpers.d.ts +125 -0
- package/es/tx/builder/helpers.mjs +94 -240
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +88 -0
- package/es/tx/builder/index.mjs +167 -358
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +1201 -0
- package/es/tx/builder/schema.mjs +175 -664
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +64 -0
- package/es/tx/index.mjs +151 -265
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/validator.d.ts +20 -0
- package/es/tx/validator.mjs +104 -124
- package/es/tx/validator.mjs.map +1 -1
- 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.map +1 -1
- package/es/typings/sha-js/index.d.mjs +2 -0
- package/es/typings/sha-js/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.mjs +36 -49
- package/es/utils/amount-formatter.mjs.map +1 -1
- 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 +11 -8
- package/es/utils/bignumber.mjs.map +1 -1
- package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
- package/es/utils/bytes.mjs +11 -15
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +88 -0
- package/es/utils/crypto.mjs +64 -108
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder-types.d.ts +61 -0
- package/es/utils/encoder-types.mjs +36 -0
- package/es/utils/encoder-types.mjs.map +1 -0
- package/es/utils/encoder.d.ts +25 -0
- package/es/utils/encoder.mjs +118 -0
- package/es/utils/encoder.mjs.map +1 -0
- package/es/{errors.d.ts → utils/errors.d.ts} +246 -59
- package/es/utils/errors.mjs +313 -136
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +50 -0
- package/es/utils/hd-wallet.mjs +86 -45
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +12 -16
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +101 -194
- package/es/utils/keystore.mjs.map +1 -1
- package/es/{mptree.d.ts → utils/mptree.d.ts} +6 -9
- package/es/utils/mptree.mjs +22 -18
- package/es/utils/mptree.mjs.map +1 -1
- package/es/utils/other.d.ts +20 -0
- package/es/utils/other.mjs +32 -35
- package/es/utils/other.mjs.map +1 -1
- package/es/utils/semver-satisfies.d.ts +1 -0
- package/es/utils/semver-satisfies.mjs +2 -2
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.d.ts +24 -0
- package/es/utils/string.mjs +8 -10
- package/es/utils/string.mjs.map +1 -1
- package/package.json +56 -42
- package/src/AeSdk.ts +68 -0
- package/src/AeSdkAepp.ts +176 -0
- package/src/AeSdkBase.ts +338 -0
- package/src/AeSdkWallet.ts +348 -0
- package/src/Node.ts +173 -0
- package/src/account/Base.ts +124 -0
- package/src/account/Memory.ts +98 -0
- package/src/account/Rpc.ts +69 -0
- package/src/aens.ts +407 -0
- package/src/aepp-wallet-communication/connection/Browser.ts +71 -0
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +59 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +122 -0
- package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +18 -18
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +143 -0
- package/src/aepp-wallet-communication/rpc/types.ts +66 -0
- package/src/aepp-wallet-communication/schema.ts +224 -0
- package/src/aepp-wallet-communication/wallet-detector.ts +72 -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 +10080 -0
- package/src/apis/node/index.ts +2 -0
- package/src/apis/node/models/index.ts +1257 -0
- package/src/apis/node/models/mappers.ts +4280 -0
- package/src/apis/node/models/parameters.ts +188 -0
- package/src/apis/node/node.ts +1299 -0
- package/src/chain.ts +502 -0
- package/src/channel/handlers.ts +817 -0
- package/src/channel/index.ts +1025 -0
- package/src/channel/internal.ts +361 -0
- package/src/contract/Compiler.ts +67 -0
- package/src/contract/aci.ts +538 -0
- package/src/contract/ga.ts +199 -0
- package/src/contract/methods.ts +123 -0
- package/src/deprecated/index.ts +170 -0
- package/src/deprecated/methods.ts +25 -0
- package/src/index.ts +56 -0
- package/src/oracle.ts +364 -0
- package/src/spend.ts +164 -0
- package/src/tx/builder/address.ts +50 -0
- package/src/tx/builder/constants.ts +126 -0
- package/src/tx/builder/field-types/coin-amount.ts +27 -0
- package/src/tx/builder/field-types/deposit.ts +21 -0
- package/src/tx/builder/field-types/fee.ts +143 -0
- package/src/tx/builder/field-types/field.ts +9 -0
- package/src/tx/builder/field-types/gas-limit.ts +41 -0
- package/src/tx/builder/field-types/gas-price.ts +16 -0
- package/src/tx/builder/field-types/index.ts +45 -0
- package/src/tx/builder/field-types/name-fee.ts +32 -0
- package/src/tx/builder/field-types/name-id.ts +20 -0
- package/src/tx/builder/field-types/name.ts +18 -0
- package/src/tx/builder/field-types/short-u-int.ts +11 -0
- package/src/tx/builder/field-types/u-int.ts +16 -0
- package/src/tx/builder/helpers.ts +248 -0
- package/src/tx/builder/index.ts +400 -0
- package/src/tx/builder/schema.ts +727 -0
- package/src/tx/index.ts +192 -0
- package/src/tx/validator.ts +230 -0
- package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
- package/src/typings/@aeternity__uuid/index.d.ts +5 -0
- package/src/typings/bip32-path/index.d.ts +33 -0
- package/src/typings/blakejs/index.d.ts +4 -32
- package/src/typings/sha-js/index.d.ts +5 -0
- package/src/typings/tweetnacl-auth/index.d.ts +14 -0
- package/src/utils/amount-formatter.ts +56 -69
- package/src/utils/autorest.ts +93 -0
- package/src/utils/bignumber.ts +11 -12
- package/src/utils/bytes.ts +29 -31
- package/src/utils/crypto.ts +205 -0
- package/src/utils/encoder-types.ts +63 -0
- package/src/utils/encoder.ts +146 -0
- package/src/utils/errors.ts +482 -366
- package/src/utils/hd-wallet.ts +166 -0
- package/src/utils/json-big.ts +27 -0
- package/src/utils/keystore.ts +182 -0
- package/src/utils/mptree.ts +64 -61
- package/src/utils/other.ts +34 -41
- package/src/utils/semver-satisfies.ts +15 -11
- package/src/utils/string.ts +18 -20
- package/es/account/base.mjs +0 -179
- package/es/account/base.mjs.map +0 -1
- package/es/account/memory.mjs +0 -99
- package/es/account/memory.mjs.map +0 -1
- package/es/account/multiple.mjs +0 -179
- package/es/account/multiple.mjs.map +0 -1
- package/es/ae/aens.mjs +0 -404
- package/es/ae/aens.mjs.map +0 -1
- package/es/ae/aepp.mjs +0 -45
- package/es/ae/aepp.mjs.map +0 -1
- package/es/ae/contract.mjs +0 -159
- package/es/ae/contract.mjs.map +0 -1
- package/es/ae/index.mjs +0 -207
- package/es/ae/index.mjs.map +0 -1
- package/es/ae/oracle.mjs +0 -339
- package/es/ae/oracle.mjs.map +0 -1
- package/es/ae/universal.mjs +0 -45
- package/es/ae/universal.mjs.map +0 -1
- package/es/ae/wallet.mjs +0 -50
- package/es/ae/wallet.mjs.map +0 -1
- package/es/amount-formatter.d.ts +0 -58
- package/es/bignumber.d.ts +0 -18
- package/es/chain/index.mjs +0 -272
- package/es/chain/index.mjs.map +0 -1
- package/es/chain/node.mjs +0 -442
- package/es/chain/node.mjs.map +0 -1
- package/es/contract/compiler.mjs +0 -115
- package/es/contract/compiler.mjs.map +0 -1
- package/es/contract/ga/helpers.mjs +0 -30
- package/es/contract/ga/helpers.mjs.map +0 -1
- package/es/contract/ga/index.mjs +0 -178
- package/es/contract/ga/index.mjs.map +0 -1
- package/es/crypto-ts.d.ts +0 -9
- package/es/node-pool/index.mjs +0 -188
- package/es/node-pool/index.mjs.map +0 -1
- package/es/node.mjs +0 -133
- package/es/node.mjs.map +0 -1
- package/es/other.d.ts +0 -31
- package/es/semver-satisfies.d.ts +0 -1
- package/es/string.d.ts +0 -26
- package/es/tx/builder/field-types.mjs +0 -74
- package/es/tx/builder/field-types.mjs.map +0 -1
- package/es/tx/tx-object.mjs +0 -283
- package/es/tx/tx-object.mjs.map +0 -1
- package/es/tx/tx.mjs +0 -938
- package/es/tx/tx.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
- package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
- package/es/utils/async-init.mjs +0 -64
- package/es/utils/async-init.mjs.map +0 -1
- package/es/utils/crypto-ts.mjs.map +0 -1
- package/es/utils/swagger.mjs +0 -164
- package/es/utils/swagger.mjs.map +0 -1
- package/src/account/base.js +0 -153
- package/src/account/memory.js +0 -83
- package/src/account/multiple.js +0 -162
- package/src/ae/aens.js +0 -361
- package/src/ae/aepp.js +0 -45
- package/src/ae/contract.js +0 -148
- package/src/ae/index.js +0 -168
- package/src/ae/oracle.js +0 -311
- package/src/ae/universal.js +0 -47
- package/src/ae/wallet.js +0 -50
- package/src/chain/index.js +0 -269
- package/src/chain/node.js +0 -320
- package/src/channel/handlers.js +0 -673
- package/src/channel/index.js +0 -898
- package/src/channel/internal.js +0 -237
- package/src/contract/aci.js +0 -376
- package/src/contract/compiler.js +0 -100
- package/src/contract/ga/helpers.js +0 -19
- package/src/contract/ga/index.js +0 -150
- package/src/index.js +0 -89
- package/src/node-pool/index.js +0 -172
- package/src/node.js +0 -116
- package/src/tx/builder/field-types.js +0 -61
- package/src/tx/builder/helpers.js +0 -380
- package/src/tx/builder/index.js +0 -465
- package/src/tx/builder/schema.js +0 -1197
- package/src/tx/index.js +0 -301
- package/src/tx/tx-object.js +0 -187
- package/src/tx/tx.js +0 -631
- package/src/tx/validator.js +0 -181
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
- package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
- package/src/utils/aepp-wallet-communication/helpers.js +0 -60
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
- package/src/utils/aepp-wallet-communication/schema.ts +0 -80
- package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
- package/src/utils/async-init.js +0 -45
- package/src/utils/crypto.js +0 -229
- package/src/utils/hd-wallet.js +0 -100
- package/src/utils/json-big.js +0 -26
- package/src/utils/keystore.js +0 -219
- package/src/utils/swagger.js +0 -156
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RPC handler for AEPP side
|
|
3
|
-
*
|
|
4
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/aepp-rpc
|
|
5
|
-
* @export AeppRpc
|
|
6
|
-
* @example
|
|
7
|
-
* import ContentScriptBridge
|
|
8
|
-
* from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/aepp-rpc'
|
|
9
|
-
*/
|
|
10
|
-
import { v4 as uuid } from '@aeternity/uuid'
|
|
11
|
-
import Ae from '../../../ae'
|
|
12
|
-
import RpcClient from './rpc-client'
|
|
13
|
-
import { getHandler, message } from '../helpers'
|
|
14
|
-
import { METHODS, RPC_STATUS, VERSION } from '../schema'
|
|
15
|
-
import {
|
|
16
|
-
AlreadyConnectedError,
|
|
17
|
-
NoWalletConnectedError,
|
|
18
|
-
UnsubscribedAccountError,
|
|
19
|
-
UnAuthorizedAccountError,
|
|
20
|
-
ArgumentError,
|
|
21
|
-
RpcConnectionError
|
|
22
|
-
} from '../../errors'
|
|
23
|
-
import { Node } from '../../../index'
|
|
24
|
-
|
|
25
|
-
const NOTIFICATIONS = {
|
|
26
|
-
[METHODS.updateAddress]: (instance) =>
|
|
27
|
-
({ params }) => {
|
|
28
|
-
instance.rpcClient.accounts = params
|
|
29
|
-
instance.onAddressChange(params)
|
|
30
|
-
},
|
|
31
|
-
[METHODS.updateNetwork]: (instance) =>
|
|
32
|
-
async ({ params }) => {
|
|
33
|
-
const { networkId, node } = params
|
|
34
|
-
instance.rpcClient.info.networkId = networkId
|
|
35
|
-
node && instance.addNode(node.name, await Node(node), true)
|
|
36
|
-
instance.onNetworkChange(params)
|
|
37
|
-
},
|
|
38
|
-
[METHODS.closeConnection]: (instance) =>
|
|
39
|
-
(msg) => {
|
|
40
|
-
instance.disconnectWallet()
|
|
41
|
-
instance.onDisconnect(msg.params)
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const RESPONSES = {
|
|
46
|
-
[METHODS.address]: (instance) =>
|
|
47
|
-
(msg) => instance.rpcClient.processResponse(msg),
|
|
48
|
-
[METHODS.connect]: (instance) =>
|
|
49
|
-
(msg) => {
|
|
50
|
-
if (msg.result) instance.rpcClient.info.status = RPC_STATUS.CONNECTED
|
|
51
|
-
instance.rpcClient.processResponse(msg)
|
|
52
|
-
},
|
|
53
|
-
[METHODS.subscribeAddress]: (instance) =>
|
|
54
|
-
(msg) => {
|
|
55
|
-
if (msg.result) {
|
|
56
|
-
if (msg.result.address) {
|
|
57
|
-
instance.rpcClient.accounts = msg.result.address
|
|
58
|
-
}
|
|
59
|
-
if (msg.result.subscription) {
|
|
60
|
-
instance.rpcClient.addressSubscription = msg.result.subscription
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
instance.rpcClient.processResponse(msg, ({ id, result }) => [result])
|
|
65
|
-
},
|
|
66
|
-
[METHODS.sign]: (instance) =>
|
|
67
|
-
(msg) => {
|
|
68
|
-
instance.rpcClient.processResponse(
|
|
69
|
-
msg, ({ id, result }) => [result.signedTransaction || result.transactionHash]
|
|
70
|
-
)
|
|
71
|
-
},
|
|
72
|
-
[METHODS.signMessage]: (instance) =>
|
|
73
|
-
(msg) => {
|
|
74
|
-
instance.rpcClient.processResponse(msg, ({ id, result }) => [result.signature])
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const REQUESTS = {}
|
|
79
|
-
|
|
80
|
-
const handleMessage = (instance) => async (msg) => {
|
|
81
|
-
if (!msg.id) {
|
|
82
|
-
return getHandler(NOTIFICATIONS, msg, { debug: instance.debug })(instance)(msg)
|
|
83
|
-
} else if (Object.prototype.hasOwnProperty.call(instance.rpcClient.callbacks, msg.id)) {
|
|
84
|
-
return getHandler(RESPONSES, msg, { debug: instance.debug })(instance)(msg)
|
|
85
|
-
} else {
|
|
86
|
-
return getHandler(REQUESTS, msg, { debug: instance.debug })(instance)(msg)
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Contain functionality for wallet interaction and connect it to sdk
|
|
92
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/aepp-rpc
|
|
93
|
-
* @function
|
|
94
|
-
* @rtype Stamp
|
|
95
|
-
* @param {Object} param Init params object
|
|
96
|
-
* @param {String=} [param.name] Aepp name
|
|
97
|
-
* @param {Function} onAddressChange Call-back function for update address event
|
|
98
|
-
* @param {Function} onDisconnect Call-back function for disconnect event
|
|
99
|
-
* @param {Function} onNetworkChange Call-back function for update network event
|
|
100
|
-
* @param {Object} connection Wallet connection object
|
|
101
|
-
* @return {Object}
|
|
102
|
-
*/
|
|
103
|
-
export default Ae.compose({
|
|
104
|
-
async init ({
|
|
105
|
-
name,
|
|
106
|
-
connection,
|
|
107
|
-
debug = false,
|
|
108
|
-
...other
|
|
109
|
-
}) {
|
|
110
|
-
['onAddressChange', 'onDisconnect', 'onNetworkChange'].forEach(event => {
|
|
111
|
-
const handler = other[event] ?? (() => {})
|
|
112
|
-
if (typeof handler !== 'function') throw new ArgumentError(event, 'a function', handler)
|
|
113
|
-
this[event] = handler
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
this.connection = connection
|
|
117
|
-
this.name = name
|
|
118
|
-
this.debug = debug
|
|
119
|
-
|
|
120
|
-
if (connection) {
|
|
121
|
-
// Init RPCClient
|
|
122
|
-
await this.connectToWallet(connection)
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
deepProps: { Ae: { defaults: { walletBroadcast: true } } },
|
|
126
|
-
methods: {
|
|
127
|
-
sign () {
|
|
128
|
-
},
|
|
129
|
-
addresses () {
|
|
130
|
-
if (!this.isSubscribedAccount()) throw new UnsubscribedAccountError()
|
|
131
|
-
return [this.rpcClient.currentAccount, ...Object.keys(this.rpcClient.accounts.connected)]
|
|
132
|
-
},
|
|
133
|
-
/**
|
|
134
|
-
* Connect to wallet
|
|
135
|
-
* @function connectToWallet
|
|
136
|
-
* @instance
|
|
137
|
-
* @rtype (connection: Object) => void
|
|
138
|
-
* @param {Object} connection Wallet connection object
|
|
139
|
-
* @param {Object} [options={}]
|
|
140
|
-
* @param {Boolean} [options.connectNode=true] - Request wallet to bind node
|
|
141
|
-
* @param {String} [options.name=wallet-node] - Node name
|
|
142
|
-
* @param {Boolean} [options.select=false] - Select this node as current
|
|
143
|
-
* @return {Object}
|
|
144
|
-
*/
|
|
145
|
-
async connectToWallet (connection, { connectNode = false, name = 'wallet-node', select = false } = {}) {
|
|
146
|
-
if (this.rpcClient && this.rpcClient.isConnected()) throw new AlreadyConnectedError('You are already connected to wallet ' + this.rpcClient)
|
|
147
|
-
this.rpcClient = RpcClient({
|
|
148
|
-
connection,
|
|
149
|
-
networkId: this.getNetworkId({ force: true }),
|
|
150
|
-
...connection.connectionInfo,
|
|
151
|
-
id: uuid(),
|
|
152
|
-
handlers: [handleMessage(this), this.onDisconnect]
|
|
153
|
-
})
|
|
154
|
-
const walletInfo = await this.sendConnectRequest(connectNode)
|
|
155
|
-
if (connectNode && !Object.prototype.hasOwnProperty.call(walletInfo, 'node')) {
|
|
156
|
-
throw new RpcConnectionError('Missing URLs of the Node')
|
|
157
|
-
}
|
|
158
|
-
connectNode && this.addNode(name, await Node(walletInfo.node), select)
|
|
159
|
-
return walletInfo
|
|
160
|
-
},
|
|
161
|
-
/**
|
|
162
|
-
* Disconnect from wallet
|
|
163
|
-
* @function disconnectWallet
|
|
164
|
-
* @instance
|
|
165
|
-
* @rtype (force: Boolean = false) => void
|
|
166
|
-
* @param {Boolean} sendDisconnect=false Force sending close connection message
|
|
167
|
-
* @return {void}
|
|
168
|
-
*/
|
|
169
|
-
async disconnectWallet (sendDisconnect = true) {
|
|
170
|
-
if (!this.isConnected()) throw new NoWalletConnectedError('You are not connected to Wallet')
|
|
171
|
-
sendDisconnect && this.rpcClient.sendMessage(message(METHODS.closeConnection, { reason: 'bye' }), true)
|
|
172
|
-
this.rpcClient.disconnect()
|
|
173
|
-
this.rpcClient = null
|
|
174
|
-
},
|
|
175
|
-
async address ({ onAccount } = {}) {
|
|
176
|
-
if (!this.isConnected()) throw new NoWalletConnectedError('You are not connected to Wallet')
|
|
177
|
-
const current = this.rpcClient.currentAccount
|
|
178
|
-
if (!current) throw new UnsubscribedAccountError()
|
|
179
|
-
if (onAccount && !this.rpcClient.hasAccessToAccount(onAccount)) {
|
|
180
|
-
throw new UnAuthorizedAccountError(onAccount)
|
|
181
|
-
}
|
|
182
|
-
return onAccount || current
|
|
183
|
-
},
|
|
184
|
-
/**
|
|
185
|
-
* Ask address from wallet
|
|
186
|
-
* @function askAddresses
|
|
187
|
-
* @instance
|
|
188
|
-
* @rtype () => Promise
|
|
189
|
-
* @return {Promise} Address from wallet
|
|
190
|
-
*/
|
|
191
|
-
async askAddresses () {
|
|
192
|
-
if (!this.isConnected()) throw new NoWalletConnectedError('You are not connected to Wallet')
|
|
193
|
-
if (!this.isSubscribedAccount()) throw new UnsubscribedAccountError()
|
|
194
|
-
return this.rpcClient.request(METHODS.address)
|
|
195
|
-
},
|
|
196
|
-
/**
|
|
197
|
-
* Subscribe for addresses from wallet
|
|
198
|
-
* @function subscribeAddress
|
|
199
|
-
* @instance
|
|
200
|
-
* @rtype (type: String, value: String) => Promise
|
|
201
|
-
* @param {String} type Should be one of 'current' (the selected account), 'connected' (all)
|
|
202
|
-
* @param {String} value Subscription action('subscribe'|'unsubscribe')
|
|
203
|
-
* @return {Promise} Address from wallet
|
|
204
|
-
*/
|
|
205
|
-
async subscribeAddress (type, value) {
|
|
206
|
-
if (!this.isConnected()) throw new NoWalletConnectedError('You are not connected to Wallet')
|
|
207
|
-
return this.rpcClient.request(METHODS.subscribeAddress, { type, value })
|
|
208
|
-
},
|
|
209
|
-
/**
|
|
210
|
-
* Overwriting of `signTransaction` AE method
|
|
211
|
-
* All sdk API which use it will be send notification to wallet and wait for callBack
|
|
212
|
-
* @function signTransaction
|
|
213
|
-
* @instance
|
|
214
|
-
* @rtype (tx: String, options = {}) => Promise
|
|
215
|
-
* @return {Promise<String>} Signed transaction
|
|
216
|
-
*/
|
|
217
|
-
async signTransaction (tx, opt = {}) {
|
|
218
|
-
if (!this.isConnected()) throw new NoWalletConnectedError('You are not connected to Wallet')
|
|
219
|
-
if (!this.isSubscribedAccount()) throw new UnsubscribedAccountError()
|
|
220
|
-
if (opt.onAccount && !this.rpcClient.hasAccessToAccount(opt.onAccount)) {
|
|
221
|
-
throw new UnAuthorizedAccountError(opt.onAccount)
|
|
222
|
-
}
|
|
223
|
-
return this.rpcClient.request(
|
|
224
|
-
METHODS.sign,
|
|
225
|
-
{ ...opt, tx, returnSigned: true, networkId: this.getNetworkId() }
|
|
226
|
-
)
|
|
227
|
-
},
|
|
228
|
-
/**
|
|
229
|
-
* Overwriting of `signMessage` AE method
|
|
230
|
-
* All sdk API which use it will be send notification to wallet and wait for callBack
|
|
231
|
-
* @function signMessage
|
|
232
|
-
* @instance
|
|
233
|
-
* @rtype (msg: String, options = {}) => Promise
|
|
234
|
-
* @return {Promise<String>} Signed transaction
|
|
235
|
-
*/
|
|
236
|
-
async signMessage (msg, opt = {}) {
|
|
237
|
-
if (!this.isConnected()) throw new NoWalletConnectedError('You are not connected to Wallet')
|
|
238
|
-
if (!this.isSubscribedAccount()) throw new UnsubscribedAccountError()
|
|
239
|
-
if (opt.onAccount && !this.rpcClient.hasAccessToAccount(opt.onAccount)) {
|
|
240
|
-
throw new UnAuthorizedAccountError(opt.onAccount)
|
|
241
|
-
}
|
|
242
|
-
return this.rpcClient.request(METHODS.signMessage, { ...opt, message: msg })
|
|
243
|
-
},
|
|
244
|
-
/**
|
|
245
|
-
* Send connection request to wallet
|
|
246
|
-
* @function sendConnectRequest
|
|
247
|
-
* @instance
|
|
248
|
-
* @param {Boolean} connectNode - Request wallet to bind node
|
|
249
|
-
* @rtype () => Promise
|
|
250
|
-
* @return {Promise} Connection response
|
|
251
|
-
*/
|
|
252
|
-
async sendConnectRequest (connectNode) {
|
|
253
|
-
return this.rpcClient.request(
|
|
254
|
-
METHODS.connect, {
|
|
255
|
-
name: this.name,
|
|
256
|
-
version: VERSION,
|
|
257
|
-
networkId: this.getNetworkId({ force: true }),
|
|
258
|
-
connectNode
|
|
259
|
-
}
|
|
260
|
-
)
|
|
261
|
-
},
|
|
262
|
-
/**
|
|
263
|
-
* Overwriting of `send` AE method
|
|
264
|
-
* All sdk API which use it will be send notification to wallet and wait for callBack
|
|
265
|
-
* This method will sign, broadcast and wait until transaction will be accepted using rpc
|
|
266
|
-
* communication with wallet
|
|
267
|
-
* @function send
|
|
268
|
-
* @instance
|
|
269
|
-
* @rtype (tx: String, options = {}) => Promise
|
|
270
|
-
* @param {String} tx
|
|
271
|
-
* @param {Object} [options={}]
|
|
272
|
-
* @param {Object} [options.walletBroadcast=true]
|
|
273
|
-
* @return {Promise<Object>} Transaction broadcast result
|
|
274
|
-
*/
|
|
275
|
-
async send (tx, options = {}) {
|
|
276
|
-
if (!this.isConnected()) throw new NoWalletConnectedError('You are not connected to Wallet')
|
|
277
|
-
if (!this.isSubscribedAccount()) throw new UnsubscribedAccountError()
|
|
278
|
-
if (options.onAccount && !this.rpcClient.hasAccessToAccount(options.onAccount)) {
|
|
279
|
-
throw new UnAuthorizedAccountError(options.onAccount)
|
|
280
|
-
}
|
|
281
|
-
const opt = { ...this.Ae.defaults, ...options }
|
|
282
|
-
if (!opt.walletBroadcast) {
|
|
283
|
-
const signed = await this.signTransaction(tx, { onAccount: opt.onAccount })
|
|
284
|
-
return this.sendTransaction(signed, opt)
|
|
285
|
-
}
|
|
286
|
-
return this.rpcClient.request(
|
|
287
|
-
METHODS.sign,
|
|
288
|
-
{ onAccount: opt.onAccount, tx, returnSigned: false, networkId: this.getNetworkId() }
|
|
289
|
-
)
|
|
290
|
-
},
|
|
291
|
-
isConnected () { return (this.rpcClient && this.rpcClient.isConnected()) },
|
|
292
|
-
isSubscribedAccount () { return typeof this.rpcClient.currentAccount !== 'undefined' }
|
|
293
|
-
}
|
|
294
|
-
})
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RpcClient module
|
|
3
|
-
*
|
|
4
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client
|
|
5
|
-
* @export { RpcClient, RpcClients }
|
|
6
|
-
* @example
|
|
7
|
-
* import RpcClient from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client'
|
|
8
|
-
*/
|
|
9
|
-
import stampit from '@stamp/it'
|
|
10
|
-
|
|
11
|
-
import { METHODS, RPC_STATUS, SUBSCRIPTION_TYPES } from '../schema'
|
|
12
|
-
import { sendMessage, message, isValidAccounts } from '../helpers'
|
|
13
|
-
import {
|
|
14
|
-
InvalidRpcMessageError,
|
|
15
|
-
TypeError,
|
|
16
|
-
DuplicateCallbackError,
|
|
17
|
-
MissingCallbackError
|
|
18
|
-
} from '../../errors'
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Contain functionality for using RPC conection
|
|
22
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/rpc/rpc-client
|
|
23
|
-
* @function
|
|
24
|
-
* @rtype Stamp
|
|
25
|
-
* @param {Object} param Init params object
|
|
26
|
-
* @param {String} param.name Client name
|
|
27
|
-
* @param {Object} param.connection Connection object
|
|
28
|
-
* @param {Function[]} param.handlers Array with two function for message handling
|
|
29
|
-
* @param {Function} param.handlers[0] Message handler
|
|
30
|
-
* @param {Function} param.handlers[1] Disconnect callback
|
|
31
|
-
* @return {Object}
|
|
32
|
-
*/
|
|
33
|
-
export default stampit({
|
|
34
|
-
init ({ id, name, networkId, icons, connection, handlers: [onMessage, onDisconnect] }) {
|
|
35
|
-
this.id = id
|
|
36
|
-
this.connection = connection
|
|
37
|
-
this.info = { name, networkId, icons }
|
|
38
|
-
// {
|
|
39
|
-
// [msg.id]: { resolve, reject }
|
|
40
|
-
// }
|
|
41
|
-
this.callbacks = {}
|
|
42
|
-
// ['connected', 'current']
|
|
43
|
-
this.addressSubscription = []
|
|
44
|
-
// {
|
|
45
|
-
// connected: { [pub]: {...meta} },
|
|
46
|
-
// current: { [pub]: {...meta} }
|
|
47
|
-
// }
|
|
48
|
-
this.accounts = {}
|
|
49
|
-
|
|
50
|
-
this.sendMessage = sendMessage(this.connection)
|
|
51
|
-
|
|
52
|
-
const handleMessage = (msg, origin) => {
|
|
53
|
-
if (!msg || !msg.jsonrpc || msg.jsonrpc !== '2.0' || !msg.method) {
|
|
54
|
-
throw new InvalidRpcMessageError(msg)
|
|
55
|
-
}
|
|
56
|
-
onMessage(msg, origin)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const disconnect = (aepp, connection) => {
|
|
60
|
-
this.disconnect(true)
|
|
61
|
-
typeof onDisconnect === 'function' && onDisconnect(connection, this)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
connection.connect(handleMessage, disconnect)
|
|
65
|
-
},
|
|
66
|
-
propertyDescriptors: {
|
|
67
|
-
currentAccount: {
|
|
68
|
-
enumerable: true,
|
|
69
|
-
configurable: false,
|
|
70
|
-
get () {
|
|
71
|
-
return this.isHasAccounts()
|
|
72
|
-
? Object.keys(this.accounts.current)[0]
|
|
73
|
-
: undefined
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
addresses: {
|
|
77
|
-
enumerable: true,
|
|
78
|
-
configurable: false,
|
|
79
|
-
get () {
|
|
80
|
-
return this.isHasAccounts()
|
|
81
|
-
? [...Object.keys(this.accounts.current), ...Object.keys(this.accounts.connected)]
|
|
82
|
-
: []
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
origin: {
|
|
86
|
-
enumerable: true,
|
|
87
|
-
configurable: false,
|
|
88
|
-
get () {
|
|
89
|
-
return this.connection
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
methods: {
|
|
94
|
-
/**
|
|
95
|
-
* Update info
|
|
96
|
-
* @function updateInfo
|
|
97
|
-
* @instance
|
|
98
|
-
* @rtype (info: Object) => void
|
|
99
|
-
* @param {Object} info Info to update (will be merged with current info object)
|
|
100
|
-
* @return {void}
|
|
101
|
-
*/
|
|
102
|
-
updateInfo (info) {
|
|
103
|
-
Object.assign(this.info, info)
|
|
104
|
-
},
|
|
105
|
-
isHasAccounts () {
|
|
106
|
-
return typeof this.accounts === 'object' &&
|
|
107
|
-
typeof this.accounts.connected === 'object' &&
|
|
108
|
-
typeof this.accounts.current === 'object'
|
|
109
|
-
},
|
|
110
|
-
isSubscribed () {
|
|
111
|
-
return this.addressSubscription.length && this.isHasAccounts()
|
|
112
|
-
},
|
|
113
|
-
/**
|
|
114
|
-
* Check if aepp has access to account
|
|
115
|
-
* @function hasAccessToAccount
|
|
116
|
-
* @instance
|
|
117
|
-
* @rtype (address: String) => Boolean
|
|
118
|
-
* @param {String} address Account address
|
|
119
|
-
* @return {Boolean} is connected
|
|
120
|
-
*/
|
|
121
|
-
hasAccessToAccount (address) {
|
|
122
|
-
return !!address && this.addresses.find(a => a === address)
|
|
123
|
-
},
|
|
124
|
-
/**
|
|
125
|
-
* Check if is connected
|
|
126
|
-
* @function isConnected
|
|
127
|
-
* @instance
|
|
128
|
-
* @rtype () => Boolean
|
|
129
|
-
* @return {Boolean} is connected
|
|
130
|
-
*/
|
|
131
|
-
isConnected () {
|
|
132
|
-
return this.connection.isConnected() &&
|
|
133
|
-
(this.info.status === RPC_STATUS.CONNECTED || this.info.status === RPC_STATUS.NODE_BINDED)
|
|
134
|
-
},
|
|
135
|
-
/**
|
|
136
|
-
* Get selected account
|
|
137
|
-
* @function getCurrentAccount
|
|
138
|
-
* @instance
|
|
139
|
-
* @rtype ({ onAccount } = {}) => String
|
|
140
|
-
* @param {Object} options Options
|
|
141
|
-
* @return {String}
|
|
142
|
-
*/
|
|
143
|
-
getCurrentAccount ({ onAccount } = {}) {
|
|
144
|
-
return onAccount || Object.keys(this.accounts.current)[0]
|
|
145
|
-
},
|
|
146
|
-
/**
|
|
147
|
-
* Disconnect
|
|
148
|
-
* @function disconnect
|
|
149
|
-
* @instance
|
|
150
|
-
* @rtype () => void
|
|
151
|
-
* @return {void}
|
|
152
|
-
*/
|
|
153
|
-
disconnect (forceConnectionClose = false) {
|
|
154
|
-
this.info.status = RPC_STATUS.DISCONNECTED
|
|
155
|
-
this.addressSubscription = []
|
|
156
|
-
this.accounts = {}
|
|
157
|
-
forceConnectionClose || this.connection.disconnect()
|
|
158
|
-
},
|
|
159
|
-
/**
|
|
160
|
-
* Update accounts and sent `update.address` notification to AEPP
|
|
161
|
-
* @param {{ current: Object, connected: Object }} accounts Current and connected accounts
|
|
162
|
-
* @param {Object} [options]
|
|
163
|
-
* @param {Boolean} [options.forceNotification] Don't sent update notification to AEPP
|
|
164
|
-
*/
|
|
165
|
-
setAccounts (accounts, { forceNotification } = {}) {
|
|
166
|
-
if (!isValidAccounts(accounts)) {
|
|
167
|
-
throw new TypeError('Invalid accounts object. Should be object like: `{ connected: {}, selected: {} }`')
|
|
168
|
-
}
|
|
169
|
-
this.accounts = accounts
|
|
170
|
-
if (!forceNotification) {
|
|
171
|
-
// Sent notification about account updates
|
|
172
|
-
this.sendMessage(message(METHODS.updateAddress, this.accounts), true)
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
/**
|
|
176
|
-
* Update subscription
|
|
177
|
-
* @function updateSubscription
|
|
178
|
-
* @instance
|
|
179
|
-
* @rtype (type: String, value: String) => void
|
|
180
|
-
* @param {String} type Subscription type
|
|
181
|
-
* @param {String} value Subscription value
|
|
182
|
-
* @return {String[]}
|
|
183
|
-
*/
|
|
184
|
-
updateSubscription (type, value) {
|
|
185
|
-
if (type === SUBSCRIPTION_TYPES.subscribe && !this.addressSubscription.includes(value)) {
|
|
186
|
-
this.addressSubscription.push(value)
|
|
187
|
-
}
|
|
188
|
-
if (type === SUBSCRIPTION_TYPES.unsubscribe && this.addressSubscription.includes(value)) {
|
|
189
|
-
this.addressSubscription = this.addressSubscription.filter(s => s !== value)
|
|
190
|
-
}
|
|
191
|
-
return this.addressSubscription
|
|
192
|
-
},
|
|
193
|
-
/**
|
|
194
|
-
* Make a request
|
|
195
|
-
* @function request
|
|
196
|
-
* @instance
|
|
197
|
-
* @rtype (name: String, params: Object) => Promise
|
|
198
|
-
* @param {String} name Method name
|
|
199
|
-
* @param {Object} params Method params
|
|
200
|
-
* @return {Promise} Promise which will be resolved after receiving response message
|
|
201
|
-
*/
|
|
202
|
-
request (name, params) {
|
|
203
|
-
const msgId = this.sendMessage(message(name, params))
|
|
204
|
-
if (Object.prototype.hasOwnProperty.call(this.callbacks, msgId)) {
|
|
205
|
-
throw new DuplicateCallbackError()
|
|
206
|
-
}
|
|
207
|
-
return new Promise((resolve, reject) => {
|
|
208
|
-
this.callbacks[msgId] = { resolve, reject }
|
|
209
|
-
})
|
|
210
|
-
},
|
|
211
|
-
/**
|
|
212
|
-
* Process response message
|
|
213
|
-
* @function processResponse
|
|
214
|
-
* @instance
|
|
215
|
-
* @rtype (msg: Object, transformResult: Function) => void
|
|
216
|
-
* @param {Object} msg Message object
|
|
217
|
-
* @param {Function=} transformResult Optional parser function for message
|
|
218
|
-
* @return {void}
|
|
219
|
-
*/
|
|
220
|
-
processResponse ({ id, error, result }, transformResult) {
|
|
221
|
-
if (!this.callbacks[id]) throw new MissingCallbackError(id)
|
|
222
|
-
if (result) {
|
|
223
|
-
this.callbacks[id].resolve(...typeof transformResult === 'function'
|
|
224
|
-
? transformResult({ id, result })
|
|
225
|
-
: [result])
|
|
226
|
-
} else {
|
|
227
|
-
this.callbacks[id].reject(error)
|
|
228
|
-
}
|
|
229
|
-
delete this.callbacks[id]
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
})
|