@aeternity/aepp-sdk 11.0.1 → 12.1.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.
- 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 +20765 -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 +136 -85
- 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 +61 -47
- package/es/tx/builder/constants.mjs.map +1 -1
- 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 -198
- 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 -561
- 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 -98
- 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 +71 -59
- package/es/utils/encoder.mjs.map +1 -1
- 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 +55 -43
- 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 +172 -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 +116 -71
- 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/encoder.d.ts +0 -26
- 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 -903
- package/src/channel/internal.js +0 -236
- 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/constants.js +0 -100
- package/src/tx/builder/field-types.js +0 -61
- package/src/tx/builder/helpers.js +0 -334
- package/src/tx/builder/index.js +0 -465
- package/src/tx/builder/schema.js +0 -1100
- 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 -219
- 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
package/es/tx/tx.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tx/tx.js"],"names":["ChainNode","Tx","buildTx","calculateFee","unpackTx","ABI_VERSIONS","MIN_GAS_PRICE","PROTOCOL_VM_ABI","TX_TYPE","TX_TTL","buildContractId","encode","TxObject","ArgumentError","UnsupportedABIversionError","UnsupportedVMversionError","UnsupportedProtocolError","UnknownTxError","spendTx","senderId","recipientId","amount","payload","fee","ttl","nonce","prepareTxParams","spend","arguments","tx","nativeMode","params","type","encodedTx","api","postSpend","parseInt","namePreclaimTx","accountId","commitmentId","namePreClaim","postNamePreclaim","nameClaimTx","name","nameSalt","vsn","nameClaim","postNameClaim","nameTransferTx","nameId","nameTransfer","postNameTransfer","nameUpdateTx","nameTtl","pointers","clientTtl","nameUpdate","postNameUpdate","nameRevokeTx","nameRevoke","postNameRevoke","contractCreateTx","ownerId","code","vmVersion","abiVersion","gas","gasPrice","callData","ctVersion","getVmVersion","contractCreate","contractId","postContractCreate","contractCallTx","callerId","contractCall","postContractCall","oracleRegisterTx","queryFormat","responseFormat","queryFee","oracleTtl","NO_ABI","oracleRegister","postOracleRegister","oracleExtendTx","oracleId","oracleExtend","postOracleExtend","oraclePostQueryTx","responseTtl","query","queryTtl","oracleQuery","postOracleQuery","oracleRespondTx","queryId","response","oracleResponse","postOracleRespond","channelCloseSoloTx","channelId","fromId","poi","channelCloseSolo","postChannelCloseSolo","channelSlashTx","channelSlash","postChannelSlash","channelSettleTx","initiatorAmountFinal","responderAmountFinal","channelSettle","postChannelSettle","channelSnapshotSoloTx","channelSnapshotSolo","postChannelSnapshotSolo","gaAttachTx","authFun","gaAttach","payingForTx","payerId","args","payingFor","txType","consensusProtocolVersion","getNodeInfo","supportedProtocol","protocolForTX","includes","calculateTtl","relative","height","getCurrentKeyBlock","getAccountNonce","accountNonce","getAccountByPubkey","catch","n","t","f","absoluteTtl","strategy","getAccountNextNonce","e","nextNonce","call","showWarning","Transaction","compose","init","props","methods"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Transaction module\n * @module @aeternity/aepp-sdk/es/tx/tx\n * @export Transaction\n * @example import { Transaction } from '@aeternity/aepp-sdk'\n */\n\nimport ChainNode from '../chain/node'\nimport Tx from './'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from './builder/schema'\nimport { buildContractId, encode } from './builder/helpers'\nimport { TxObject } from './tx-object'\nimport {\n ArgumentError,\n UnsupportedABIversionError,\n UnsupportedVMversionError,\n UnsupportedProtocolError,\n UnknownTxError\n} from '../utils/errors'\n\nasync function spendTx ({ senderId, recipientId, amount, payload = '' }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.spend, { senderId, ...arguments[0], payload }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n ...arguments[0],\n recipientId,\n senderId,\n nonce,\n ttl,\n payload\n },\n type: TX_TYPE.spend\n }).encodedTx\n }\n : await this.api.postSpend({\n ...arguments[0],\n amount: parseInt(amount),\n recipientId,\n senderId,\n nonce,\n ttl,\n fee: parseInt(fee),\n payload\n })\n\n return tx\n}\n\nasync function namePreclaimTx ({ accountId, commitmentId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.namePreClaim, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.namePreClaim\n }).encodedTx\n }\n : await this.api.postNamePreclaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameClaimTx ({ accountId, name, nameSalt, vsn = 2 }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameClaim, { senderId: accountId, ...arguments[0], vsn }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, vsn },\n type: TX_TYPE.nameClaim\n }).encodedTx\n }\n : await this.api.postNameClaim({\n ...arguments[0], nonce, ttl, fee: parseInt(fee), name: encode(name, 'nm')\n })\n\n return tx\n}\n\nasync function nameTransferTx ({ accountId, nameId, recipientId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameTransfer, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], recipientId, nonce, ttl, fee },\n type: TX_TYPE.nameTransfer\n }).encodedTx\n }\n : await this.api.postNameTransfer({\n ...arguments[0], recipientId, nonce, ttl, fee: parseInt(fee)\n })\n\n return tx\n}\n\nasync function nameUpdateTx ({ accountId, nameId, nameTtl, pointers, clientTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameUpdate, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameUpdate\n }).encodedTx\n }\n : await this.api.postNameUpdate({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameRevokeTx ({ accountId, nameId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameRevoke, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameRevoke\n }).encodedTx\n }\n : await this.api.postNameRevoke({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function contractCreateTx ({\n ownerId, code, vmVersion, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.contractCreate, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.contractCreate\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n : this.api.postContractCreate({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n vmVersion: ctVersion.vmVersion,\n abiVersion: ctVersion.abiVersion\n })\n}\n\nasync function contractCallTx ({\n callerId, contractId, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n const ctVersion = this.getVmVersion(TX_TYPE.contractCall, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.contractCall,\n { senderId: callerId, ...arguments[0], gasPrice, abiVersion: ctVersion.abiVersion }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, abiVersion: ctVersion.abiVersion, gasPrice },\n type: TX_TYPE.contractCall\n }).encodedTx\n }\n : await this.api.postContractCall({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n abiVersion: ctVersion.abiVersion\n })\n\n return tx\n}\n\nasync function oracleRegisterTx ({\n accountId, queryFormat, responseFormat, queryFee, oracleTtl, abiVersion = ABI_VERSIONS.NO_ABI\n}) {\n // const { abiVersion: abi } = this.getVmVersion(TX_TYPE.oracleRegister, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleRegister, { senderId: accountId, ...arguments[0], abiVersion }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n accountId,\n queryFee,\n abiVersion,\n fee,\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n },\n type: TX_TYPE.oracleRegister\n }).encodedTx\n }\n : await this.api.postOracleRegister({\n accountId,\n queryFee,\n abiVersion,\n fee: parseInt(fee),\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n })\n\n return tx\n}\n\nasync function oracleExtendTx ({ oracleId, callerId, oracleTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleExtend, { senderId: callerId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, fee, oracleTtl, nonce, ttl },\n type: TX_TYPE.oracleExtend\n }).encodedTx\n }\n : await this.api.postOracleExtend({ oracleId, fee: parseInt(fee), oracleTtl, nonce, ttl })\n\n return tx\n}\n\nasync function oraclePostQueryTx ({ oracleId, responseTtl, query, queryTtl, queryFee, senderId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleQuery, { senderId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, query, queryTtl, fee, queryFee, ttl, nonce, senderId },\n type: TX_TYPE.oracleQuery\n }).encodedTx\n }\n : await this.api.postOracleQuery({\n oracleId,\n responseTtl,\n query,\n queryTtl,\n fee: parseInt(fee),\n queryFee,\n ttl,\n nonce,\n senderId\n })\n\n return tx\n}\n\nasync function oracleRespondTx ({ oracleId, callerId, responseTtl, queryId, response }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleResponse, { senderId: callerId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, queryId, response, fee, ttl, nonce },\n type: TX_TYPE.oracleResponse\n }).encodedTx\n }\n : await this.api.postOracleRespond({\n oracleId, responseTtl, queryId, response, fee: parseInt(fee), ttl, nonce\n })\n return tx\n}\n\nasync function channelCloseSoloTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelCloseSolo, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelCloseSolo)\n : await this.api.postChannelCloseSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSlashTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSlash, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSlash)\n : await this.api.postChannelSlash({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSettleTx ({ channelId, fromId, initiatorAmountFinal, responderAmountFinal }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSettle, { senderId: fromId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal,\n responderAmountFinal,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSettle)\n : await this.api.postChannelSettle({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal: parseInt(initiatorAmountFinal),\n responderAmountFinal: parseInt(responderAmountFinal),\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSnapshotSoloTx ({ channelId, fromId, payload }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSnapshotSolo, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSnapshotSolo)\n : await this.api.postChannelSnapshotSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function gaAttachTx ({\n ownerId, code, vmVersion, abiVersion, authFun, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.gaAttach, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.gaAttach\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n}\n\nasync function payingForTx ({ tx, payerId, ...args }) {\n const params = { tx: unpackTx(tx), payerId }\n const { fee, nonce } = await this.prepareTxParams(TX_TYPE.payingFor, {\n ...params, ...args, senderId: payerId\n })\n return buildTx({ ...params, ...args, fee, nonce }, TX_TYPE.payingFor).tx\n}\n\n/**\n * Validated vm/abi version or get default based on transaction type and NODE version\n *\n * @param {string} txType Type of transaction\n * @param {object} vmAbi Object with vm and abi version fields\n * @return {object} Object with vm/abi version ({ vmVersion: number, abiVersion: number })\n */\nfunction getVmVersion (txType, { vmVersion, abiVersion } = {}) {\n const { consensusProtocolVersion } = this.getNodeInfo()\n const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion]\n if (!supportedProtocol) throw new UnsupportedProtocolError('Not supported consensus protocol version')\n const protocolForTX = supportedProtocol[txType]\n if (!protocolForTX) throw new UnknownTxError('Not supported tx type')\n\n abiVersion = abiVersion || protocolForTX.abiVersion[0]\n vmVersion = vmVersion || protocolForTX.vmVersion[0]\n if (!protocolForTX.vmVersion.includes(vmVersion)) {\n throw new UnsupportedVMversionError(`VM VERSION ${vmVersion} do not support by this node. Supported: [${protocolForTX.vmVersion}]`)\n }\n if (!protocolForTX.abiVersion.includes(abiVersion)) {\n throw new UnsupportedABIversionError(`ABI VERSION ${abiVersion} do not support by this node. Supported: [${protocolForTX.abiVersion}]`)\n }\n\n return { vmVersion, abiVersion }\n}\n\n/**\n * Compute the absolute ttl by adding the ttl to the current height of the chain\n *\n * @param {number} ttl\n * @param {boolean} relative ttl is absolute or relative(default: true(relative))\n * @return {number} Absolute Ttl\n */\nasync function calculateTtl (ttl = TX_TTL, relative = true) {\n if (ttl === 0) return 0\n if (ttl < 0) throw new ArgumentError('ttl', 'greater or equal to 0', ttl)\n\n if (relative) {\n const { height } = await this.api.getCurrentKeyBlock()\n return +(height) + ttl\n }\n return ttl\n}\n\n/**\n * Get the next nonce to be used for a transaction for an account\n *\n * @param {string} accountId\n * @param {number} nonce\n * @return {number} Next Nonce\n */\nasync function getAccountNonce (accountId, nonce) {\n if (nonce) return nonce\n const { nonce: accountNonce } = await this.api.getAccountByPubkey(accountId)\n .catch(() => ({ nonce: 0 }))\n return accountNonce + 1\n}\n\n/**\n * Calculate fee, get absolute ttl (ttl + height), get account nonce\n *\n * @param {String} txType Type of transaction\n * @param {Object} params Object which contains all tx data\n * @return {Object} { ttl, nonce, fee } Object with account nonce, absolute ttl and transaction fee\n */\nasync function prepareTxParams (\n txType,\n { senderId, nonce: n, ttl: t, fee: f, gas, absoluteTtl, vsn, strategy }\n) {\n n = n || (\n await this.api.getAccountNextNonce(senderId, { strategy }).catch(e => ({ nextNonce: 1 }))\n ).nextNonce\n const ttl = await calculateTtl.call(this, t, !absoluteTtl)\n const fee = calculateFee(\n f,\n txType,\n { showWarning: this.showWarning, gas, params: { ...arguments[1], nonce: n, ttl }, vsn }\n )\n return { fee, ttl, nonce: n }\n}\n\n/**\n * Transaction Stamp\n *\n * This is implementation of [Tx](api/tx.md) relays\n * the creation of transactions to {@link module:@aeternity/aepp-sdk/es/Node}.\n * This stamp provide ability to create native transaction's,\n * or transaction's using Node API.\n * As there is no built-in security between Node and client communication,\n * creating transaction using {@link module:@aeternity/aepp-sdk/es/Node} API\n * must never be used for production but can be very useful to verify other\n * implementations.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Boolean} [options.nativeMode=true] options.nativeMode - Use Native build of transaction's\n * @param {String} options.url - Node url\n * @param {String} options.internalUrl - Node internal url\n * @return {Object} Transaction instance\n * @example Transaction({url: 'https://testnet.aeternity.io/'})\n */\nconst Transaction = ChainNode.compose(Tx, {\n init ({ nativeMode = true, showWarning = false }) {\n this.nativeMode = nativeMode\n this.showWarning = showWarning\n },\n props: {\n nativeMode: true,\n showWarning: false\n },\n methods: {\n spendTx,\n namePreclaimTx,\n nameClaimTx,\n nameTransferTx,\n nameUpdateTx,\n nameRevokeTx,\n contractCreateTx,\n contractCallTx,\n prepareTxParams,\n oracleRegisterTx,\n oracleExtendTx,\n oraclePostQueryTx,\n oracleRespondTx,\n channelCloseSoloTx,\n channelSlashTx,\n channelSettleTx,\n channelSnapshotSoloTx,\n gaAttachTx,\n payingForTx,\n getAccountNonce,\n getVmVersion\n }\n})\n\nexport default Transaction\n"],"file":"tx.mjs"}
|
|
@@ -1,132 +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
|
-
* Browser runtime connector module
|
|
20
|
-
*
|
|
21
|
-
* This is the complement to
|
|
22
|
-
* {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.
|
|
23
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime
|
|
24
|
-
* @export BrowserRuntimeConnection
|
|
25
|
-
* @example import { BrowserRuntimeConnection } from '@aeternity/aepp-sdk'
|
|
26
|
-
*/
|
|
27
|
-
import stampit from '@stamp/it';
|
|
28
|
-
import WalletConnection from "./index.mjs";
|
|
29
|
-
import { getBrowserAPI } from "../helpers.mjs";
|
|
30
|
-
import { RpcConnectionError, AlreadyConnectedError, NoWalletConnectedError } from "../../errors.mjs";
|
|
31
|
-
/**
|
|
32
|
-
* Disconnect
|
|
33
|
-
* @function disconnect
|
|
34
|
-
* @instance
|
|
35
|
-
* @rtype () => void
|
|
36
|
-
* @return {void}
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
function disconnect() {
|
|
40
|
-
try {
|
|
41
|
-
this.port.disconnect();
|
|
42
|
-
} catch (e) {
|
|
43
|
-
console.warning('From BrowserRuntimeConnection: ', e);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Connect
|
|
48
|
-
* @function connect
|
|
49
|
-
* @instance
|
|
50
|
-
* @rtype (onMessage: Function, onDisconnect: Function) => void
|
|
51
|
-
* @param {Function} onMessage - Message handler
|
|
52
|
-
* @param {Function} onDisconnect - trigger when runtime connection in closed
|
|
53
|
-
* @return {void}
|
|
54
|
-
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
function connect(onMessage, onDisconnect) {
|
|
58
|
-
if (this.isConnected()) throw new AlreadyConnectedError('You already connected');
|
|
59
|
-
|
|
60
|
-
this.handler = (msg, source) => {
|
|
61
|
-
if (this.debug) console.log('Receive message: ', msg);
|
|
62
|
-
onMessage(msg, source);
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
this.port.onMessage.addListener(this.handler);
|
|
66
|
-
this.port.onDisconnect.addListener(() => {
|
|
67
|
-
typeof onDisconnect === 'function' && onDisconnect({}, this);
|
|
68
|
-
this.port.disconnect();
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Send message
|
|
73
|
-
* @function sendMessage
|
|
74
|
-
* @instance
|
|
75
|
-
* @rtype (msg: Object) => void
|
|
76
|
-
* @param {Object} msg - Message
|
|
77
|
-
* @return {void}
|
|
78
|
-
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
function sendMessage(msg) {
|
|
82
|
-
if (!this.port) throw new NoWalletConnectedError('You dont have connection. Please connect before');
|
|
83
|
-
if (this.debug) console.log('Send message: ', msg);
|
|
84
|
-
this.port.postMessage(msg);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Check if connected
|
|
88
|
-
* @function isConnected
|
|
89
|
-
* @instance
|
|
90
|
-
* @rtype () => Boolean
|
|
91
|
-
* @return {Boolean} Is connected
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
function isConnected() {
|
|
96
|
-
return typeof this.port.onMessage.hasListeners === 'function' ? this.port.onMessage.hasListeners() : this.port.onMessage.hasListener(this.handler);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* BrowserRuntimeConnection stamp
|
|
100
|
-
* Handle browser runtime communication
|
|
101
|
-
* @function
|
|
102
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime
|
|
103
|
-
* @rtype Stamp
|
|
104
|
-
* @param {Object} params={} - Initializer object
|
|
105
|
-
* @param {Object} params.port - Runtime `port` object
|
|
106
|
-
* @param {Object} [params.connectionInfo={}] - Connection info object
|
|
107
|
-
* @param {Boolean} [params.debug=false] - Debug flag
|
|
108
|
-
* @return {Object}
|
|
109
|
-
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
export default stampit({
|
|
113
|
-
init(_ref) {
|
|
114
|
-
let {
|
|
115
|
-
connectionInfo = {},
|
|
116
|
-
port,
|
|
117
|
-
debug = false
|
|
118
|
-
} = _ref;
|
|
119
|
-
if (!getBrowserAPI().runtime) throw new RpcConnectionError('Runtime is not accessible in your environment');
|
|
120
|
-
this.debug = debug;
|
|
121
|
-
this.connectionInfo = connectionInfo;
|
|
122
|
-
this.port = port || getBrowserAPI().runtime.connect(...[connectionInfo.id || undefined]);
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
methods: {
|
|
126
|
-
connect,
|
|
127
|
-
sendMessage,
|
|
128
|
-
disconnect,
|
|
129
|
-
isConnected
|
|
130
|
-
}
|
|
131
|
-
}, WalletConnection);
|
|
132
|
-
//# sourceMappingURL=browser-runtime.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/connection/browser-runtime.js"],"names":["stampit","WalletConnection","getBrowserAPI","RpcConnectionError","AlreadyConnectedError","NoWalletConnectedError","disconnect","port","e","console","warning","connect","onMessage","onDisconnect","isConnected","handler","msg","source","debug","log","addListener","sendMessage","postMessage","hasListeners","hasListener","init","connectionInfo","runtime","id","undefined","methods"],"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;AACA;AACA,OAAOA,OAAP,MAAoB,WAApB;OAEOC,gB;SACEC,a;SAEPC,kB,EACAC,qB,EACAC,sB;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,UAAT,GAAuB;AACrB,MAAI;AACF,SAAKC,IAAL,CAAUD,UAAV;AACD,GAFD,CAEE,OAAOE,CAAP,EAAU;AACVC,IAAAA,OAAO,CAACC,OAAR,CAAgB,iCAAhB,EAAmDF,CAAnD;AACD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,OAAT,CAAkBC,SAAlB,EAA6BC,YAA7B,EAA2C;AACzC,MAAI,KAAKC,WAAL,EAAJ,EAAwB,MAAM,IAAIV,qBAAJ,CAA0B,uBAA1B,CAAN;;AACxB,OAAKW,OAAL,GAAe,CAACC,GAAD,EAAMC,MAAN,KAAiB;AAC9B,QAAI,KAAKC,KAAT,EAAgBT,OAAO,CAACU,GAAR,CAAY,mBAAZ,EAAiCH,GAAjC;AAChBJ,IAAAA,SAAS,CAACI,GAAD,EAAMC,MAAN,CAAT;AACD,GAHD;;AAIA,OAAKV,IAAL,CAAUK,SAAV,CAAoBQ,WAApB,CAAgC,KAAKL,OAArC;AACA,OAAKR,IAAL,CAAUM,YAAV,CAAuBO,WAAvB,CAAmC,MAAM;AACvC,WAAOP,YAAP,KAAwB,UAAxB,IAAsCA,YAAY,CAAC,EAAD,EAAK,IAAL,CAAlD;AACA,SAAKN,IAAL,CAAUD,UAAV;AACD,GAHD;AAID;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASe,WAAT,CAAsBL,GAAtB,EAA2B;AACzB,MAAI,CAAC,KAAKT,IAAV,EAAgB,MAAM,IAAIF,sBAAJ,CAA2B,iDAA3B,CAAN;AAChB,MAAI,KAAKa,KAAT,EAAgBT,OAAO,CAACU,GAAR,CAAY,gBAAZ,EAA8BH,GAA9B;AAChB,OAAKT,IAAL,CAAUe,WAAV,CAAsBN,GAAtB;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASF,WAAT,GAAwB;AACtB,SAAO,OAAO,KAAKP,IAAL,CAAUK,SAAV,CAAoBW,YAA3B,KAA4C,UAA5C,GAAyD,KAAKhB,IAAL,CAAUK,SAAV,CAAoBW,YAApB,EAAzD,GAA8F,KAAKhB,IAAL,CAAUK,SAAV,CAAoBY,WAApB,CAAgC,KAAKT,OAArC,CAArG;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAef,OAAO,CAAC;AACrByB,EAAAA,IAAI,OAAgD;AAAA,QAA9C;AAAEC,MAAAA,cAAc,GAAG,EAAnB;AAAuBnB,MAAAA,IAAvB;AAA6BW,MAAAA,KAAK,GAAG;AAArC,KAA8C;AAClD,QAAI,CAAChB,aAAa,GAAGyB,OAArB,EAA8B,MAAM,IAAIxB,kBAAJ,CAAuB,+CAAvB,CAAN;AAC9B,SAAKe,KAAL,GAAaA,KAAb;AACA,SAAKQ,cAAL,GAAsBA,cAAtB;AACA,SAAKnB,IAAL,GAAYA,IAAI,IAAIL,aAAa,GAAGyB,OAAhB,CAAwBhB,OAAxB,CAAgC,GAAG,CAACe,cAAc,CAACE,EAAf,IAAqBC,SAAtB,CAAnC,CAApB;AACD,GANoB;;AAOrBC,EAAAA,OAAO,EAAE;AAAEnB,IAAAA,OAAF;AAAWU,IAAAA,WAAX;AAAwBf,IAAAA,UAAxB;AAAoCQ,IAAAA;AAApC;AAPY,CAAD,EAQnBb,gBARmB,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 * Browser runtime connector module\n *\n * This is the complement to\n * {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime\n * @export BrowserRuntimeConnection\n * @example import { BrowserRuntimeConnection } from '@aeternity/aepp-sdk'\n */\nimport stampit from '@stamp/it'\n\nimport WalletConnection from '.'\nimport { getBrowserAPI } from '../helpers'\nimport {\n RpcConnectionError,\n AlreadyConnectedError,\n NoWalletConnectedError\n} from '../../errors'\n\n/**\n * Disconnect\n * @function disconnect\n * @instance\n * @rtype () => void\n * @return {void}\n */\nfunction disconnect () {\n try {\n this.port.disconnect()\n } catch (e) {\n console.warning('From BrowserRuntimeConnection: ', e)\n }\n}\n\n/**\n * Connect\n * @function connect\n * @instance\n * @rtype (onMessage: Function, onDisconnect: Function) => void\n * @param {Function} onMessage - Message handler\n * @param {Function} onDisconnect - trigger when runtime connection in closed\n * @return {void}\n */\nfunction connect (onMessage, onDisconnect) {\n if (this.isConnected()) throw new AlreadyConnectedError('You already connected')\n this.handler = (msg, source) => {\n if (this.debug) console.log('Receive message: ', msg)\n onMessage(msg, source)\n }\n this.port.onMessage.addListener(this.handler)\n this.port.onDisconnect.addListener(() => {\n typeof onDisconnect === 'function' && onDisconnect({}, this)\n this.port.disconnect()\n })\n}\n\n/**\n * Send message\n * @function sendMessage\n * @instance\n * @rtype (msg: Object) => void\n * @param {Object} msg - Message\n * @return {void}\n */\nfunction sendMessage (msg) {\n if (!this.port) throw new NoWalletConnectedError('You dont have connection. Please connect before')\n if (this.debug) console.log('Send message: ', msg)\n this.port.postMessage(msg)\n}\n\n/**\n * Check if connected\n * @function isConnected\n * @instance\n * @rtype () => Boolean\n * @return {Boolean} Is connected\n */\nfunction isConnected () {\n return typeof this.port.onMessage.hasListeners === 'function' ? this.port.onMessage.hasListeners() : this.port.onMessage.hasListener(this.handler)\n}\n\n/**\n * BrowserRuntimeConnection stamp\n * Handle browser runtime communication\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime\n * @rtype Stamp\n * @param {Object} params={} - Initializer object\n * @param {Object} params.port - Runtime `port` object\n * @param {Object} [params.connectionInfo={}] - Connection info object\n * @param {Boolean} [params.debug=false] - Debug flag\n * @return {Object}\n */\nexport default stampit({\n init ({ connectionInfo = {}, port, debug = false }) {\n if (!getBrowserAPI().runtime) throw new RpcConnectionError('Runtime is not accessible in your environment')\n this.debug = debug\n this.connectionInfo = connectionInfo\n this.port = port || getBrowserAPI().runtime.connect(...[connectionInfo.id || undefined])\n },\n methods: { connect, sendMessage, disconnect, isConnected }\n}, WalletConnection)\n"],"file":"browser-runtime.mjs"}
|
|
@@ -1,183 +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
|
-
* Browser window Post Message connector module
|
|
20
|
-
*
|
|
21
|
-
* This is the complement to
|
|
22
|
-
* {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.
|
|
23
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message
|
|
24
|
-
* @export BrowserWindowMessageConnection
|
|
25
|
-
* @example
|
|
26
|
-
* import BrowserWindowMessageConnection
|
|
27
|
-
* from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message'
|
|
28
|
-
*/
|
|
29
|
-
import stampit from '@stamp/it';
|
|
30
|
-
import WalletConnection from "./index.mjs";
|
|
31
|
-
import { v4 as uuid } from '@aeternity/uuid';
|
|
32
|
-
import { MESSAGE_DIRECTION } from "../schema.mjs";
|
|
33
|
-
import { getBrowserAPI, isInIframe } from "../helpers.mjs";
|
|
34
|
-
import { AlreadyConnectedError, NoWalletConnectedError, MessageDirectionError } from "../../errors.mjs";
|
|
35
|
-
/**
|
|
36
|
-
* Check if connected
|
|
37
|
-
* @function isConnected
|
|
38
|
-
* @instance
|
|
39
|
-
* @rtype () => Boolean
|
|
40
|
-
* @return {Boolean} Is connected
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
function isConnected() {
|
|
44
|
-
return this.listener;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Connect
|
|
48
|
-
* @function connect
|
|
49
|
-
* @instance
|
|
50
|
-
* @rtype (onMessage: Function) => void
|
|
51
|
-
* @param {Function} onMessage - Message handler
|
|
52
|
-
* @return {void}
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
function connect(onMessage) {
|
|
57
|
-
const origin = this.origin;
|
|
58
|
-
const receiveDirection = this.receiveDirection;
|
|
59
|
-
const debug = this.debug;
|
|
60
|
-
const forceOrigin = this.forceOrigin;
|
|
61
|
-
if (this.listener) throw new AlreadyConnectedError('You already connected');
|
|
62
|
-
|
|
63
|
-
this.listener = (msg, source) => {
|
|
64
|
-
if (!msg || typeof msg.data !== 'object') return;
|
|
65
|
-
if (!forceOrigin && origin && origin !== msg.origin) return;
|
|
66
|
-
if (debug) console.log('Receive message: ', msg);
|
|
67
|
-
|
|
68
|
-
if (msg.data.type) {
|
|
69
|
-
if (msg.data.type !== receiveDirection) return;
|
|
70
|
-
onMessage(msg.data.data, msg.origin, msg.source);
|
|
71
|
-
} else {
|
|
72
|
-
onMessage(msg.data, msg.origin, msg.source);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
this.subscribeFn(this.listener);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Disconnect
|
|
80
|
-
* @function disconnect
|
|
81
|
-
* @instance
|
|
82
|
-
* @rtype () => void
|
|
83
|
-
* @return {void}
|
|
84
|
-
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
function disconnect() {
|
|
88
|
-
if (!this.listener) throw new NoWalletConnectedError('You dont have connection. Please connect before');
|
|
89
|
-
this.unsubscribeFn(this.listener);
|
|
90
|
-
this.listener = null;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Send message
|
|
94
|
-
* @function sendMessage
|
|
95
|
-
* @instance
|
|
96
|
-
* @rtype (msg: Object) => void
|
|
97
|
-
* @param {Object} msg - Message
|
|
98
|
-
* @return {void}
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
function sendMessage(msg) {
|
|
103
|
-
const message = this.sendDirection ? {
|
|
104
|
-
type: this.sendDirection,
|
|
105
|
-
data: msg
|
|
106
|
-
} : msg;
|
|
107
|
-
if (this.debug) console.log('Send message: ', message);
|
|
108
|
-
this.postFn(message);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const getTarget = () => {
|
|
112
|
-
const isExtensionContext = typeof getBrowserAPI(true).extension === 'object';
|
|
113
|
-
const isWeb = window && window.location && window.location.protocol.startsWith('http');
|
|
114
|
-
const isContentScript = isExtensionContext && isWeb;
|
|
115
|
-
if (isContentScript) return window; // When we is the main page we need to decide the target by our self
|
|
116
|
-
// Probably can be implemented some algo for checking DOM for Iframes and somehow decide which
|
|
117
|
-
// Iframe to talk
|
|
118
|
-
|
|
119
|
-
return isInIframe() ? window.parent : undefined;
|
|
120
|
-
};
|
|
121
|
-
/**
|
|
122
|
-
* BrowserWindowMessageConnection
|
|
123
|
-
* @function
|
|
124
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication\
|
|
125
|
-
* /connection/browser-window-message
|
|
126
|
-
* @rtype Stamp
|
|
127
|
-
* @param {Object} [params={}] - Initializer object
|
|
128
|
-
* @param {Object} [params.target=window.parent] - Target window for message
|
|
129
|
-
* @param {Object} [params.self=window] - Host window for message
|
|
130
|
-
* @param {Object} [params.origin] - Origin of receiver
|
|
131
|
-
* @param {String} [params.sendDirection] Wrapping messages into additional struct
|
|
132
|
-
* ({ type: 'to_aepp' || 'to_waellet', data })
|
|
133
|
-
* Used for handling messages between content script and page
|
|
134
|
-
* @param {String} [params.receiveDirection='to_aepp'] Unwrapping messages from additional struct
|
|
135
|
-
* ({ type: 'to_aepp' || 'to_waellet', data })
|
|
136
|
-
* Used for handling messages between content script and page
|
|
137
|
-
* @param {Object} [params.connectionInfo={}] - Connection info object
|
|
138
|
-
* @param {Boolean} [params.debug=false] - Debug flag
|
|
139
|
-
* @return {Object}
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
export default stampit({
|
|
144
|
-
init() {
|
|
145
|
-
let {
|
|
146
|
-
connectionInfo = {},
|
|
147
|
-
target = getTarget(),
|
|
148
|
-
self = window,
|
|
149
|
-
origin,
|
|
150
|
-
sendDirection,
|
|
151
|
-
receiveDirection = MESSAGE_DIRECTION.to_aepp,
|
|
152
|
-
debug = false,
|
|
153
|
-
forceOrigin = false
|
|
154
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
155
|
-
if (sendDirection && !Object.keys(MESSAGE_DIRECTION).includes(sendDirection)) throw new MessageDirectionError(`sendDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`);
|
|
156
|
-
if (!Object.keys(MESSAGE_DIRECTION).includes(receiveDirection)) throw new MessageDirectionError(`receiveDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`);
|
|
157
|
-
this.connectionInfo = {
|
|
158
|
-
id: uuid(),
|
|
159
|
-
...connectionInfo
|
|
160
|
-
};
|
|
161
|
-
const selfP = self;
|
|
162
|
-
const targetP = target;
|
|
163
|
-
this.origin = origin;
|
|
164
|
-
this.debug = debug;
|
|
165
|
-
this.forceOrigin = forceOrigin;
|
|
166
|
-
this.sendDirection = sendDirection;
|
|
167
|
-
this.receiveDirection = receiveDirection;
|
|
168
|
-
|
|
169
|
-
this.subscribeFn = listener => selfP.addEventListener('message', listener, false);
|
|
170
|
-
|
|
171
|
-
this.unsubscribeFn = listener => selfP.removeEventListener('message', listener, false);
|
|
172
|
-
|
|
173
|
-
this.postFn = msg => targetP.postMessage(msg, this.origin || '*');
|
|
174
|
-
},
|
|
175
|
-
|
|
176
|
-
methods: {
|
|
177
|
-
connect,
|
|
178
|
-
sendMessage,
|
|
179
|
-
disconnect,
|
|
180
|
-
isConnected
|
|
181
|
-
}
|
|
182
|
-
}, WalletConnection);
|
|
183
|
-
//# sourceMappingURL=browser-window-message.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/connection/browser-window-message.js"],"names":["stampit","WalletConnection","v4","uuid","MESSAGE_DIRECTION","getBrowserAPI","isInIframe","AlreadyConnectedError","NoWalletConnectedError","MessageDirectionError","isConnected","listener","connect","onMessage","origin","receiveDirection","debug","forceOrigin","msg","source","data","console","log","type","subscribeFn","disconnect","unsubscribeFn","sendMessage","message","sendDirection","postFn","getTarget","isExtensionContext","extension","isWeb","window","location","protocol","startsWith","isContentScript","parent","undefined","init","connectionInfo","target","self","to_aepp","Object","keys","includes","id","selfP","targetP","addEventListener","removeEventListener","postMessage","methods"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Browser window Post Message connector module\n *\n * This is the complement to\n * {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message\n * @export BrowserWindowMessageConnection\n * @example\n * import BrowserWindowMessageConnection\n * from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message'\n */\nimport stampit from '@stamp/it'\nimport WalletConnection from '.'\nimport { v4 as uuid } from '@aeternity/uuid'\nimport { MESSAGE_DIRECTION } from '../schema'\nimport { getBrowserAPI, isInIframe } from '../helpers'\nimport {\n AlreadyConnectedError,\n NoWalletConnectedError,\n MessageDirectionError\n} from '../../errors'\n\n/**\n * Check if connected\n * @function isConnected\n * @instance\n * @rtype () => Boolean\n * @return {Boolean} Is connected\n */\nfunction isConnected () {\n return this.listener\n}\n\n/**\n * Connect\n * @function connect\n * @instance\n * @rtype (onMessage: Function) => void\n * @param {Function} onMessage - Message handler\n * @return {void}\n */\nfunction connect (onMessage) {\n const origin = this.origin\n const receiveDirection = this.receiveDirection\n const debug = this.debug\n const forceOrigin = this.forceOrigin\n if (this.listener) throw new AlreadyConnectedError('You already connected')\n\n this.listener = (msg, source) => {\n if (!msg || typeof msg.data !== 'object') return\n if (!forceOrigin && origin && origin !== msg.origin) return\n if (debug) console.log('Receive message: ', msg)\n if (msg.data.type) {\n if (msg.data.type !== receiveDirection) return\n onMessage(msg.data.data, msg.origin, msg.source)\n } else {\n onMessage(msg.data, msg.origin, msg.source)\n }\n }\n this.subscribeFn(this.listener)\n}\n\n/**\n * Disconnect\n * @function disconnect\n * @instance\n * @rtype () => void\n * @return {void}\n */\nfunction disconnect () {\n if (!this.listener) throw new NoWalletConnectedError('You dont have connection. Please connect before')\n this.unsubscribeFn(this.listener)\n this.listener = null\n}\n\n/**\n * Send message\n * @function sendMessage\n * @instance\n * @rtype (msg: Object) => void\n * @param {Object} msg - Message\n * @return {void}\n */\nfunction sendMessage (msg) {\n const message = this.sendDirection ? { type: this.sendDirection, data: msg } : msg\n if (this.debug) console.log('Send message: ', message)\n this.postFn(message)\n}\n\nconst getTarget = () => {\n const isExtensionContext = typeof getBrowserAPI(true).extension === 'object'\n const isWeb = window && window.location && window.location.protocol.startsWith('http')\n const isContentScript = isExtensionContext && isWeb\n if (isContentScript) return window\n // When we is the main page we need to decide the target by our self\n // Probably can be implemented some algo for checking DOM for Iframes and somehow decide which\n // Iframe to talk\n return isInIframe() ? window.parent : undefined\n}\n\n/**\n * BrowserWindowMessageConnection\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication\\\n * /connection/browser-window-message\n * @rtype Stamp\n * @param {Object} [params={}] - Initializer object\n * @param {Object} [params.target=window.parent] - Target window for message\n * @param {Object} [params.self=window] - Host window for message\n * @param {Object} [params.origin] - Origin of receiver\n * @param {String} [params.sendDirection] Wrapping messages into additional struct\n * ({ type: 'to_aepp' || 'to_waellet', data })\n * Used for handling messages between content script and page\n * @param {String} [params.receiveDirection='to_aepp'] Unwrapping messages from additional struct\n * ({ type: 'to_aepp' || 'to_waellet', data })\n * Used for handling messages between content script and page\n * @param {Object} [params.connectionInfo={}] - Connection info object\n * @param {Boolean} [params.debug=false] - Debug flag\n * @return {Object}\n */\nexport default stampit({\n init ({\n connectionInfo = {},\n target = getTarget(),\n self = window,\n origin,\n sendDirection,\n receiveDirection = MESSAGE_DIRECTION.to_aepp,\n debug = false,\n forceOrigin = false\n } = {}) {\n if (sendDirection && !Object.keys(MESSAGE_DIRECTION).includes(sendDirection)) throw new MessageDirectionError(`sendDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)\n if (!Object.keys(MESSAGE_DIRECTION).includes(receiveDirection)) throw new MessageDirectionError(`receiveDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)\n this.connectionInfo = { id: uuid(), ...connectionInfo }\n\n const selfP = self\n const targetP = target\n this.origin = origin\n this.debug = debug\n this.forceOrigin = forceOrigin\n this.sendDirection = sendDirection\n this.receiveDirection = receiveDirection\n this.subscribeFn = (listener) => selfP.addEventListener('message', listener, false)\n this.unsubscribeFn = (listener) => selfP.removeEventListener('message', listener, false)\n this.postFn = (msg) => targetP.postMessage(msg, this.origin || '*')\n },\n methods: { connect, sendMessage, disconnect, isConnected }\n}, WalletConnection)\n"],"file":"browser-window-message.mjs"}
|
|
@@ -1,87 +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 Connection base module
|
|
20
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection
|
|
21
|
-
* @export WalletConnection
|
|
22
|
-
* @example
|
|
23
|
-
* import WalletConnection from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection'
|
|
24
|
-
*/
|
|
25
|
-
import _stampRequired from '@stamp/required';
|
|
26
|
-
/**
|
|
27
|
-
* Basic Wallet Connection
|
|
28
|
-
*
|
|
29
|
-
* This stamp include interface for wallet connection functionality.
|
|
30
|
-
* Attempting to create instances from the Stamp without overwriting all
|
|
31
|
-
* abstract methods using composition will result in an exception.
|
|
32
|
-
* @function
|
|
33
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection
|
|
34
|
-
* @rtype Stamp
|
|
35
|
-
* @param {Object} [options={}] - Initializer object
|
|
36
|
-
* @return {Object} WalletConnection instance
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
const {
|
|
40
|
-
required
|
|
41
|
-
} = _stampRequired;
|
|
42
|
-
export default required({
|
|
43
|
-
methods: {
|
|
44
|
-
connect: required,
|
|
45
|
-
disconnect: required,
|
|
46
|
-
sendMessage: required,
|
|
47
|
-
isConnected: required
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
/**
|
|
51
|
-
* Connect
|
|
52
|
-
* @function connect
|
|
53
|
-
* @instance
|
|
54
|
-
* @abstract
|
|
55
|
-
* @rtype (onMessage: Function) => void
|
|
56
|
-
* @param {Function} onMessage - Message handler
|
|
57
|
-
* @return {void}
|
|
58
|
-
*/
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Disconnect
|
|
62
|
-
* @function disconnect
|
|
63
|
-
* @instance
|
|
64
|
-
* @abstract
|
|
65
|
-
* @rtype () => void
|
|
66
|
-
* @return {void}
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Send message
|
|
71
|
-
* @function sendMessage
|
|
72
|
-
* @instance
|
|
73
|
-
* @abstract
|
|
74
|
-
* @rtype (msg: Object) => void
|
|
75
|
-
* @param {Object} msg - Message
|
|
76
|
-
* @return {void}
|
|
77
|
-
*/
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Check if connected
|
|
81
|
-
* @function isConnected
|
|
82
|
-
* @instance
|
|
83
|
-
* @abstract
|
|
84
|
-
* @rtype () => Boolean
|
|
85
|
-
* @return {Boolean} Is connected
|
|
86
|
-
*/
|
|
87
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/connection/index.js"],"names":["required","methods","connect","disconnect","sendMessage","isConnected"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,2BAAyB,iBAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACA,eAAeA,QAAQ,CAAC;AACtBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAEF,QADF;AAEPG,IAAAA,UAAU,EAAEH,QAFL;AAGPI,IAAAA,WAAW,EAAEJ,QAHN;AAIPK,IAAAA,WAAW,EAAEL;AAJN;AADa,CAAD,CAAvB;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","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 Connection base module\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection\n * @export WalletConnection\n * @example\n * import WalletConnection from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection'\n */\n\nimport { required } from '@stamp/required'\n\n/**\n * Basic Wallet Connection\n *\n * This stamp include interface for wallet connection functionality.\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} WalletConnection instance\n */\nexport default required({\n methods: {\n connect: required,\n disconnect: required,\n sendMessage: required,\n isConnected: required\n }\n})\n\n/**\n * Connect\n * @function connect\n * @instance\n * @abstract\n * @rtype (onMessage: Function) => void\n * @param {Function} onMessage - Message handler\n * @return {void}\n */\n\n/**\n * Disconnect\n * @function disconnect\n * @instance\n * @abstract\n * @rtype () => void\n * @return {void}\n */\n\n/**\n * Send message\n * @function sendMessage\n * @instance\n * @abstract\n * @rtype (msg: Object) => void\n * @param {Object} msg - Message\n * @return {void}\n */\n\n/**\n * Check if connected\n * @function isConnected\n * @instance\n * @abstract\n * @rtype () => Boolean\n * @return {Boolean} Is connected\n */\n"],"file":"index.mjs"}
|
|
@@ -1,98 +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
|
-
* Content Script Bridge module
|
|
20
|
-
*
|
|
21
|
-
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge
|
|
22
|
-
* @export ContentScriptBridge
|
|
23
|
-
* @example
|
|
24
|
-
* import ContentScriptBridge
|
|
25
|
-
* from '@aeternity/aepp-sdk/es/utils/wallet-communication/content-script-bridge
|
|
26
|
-
*/
|
|
27
|
-
import stampit from '@stamp/it';
|
|
28
|
-
import { UnsupportedPlatformError, MissingParamError } from "../errors.mjs";
|
|
29
|
-
/**
|
|
30
|
-
* Start message proxy
|
|
31
|
-
* @function run
|
|
32
|
-
* @instance
|
|
33
|
-
* @return {void}
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
function run() {
|
|
37
|
-
const allowCrossOrigin = this.allowCrossOrigin; // Connect to extension using runtime
|
|
38
|
-
|
|
39
|
-
this.extConnection.connect(msg => {
|
|
40
|
-
this.pageConnection.sendMessage(msg);
|
|
41
|
-
}); // Connect to page using window.postMessage
|
|
42
|
-
|
|
43
|
-
this.pageConnection.connect((msg, origin, source) => {
|
|
44
|
-
if (!allowCrossOrigin && source !== window) return;
|
|
45
|
-
this.extConnection.sendMessage(msg);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Stop message proxy
|
|
50
|
-
* @function stop
|
|
51
|
-
* @instance
|
|
52
|
-
* @return {void}
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
function stop() {
|
|
57
|
-
this.extConnection.disconnect();
|
|
58
|
-
this.pageConnection.disconnect();
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* ContentScriptBridge stamp
|
|
62
|
-
* Provide functionality to easly redirect messages from page to extension and from extension to
|
|
63
|
-
* page through content script
|
|
64
|
-
* Using Runtime(Extension) and WindowPostMessage(Web-Page) connections
|
|
65
|
-
* @function
|
|
66
|
-
* @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge
|
|
67
|
-
* @rtype Stamp
|
|
68
|
-
* @param {Object} params - Initializer object
|
|
69
|
-
* @param {Object} params.pageConnection - Page connection object
|
|
70
|
-
* (@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/
|
|
71
|
-
* browser-window-message)
|
|
72
|
-
* @param {Object} params.extConnection - Extension connection object
|
|
73
|
-
* (@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime)
|
|
74
|
-
* @return {Object}
|
|
75
|
-
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
export default stampit({
|
|
79
|
-
init(_ref) {
|
|
80
|
-
let {
|
|
81
|
-
pageConnection,
|
|
82
|
-
extConnection,
|
|
83
|
-
allowCrossOrigin = false
|
|
84
|
-
} = _ref;
|
|
85
|
-
if (!window) throw new UnsupportedPlatformError('Window object not found, you can run bridge only in browser');
|
|
86
|
-
if (!pageConnection) throw new MissingParamError('pageConnection required');
|
|
87
|
-
if (!extConnection) throw new MissingParamError('extConnection required');
|
|
88
|
-
this.allowCrossOrigin = allowCrossOrigin;
|
|
89
|
-
this.pageConnection = pageConnection;
|
|
90
|
-
this.extConnection = extConnection;
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
methods: {
|
|
94
|
-
run,
|
|
95
|
-
stop
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
//# sourceMappingURL=content-script-bridge.mjs.map
|