@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
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
|
|
2
|
+
import { v4 as uuid } from '@aeternity/uuid';
|
|
3
|
+
import AeSdk from "./AeSdk.mjs";
|
|
4
|
+
import verifyTransaction from "./tx/validator.mjs";
|
|
5
|
+
import RpcClient from "./aepp-wallet-communication/rpc/RpcClient.mjs";
|
|
6
|
+
import { METHODS, RPC_STATUS, SUBSCRIPTION_TYPES, RpcBroadcastError, RpcInvalidTransactionError, RpcNotAuthorizeError, RpcPermissionDenyError, RpcUnsupportedProtocolError } from "./aepp-wallet-communication/schema.mjs";
|
|
7
|
+
import { InternalError, UnknownRpcClientError } from "./utils/errors.mjs";
|
|
8
|
+
import { RPC_VERSION } from "./aepp-wallet-communication/rpc/types.mjs";
|
|
9
|
+
import jsonBig from "./utils/json-big.mjs";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Contain functionality for aepp interaction and managing multiple aepps
|
|
13
|
+
* @category aepp wallet communication
|
|
14
|
+
*/
|
|
15
|
+
export default class AeSdkWallet extends AeSdk {
|
|
16
|
+
/**
|
|
17
|
+
* @param options - Options
|
|
18
|
+
* @param options.name - Wallet name
|
|
19
|
+
* @param options.id - Wallet id
|
|
20
|
+
* @param options.type - Wallet type
|
|
21
|
+
* @param options.onConnection - Call-back function for incoming AEPP connection
|
|
22
|
+
* @param options.onSubscription - Call-back function for incoming AEPP account subscription
|
|
23
|
+
* @param options.onSign - Call-back function for incoming AEPP sign request
|
|
24
|
+
* @param options.onAskAccounts - Call-back function for incoming AEPP get address request
|
|
25
|
+
* @param options.onMessageSign - Call-back function for incoming AEPP sign message request
|
|
26
|
+
* @param options.onDisconnect - Call-back function for disconnect event
|
|
27
|
+
*/
|
|
28
|
+
constructor(_ref) {
|
|
29
|
+
let {
|
|
30
|
+
name,
|
|
31
|
+
id,
|
|
32
|
+
type,
|
|
33
|
+
onConnection,
|
|
34
|
+
onSubscription,
|
|
35
|
+
onSign,
|
|
36
|
+
onDisconnect,
|
|
37
|
+
onAskAccounts,
|
|
38
|
+
onMessageSign,
|
|
39
|
+
...options
|
|
40
|
+
} = _ref;
|
|
41
|
+
super(options);
|
|
42
|
+
this.onConnection = onConnection;
|
|
43
|
+
this.onSubscription = onSubscription;
|
|
44
|
+
this.onSign = onSign;
|
|
45
|
+
this.onDisconnect = onDisconnect;
|
|
46
|
+
this.onAskAccounts = onAskAccounts;
|
|
47
|
+
this.onMessageSign = onMessageSign;
|
|
48
|
+
this._clients = new Map();
|
|
49
|
+
this.name = name;
|
|
50
|
+
this.id = id;
|
|
51
|
+
this._type = type;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
_pushAccountsToApps() {
|
|
55
|
+
Array.from(this._clients.keys()).filter(clientId => this._isRpcClientSubscribed(clientId)).map(clientId => this._getClient(clientId).rpc).forEach(client => client.notify(METHODS.updateAddress, this.getAccounts()));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
selectAccount(address) {
|
|
59
|
+
super.selectAccount(address);
|
|
60
|
+
|
|
61
|
+
this._pushAccountsToApps();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async addAccount(account, options) {
|
|
65
|
+
await super.addAccount(account, options);
|
|
66
|
+
|
|
67
|
+
this._pushAccountsToApps();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
_getNode() {
|
|
71
|
+
this.ensureNodeConnected();
|
|
72
|
+
return {
|
|
73
|
+
node: {
|
|
74
|
+
url: this.api.url,
|
|
75
|
+
name: this.selectedNodeName
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
async selectNode(name) {
|
|
81
|
+
super.selectNode(name);
|
|
82
|
+
const networkId = await this.getNetworkId();
|
|
83
|
+
Array.from(this._clients.keys()).filter(clientId => this._isRpcClientConnected(clientId)).map(clientId => this._getClient(clientId)).forEach(client => {
|
|
84
|
+
client.rpc.notify(METHODS.updateNetwork, {
|
|
85
|
+
networkId,
|
|
86
|
+
...(client.connectNode && this._getNode())
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
_getClient(clientId) {
|
|
92
|
+
const client = this._clients.get(clientId);
|
|
93
|
+
|
|
94
|
+
if (client == null) throw new UnknownRpcClientError(clientId);
|
|
95
|
+
return client;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
_isRpcClientSubscribed(clientId) {
|
|
99
|
+
return this._isRpcClientConnected(clientId) && this._getClient(clientId).addressSubscription.size !== 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
_isRpcClientConnected(clientId) {
|
|
103
|
+
return RPC_STATUS.CONNECTED === this._getClient(clientId).status && this._getClient(clientId).rpc.connection.isConnected();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
_disconnectRpcClient(clientId) {
|
|
107
|
+
const client = this._getClient(clientId);
|
|
108
|
+
|
|
109
|
+
client.rpc.connection.disconnect();
|
|
110
|
+
client.status = RPC_STATUS.DISCONNECTED;
|
|
111
|
+
client.addressSubscription = new Set();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Remove specific RpcClient by ID
|
|
115
|
+
* @param id - Client ID
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
removeRpcClient(id) {
|
|
120
|
+
this._disconnectRpcClient(id);
|
|
121
|
+
|
|
122
|
+
this._clients.delete(id);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Add new client by AEPP connection
|
|
126
|
+
* @param clientConnection - AEPP connection object
|
|
127
|
+
* @returns Client ID
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
addRpcClient(clientConnection) {
|
|
132
|
+
// @TODO detect if aepp has some history based on origin????
|
|
133
|
+
// if yes use this instance for connection
|
|
134
|
+
const id = uuid();
|
|
135
|
+
let disconnectParams;
|
|
136
|
+
const client = {
|
|
137
|
+
id,
|
|
138
|
+
status: RPC_STATUS.WAITING_FOR_CONNECTION_REQUEST,
|
|
139
|
+
addressSubscription: new Set(),
|
|
140
|
+
connectNode: false,
|
|
141
|
+
rpc: new RpcClient(clientConnection, () => {
|
|
142
|
+
this._clients.delete(id);
|
|
143
|
+
|
|
144
|
+
this.onDisconnect(id, disconnectParams); // also related info
|
|
145
|
+
}, {
|
|
146
|
+
[METHODS.closeConnection]: params => {
|
|
147
|
+
disconnectParams = params;
|
|
148
|
+
|
|
149
|
+
this._disconnectRpcClient(id);
|
|
150
|
+
},
|
|
151
|
+
// Store client info and prepare two fn for each client `connect` and `denyConnection`
|
|
152
|
+
// which automatically prepare and send response for that client
|
|
153
|
+
[METHODS.connect]: async (_ref2, origin) => {
|
|
154
|
+
let {
|
|
155
|
+
name,
|
|
156
|
+
version,
|
|
157
|
+
icons,
|
|
158
|
+
connectNode
|
|
159
|
+
} = _ref2;
|
|
160
|
+
if (version !== RPC_VERSION) throw new RpcUnsupportedProtocolError();
|
|
161
|
+
await this.onConnection(id, {
|
|
162
|
+
name,
|
|
163
|
+
icons,
|
|
164
|
+
connectNode
|
|
165
|
+
}, origin);
|
|
166
|
+
client.status = RPC_STATUS.CONNECTED;
|
|
167
|
+
client.connectNode = connectNode;
|
|
168
|
+
return { ...(await this.getWalletInfo()),
|
|
169
|
+
...(connectNode && this._getNode())
|
|
170
|
+
};
|
|
171
|
+
},
|
|
172
|
+
[METHODS.subscribeAddress]: async (_ref3, origin) => {
|
|
173
|
+
let {
|
|
174
|
+
type,
|
|
175
|
+
value
|
|
176
|
+
} = _ref3;
|
|
177
|
+
if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
|
|
178
|
+
await this.onSubscription(id, {
|
|
179
|
+
type,
|
|
180
|
+
value
|
|
181
|
+
}, origin);
|
|
182
|
+
|
|
183
|
+
switch (type) {
|
|
184
|
+
case SUBSCRIPTION_TYPES.subscribe:
|
|
185
|
+
client.addressSubscription.add(value);
|
|
186
|
+
break;
|
|
187
|
+
|
|
188
|
+
case SUBSCRIPTION_TYPES.unsubscribe:
|
|
189
|
+
client.addressSubscription.delete(value);
|
|
190
|
+
break;
|
|
191
|
+
|
|
192
|
+
default:
|
|
193
|
+
throw new InternalError(`Unknown subscription type: ${type}`);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return {
|
|
197
|
+
subscription: Array.from(client.addressSubscription),
|
|
198
|
+
address: this.getAccounts()
|
|
199
|
+
};
|
|
200
|
+
},
|
|
201
|
+
[METHODS.address]: async (params, origin) => {
|
|
202
|
+
if (!this._isRpcClientSubscribed(id)) throw new RpcNotAuthorizeError();
|
|
203
|
+
await this.onAskAccounts(id, params, origin);
|
|
204
|
+
return this.addresses();
|
|
205
|
+
},
|
|
206
|
+
[METHODS.sign]: async (_ref4, origin) => {
|
|
207
|
+
var _onAccount, _context, _overrides$onAccount, _overrides$tx;
|
|
208
|
+
|
|
209
|
+
let {
|
|
210
|
+
tx,
|
|
211
|
+
onAccount,
|
|
212
|
+
returnSigned
|
|
213
|
+
} = _ref4;
|
|
214
|
+
if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
|
|
215
|
+
(_onAccount = onAccount) !== null && _onAccount !== void 0 ? _onAccount : onAccount = await this.address();
|
|
216
|
+
|
|
217
|
+
if (!_includesInstanceProperty(_context = this.addresses()).call(_context, onAccount)) {
|
|
218
|
+
throw new RpcPermissionDenyError(onAccount);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const overrides = await this.onSign(id, {
|
|
222
|
+
tx,
|
|
223
|
+
returnSigned,
|
|
224
|
+
onAccount
|
|
225
|
+
}, origin);
|
|
226
|
+
onAccount = (_overrides$onAccount = overrides === null || overrides === void 0 ? void 0 : overrides.onAccount) !== null && _overrides$onAccount !== void 0 ? _overrides$onAccount : onAccount;
|
|
227
|
+
tx = (_overrides$tx = overrides === null || overrides === void 0 ? void 0 : overrides.tx) !== null && _overrides$tx !== void 0 ? _overrides$tx : tx;
|
|
228
|
+
|
|
229
|
+
if (returnSigned) {
|
|
230
|
+
return {
|
|
231
|
+
signedTransaction: await this.signTransaction(tx, {
|
|
232
|
+
onAccount
|
|
233
|
+
})
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
try {
|
|
238
|
+
return jsonBig.parse(jsonBig.stringify({
|
|
239
|
+
transactionHash: await this.send(tx, {
|
|
240
|
+
onAccount,
|
|
241
|
+
verify: false
|
|
242
|
+
})
|
|
243
|
+
}));
|
|
244
|
+
} catch (error) {
|
|
245
|
+
const validation = await verifyTransaction(tx, this.api);
|
|
246
|
+
if (validation.length > 0) throw new RpcInvalidTransactionError(validation);
|
|
247
|
+
throw new RpcBroadcastError(error.message);
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
[METHODS.signMessage]: async (_ref5, origin) => {
|
|
251
|
+
var _onAccount2, _context2, _overrides$onAccount2;
|
|
252
|
+
|
|
253
|
+
let {
|
|
254
|
+
message,
|
|
255
|
+
onAccount
|
|
256
|
+
} = _ref5;
|
|
257
|
+
if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
|
|
258
|
+
(_onAccount2 = onAccount) !== null && _onAccount2 !== void 0 ? _onAccount2 : onAccount = await this.address();
|
|
259
|
+
|
|
260
|
+
if (!_includesInstanceProperty(_context2 = this.addresses()).call(_context2, onAccount)) {
|
|
261
|
+
throw new RpcPermissionDenyError(onAccount);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
const overrides = await this.onMessageSign(id, {
|
|
265
|
+
message,
|
|
266
|
+
onAccount
|
|
267
|
+
}, origin);
|
|
268
|
+
onAccount = (_overrides$onAccount2 = overrides === null || overrides === void 0 ? void 0 : overrides.onAccount) !== null && _overrides$onAccount2 !== void 0 ? _overrides$onAccount2 : onAccount;
|
|
269
|
+
return {
|
|
270
|
+
// TODO: fix signMessage return type
|
|
271
|
+
signature: await this.signMessage(message, {
|
|
272
|
+
onAccount,
|
|
273
|
+
returnHex: true
|
|
274
|
+
})
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
})
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
this._clients.set(id, client);
|
|
281
|
+
|
|
282
|
+
return id;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Send shareWalletInfo message to notify AEPP about wallet
|
|
286
|
+
* @param clientId - ID of RPC client send message to
|
|
287
|
+
*/
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
async shareWalletInfo(clientId) {
|
|
291
|
+
this._getClient(clientId).rpc.notify(METHODS.readyToConnect, await this.getWalletInfo());
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get Wallet info object
|
|
295
|
+
* @returns Object with wallet information
|
|
296
|
+
*/
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
async getWalletInfo() {
|
|
300
|
+
return {
|
|
301
|
+
id: this.id,
|
|
302
|
+
name: this.name,
|
|
303
|
+
networkId: await this.getNetworkId(),
|
|
304
|
+
origin: window.location.origin,
|
|
305
|
+
type: this._type
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Get Wallet accounts
|
|
310
|
+
* @returns Object with accounts information (\{ connected: Object, current: Object \})
|
|
311
|
+
*/
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
getAccounts() {
|
|
315
|
+
return {
|
|
316
|
+
current: this.selectedAddress != null ? {
|
|
317
|
+
[this.selectedAddress]: {}
|
|
318
|
+
} : {},
|
|
319
|
+
connected: this.addresses().filter(a => a !== this.selectedAddress).reduce((acc, a) => ({ ...acc,
|
|
320
|
+
[a]: {}
|
|
321
|
+
}), {})
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=AeSdkWallet.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AeSdkWallet.mjs","names":["v4","uuid","AeSdk","verifyTransaction","RpcClient","METHODS","RPC_STATUS","SUBSCRIPTION_TYPES","RpcBroadcastError","RpcInvalidTransactionError","RpcNotAuthorizeError","RpcPermissionDenyError","RpcUnsupportedProtocolError","InternalError","UnknownRpcClientError","RPC_VERSION","jsonBig","AeSdkWallet","constructor","name","id","type","onConnection","onSubscription","onSign","onDisconnect","onAskAccounts","onMessageSign","options","_clients","Map","_type","_pushAccountsToApps","Array","from","keys","filter","clientId","_isRpcClientSubscribed","map","_getClient","rpc","forEach","client","notify","updateAddress","getAccounts","selectAccount","address","addAccount","account","_getNode","ensureNodeConnected","node","url","api","selectedNodeName","selectNode","networkId","getNetworkId","_isRpcClientConnected","updateNetwork","connectNode","get","addressSubscription","size","CONNECTED","status","connection","isConnected","_disconnectRpcClient","disconnect","DISCONNECTED","Set","removeRpcClient","delete","addRpcClient","clientConnection","disconnectParams","WAITING_FOR_CONNECTION_REQUEST","closeConnection","params","connect","origin","version","icons","getWalletInfo","subscribeAddress","value","subscribe","add","unsubscribe","subscription","addresses","sign","tx","onAccount","returnSigned","overrides","signedTransaction","signTransaction","parse","stringify","transactionHash","send","verify","error","validation","length","message","signMessage","signature","returnHex","set","shareWalletInfo","readyToConnect","window","location","current","selectedAddress","connected","a","reduce","acc"],"sources":["../src/AeSdkWallet.ts"],"sourcesContent":["import { v4 as uuid } from '@aeternity/uuid';\nimport AeSdk from './AeSdk';\nimport { Account } from './AeSdkBase';\nimport verifyTransaction from './tx/validator';\nimport RpcClient from './aepp-wallet-communication/rpc/RpcClient';\nimport {\n METHODS, RPC_STATUS, SUBSCRIPTION_TYPES, WALLET_TYPE,\n RpcBroadcastError, RpcInvalidTransactionError,\n RpcNotAuthorizeError, RpcPermissionDenyError, RpcUnsupportedProtocolError,\n} from './aepp-wallet-communication/schema';\nimport { InternalError, UnknownRpcClientError } from './utils/errors';\nimport AccountBase from './account/Base';\nimport BrowserConnection from './aepp-wallet-communication/connection/Browser';\nimport {\n Accounts,\n AeppApi,\n Network,\n RPC_VERSION,\n WalletApi,\n WalletInfo,\n} from './aepp-wallet-communication/rpc/types';\nimport { Encoded } from './utils/encoder';\nimport jsonBig from './utils/json-big';\n\ntype RpcClientWallet = RpcClient<AeppApi, WalletApi>;\n\ntype OnConnection = (\n clientId: string, params: Omit<Parameters<WalletApi[METHODS.connect]>[0], 'version'>, origin: string\n) => void;\n\ntype OnSubscription = (\n clientId: string, params: Parameters<WalletApi[METHODS.subscribeAddress]>[0], origin: string\n) => void;\n\ntype OnSign = (\n clientId: string, params: Parameters<WalletApi[METHODS.sign]>[0], origin: string\n) => Promise<{ tx?: Encoded.Transaction; onAccount?: Account } | undefined> | Promise<void>;\n\ntype OnDisconnect = (\n clientId: string, params: Parameters<WalletApi[METHODS.closeConnection]>[0]\n) => void;\n\ntype OnAskAccounts = (\n clientId: string, params: undefined, origin: string\n) => void;\n\ntype OnMessageSign = (\n clientId: string, params: Parameters<WalletApi[METHODS.signMessage]>[0], origin: string\n) => Promise<{ onAccount?: Account } | undefined> | Promise<void>;\n\ninterface RpcClientsInfo {\n id: string;\n status: RPC_STATUS;\n connectNode: boolean;\n addressSubscription: Set<'connected' | 'current'>;\n rpc: RpcClientWallet;\n}\n\n/**\n * Contain functionality for aepp interaction and managing multiple aepps\n * @category aepp wallet communication\n */\nexport default class AeSdkWallet extends AeSdk {\n id: string;\n\n _type: WALLET_TYPE;\n\n name: string;\n\n _clients: Map<string, RpcClientsInfo>;\n\n onConnection: OnConnection;\n\n onSubscription: OnSubscription;\n\n onSign: OnSign;\n\n onDisconnect: OnDisconnect;\n\n onAskAccounts: OnAskAccounts;\n\n onMessageSign: OnMessageSign;\n\n /**\n * @param options - Options\n * @param options.name - Wallet name\n * @param options.id - Wallet id\n * @param options.type - Wallet type\n * @param options.onConnection - Call-back function for incoming AEPP connection\n * @param options.onSubscription - Call-back function for incoming AEPP account subscription\n * @param options.onSign - Call-back function for incoming AEPP sign request\n * @param options.onAskAccounts - Call-back function for incoming AEPP get address request\n * @param options.onMessageSign - Call-back function for incoming AEPP sign message request\n * @param options.onDisconnect - Call-back function for disconnect event\n */\n constructor({\n name,\n id,\n type,\n onConnection,\n onSubscription,\n onSign,\n onDisconnect,\n onAskAccounts,\n onMessageSign,\n ...options\n }: {\n id: string;\n type: WALLET_TYPE;\n name: string;\n onConnection: OnConnection;\n onSubscription: OnSubscription;\n onSign: OnSign;\n onDisconnect: OnDisconnect;\n onAskAccounts: OnAskAccounts;\n onMessageSign: OnMessageSign;\n } & ConstructorParameters<typeof AeSdk>[0]) {\n super(options);\n this.onConnection = onConnection;\n this.onSubscription = onSubscription;\n this.onSign = onSign;\n this.onDisconnect = onDisconnect;\n this.onAskAccounts = onAskAccounts;\n this.onMessageSign = onMessageSign;\n this._clients = new Map();\n this.name = name;\n this.id = id;\n this._type = type;\n }\n\n _pushAccountsToApps(): void {\n Array.from(this._clients.keys())\n .filter((clientId) => this._isRpcClientSubscribed(clientId))\n .map((clientId) => this._getClient(clientId).rpc)\n .forEach((client) => client.notify(METHODS.updateAddress, this.getAccounts()));\n }\n\n selectAccount(address: Encoded.AccountAddress): void {\n super.selectAccount(address);\n this._pushAccountsToApps();\n }\n\n async addAccount(\n account: AccountBase,\n options?: Parameters<AeSdk['addAccount']>[1],\n ): Promise<void> {\n await super.addAccount(account, options);\n this._pushAccountsToApps();\n }\n\n _getNode(): { node: Network['node'] } {\n this.ensureNodeConnected();\n return { node: { url: this.api.url, name: this.selectedNodeName } };\n }\n\n async selectNode(name: string): Promise<void> {\n super.selectNode(name);\n const networkId = await this.getNetworkId();\n Array.from(this._clients.keys())\n .filter((clientId) => this._isRpcClientConnected(clientId))\n .map((clientId) => this._getClient(clientId))\n .forEach((client) => {\n client.rpc.notify(METHODS.updateNetwork, {\n networkId,\n ...client.connectNode && this._getNode(),\n });\n });\n }\n\n _getClient(clientId: string): RpcClientsInfo {\n const client = this._clients.get(clientId);\n if (client == null) throw new UnknownRpcClientError(clientId);\n return client;\n }\n\n _isRpcClientSubscribed(clientId: string): boolean {\n return this._isRpcClientConnected(clientId)\n && this._getClient(clientId).addressSubscription.size !== 0;\n }\n\n _isRpcClientConnected(clientId: string): boolean {\n return RPC_STATUS.CONNECTED === this._getClient(clientId).status\n && this._getClient(clientId).rpc.connection.isConnected();\n }\n\n _disconnectRpcClient(clientId: string): void {\n const client = this._getClient(clientId);\n client.rpc.connection.disconnect();\n client.status = RPC_STATUS.DISCONNECTED;\n client.addressSubscription = new Set();\n }\n\n /**\n * Remove specific RpcClient by ID\n * @param id - Client ID\n */\n removeRpcClient(id: string): void {\n this._disconnectRpcClient(id);\n this._clients.delete(id);\n }\n\n /**\n * Add new client by AEPP connection\n * @param clientConnection - AEPP connection object\n * @returns Client ID\n */\n addRpcClient(clientConnection: BrowserConnection): string {\n // @TODO detect if aepp has some history based on origin????\n // if yes use this instance for connection\n const id = uuid();\n let disconnectParams: any;\n const client: RpcClientsInfo = {\n id,\n status: RPC_STATUS.WAITING_FOR_CONNECTION_REQUEST,\n addressSubscription: new Set(),\n connectNode: false,\n rpc: new RpcClient<AeppApi, WalletApi>(\n clientConnection,\n () => {\n this._clients.delete(id);\n this.onDisconnect(id, disconnectParams); // also related info\n },\n {\n [METHODS.closeConnection]: (params) => {\n disconnectParams = params;\n this._disconnectRpcClient(id);\n },\n // Store client info and prepare two fn for each client `connect` and `denyConnection`\n // which automatically prepare and send response for that client\n [METHODS.connect]: async ({\n name, version, icons, connectNode,\n }, origin) => {\n if (version !== RPC_VERSION) throw new RpcUnsupportedProtocolError();\n\n await this.onConnection(id, { name, icons, connectNode }, origin);\n client.status = RPC_STATUS.CONNECTED;\n client.connectNode = connectNode;\n return {\n ...await this.getWalletInfo(),\n ...connectNode && this._getNode(),\n };\n },\n [METHODS.subscribeAddress]: async ({ type, value }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n\n await this.onSubscription(id, { type, value }, origin);\n\n switch (type) {\n case SUBSCRIPTION_TYPES.subscribe:\n client.addressSubscription.add(value);\n break;\n case SUBSCRIPTION_TYPES.unsubscribe:\n client.addressSubscription.delete(value);\n break;\n default:\n throw new InternalError(`Unknown subscription type: ${type}`);\n }\n\n return {\n subscription: Array.from(client.addressSubscription),\n address: this.getAccounts(),\n };\n },\n [METHODS.address]: async (params, origin) => {\n if (!this._isRpcClientSubscribed(id)) throw new RpcNotAuthorizeError();\n await this.onAskAccounts(id, params, origin);\n return this.addresses();\n },\n [METHODS.sign]: async ({ tx, onAccount, returnSigned }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n onAccount ??= await this.address();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const overrides = await this.onSign(id, { tx, returnSigned, onAccount }, origin);\n onAccount = overrides?.onAccount ?? onAccount;\n tx = overrides?.tx ?? tx;\n if (returnSigned) {\n return { signedTransaction: await this.signTransaction(tx, { onAccount }) };\n }\n try {\n return jsonBig.parse(jsonBig.stringify({\n transactionHash: await this.send(tx, { onAccount, verify: false }),\n }));\n } catch (error) {\n const validation = await verifyTransaction(tx, this.api);\n if (validation.length > 0) throw new RpcInvalidTransactionError(validation);\n throw new RpcBroadcastError(error.message);\n }\n },\n [METHODS.signMessage]: async ({ message, onAccount }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n onAccount ??= await this.address();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const overrides = await this.onMessageSign(id, { message, onAccount }, origin);\n onAccount = overrides?.onAccount ?? onAccount;\n return {\n // TODO: fix signMessage return type\n signature: await this.signMessage(message, { onAccount, returnHex: true }) as\n unknown as string,\n };\n },\n },\n ),\n };\n this._clients.set(id, client);\n return id;\n }\n\n /**\n * Send shareWalletInfo message to notify AEPP about wallet\n * @param clientId - ID of RPC client send message to\n */\n async shareWalletInfo(clientId: string): Promise<void> {\n this._getClient(clientId).rpc.notify(METHODS.readyToConnect, await this.getWalletInfo());\n }\n\n /**\n * Get Wallet info object\n * @returns Object with wallet information\n */\n async getWalletInfo(): Promise<WalletInfo> {\n return {\n id: this.id,\n name: this.name,\n networkId: await this.getNetworkId(),\n origin: window.location.origin,\n type: this._type,\n };\n }\n\n /**\n * Get Wallet accounts\n * @returns Object with accounts information (\\{ connected: Object, current: Object \\})\n */\n getAccounts(): Accounts {\n return {\n current: this.selectedAddress != null ? { [this.selectedAddress]: {} } : {},\n connected: this.addresses()\n .filter((a) => a !== this.selectedAddress)\n .reduce((acc, a) => ({ ...acc, [a]: {} }), {}),\n };\n }\n}\n"],"mappings":"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"}
|
package/es/Node.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Node as NodeApi, NodeOptionalParams } from './apis/node';
|
|
2
|
+
import { Encoded } from './utils/encoder';
|
|
3
|
+
/**
|
|
4
|
+
* Obtain networkId from account or node
|
|
5
|
+
*/
|
|
6
|
+
export declare function getNetworkId({ networkId }?: {
|
|
7
|
+
networkId?: string;
|
|
8
|
+
}): Promise<string>;
|
|
9
|
+
declare const bigIntPropertyNames: readonly ["balance", "queryFee", "fee", "amount", "nameFee", "channelAmount", "initiatorAmount", "responderAmount", "channelReserve", "initiatorAmountFinal", "responderAmountFinal", "gasPrice", "deposit"];
|
|
10
|
+
declare const numberPropertyNames: readonly ["time", "gas", "gasUsed", "nameSalt", "nonce", "nextNonce", "height", "blockHeight", "top", "topBlockHeight", "ttl", "nameTtl", "clientTtl", "inbound", "outbound", "peerCount", "pendingTransactionsCount", "effectiveAtHeight", "version", "solutions", "round"];
|
|
11
|
+
declare type BigIntPropertyNames = typeof bigIntPropertyNames[number];
|
|
12
|
+
declare type NumberPropertyNames = typeof numberPropertyNames[number];
|
|
13
|
+
declare type PreserveOptional<NewType, OrigType> = OrigType extends undefined ? NewType | undefined : NewType;
|
|
14
|
+
export declare type TransformNodeType<Type> = Type extends (...args: infer Args) => infer Ret ? (...args: TransformNodeType<Args>) => TransformNodeType<Ret> : Type extends [infer Item, ...infer Rest] ? [TransformNodeType<Item>, ...TransformNodeType<Rest>] : Type extends Array<infer Item> ? Array<TransformNodeType<Item>> : Type extends Promise<infer T> ? Promise<TransformNodeType<T>> : Type extends {
|
|
15
|
+
[P in any]: any;
|
|
16
|
+
} ? {
|
|
17
|
+
[Property in keyof Type]: Property extends BigIntPropertyNames ? PreserveOptional<bigint, Type[Property]> : Property extends NumberPropertyNames ? PreserveOptional<number, Type[Property]> : Property extends 'txHash' ? PreserveOptional<Encoded.TxHash, Type[Property]> : TransformNodeType<Type[Property]>;
|
|
18
|
+
} : Type;
|
|
19
|
+
declare type NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {
|
|
20
|
+
[Name in keyof InstanceType<typeof NodeApi>]: Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest' ? NodeApi[Name] : TransformNodeType<NodeApi[Name]>;
|
|
21
|
+
};
|
|
22
|
+
export interface NodeInfo {
|
|
23
|
+
url: string;
|
|
24
|
+
nodeNetworkId: string;
|
|
25
|
+
version: string;
|
|
26
|
+
consensusProtocolVersion: number;
|
|
27
|
+
}
|
|
28
|
+
declare const Node_base: NodeTransformedApi;
|
|
29
|
+
export default class Node extends Node_base {
|
|
30
|
+
url: string;
|
|
31
|
+
/**
|
|
32
|
+
* @param url - Url for node API
|
|
33
|
+
* @param options - Options
|
|
34
|
+
* @param options.ignoreVersion - Don't check node version
|
|
35
|
+
*/
|
|
36
|
+
constructor(url: string, { ignoreVersion, ...options }?: NodeOptionalParams & {
|
|
37
|
+
ignoreVersion?: boolean;
|
|
38
|
+
});
|
|
39
|
+
getNodeInfo(): Promise<NodeInfo>;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
package/es/Node.mjs
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
2
|
+
|
|
3
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
4
|
+
|
|
5
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
|
6
|
+
|
|
7
|
+
// eslint-disable-next-line max-classes-per-file
|
|
8
|
+
import BigNumber from 'bignumber.js';
|
|
9
|
+
import { genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy, genVersionCheckPolicy } from "./utils/autorest.mjs";
|
|
10
|
+
import { Node as NodeApi } from "./apis/node/index.mjs";
|
|
11
|
+
import { mapObject } from "./utils/other.mjs";
|
|
12
|
+
import { MissingParamError } from "./utils/errors.mjs";
|
|
13
|
+
/**
|
|
14
|
+
* Obtain networkId from account or node
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export async function getNetworkId() {
|
|
18
|
+
var _ref, _await$this$api$getSt, _this$api;
|
|
19
|
+
|
|
20
|
+
let {
|
|
21
|
+
networkId
|
|
22
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
23
|
+
const res = (_ref = networkId !== null && networkId !== void 0 ? networkId : this.networkId) !== null && _ref !== void 0 ? _ref : (_await$this$api$getSt = await ((_this$api = this.api) === null || _this$api === void 0 ? void 0 : _this$api.getStatus())) === null || _await$this$api$getSt === void 0 ? void 0 : _await$this$api$getSt.networkId;
|
|
24
|
+
if (res != null) return res;
|
|
25
|
+
throw new MissingParamError('networkId is not provided');
|
|
26
|
+
}
|
|
27
|
+
const bigIntPropertyNames = ['balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount', 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal', 'responderAmountFinal', 'gasPrice', 'deposit'];
|
|
28
|
+
const numberPropertyNames = ['time', 'gas', 'gasUsed', 'nameSalt', 'nonce', 'nextNonce', 'height', 'blockHeight', 'top', 'topBlockHeight', 'ttl', 'nameTtl', 'clientTtl', 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight', 'version', 'solutions', 'round'];
|
|
29
|
+
|
|
30
|
+
var _mapData = /*#__PURE__*/new WeakSet();
|
|
31
|
+
|
|
32
|
+
var _encodeArg = /*#__PURE__*/new WeakSet();
|
|
33
|
+
|
|
34
|
+
var _decodeRes = /*#__PURE__*/new WeakSet();
|
|
35
|
+
|
|
36
|
+
class NodeTransformed extends NodeApi {
|
|
37
|
+
constructor() {
|
|
38
|
+
super(...arguments);
|
|
39
|
+
|
|
40
|
+
_classPrivateMethodInitSpec(this, _decodeRes);
|
|
41
|
+
|
|
42
|
+
_classPrivateMethodInitSpec(this, _encodeArg);
|
|
43
|
+
|
|
44
|
+
_classPrivateMethodInitSpec(this, _mapData);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async sendOperationRequest(operationArguments, operationSpec) {
|
|
48
|
+
const args = mapObject(operationArguments, _ref2 => {
|
|
49
|
+
let [key, value] = _ref2;
|
|
50
|
+
return [key, _classPrivateMethodGet(this, _encodeArg, _encodeArg2).call(this, value)];
|
|
51
|
+
});
|
|
52
|
+
return _classPrivateMethodGet(this, _decodeRes, _decodeRes2).call(this, await super.sendOperationRequest(args, operationSpec));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function _mapData2(data, transform) {
|
|
58
|
+
if (Array.isArray(data)) return data.map(d => _classPrivateMethodGet(this, _mapData, _mapData2).call(this, d, transform));
|
|
59
|
+
|
|
60
|
+
if (data != null && typeof data === 'object') {
|
|
61
|
+
return mapObject(data, _ref5 => {
|
|
62
|
+
let [key, value] = _ref5;
|
|
63
|
+
if (value == null) return [key, value];
|
|
64
|
+
if (bigIntPropertyNames.some(k => k === key)) return [key, transform.bigInt(value)];
|
|
65
|
+
if (numberPropertyNames.some(k => k === key)) return [key, transform.number(value)];
|
|
66
|
+
return [key, _classPrivateMethodGet(this, _mapData, _mapData2).call(this, value, transform)];
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return data;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function _encodeArg2(data) {
|
|
74
|
+
return _classPrivateMethodGet(this, _mapData, _mapData2).call(this, data, {
|
|
75
|
+
bigInt: value => {
|
|
76
|
+
if (value instanceof BigNumber) return value.toFixed();
|
|
77
|
+
return value.toString();
|
|
78
|
+
},
|
|
79
|
+
number: value => value.toString()
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function _decodeRes2(data) {
|
|
84
|
+
return _classPrivateMethodGet(this, _mapData, _mapData2).call(this, data, {
|
|
85
|
+
bigInt: value => BigInt(value),
|
|
86
|
+
number: value => +value
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export default class Node extends NodeTransformed {
|
|
91
|
+
/**
|
|
92
|
+
* @param url - Url for node API
|
|
93
|
+
* @param options - Options
|
|
94
|
+
* @param options.ignoreVersion - Don't check node version
|
|
95
|
+
*/
|
|
96
|
+
constructor(url) {
|
|
97
|
+
let {
|
|
98
|
+
ignoreVersion = false,
|
|
99
|
+
...options
|
|
100
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
101
|
+
// eslint-disable-next-line constructor-super
|
|
102
|
+
super(url, {
|
|
103
|
+
allowInsecureConnection: true,
|
|
104
|
+
additionalPolicies: [genRequestQueuesPolicy(), genCombineGetRequestsPolicy(), genErrorFormatterPolicy(body => ` ${body.reason}`)],
|
|
105
|
+
...options
|
|
106
|
+
});
|
|
107
|
+
this.url = url;
|
|
108
|
+
|
|
109
|
+
if (!ignoreVersion) {
|
|
110
|
+
const versionPromise = this.getStatus().then(_ref3 => {
|
|
111
|
+
let {
|
|
112
|
+
nodeVersion
|
|
113
|
+
} = _ref3;
|
|
114
|
+
return nodeVersion;
|
|
115
|
+
});
|
|
116
|
+
this.pipeline.addPolicy(genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
this.intAsString = true;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
async getNodeInfo() {
|
|
123
|
+
const {
|
|
124
|
+
nodeVersion: version,
|
|
125
|
+
networkId: nodeNetworkId,
|
|
126
|
+
protocols,
|
|
127
|
+
topBlockHeight
|
|
128
|
+
} = await this.getStatus();
|
|
129
|
+
const consensusProtocolVersion = protocols.filter(_ref4 => {
|
|
130
|
+
let {
|
|
131
|
+
effectiveAtHeight
|
|
132
|
+
} = _ref4;
|
|
133
|
+
return topBlockHeight >= effectiveAtHeight;
|
|
134
|
+
}).reduce((acc, p) => p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc, {
|
|
135
|
+
effectiveAtHeight: -1,
|
|
136
|
+
version: 0
|
|
137
|
+
}).version;
|
|
138
|
+
return {
|
|
139
|
+
url: this.url,
|
|
140
|
+
nodeNetworkId,
|
|
141
|
+
version,
|
|
142
|
+
consensusProtocolVersion
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=Node.mjs.map
|
package/es/Node.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Node.mjs","names":["BigNumber","genRequestQueuesPolicy","genCombineGetRequestsPolicy","genErrorFormatterPolicy","genVersionCheckPolicy","Node","NodeApi","mapObject","MissingParamError","getNetworkId","networkId","res","api","getStatus","bigIntPropertyNames","numberPropertyNames","NodeTransformed","sendOperationRequest","operationArguments","operationSpec","args","key","value","data","transform","Array","isArray","map","d","some","k","bigInt","number","toFixed","toString","BigInt","constructor","url","ignoreVersion","options","allowInsecureConnection","additionalPolicies","body","reason","versionPromise","then","nodeVersion","pipeline","addPolicy","intAsString","getNodeInfo","version","nodeNetworkId","protocols","topBlockHeight","consensusProtocolVersion","filter","effectiveAtHeight","reduce","acc","p"],"sources":["../src/Node.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport BigNumber from 'bignumber.js';\nimport { OperationArguments, OperationSpec } from '@azure/core-client';\nimport {\n genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy,\n genVersionCheckPolicy,\n} from './utils/autorest';\nimport { Node as NodeApi, NodeOptionalParams, ErrorModel } from './apis/node';\nimport { mapObject } from './utils/other';\nimport { Encoded } from './utils/encoder';\nimport { MissingParamError } from './utils/errors';\n\n/**\n * Obtain networkId from account or node\n */\nexport async function getNetworkId({ networkId }: { networkId?: string } = {}): Promise<string> {\n const res = networkId ?? this.networkId ?? (await this.api?.getStatus())?.networkId;\n if (res != null) return res;\n throw new MissingParamError('networkId is not provided');\n}\n\nconst bigIntPropertyNames = [\n 'balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount',\n 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal',\n 'responderAmountFinal', 'gasPrice', 'deposit',\n] as const;\n\nconst numberPropertyNames = [\n 'time', 'gas', 'gasUsed', 'nameSalt',\n 'nonce', 'nextNonce', 'height', 'blockHeight', 'top', 'topBlockHeight',\n 'ttl', 'nameTtl', 'clientTtl',\n 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight',\n 'version', 'solutions', 'round',\n] as const;\n\nclass NodeTransformed extends NodeApi {\n async sendOperationRequest(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n ): Promise<any> {\n const args = mapObject(\n operationArguments,\n ([key, value]) => [key, this.#encodeArg(value)],\n ) as OperationArguments;\n return this.#decodeRes(await super.sendOperationRequest(args, operationSpec));\n }\n\n #mapData(data: any, transform: {\n bigInt: (v: any) => any;\n number: (v: any) => any;\n }): unknown {\n if (Array.isArray(data)) return data.map((d) => this.#mapData(d, transform));\n if (data != null && typeof data === 'object') {\n return mapObject(data, ([key, value]) => {\n if (value == null) return [key, value];\n if (bigIntPropertyNames.some((k) => k === key)) return [key, transform.bigInt(value)];\n if (numberPropertyNames.some((k) => k === key)) return [key, transform.number(value)];\n return [key, this.#mapData(value, transform)];\n });\n }\n return data;\n }\n\n #encodeArg(data: any): any {\n return this.#mapData(data, {\n bigInt: (value) => {\n if (value instanceof BigNumber) return value.toFixed();\n return value.toString();\n },\n number: (value) => value.toString(),\n });\n }\n\n #decodeRes(data: any): any {\n return this.#mapData(data, {\n bigInt: (value) => BigInt(value),\n number: (value) => +value,\n });\n }\n}\n\ntype BigIntPropertyNames = typeof bigIntPropertyNames[number];\ntype NumberPropertyNames = typeof numberPropertyNames[number];\ntype PreserveOptional<NewType, OrigType> =\n OrigType extends undefined ? NewType | undefined : NewType;\nexport type TransformNodeType<Type> =\n Type extends (...args: infer Args) => infer Ret\n ? (...args: TransformNodeType<Args>) => TransformNodeType<Ret>\n : Type extends [infer Item, ...infer Rest]\n ? [TransformNodeType<Item>, ...TransformNodeType<Rest>]\n : Type extends Array<infer Item>\n ? Array<TransformNodeType<Item>>\n : Type extends Promise<infer T>\n ? Promise<TransformNodeType<T>>\n : Type extends { [P in any]: any }\n ? {\n [Property in keyof Type]:\n Property extends BigIntPropertyNames\n ? PreserveOptional<bigint, Type[Property]>\n : Property extends NumberPropertyNames\n ? PreserveOptional<number, Type[Property]>\n : Property extends 'txHash'\n ? PreserveOptional<Encoded.TxHash, Type[Property]>\n : TransformNodeType<Type[Property]>\n }\n : Type;\ntype NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {\n [Name in keyof InstanceType<typeof NodeApi>]:\n Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest'\n ? NodeApi[Name] : TransformNodeType<NodeApi[Name]>\n};\n\nexport interface NodeInfo {\n url: string;\n nodeNetworkId: string;\n version: string;\n consensusProtocolVersion: number;\n}\n\nexport default class Node extends (NodeTransformed as unknown as NodeTransformedApi) {\n url: string;\n\n /**\n * @param url - Url for node API\n * @param options - Options\n * @param options.ignoreVersion - Don't check node version\n */\n constructor(\n url: string,\n { ignoreVersion = false, ...options }: NodeOptionalParams & { ignoreVersion?: boolean } = {},\n ) {\n // eslint-disable-next-line constructor-super\n super(url, {\n allowInsecureConnection: true,\n additionalPolicies: [\n genRequestQueuesPolicy(),\n genCombineGetRequestsPolicy(),\n genErrorFormatterPolicy((body: ErrorModel) => ` ${body.reason}`),\n ],\n ...options,\n });\n this.url = url;\n if (!ignoreVersion) {\n const versionPromise = this.getStatus().then(({ nodeVersion }) => nodeVersion);\n this.pipeline.addPolicy(\n genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'),\n );\n }\n this.intAsString = true;\n }\n\n async getNodeInfo(): Promise<NodeInfo> {\n const {\n nodeVersion: version,\n networkId: nodeNetworkId,\n protocols,\n topBlockHeight,\n } = await this.getStatus();\n const consensusProtocolVersion = protocols\n .filter(({ effectiveAtHeight }) => topBlockHeight >= effectiveAtHeight)\n .reduce(\n (acc, p) => (p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc),\n { effectiveAtHeight: -1, version: 0 },\n )\n .version;\n return {\n url: this.url,\n nodeNetworkId,\n version,\n consensusProtocolVersion,\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Encoded } from '../utils/encoder';
|
|
2
|
+
import { getNetworkId } from '../Node';
|
|
3
|
+
import type { createMetaTx } from '../contract/ga';
|
|
4
|
+
/**
|
|
5
|
+
* Check is provided object looks like an instance of AccountBase
|
|
6
|
+
* @param acc - Object to check
|
|
7
|
+
*/
|
|
8
|
+
export declare const isAccountBase: (acc: AccountBase | any) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Account is one of the three basic building blocks of an
|
|
11
|
+
* {@link AeSdk} and provides access to a signing key pair.
|
|
12
|
+
*/
|
|
13
|
+
export default abstract class AccountBase {
|
|
14
|
+
networkId?: string;
|
|
15
|
+
/**
|
|
16
|
+
* @param options - Options
|
|
17
|
+
* @param options.networkId - Using for signing transactions
|
|
18
|
+
*/
|
|
19
|
+
constructor({ networkId }?: {
|
|
20
|
+
networkId?: string;
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Sign encoded transaction
|
|
24
|
+
* @param tx - Transaction to sign
|
|
25
|
+
* @param opt - Options
|
|
26
|
+
* @param opt.innerTx - Sign as inner transaction for PayingFor
|
|
27
|
+
* @returns Signed transaction
|
|
28
|
+
*/
|
|
29
|
+
signTransaction(tx: Encoded.Transaction, { innerTx, networkId, ...options }?: {
|
|
30
|
+
innerTx?: boolean;
|
|
31
|
+
networkId?: string;
|
|
32
|
+
authData?: Parameters<typeof createMetaTx>[1];
|
|
33
|
+
authFun?: Parameters<typeof createMetaTx>[2];
|
|
34
|
+
} & Omit<Partial<Parameters<typeof createMetaTx>[3]>, 'onAccount'>): Promise<Encoded.Transaction>;
|
|
35
|
+
/**
|
|
36
|
+
* Get network Id
|
|
37
|
+
* @returns Network Id
|
|
38
|
+
*/
|
|
39
|
+
readonly getNetworkId: typeof getNetworkId;
|
|
40
|
+
/**
|
|
41
|
+
* Sign message
|
|
42
|
+
* @param message - Message to sign
|
|
43
|
+
* @param opt - Options
|
|
44
|
+
* @returns Signature as hex string of Uint8Array
|
|
45
|
+
*/
|
|
46
|
+
signMessage(message: string, { returnHex, ...options }?: {
|
|
47
|
+
returnHex?: boolean;
|
|
48
|
+
}): Promise<string | Uint8Array>;
|
|
49
|
+
/**
|
|
50
|
+
* Verify message
|
|
51
|
+
* @param message - Message to verify
|
|
52
|
+
* @param signature - Signature
|
|
53
|
+
* @param options - Options
|
|
54
|
+
*/
|
|
55
|
+
verifyMessage(message: string, signature: string | Uint8Array, options?: object): Promise<boolean>;
|
|
56
|
+
/**
|
|
57
|
+
* Sign data blob
|
|
58
|
+
* @param data - Data blob to sign
|
|
59
|
+
* @param options - Options
|
|
60
|
+
* @returns Signed data blob
|
|
61
|
+
*/
|
|
62
|
+
abstract sign(data: string | Uint8Array, options?: any): Promise<Uint8Array>;
|
|
63
|
+
/**
|
|
64
|
+
* Obtain account address
|
|
65
|
+
* @returns Public account address
|
|
66
|
+
*/
|
|
67
|
+
abstract address(opt?: object): Promise<Encoded.AccountAddress>;
|
|
68
|
+
}
|