@aeternity/aepp-sdk 13.2.2 → 13.3.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/README.md +1 -1
- package/bin/aesophia_cli +0 -0
- package/bin/aesophia_cli_8 +0 -0
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +9171 -7086
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.d.ts +3 -0
- package/es/AeSdk.mjs +12 -12
- package/es/AeSdk.mjs.map +1 -1
- package/es/AeSdkAepp.d.ts +0 -1
- package/es/AeSdkAepp.mjs +12 -16
- package/es/AeSdkAepp.mjs.map +1 -1
- package/es/AeSdkBase.d.ts +61 -6
- package/es/AeSdkBase.mjs +150 -69
- package/es/AeSdkBase.mjs.map +1 -1
- package/es/AeSdkMethods.d.ts +19 -7
- package/es/AeSdkMethods.mjs +39 -38
- package/es/AeSdkMethods.mjs.map +1 -1
- package/es/AeSdkWallet.mjs +86 -55
- package/es/AeSdkWallet.mjs.map +1 -1
- package/es/Middleware.mjs +31 -27
- package/es/Middleware.mjs.map +1 -1
- package/es/MiddlewareSubscriber.mjs +5 -14
- package/es/MiddlewareSubscriber.mjs.map +1 -1
- package/es/Node.d.ts +10 -2
- package/es/Node.mjs +53 -54
- package/es/Node.mjs.map +1 -1
- package/es/account/Base.d.ts +39 -3
- package/es/account/Base.mjs +35 -1
- package/es/account/Base.mjs.map +1 -1
- package/es/account/Generalized.d.ts +2 -0
- package/es/account/Generalized.mjs +15 -6
- package/es/account/Generalized.mjs.map +1 -1
- package/es/account/Ledger.d.ts +2 -0
- package/es/account/Ledger.mjs +14 -5
- package/es/account/Ledger.mjs.map +1 -1
- package/es/account/LedgerFactory.mjs +4 -6
- package/es/account/LedgerFactory.mjs.map +1 -1
- package/es/account/Memory.d.ts +15 -4
- package/es/account/Memory.mjs +96 -31
- package/es/account/Memory.mjs.map +1 -1
- package/es/account/Rpc.d.ts +16 -5
- package/es/account/Rpc.mjs +94 -21
- package/es/account/Rpc.mjs.map +1 -1
- package/es/aens.d.ts +17 -44
- package/es/aens.mjs +32 -71
- package/es/aens.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/Browser.mjs +3 -4
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +3 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +7 -5
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +8 -9
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +7 -7
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/types.d.ts +14 -0
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
- package/es/aepp-wallet-communication/schema.d.ts +2 -0
- package/es/aepp-wallet-communication/schema.mjs +2 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -1
- package/es/aepp-wallet-communication/wallet-detector.mjs +4 -5
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
- package/es/apis/compiler/compiler.mjs.map +1 -1
- package/es/apis/compiler/models/index.d.ts +1 -0
- package/es/apis/compiler/models/index.mjs.map +1 -1
- package/es/apis/compiler/models/mappers.mjs +13 -0
- package/es/apis/compiler/models/mappers.mjs.map +1 -1
- package/es/apis/compiler/models/parameters.mjs.map +1 -1
- package/es/apis/middleware/middleware.d.ts +23 -5
- package/es/apis/middleware/middleware.mjs +114 -18
- package/es/apis/middleware/middleware.mjs.map +1 -1
- package/es/apis/middleware/models/index.d.ts +164 -15
- package/es/apis/middleware/models/index.mjs +53 -3
- package/es/apis/middleware/models/index.mjs.map +1 -1
- package/es/apis/middleware/models/mappers.d.ts +8 -1
- package/es/apis/middleware/models/mappers.mjs +376 -3
- package/es/apis/middleware/models/mappers.mjs.map +1 -1
- package/es/apis/middleware/models/parameters.d.ts +6 -3
- package/es/apis/middleware/models/parameters.mjs +38 -11
- package/es/apis/middleware/models/parameters.mjs.map +1 -1
- package/es/apis/node/models/index.d.ts +66 -2
- package/es/apis/node/models/index.mjs.map +1 -1
- package/es/apis/node/models/mappers.d.ts +5 -1
- package/es/apis/node/models/mappers.mjs +229 -7
- package/es/apis/node/models/mappers.mjs.map +1 -1
- package/es/apis/node/models/parameters.d.ts +2 -2
- package/es/apis/node/models/parameters.mjs +2 -2
- package/es/apis/node/models/parameters.mjs.map +1 -1
- package/es/apis/node/node.d.ts +24 -3
- package/es/apis/node/node.mjs +135 -3
- package/es/apis/node/node.mjs.map +1 -1
- package/es/chain.d.ts +14 -44
- package/es/chain.mjs +125 -219
- package/es/chain.mjs.map +1 -1
- package/es/channel/Base.d.ts +3 -47
- package/es/channel/Base.mjs +21 -54
- package/es/channel/Base.mjs.map +1 -1
- package/es/channel/Contract.d.ts +16 -25
- package/es/channel/Contract.mjs +39 -63
- package/es/channel/Contract.mjs.map +1 -1
- package/es/channel/Spend.d.ts +0 -8
- package/es/channel/Spend.mjs +17 -29
- package/es/channel/Spend.mjs.map +1 -1
- package/es/channel/handlers.mjs +1 -1
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/internal.d.ts +104 -5
- package/es/channel/internal.mjs +26 -34
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Contract.d.ts +9 -1
- package/es/contract/Contract.mjs +67 -73
- package/es/contract/Contract.mjs.map +1 -1
- package/es/contract/compiler/Base.d.ts +14 -8
- package/es/contract/compiler/Base.mjs.map +1 -1
- package/es/contract/compiler/Cli.d.ts +5 -9
- package/es/contract/compiler/Cli.mjs +45 -23
- package/es/contract/compiler/Cli.mjs.map +1 -1
- package/es/contract/compiler/Cli8.d.ts +13 -0
- package/es/contract/compiler/Cli8.mjs +22 -0
- package/es/contract/compiler/Cli8.mjs.map +1 -0
- package/es/contract/compiler/Http.d.ts +3 -9
- package/es/contract/compiler/Http.mjs +28 -16
- package/es/contract/compiler/Http.mjs.map +1 -1
- package/es/contract/compiler/HttpNode.d.ts +2 -5
- package/es/contract/compiler/HttpNode.mjs.map +1 -1
- package/es/contract/delegation-signature.d.ts +2 -1
- package/es/contract/delegation-signature.mjs +18 -14
- package/es/contract/delegation-signature.mjs.map +1 -1
- package/es/contract/ga.d.ts +1 -2
- package/es/contract/ga.mjs +23 -25
- package/es/contract/ga.mjs.map +1 -1
- package/es/deprecated.d.ts +38 -0
- package/es/deprecated.mjs +45 -0
- package/es/deprecated.mjs.map +1 -1
- package/es/index-browser.d.ts +10 -5
- package/es/index-browser.mjs +9 -5
- package/es/index-browser.mjs.map +1 -1
- package/es/index.d.ts +1 -0
- package/es/index.mjs +1 -0
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +6 -37
- package/es/oracle.mjs +32 -66
- package/es/oracle.mjs.map +1 -1
- package/es/send-transaction.d.ts +53 -0
- package/es/send-transaction.mjs +109 -0
- package/es/send-transaction.mjs.map +1 -0
- package/es/spend.d.ts +4 -3
- package/es/spend.mjs +6 -1
- package/es/spend.mjs.map +1 -1
- package/es/tx/builder/common.d.ts +29 -0
- package/es/tx/builder/common.mjs +42 -0
- package/es/tx/builder/common.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +4 -4
- package/es/tx/builder/constants.mjs +6 -15
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/delegation/index.d.ts +20 -0
- package/es/tx/builder/delegation/index.mjs +24 -0
- package/es/tx/builder/delegation/index.mjs.map +1 -0
- package/es/tx/builder/delegation/schema.d.ts +130 -0
- package/es/tx/builder/delegation/schema.generated.d.ts +141 -0
- package/es/tx/builder/delegation/schema.generated.mjs +2 -0
- package/es/tx/builder/delegation/schema.generated.mjs.map +1 -0
- package/es/tx/builder/delegation/schema.mjs +54 -0
- package/es/tx/builder/delegation/schema.mjs.map +1 -0
- package/es/tx/builder/field-types/abi-version.mjs +8 -11
- package/es/tx/builder/field-types/abi-version.mjs.map +1 -1
- package/es/tx/builder/field-types/address.mjs +1 -4
- package/es/tx/builder/field-types/address.mjs.map +1 -1
- package/es/tx/builder/field-types/coin-amount.d.ts +2 -2
- package/es/tx/builder/field-types/coin-amount.mjs +6 -6
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
- package/es/tx/builder/field-types/ct-version.mjs +3 -4
- package/es/tx/builder/field-types/ct-version.mjs.map +1 -1
- package/es/tx/builder/field-types/entry.mjs +7 -13
- package/es/tx/builder/field-types/entry.mjs.map +1 -1
- package/es/tx/builder/field-types/fee.d.ts +19 -11
- package/es/tx/builder/field-types/fee.mjs +56 -38
- package/es/tx/builder/field-types/fee.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-limit.mjs +13 -15
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-price.d.ts +10 -2
- package/es/tx/builder/field-types/gas-price.mjs +52 -3
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
- package/es/tx/builder/field-types/index.d.ts +31 -29
- package/es/tx/builder/field-types/index.mjs +31 -29
- package/es/tx/builder/field-types/index.mjs.map +1 -1
- package/es/tx/builder/field-types/map.mjs +20 -31
- package/es/tx/builder/field-types/map.mjs.map +1 -1
- package/es/tx/builder/field-types/mptree.mjs +14 -29
- package/es/tx/builder/field-types/mptree.mjs.map +1 -1
- package/es/tx/builder/field-types/name-fee.d.ts +1 -1
- package/es/tx/builder/field-types/name-fee.mjs +1 -1
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
- package/es/tx/builder/field-types/nonce.d.ts +1 -0
- package/es/tx/builder/field-types/nonce.mjs +2 -0
- package/es/tx/builder/field-types/nonce.mjs.map +1 -1
- package/es/tx/builder/field-types/pointers.mjs +4 -7
- package/es/tx/builder/field-types/pointers.mjs.map +1 -1
- package/es/tx/builder/field-types/pointers2.d.ts +23 -0
- package/es/tx/builder/field-types/pointers2.mjs +65 -0
- package/es/tx/builder/field-types/pointers2.mjs.map +1 -0
- package/es/tx/builder/field-types/query-fee.d.ts +19 -0
- package/es/tx/builder/field-types/query-fee.mjs +20 -0
- package/es/tx/builder/field-types/query-fee.mjs.map +1 -0
- package/es/tx/builder/field-types/ttl.d.ts +9 -1
- package/es/tx/builder/field-types/ttl.mjs +19 -8
- package/es/tx/builder/field-types/ttl.mjs.map +1 -1
- package/es/tx/builder/field-types/with-default.d.ts +7 -0
- package/es/tx/builder/field-types/with-default.mjs +9 -0
- package/es/tx/builder/field-types/with-default.mjs.map +1 -0
- package/es/tx/builder/field-types/with-formatting.d.ts +7 -0
- package/es/tx/builder/field-types/with-formatting.mjs +9 -0
- package/es/tx/builder/field-types/with-formatting.mjs.map +1 -0
- package/es/tx/builder/field-types/wrapped.mjs +6 -8
- package/es/tx/builder/field-types/wrapped.mjs.map +1 -1
- package/es/tx/builder/helpers.d.ts +2 -2
- package/es/tx/builder/helpers.mjs +12 -21
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +17 -10
- package/es/tx/builder/index.mjs +39 -65
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +478 -257
- package/es/tx/builder/schema.generated.d.ts +39 -3
- package/es/tx/builder/schema.generated.mjs.map +1 -1
- package/es/tx/builder/schema.mjs +48 -36
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/execution-cost.d.ts +6 -5
- package/es/tx/execution-cost.mjs +16 -17
- package/es/tx/execution-cost.mjs.map +1 -1
- package/es/tx/transaction-signer.mjs +1 -4
- package/es/tx/transaction-signer.mjs.map +1 -1
- package/es/tx/validator.mjs +61 -42
- package/es/tx/validator.mjs.map +1 -1
- package/es/utils/amount-formatter.mjs +15 -22
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.d.ts +2 -3
- package/es/utils/autorest.mjs +40 -24
- package/es/utils/autorest.mjs.map +1 -1
- package/es/utils/bytes.mjs +1 -2
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +8 -4
- package/es/utils/crypto.mjs +17 -13
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/errors.d.ts +6 -0
- package/es/utils/errors.mjs +12 -6
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +2 -0
- package/es/utils/hd-wallet.mjs +6 -5
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.mjs +2 -10
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/jwt.d.ts +53 -0
- package/es/utils/jwt.mjs +120 -0
- package/es/utils/jwt.mjs.map +1 -0
- package/es/utils/keystore.d.ts +6 -2
- package/es/utils/keystore.mjs +8 -16
- package/es/utils/keystore.mjs.map +1 -1
- package/es/utils/typed-data.mjs +1 -0
- package/es/utils/typed-data.mjs.map +1 -1
- package/es/utils/wrap-proxy.d.ts +2 -0
- package/es/utils/wrap-proxy.mjs +15 -0
- package/es/utils/wrap-proxy.mjs.map +1 -0
- package/package.json +57 -51
- package/src/AeSdk.ts +3 -0
- package/src/AeSdkAepp.ts +0 -1
- package/src/AeSdkBase.ts +97 -10
- package/src/AeSdkMethods.ts +37 -33
- package/src/AeSdkWallet.ts +22 -3
- package/src/Middleware.ts +16 -8
- package/src/MiddlewareSubscriber.ts +1 -1
- package/src/Node.ts +37 -18
- package/src/account/Base.ts +62 -3
- package/src/account/Generalized.ts +10 -0
- package/src/account/Ledger.ts +10 -0
- package/src/account/Memory.ts +83 -9
- package/src/account/Rpc.ts +69 -6
- package/src/aens.ts +35 -56
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +3 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +2 -2
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +4 -2
- package/src/aepp-wallet-communication/rpc/types.ts +13 -0
- package/src/aepp-wallet-communication/schema.ts +2 -0
- package/src/apis/compiler/compiler.ts +93 -93
- package/src/apis/compiler/models/index.ts +1 -0
- package/src/apis/compiler/models/mappers.ts +178 -165
- package/src/apis/compiler/models/parameters.ts +18 -18
- package/src/apis/middleware/middleware.ts +462 -341
- package/src/apis/middleware/models/index.ts +258 -56
- package/src/apis/middleware/models/mappers.ts +2357 -1919
- package/src/apis/middleware/models/parameters.ts +172 -142
- package/src/apis/node/models/index.ts +79 -2
- package/src/apis/node/models/mappers.ts +1529 -1302
- package/src/apis/node/models/parameters.ts +51 -51
- package/src/apis/node/node.ts +420 -275
- package/src/chain.ts +42 -128
- package/src/channel/Base.ts +14 -47
- package/src/channel/Contract.ts +18 -26
- package/src/channel/Spend.ts +0 -8
- package/src/channel/internal.ts +115 -13
- package/src/contract/Contract.ts +26 -8
- package/src/contract/compiler/Base.ts +15 -8
- package/src/contract/compiler/Cli.ts +37 -21
- package/src/contract/compiler/Cli8.ts +17 -0
- package/src/contract/compiler/Http.ts +24 -14
- package/src/contract/compiler/HttpNode.ts +2 -2
- package/src/contract/delegation-signature.ts +11 -5
- package/src/contract/ga.ts +4 -3
- package/src/deprecated.ts +36 -0
- package/src/index-browser.ts +14 -7
- package/src/index.ts +1 -0
- package/src/oracle.ts +11 -54
- package/src/send-transaction.ts +136 -0
- package/src/spend.ts +25 -11
- package/src/tx/builder/common.ts +74 -0
- package/src/tx/builder/constants.ts +6 -9
- package/src/tx/builder/delegation/index.ts +28 -0
- package/src/tx/builder/delegation/schema.generated.ts +143 -0
- package/src/tx/builder/delegation/schema.ts +61 -0
- package/src/tx/builder/field-types/coin-amount.ts +3 -2
- package/src/tx/builder/field-types/entry.ts +1 -4
- package/src/tx/builder/field-types/fee.ts +71 -43
- package/src/tx/builder/field-types/gas-limit.ts +4 -4
- package/src/tx/builder/field-types/gas-price.ts +70 -14
- package/src/tx/builder/field-types/index.ts +31 -59
- package/src/tx/builder/field-types/name-fee.ts +1 -1
- package/src/tx/builder/field-types/nonce.ts +7 -1
- package/src/tx/builder/field-types/pointers2.ts +62 -0
- package/src/tx/builder/field-types/query-fee.ts +25 -0
- package/src/tx/builder/field-types/ttl.ts +13 -3
- package/src/tx/builder/field-types/with-default.ts +18 -0
- package/src/tx/builder/field-types/with-formatting.ts +18 -0
- package/src/tx/builder/helpers.ts +2 -2
- package/src/tx/builder/index.ts +42 -59
- package/src/tx/builder/schema.generated.ts +39 -3
- package/src/tx/builder/schema.ts +55 -29
- package/src/tx/execution-cost.ts +6 -5
- package/src/tx/validator.ts +31 -5
- package/src/utils/autorest.ts +36 -27
- package/src/utils/crypto.ts +23 -13
- package/src/utils/errors.ts +10 -0
- package/src/utils/hd-wallet.ts +2 -0
- package/src/utils/jwt.ts +126 -0
- package/src/utils/keystore.ts +6 -2
- package/src/utils/wrap-proxy.ts +24 -0
- package/types-legacy/ts4.2/AeSdk.d.ts +3 -0
- package/types-legacy/ts4.2/AeSdkAepp.d.ts +0 -1
- package/types-legacy/ts4.2/AeSdkBase.d.ts +61 -6
- package/types-legacy/ts4.2/AeSdkMethods.d.ts +19 -7
- package/types-legacy/ts4.2/Node.d.ts +14 -1
- package/types-legacy/ts4.2/account/Base.d.ts +39 -3
- package/types-legacy/ts4.2/account/Generalized.d.ts +2 -0
- package/types-legacy/ts4.2/account/Ledger.d.ts +2 -0
- package/types-legacy/ts4.2/account/Memory.d.ts +15 -4
- package/types-legacy/ts4.2/account/Rpc.d.ts +16 -5
- package/types-legacy/ts4.2/aens.d.ts +17 -44
- package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +3 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +14 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +2 -0
- package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +1 -0
- package/types-legacy/ts4.2/apis/middleware/middleware.d.ts +23 -5
- package/types-legacy/ts4.2/apis/middleware/models/index.d.ts +164 -15
- package/types-legacy/ts4.2/apis/middleware/models/mappers.d.ts +8 -1
- package/types-legacy/ts4.2/apis/middleware/models/parameters.d.ts +6 -3
- package/types-legacy/ts4.2/apis/node/models/index.d.ts +66 -2
- package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +5 -1
- package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
- package/types-legacy/ts4.2/apis/node/node.d.ts +24 -3
- package/types-legacy/ts4.2/chain.d.ts +14 -44
- package/types-legacy/ts4.2/channel/Base.d.ts +3 -47
- package/types-legacy/ts4.2/channel/Contract.d.ts +16 -25
- package/types-legacy/ts4.2/channel/Spend.d.ts +0 -8
- package/types-legacy/ts4.2/channel/internal.d.ts +104 -5
- package/types-legacy/ts4.2/contract/Contract.d.ts +9 -1
- package/types-legacy/ts4.2/contract/compiler/Base.d.ts +14 -8
- package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +5 -9
- package/types-legacy/ts4.2/contract/compiler/Cli8.d.ts +13 -0
- package/types-legacy/ts4.2/contract/compiler/Http.d.ts +3 -9
- package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +2 -5
- package/types-legacy/ts4.2/contract/delegation-signature.d.ts +2 -1
- package/types-legacy/ts4.2/contract/ga.d.ts +1 -2
- package/types-legacy/ts4.2/deprecated.d.ts +38 -0
- package/types-legacy/ts4.2/index-browser.d.ts +10 -5
- package/types-legacy/ts4.2/index.d.ts +1 -0
- package/types-legacy/ts4.2/oracle.d.ts +6 -37
- package/types-legacy/ts4.2/send-transaction.d.ts +53 -0
- package/types-legacy/ts4.2/spend.d.ts +4 -3
- package/types-legacy/ts4.2/tx/builder/common.d.ts +32 -0
- package/types-legacy/ts4.2/tx/builder/constants.d.ts +4 -4
- package/types-legacy/ts4.2/tx/builder/delegation/index.d.ts +20 -0
- package/types-legacy/ts4.2/tx/builder/delegation/schema.d.ts +136 -0
- package/types-legacy/ts4.2/tx/builder/delegation/schema.generated.d.ts +141 -0
- package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +2 -2
- package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +19 -11
- package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +10 -2
- package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +31 -29
- package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +1 -1
- package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +1 -0
- package/types-legacy/ts4.2/tx/builder/field-types/pointers2.d.ts +26 -0
- package/types-legacy/ts4.2/tx/builder/field-types/query-fee.d.ts +19 -0
- package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +9 -1
- package/types-legacy/ts4.2/tx/builder/field-types/with-default.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/field-types/with-formatting.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/helpers.d.ts +2 -2
- package/types-legacy/ts4.2/tx/builder/index.d.ts +17 -10
- package/types-legacy/ts4.2/tx/builder/schema.d.ts +482 -257
- package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +39 -3
- package/types-legacy/ts4.2/tx/execution-cost.d.ts +6 -5
- package/types-legacy/ts4.2/utils/autorest.d.ts +2 -3
- package/types-legacy/ts4.2/utils/crypto.d.ts +8 -4
- package/types-legacy/ts4.2/utils/errors.d.ts +6 -0
- package/types-legacy/ts4.2/utils/hd-wallet.d.ts +2 -0
- package/types-legacy/ts4.2/utils/jwt.d.ts +53 -0
- package/types-legacy/ts4.2/utils/keystore.d.ts +6 -2
- package/types-legacy/ts4.2/utils/wrap-proxy.d.ts +2 -0
- package/types-legacy/ts4.5/AeSdk.d.ts +3 -0
- package/types-legacy/ts4.5/AeSdkAepp.d.ts +0 -1
- package/types-legacy/ts4.5/AeSdkBase.d.ts +61 -6
- package/types-legacy/ts4.5/AeSdkMethods.d.ts +19 -7
- package/types-legacy/ts4.5/Node.d.ts +14 -1
- package/types-legacy/ts4.5/account/Base.d.ts +39 -3
- package/types-legacy/ts4.5/account/Generalized.d.ts +2 -0
- package/types-legacy/ts4.5/account/Ledger.d.ts +2 -0
- package/types-legacy/ts4.5/account/Memory.d.ts +15 -4
- package/types-legacy/ts4.5/account/Rpc.d.ts +16 -5
- package/types-legacy/ts4.5/aens.d.ts +17 -44
- package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +3 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +14 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +2 -0
- package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +1 -0
- package/types-legacy/ts4.5/apis/middleware/middleware.d.ts +23 -5
- package/types-legacy/ts4.5/apis/middleware/models/index.d.ts +164 -15
- package/types-legacy/ts4.5/apis/middleware/models/mappers.d.ts +8 -1
- package/types-legacy/ts4.5/apis/middleware/models/parameters.d.ts +6 -3
- package/types-legacy/ts4.5/apis/node/models/index.d.ts +66 -2
- package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +5 -1
- package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
- package/types-legacy/ts4.5/apis/node/node.d.ts +24 -3
- package/types-legacy/ts4.5/chain.d.ts +14 -44
- package/types-legacy/ts4.5/channel/Base.d.ts +3 -47
- package/types-legacy/ts4.5/channel/Contract.d.ts +16 -25
- package/types-legacy/ts4.5/channel/Spend.d.ts +0 -8
- package/types-legacy/ts4.5/channel/internal.d.ts +104 -5
- package/types-legacy/ts4.5/contract/Contract.d.ts +9 -1
- package/types-legacy/ts4.5/contract/compiler/Base.d.ts +14 -8
- package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +5 -9
- package/types-legacy/ts4.5/contract/compiler/Cli8.d.ts +13 -0
- package/types-legacy/ts4.5/contract/compiler/Http.d.ts +3 -9
- package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +2 -5
- package/types-legacy/ts4.5/contract/delegation-signature.d.ts +2 -1
- package/types-legacy/ts4.5/contract/ga.d.ts +1 -2
- package/types-legacy/ts4.5/deprecated.d.ts +38 -0
- package/types-legacy/ts4.5/index-browser.d.ts +10 -5
- package/types-legacy/ts4.5/index.d.ts +1 -0
- package/types-legacy/ts4.5/oracle.d.ts +6 -37
- package/types-legacy/ts4.5/send-transaction.d.ts +53 -0
- package/types-legacy/ts4.5/spend.d.ts +4 -3
- package/types-legacy/ts4.5/tx/builder/common.d.ts +32 -0
- package/types-legacy/ts4.5/tx/builder/constants.d.ts +4 -4
- package/types-legacy/ts4.5/tx/builder/delegation/index.d.ts +20 -0
- package/types-legacy/ts4.5/tx/builder/delegation/schema.d.ts +136 -0
- package/types-legacy/ts4.5/tx/builder/delegation/schema.generated.d.ts +141 -0
- package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +2 -2
- package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +19 -11
- package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +10 -2
- package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +31 -29
- package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +1 -1
- package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +1 -0
- package/types-legacy/ts4.5/tx/builder/field-types/pointers2.d.ts +26 -0
- package/types-legacy/ts4.5/tx/builder/field-types/query-fee.d.ts +19 -0
- package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +9 -1
- package/types-legacy/ts4.5/tx/builder/field-types/with-default.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/field-types/with-formatting.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/helpers.d.ts +2 -2
- package/types-legacy/ts4.5/tx/builder/index.d.ts +17 -10
- package/types-legacy/ts4.5/tx/builder/schema.d.ts +482 -257
- package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +39 -3
- package/types-legacy/ts4.5/tx/execution-cost.d.ts +6 -5
- package/types-legacy/ts4.5/utils/autorest.d.ts +2 -3
- package/types-legacy/ts4.5/utils/crypto.d.ts +8 -4
- package/types-legacy/ts4.5/utils/errors.d.ts +6 -0
- package/types-legacy/ts4.5/utils/hd-wallet.d.ts +2 -0
- package/types-legacy/ts4.5/utils/jwt.d.ts +53 -0
- package/types-legacy/ts4.5/utils/keystore.d.ts +6 -2
- package/types-legacy/ts4.5/utils/wrap-proxy.d.ts +2 -0
- package/es/tx/builder/field-types/deposit.d.ts +0 -15
- package/es/tx/builder/field-types/deposit.mjs +0 -18
- package/es/tx/builder/field-types/deposit.mjs.map +0 -1
- package/src/tx/builder/field-types/deposit.ts +0 -23
- package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +0 -15
- package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +0 -15
package/es/AeSdkWallet.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AeSdkWallet.mjs","names":["v4","uuid","AeSdk","verifyTransaction","RpcClient","METHODS","RPC_STATUS","SUBSCRIPTION_TYPES","RpcInvalidTransactionError","RpcNotAuthorizeError","RpcPermissionDenyError","RpcUnsupportedProtocolError","InternalError","UnknownRpcClientError","RPC_VERSION","jsonBig","AeSdkWallet","constructor","_ref","name","id","type","onConnection","onSubscription","onDisconnect","onAskAccounts","options","_defineProperty","Map","_type","_getAccountsForClient","_ref2","addressSubscription","current","connected","getAccounts","has","_pushAccountsToApps","_clients","Array","from","keys","filter","clientId","_isRpcClientConnected","map","_getClient","client","size","forEach","rpc","notify","updateAddress","selectAccount","address","addAccount","account","_getNode","ensureNodeConnected","node","url","api","$host","selectedNodeName","selectNode","networkId","getNetworkId","updateNetwork","connectNode","get","CONNECTED","status","connection","isConnected","_disconnectRpcClient","disconnect","DISCONNECTED","Set","removeRpcClient","delete","addRpcClient","clientConnection","disconnectParams","WAITING_FOR_CONNECTION_REQUEST","closeConnection","params","connect","_ref3","origin","version","icons","getWalletInfo","subscribeAddress","_ref4","value","subscribe","add","unsubscribe","subscription","addresses","sign","_ref5","tx","onAccount","returnSigned","innerTx","includes","parameters","aeppOrigin","aeppRpcClientId","signedTransaction","signTransaction","parse","stringify","transactionHash","sendTransaction","verify","error","validation","length","signMessage","_ref6","message","signature","_Buffer","toString","signTypedData","_ref7","domain","aci","data","signDelegationToContract","_ref8","_ref9","_ref10","contractAddress","oracleQueryId","signNameDelegationToContract","signOracleQueryDelegationToContract","set","shareWalletInfo","readyToConnect","window","location","selectedAddress","a","reduce","acc"],"sources":["../src/AeSdkWallet.ts"],"sourcesContent":["import { v4 as uuid } from '@aeternity/uuid';\nimport AeSdk from './AeSdk';\nimport verifyTransaction from './tx/validator';\nimport RpcClient from './aepp-wallet-communication/rpc/RpcClient';\nimport {\n METHODS, RPC_STATUS, SUBSCRIPTION_TYPES, WALLET_TYPE,\n 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 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\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 = new Map<string, RpcClientsInfo>();\n\n onConnection: OnConnection;\n\n onSubscription: OnSubscription;\n\n onDisconnect: OnDisconnect;\n\n onAskAccounts: OnAskAccounts;\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.onAskAccounts - Call-back function for incoming AEPP get address 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 onDisconnect,\n onAskAccounts,\n ...options\n }: {\n id: string;\n type: WALLET_TYPE;\n name: string;\n onConnection: OnConnection;\n onSubscription: OnSubscription;\n onDisconnect: OnDisconnect;\n onAskAccounts: OnAskAccounts;\n } & ConstructorParameters<typeof AeSdk>[0]) {\n super(options);\n this.onConnection = onConnection;\n this.onSubscription = onSubscription;\n this.onDisconnect = onDisconnect;\n this.onAskAccounts = onAskAccounts;\n this.name = name;\n this.id = id;\n this._type = type;\n }\n\n _getAccountsForClient({ addressSubscription }: RpcClientsInfo): Accounts {\n const { current, connected } = this.getAccounts();\n return {\n current: addressSubscription.has('current') || addressSubscription.has('connected')\n ? current : {},\n connected: addressSubscription.has('connected') ? connected : {},\n };\n }\n\n _pushAccountsToApps(): void {\n if (this._clients == null) return;\n Array.from(this._clients.keys())\n .filter((clientId) => this._isRpcClientConnected(clientId))\n .map((clientId) => this._getClient(clientId))\n .filter((client) => client.addressSubscription.size !== 0)\n .forEach((client) => client.rpc\n .notify(METHODS.updateAddress, this._getAccountsForClient(client)));\n }\n\n override selectAccount(address: Encoded.AccountAddress): void {\n super.selectAccount(address);\n this._pushAccountsToApps();\n }\n\n override addAccount(account: AccountBase, options?: Parameters<AeSdk['addAccount']>[1]): void {\n super.addAccount(account, options);\n this._pushAccountsToApps();\n }\n\n _getNode(): { node: Network['node'] } {\n this.ensureNodeConnected();\n return { node: { url: this.api.$host, name: this.selectedNodeName } };\n }\n\n override async selectNode(name: string): Promise<void> {\n super.selectNode(name);\n const networkId = await this.api.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 _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 switch (type) {\n case SUBSCRIPTION_TYPES.subscribe:\n // TODO: remove `type` as it always subscribe\n await this.onSubscription(id, { type, value }, origin);\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._getAccountsForClient(client),\n };\n },\n [METHODS.address]: async (params, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n await this.onAskAccounts(id, params, origin);\n return this.addresses();\n },\n [METHODS.sign]: async (\n {\n tx, onAccount = this.address, returnSigned, innerTx,\n },\n origin,\n ) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const parameters = {\n onAccount, aeppOrigin: origin, aeppRpcClientId: id, innerTx,\n };\n if (returnSigned || innerTx === true) {\n return { signedTransaction: await this.signTransaction(tx, parameters) };\n }\n try {\n return jsonBig.parse(jsonBig.stringify({\n transactionHash: await this.sendTransaction(tx, { ...parameters, 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 error;\n }\n },\n [METHODS.signMessage]: async ({ message, onAccount = this.address }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n return {\n signature: Buffer.from(await this.signMessage(message, parameters)).toString('hex'),\n };\n },\n [METHODS.signTypedData]: async ({\n domain, aci, data, onAccount = this.address,\n }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const parameters = {\n ...domain, onAccount, aeppOrigin: origin, aeppRpcClientId: id,\n };\n return {\n signature: await this.signTypedData(data, aci, parameters),\n };\n },\n [METHODS.signDelegationToContract]: async ({\n contractAddress, name, oracleQueryId, onAccount = this.address,\n }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n const signature = await (\n (name == null ? null : this\n .signNameDelegationToContract(contractAddress, name, parameters))\n ?? (oracleQueryId == null ? null : this\n .signOracleQueryDelegationToContract(contractAddress, oracleQueryId, parameters))\n ?? this.signDelegationToContract(contractAddress, parameters)\n );\n return { signature };\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.api.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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"}
|
|
1
|
+
{"version":3,"file":"AeSdkWallet.mjs","names":["v4","uuid","AeSdk","verifyTransaction","RpcClient","METHODS","RPC_STATUS","SUBSCRIPTION_TYPES","RpcInvalidTransactionError","RpcNotAuthorizeError","RpcPermissionDenyError","RpcUnsupportedProtocolError","InternalError","UnknownRpcClientError","RPC_VERSION","Encoding","encode","decode","jsonBig","AeSdkWallet","constructor","name","id","type","onConnection","onSubscription","onDisconnect","onAskAccounts","options","_defineProperty","Map","_type","_getAccountsForClient","addressSubscription","current","connected","getAccounts","has","_pushAccountsToApps","_clients","Array","from","keys","filter","clientId","_isRpcClientConnected","map","_getClient","client","size","forEach","rpc","notify","updateAddress","selectAccount","address","addAccount","account","_getNode","ensureNodeConnected","node","url","api","$host","selectedNodeName","selectNode","networkId","getNetworkId","updateNetwork","connectNode","get","CONNECTED","status","connection","isConnected","_disconnectRpcClient","disconnect","DISCONNECTED","Set","removeRpcClient","delete","addRpcClient","clientConnection","disconnectParams","WAITING_FOR_CONNECTION_REQUEST","closeConnection","params","connect","version","icons","origin","getWalletInfo","subscribeAddress","value","subscribe","add","unsubscribe","subscription","addresses","sign","tx","onAccount","returnSigned","innerTx","includes","parameters","aeppOrigin","aeppRpcClientId","signedTransaction","signTransaction","parse","stringify","transactionHash","sendTransaction","verify","error","validation","length","signMessage","message","signature","_Buffer","toString","signTypedData","domain","aci","data","signDelegationToContract","contractAddress","oracleQueryId","allNames","isOracle","_isOracle","_ref","_ref2","_ref3","signNameDelegationToContract","signOracleQueryDelegationToContract","signAllNamesDelegationToContract","unsafeSign","Signature","signDelegation","delegation","set","shareWalletInfo","readyToConnect","window","location","selectedAddress","a","reduce","acc"],"sources":["../src/AeSdkWallet.ts"],"sourcesContent":["import { v4 as uuid } from '@aeternity/uuid';\nimport AeSdk from './AeSdk';\nimport verifyTransaction from './tx/validator';\nimport RpcClient from './aepp-wallet-communication/rpc/RpcClient';\nimport {\n METHODS, RPC_STATUS, SUBSCRIPTION_TYPES, WALLET_TYPE,\n 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 {\n Encoded, Encoding, encode, decode,\n} 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 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\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 = new Map<string, RpcClientsInfo>();\n\n onConnection: OnConnection;\n\n onSubscription: OnSubscription;\n\n onDisconnect: OnDisconnect;\n\n onAskAccounts: OnAskAccounts;\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.onAskAccounts - Call-back function for incoming AEPP get address 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 onDisconnect,\n onAskAccounts,\n ...options\n }: {\n id: string;\n type: WALLET_TYPE;\n name: string;\n onConnection: OnConnection;\n onSubscription: OnSubscription;\n onDisconnect: OnDisconnect;\n onAskAccounts: OnAskAccounts;\n } & ConstructorParameters<typeof AeSdk>[0]) {\n super(options);\n this.onConnection = onConnection;\n this.onSubscription = onSubscription;\n this.onDisconnect = onDisconnect;\n this.onAskAccounts = onAskAccounts;\n this.name = name;\n this.id = id;\n this._type = type;\n }\n\n _getAccountsForClient({ addressSubscription }: RpcClientsInfo): Accounts {\n const { current, connected } = this.getAccounts();\n return {\n current: addressSubscription.has('current') || addressSubscription.has('connected')\n ? current : {},\n connected: addressSubscription.has('connected') ? connected : {},\n };\n }\n\n _pushAccountsToApps(): void {\n if (this._clients == null) return;\n Array.from(this._clients.keys())\n .filter((clientId) => this._isRpcClientConnected(clientId))\n .map((clientId) => this._getClient(clientId))\n .filter((client) => client.addressSubscription.size !== 0)\n .forEach((client) => client.rpc\n .notify(METHODS.updateAddress, this._getAccountsForClient(client)));\n }\n\n override selectAccount(address: Encoded.AccountAddress): void {\n super.selectAccount(address);\n this._pushAccountsToApps();\n }\n\n override addAccount(account: AccountBase, options?: Parameters<AeSdk['addAccount']>[1]): void {\n super.addAccount(account, options);\n this._pushAccountsToApps();\n }\n\n _getNode(): { node: Network['node'] } {\n this.ensureNodeConnected();\n return { node: { url: this.api.$host, name: this.selectedNodeName } };\n }\n\n override async selectNode(name: string): Promise<void> {\n super.selectNode(name);\n const networkId = await this.api.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 _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 switch (type) {\n case SUBSCRIPTION_TYPES.subscribe:\n // TODO: remove `type` as it always subscribe\n await this.onSubscription(id, { type, value }, origin);\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._getAccountsForClient(client),\n };\n },\n [METHODS.address]: async (params, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n await this.onAskAccounts(id, params, origin);\n return this.addresses();\n },\n [METHODS.sign]: async (\n {\n tx, onAccount = this.address, returnSigned, innerTx,\n },\n origin,\n ) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const parameters = {\n onAccount, aeppOrigin: origin, aeppRpcClientId: id, innerTx,\n };\n if (returnSigned || innerTx === true) {\n return { signedTransaction: await this.signTransaction(tx, parameters) };\n }\n try {\n return jsonBig.parse(jsonBig.stringify({\n transactionHash: await this.sendTransaction(tx, { ...parameters, 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 error;\n }\n },\n [METHODS.signMessage]: async ({ message, onAccount = this.address }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n return {\n signature: Buffer.from(await this.signMessage(message, parameters)).toString('hex'),\n };\n },\n [METHODS.signTypedData]: async ({\n domain, aci, data, onAccount = this.address,\n }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n const parameters = {\n ...domain, onAccount, aeppOrigin: origin, aeppRpcClientId: id,\n };\n return {\n signature: await this.signTypedData(data, aci, parameters),\n };\n },\n [METHODS.signDelegationToContract]: async ({\n contractAddress, name, oracleQueryId, allNames, onAccount = this.address, isOracle,\n }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount);\n }\n\n isOracle ??= false;\n const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n const signature = await (\n (name == null ? null : this\n .signNameDelegationToContract(contractAddress, name, parameters))\n ?? (oracleQueryId == null ? null : this\n .signOracleQueryDelegationToContract(contractAddress, oracleQueryId, parameters))\n ?? (allNames !== true ? null : this\n .signAllNamesDelegationToContract(contractAddress, parameters))\n ?? this.signDelegationToContract(contractAddress, { ...parameters, isOracle })\n );\n return { signature };\n },\n [METHODS.unsafeSign]: async ({ data, onAccount = this.address }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) throw new RpcPermissionDenyError(onAccount);\n const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n const signature = encode(await this.sign(decode(data), parameters), Encoding.Signature);\n return { signature };\n },\n [METHODS.signDelegation]: async ({ delegation, onAccount = this.address }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n if (!this.addresses().includes(onAccount)) throw new RpcPermissionDenyError(onAccount);\n const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n const signature = await this.signDelegation(delegation, parameters);\n return { signature };\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.api.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/Middleware.mjs
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
2
2
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
3
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) {
|
|
3
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { _assertClassBrand(privateSet, receiver); return fn; }
|
|
4
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
4
5
|
// eslint-disable-next-line max-classes-per-file
|
|
5
6
|
import BigNumber from 'bignumber.js';
|
|
7
|
+
import { userAgentPolicyName, setClientRequestIdPolicyName } from '@azure/core-rest-pipeline';
|
|
6
8
|
import { genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy, genVersionCheckPolicy, genRetryOnFailurePolicy } from "./utils/autorest.mjs";
|
|
7
9
|
import { Middleware as MiddlewareApi } from "./apis/middleware/index.mjs";
|
|
8
10
|
import { mapObject } from "./utils/other.mjs";
|
|
@@ -12,25 +14,21 @@ var _mapData = /*#__PURE__*/new WeakSet();
|
|
|
12
14
|
var _encodeArg = /*#__PURE__*/new WeakSet();
|
|
13
15
|
var _decodeRes = /*#__PURE__*/new WeakSet();
|
|
14
16
|
class MiddlewareTransformed extends MiddlewareApi {
|
|
15
|
-
constructor() {
|
|
16
|
-
super(...
|
|
17
|
+
constructor(...args) {
|
|
18
|
+
super(...args);
|
|
17
19
|
_classPrivateMethodInitSpec(this, _decodeRes);
|
|
18
20
|
_classPrivateMethodInitSpec(this, _encodeArg);
|
|
19
21
|
_classPrivateMethodInitSpec(this, _mapData);
|
|
20
22
|
}
|
|
21
23
|
async sendOperationRequest(operationArguments, operationSpec) {
|
|
22
|
-
const args = mapObject(operationArguments,
|
|
23
|
-
let [key, value] = _ref;
|
|
24
|
-
return [key, _classPrivateMethodGet(this, _encodeArg, _encodeArg2).call(this, value)];
|
|
25
|
-
});
|
|
24
|
+
const args = mapObject(operationArguments, ([key, value]) => [key, _classPrivateMethodGet(this, _encodeArg, _encodeArg2).call(this, value)]);
|
|
26
25
|
return _classPrivateMethodGet(this, _decodeRes, _decodeRes2).call(this, await super.sendOperationRequest(args, operationSpec));
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
function _mapData2(data, transform) {
|
|
30
29
|
if (Array.isArray(data)) return data.map(d => _classPrivateMethodGet(this, _mapData, _mapData2).call(this, d, transform));
|
|
31
30
|
if (data != null && typeof data === 'object') {
|
|
32
|
-
return mapObject(data,
|
|
33
|
-
let [key, value] = _ref3;
|
|
31
|
+
return mapObject(data, ([key, value]) => {
|
|
34
32
|
if (value == null) return [key, value];
|
|
35
33
|
if (bigIntPropertyNames.some(k => k === key)) return [key, transform.bigInt(value)];
|
|
36
34
|
if (numberPropertyNames.some(k => k === key)) return [key, transform.number(value)];
|
|
@@ -62,29 +60,35 @@ export default class Middleware extends MiddlewareTransformed {
|
|
|
62
60
|
* @param options.retryCount - Amount of extra requests to do in case of failure
|
|
63
61
|
* @param options.retryOverallDelay - Time in ms to wait between all retries
|
|
64
62
|
*/
|
|
65
|
-
constructor(url
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
constructor(url, {
|
|
64
|
+
ignoreVersion = false,
|
|
65
|
+
retryCount = 3,
|
|
66
|
+
retryOverallDelay = 800,
|
|
67
|
+
...options
|
|
68
|
+
} = {}) {
|
|
69
|
+
let version;
|
|
70
|
+
const getVersion = async opts => {
|
|
71
|
+
if (version != null) return version;
|
|
72
|
+
version = (await this.getStatus(opts)).mdwVersion;
|
|
73
|
+
return version;
|
|
74
|
+
};
|
|
75
|
+
|
|
72
76
|
// eslint-disable-next-line constructor-super
|
|
73
77
|
super(url, {
|
|
74
78
|
allowInsecureConnection: true,
|
|
75
|
-
additionalPolicies: [genRequestQueuesPolicy(), genCombineGetRequestsPolicy(), genRetryOnFailurePolicy(retryCount, retryOverallDelay), genErrorFormatterPolicy(body => ` ${body.error}`)],
|
|
79
|
+
additionalPolicies: [...(ignoreVersion ? [] : [genVersionCheckPolicy('middleware', getVersion, '1.47.0', '2.0.0')]), genRequestQueuesPolicy(), genCombineGetRequestsPolicy(), genRetryOnFailurePolicy(retryCount, retryOverallDelay), genErrorFormatterPolicy(body => ` ${body.error}`)],
|
|
76
80
|
...options
|
|
77
81
|
});
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
82
|
+
this.pipeline.removePolicy({
|
|
83
|
+
name: userAgentPolicyName
|
|
84
|
+
});
|
|
85
|
+
this.pipeline.removePolicy({
|
|
86
|
+
name: setClientRequestIdPolicyName
|
|
87
|
+
});
|
|
88
|
+
// TODO: use instead our retry policy
|
|
89
|
+
this.pipeline.removePolicy({
|
|
90
|
+
name: 'defaultRetryPolicy'
|
|
91
|
+
});
|
|
88
92
|
}
|
|
89
93
|
}
|
|
90
94
|
//# sourceMappingURL=Middleware.mjs.map
|
package/es/Middleware.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Middleware.mjs","names":["BigNumber","genRequestQueuesPolicy","genCombineGetRequestsPolicy","genErrorFormatterPolicy","genVersionCheckPolicy","genRetryOnFailurePolicy","Middleware","MiddlewareApi","mapObject","bigIntPropertyNames","numberPropertyNames","_mapData","WeakSet","_encodeArg","_decodeRes","MiddlewareTransformed","constructor","arguments","_classPrivateMethodInitSpec","sendOperationRequest","operationArguments","operationSpec","args","_ref","key","value","_classPrivateMethodGet","_encodeArg2","call","_decodeRes2","_mapData2","data","transform","Array","isArray","map","d","_ref3","some","k","bigInt","number","toFixed","toString","BigInt","url","ignoreVersion","retryCount","retryOverallDelay","options","length","undefined","allowInsecureConnection","additionalPolicies","body","error","statusPromise","getStatus","versionPromise","then","_ref2","mdwVersion","pipeline","addPolicy"],"sources":["../src/Middleware.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, genRetryOnFailurePolicy,\n} from './utils/autorest';\nimport { Middleware as MiddlewareApi, MiddlewareOptionalParams, ErrorResponse } from './apis/middleware';\nimport { mapObject } from './utils/other';\nimport { Encoded } from './utils/encoder';\nimport { ConsensusProtocolVersion } from './tx/builder/constants';\n\nconst bigIntPropertyNames = [] as const;\n\nconst numberPropertyNames = [] as const;\n\nclass MiddlewareTransformed extends MiddlewareApi {\n override 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 TransformMiddlewareType<Type> =\n Type extends (...args: infer Args) => infer Ret\n ? (...args: TransformMiddlewareType<Args>) => TransformMiddlewareType<Ret>\n : Type extends [infer Item, ...infer Rest]\n ? [TransformMiddlewareType<Item>, ...TransformMiddlewareType<Rest>]\n : Type extends Array<infer Item>\n ? Array<TransformMiddlewareType<Item>>\n : Type extends Promise<infer T>\n ? Promise<TransformMiddlewareType<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 : Property extends 'bytecode'\n ? PreserveOptional<Encoded.ContractBytearray, Type[Property]>\n : TransformMiddlewareType<Type[Property]>\n }\n : Type;\ntype MiddlewareTransformedApi = new (...args: ConstructorParameters<typeof MiddlewareApi>) => {\n [Name in keyof InstanceType<typeof MiddlewareApi>]:\n Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest'\n ? MiddlewareApi[Name] : TransformMiddlewareType<MiddlewareApi[Name]>\n};\n\nexport interface MiddlewareInfo {\n url: string;\n nodeNetworkId: string;\n version: string;\n consensusProtocolVersion: ConsensusProtocolVersion;\n}\n\nexport default class Middleware\n extends (MiddlewareTransformed as unknown as MiddlewareTransformedApi) {\n /**\n * @param url - Url for middleware API\n * @param options - Options\n * @param options.ignoreVersion - Don't ensure that the middleware is supported\n * @param options.retryCount - Amount of extra requests to do in case of failure\n * @param options.retryOverallDelay - Time in ms to wait between all retries\n */\n constructor(\n url: string,\n {\n ignoreVersion = false, retryCount = 3, retryOverallDelay = 800, ...options\n }: MiddlewareOptionalParams & {\n ignoreVersion?: boolean;\n retryCount?: number;\n retryOverallDelay?: number;\n } = {},\n ) {\n // eslint-disable-next-line constructor-super\n super(url, {\n allowInsecureConnection: true,\n additionalPolicies: [\n genRequestQueuesPolicy(),\n genCombineGetRequestsPolicy(),\n genRetryOnFailurePolicy(retryCount, retryOverallDelay),\n genErrorFormatterPolicy((body: ErrorResponse) => ` ${body.error}`),\n ],\n ...options,\n });\n if (!ignoreVersion) {\n const statusPromise = this.getStatus();\n const versionPromise = statusPromise.then(({ mdwVersion }) => mdwVersion, (error) => error);\n this.pipeline.addPolicy(\n genVersionCheckPolicy('middleware', '/v2/status', versionPromise, '1.47.0', '2.0.0'),\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Middleware.mjs","names":["BigNumber","userAgentPolicyName","setClientRequestIdPolicyName","genRequestQueuesPolicy","genCombineGetRequestsPolicy","genErrorFormatterPolicy","genVersionCheckPolicy","genRetryOnFailurePolicy","Middleware","MiddlewareApi","mapObject","bigIntPropertyNames","numberPropertyNames","_mapData","WeakSet","_encodeArg","_decodeRes","MiddlewareTransformed","constructor","args","_classPrivateMethodInitSpec","sendOperationRequest","operationArguments","operationSpec","key","value","_classPrivateMethodGet","_encodeArg2","call","_decodeRes2","_mapData2","data","transform","Array","isArray","map","d","some","k","bigInt","number","toFixed","toString","BigInt","url","ignoreVersion","retryCount","retryOverallDelay","options","version","getVersion","opts","getStatus","mdwVersion","allowInsecureConnection","additionalPolicies","body","error","pipeline","removePolicy","name"],"sources":["../src/Middleware.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport BigNumber from 'bignumber.js';\nimport { OperationArguments, OperationOptions, OperationSpec } from '@azure/core-client';\nimport { userAgentPolicyName, setClientRequestIdPolicyName } from '@azure/core-rest-pipeline';\nimport {\n genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy,\n genVersionCheckPolicy, genRetryOnFailurePolicy,\n} from './utils/autorest';\nimport { Middleware as MiddlewareApi, MiddlewareOptionalParams, ErrorResponse } from './apis/middleware';\nimport { mapObject } from './utils/other';\nimport { Encoded } from './utils/encoder';\nimport { ConsensusProtocolVersion } from './tx/builder/constants';\n\nconst bigIntPropertyNames = [] as const;\n\nconst numberPropertyNames = [] as const;\n\nclass MiddlewareTransformed extends MiddlewareApi {\n override 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 TransformMiddlewareType<Type> =\n Type extends (...args: infer Args) => infer Ret\n ? (...args: TransformMiddlewareType<Args>) => TransformMiddlewareType<Ret>\n : Type extends [infer Item, ...infer Rest]\n ? [TransformMiddlewareType<Item>, ...TransformMiddlewareType<Rest>]\n : Type extends Array<infer Item>\n ? Array<TransformMiddlewareType<Item>>\n : Type extends Promise<infer T>\n ? Promise<TransformMiddlewareType<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 : Property extends 'bytecode'\n ? PreserveOptional<Encoded.ContractBytearray, Type[Property]>\n : TransformMiddlewareType<Type[Property]>\n }\n : Type;\ntype MiddlewareTransformedApi = new (...args: ConstructorParameters<typeof MiddlewareApi>) => {\n [Name in keyof InstanceType<typeof MiddlewareApi>]:\n Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest'\n ? MiddlewareApi[Name] : TransformMiddlewareType<MiddlewareApi[Name]>\n};\n\nexport interface MiddlewareInfo {\n url: string;\n nodeNetworkId: string;\n version: string;\n consensusProtocolVersion: ConsensusProtocolVersion;\n}\n\nexport default class Middleware\n extends (MiddlewareTransformed as unknown as MiddlewareTransformedApi) {\n /**\n * @param url - Url for middleware API\n * @param options - Options\n * @param options.ignoreVersion - Don't ensure that the middleware is supported\n * @param options.retryCount - Amount of extra requests to do in case of failure\n * @param options.retryOverallDelay - Time in ms to wait between all retries\n */\n constructor(\n url: string,\n {\n ignoreVersion = false, retryCount = 3, retryOverallDelay = 800, ...options\n }: MiddlewareOptionalParams & {\n ignoreVersion?: boolean;\n retryCount?: number;\n retryOverallDelay?: number;\n } = {},\n ) {\n let version: string | undefined;\n const getVersion = async (opts: OperationOptions): Promise<string> => {\n if (version != null) return version;\n version = (await this.getStatus(opts)).mdwVersion;\n return version;\n };\n\n // eslint-disable-next-line constructor-super\n super(url, {\n allowInsecureConnection: true,\n additionalPolicies: [\n ...ignoreVersion ? [] : [\n genVersionCheckPolicy('middleware', getVersion, '1.47.0', '2.0.0'),\n ],\n genRequestQueuesPolicy(),\n genCombineGetRequestsPolicy(),\n genRetryOnFailurePolicy(retryCount, retryOverallDelay),\n genErrorFormatterPolicy((body: ErrorResponse) => ` ${body.error}`),\n ],\n ...options,\n });\n this.pipeline.removePolicy({ name: userAgentPolicyName });\n this.pipeline.removePolicy({ name: setClientRequestIdPolicyName });\n // TODO: use instead our retry policy\n this.pipeline.removePolicy({ name: 'defaultRetryPolicy' });\n }\n}\n"],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ import _classPrivateFieldGet from "@babel/runtime-corejs3/helpers/classPrivateFi
|
|
|
3
3
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
4
4
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
5
5
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
6
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) {
|
|
6
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { _assertClassBrand(privateSet, receiver); return fn; }
|
|
7
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
7
8
|
/* eslint-disable max-classes-per-file */
|
|
8
9
|
import WebSocket from 'isomorphic-ws';
|
|
9
10
|
import { BaseError, UnexpectedTsError, InternalError } from "./utils/errors.mjs";
|
|
@@ -128,10 +129,7 @@ export default class MiddlewareSubscriber {
|
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
131
|
function _get_targets() {
|
|
131
|
-
return new Set(_classPrivateFieldGet(this, _subscriptions).map(
|
|
132
|
-
let [target] = _ref;
|
|
133
|
-
return target;
|
|
134
|
-
}));
|
|
132
|
+
return new Set(_classPrivateFieldGet(this, _subscriptions).map(([target]) => target));
|
|
135
133
|
}
|
|
136
134
|
function _sendMessage2(message) {
|
|
137
135
|
if (_classPrivateFieldGet(this, _webSocket) == null) throw new UnexpectedTsError();
|
|
@@ -150,16 +148,9 @@ function _sendSubscribe2(isSubscribe, target) {
|
|
|
150
148
|
_classPrivateFieldGet(this, _requestQueue).push([isSubscribe, target]);
|
|
151
149
|
}
|
|
152
150
|
function _emit2(condition, p, e) {
|
|
153
|
-
_classPrivateFieldGet(this, _subscriptions).filter(
|
|
154
|
-
let [target, source] = _ref2;
|
|
155
|
-
return condition(target, source);
|
|
156
|
-
}).forEach(_ref3 => {
|
|
157
|
-
let [,, cb] = _ref3;
|
|
158
|
-
return cb(p, e);
|
|
159
|
-
});
|
|
151
|
+
_classPrivateFieldGet(this, _subscriptions).filter(([target, source]) => condition(target, source)).forEach(([,, cb]) => cb(p, e));
|
|
160
152
|
}
|
|
161
|
-
function _disconnect2() {
|
|
162
|
-
let onlyReset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
153
|
+
function _disconnect2(onlyReset = false) {
|
|
163
154
|
if (_classPrivateFieldGet(this, _webSocket) == null) return;
|
|
164
155
|
if (!onlyReset) _classPrivateFieldGet(this, _webSocket).close();
|
|
165
156
|
Object.assign(_classPrivateFieldGet(this, _webSocket), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareSubscriber.mjs","names":["WebSocket","BaseError","UnexpectedTsError","InternalError","Source","MiddlewareSubscriberError","constructor","message","name","MiddlewareSubscriberDisconnected","closeEvent","_subscriptions","WeakMap","_requestQueue","_webSocket","_targets","_sendMessage","WeakSet","_sendSubscribe","_emit","_disconnect","_messageHandler","_subscribe","MiddlewareSubscriber","webSocket","_classPrivateFieldGet","url","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","get","_get_targets","set","writable","value","reconnect","_classPrivateMethodGet","_disconnect2","call","_classPrivateFieldSet","Promise","resolve","Object","assign","onopen","onerror","errorEvent","_emit2","undefined","error","onmessage","event","data","_messageHandler2","JSON","parse","onclose","all","map","target","_sendSubscribe2","subscribeKeyBlocks","cb","_subscribe2","Middleware","subscribeKeyBlocksNode","Node","subscribeKeyBlocksAll","All","subscribeMicroBlocks","subscribeMicroBlocksNode","subscribeMicroBlocksAll","subscribeTransactions","subscribeTransactionsNode","subscribeTransactionsAll","subscribeObject","subscribeObjectNode","subscribeObjectAll","Set","_ref","_sendMessage2","send","stringify","isSubscribe","payload","includes","op","push","condition","p","e","filter","_ref2","source","forEach","_ref3","onlyReset","arguments","length","close","Array","isArray","request","shift","t","subscription","size","has","item"],"sources":["../src/MiddlewareSubscriber.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport WebSocket from 'isomorphic-ws';\nimport { BaseError, UnexpectedTsError, InternalError } from './utils/errors';\nimport { Encoded } from './utils/encoder';\n\ninterface Message {\n payload: Object;\n source: Source.Middleware | Source.Node;\n subscription: 'KeyBlocks' | 'MicroBlocks' | 'Transactions' | 'Object';\n target?: string;\n}\n\nenum Source {\n Middleware = 'mdw',\n Node = 'node',\n All = 'all',\n}\n\nexport class MiddlewareSubscriberError extends BaseError {\n constructor(message: string) {\n super(message);\n this.name = 'MiddlewareSubscriberError';\n }\n}\n\nexport class MiddlewareSubscriberDisconnected extends MiddlewareSubscriberError {\n constructor(readonly closeEvent: WebSocket.CloseEvent) {\n super('Connection closed');\n this.name = 'MiddlewareSubscriberDisconnected';\n }\n}\n\nexport default class MiddlewareSubscriber {\n #subscriptions: Array<\n readonly [target: string, s: Source, cb: (p?: Object, e?: Error) => void]\n > = [];\n\n #requestQueue: Array<[isSubscribe: boolean, target: string]> = [];\n\n #webSocket?: WebSocket;\n\n get webSocket(): WebSocket | undefined {\n return this.#webSocket;\n }\n\n get #targets(): Set<string> {\n return new Set(this.#subscriptions.map(([target]) => target));\n }\n\n #sendMessage(message: any): void {\n if (this.#webSocket == null) throw new UnexpectedTsError();\n this.#webSocket.send(JSON.stringify(message));\n }\n\n #sendSubscribe(isSubscribe: boolean, target: string): void {\n if (this.#webSocket == null) return;\n const payload = ['KeyBlocks', 'MicroBlocks', 'Transactions'].includes(target)\n ? target : 'Object';\n this.#sendMessage({\n op: isSubscribe ? 'Subscribe' : 'Unsubscribe',\n payload,\n ...payload === 'Object' && { target },\n });\n this.#requestQueue.push([isSubscribe, target]);\n }\n\n #emit(condition: (target: string, source: Source) => boolean, p?: Object, e?: Error): void {\n this.#subscriptions\n .filter(([target, source]) => condition(target, source))\n .forEach(([, , cb]) => cb(p, e));\n }\n\n constructor(readonly url: string) {\n }\n\n #disconnect(onlyReset = false): void {\n if (this.#webSocket == null) return;\n if (!onlyReset) this.#webSocket.close();\n Object.assign(this.#webSocket, {\n onopen: undefined,\n onerror: undefined,\n onmessage: undefined,\n });\n this.#webSocket = undefined;\n }\n\n async reconnect(): Promise<void> {\n this.#disconnect();\n this.#webSocket = await new Promise((resolve) => {\n const webSocket = new WebSocket(this.url);\n Object.assign(webSocket, {\n onopen: () => resolve(webSocket),\n onerror: (errorEvent: WebSocket.ErrorEvent) => {\n this.#emit(() => true, undefined, errorEvent.error);\n },\n onmessage: (event: WebSocket.MessageEvent) => {\n if (typeof event.data !== 'string') {\n throw new InternalError(`Unknown incoming message type: ${typeof event.data}`);\n }\n this.#messageHandler(JSON.parse(event.data));\n },\n onclose: (event: WebSocket.CloseEvent) => {\n this.#emit(() => true, undefined, new MiddlewareSubscriberDisconnected(event));\n this.#disconnect(true);\n },\n });\n });\n await Promise.all([...this.#targets].map((target) => this.#sendSubscribe(true, target)));\n }\n\n #messageHandler(message: string | string[] | Message): void {\n if (typeof message === 'string' || Array.isArray(message)) {\n const request = this.#requestQueue.shift();\n if (request == null) throw new InternalError('Request queue is empty');\n const [isSubscribe, target] = request;\n let error;\n if (typeof message === 'string') error = new MiddlewareSubscriberError(message);\n if (message.includes(target) !== isSubscribe) {\n error = new InternalError(`Expected ${target} to be${isSubscribe ? '' : ' not'} included into ${message}`);\n }\n if (error != null) this.#emit((t) => target === t, undefined, error);\n return;\n }\n this.#emit(\n (target, source) => (target === message.subscription || target === message.target)\n && (source === message.source || source === Source.All),\n message.payload,\n );\n }\n\n #subscribe(target: string, source: Source, cb: (p?: Object, e?: Error) => void): () => void {\n const subscription = [target, source, cb] as const;\n if (this.#targets.size === 0) this.reconnect();\n if (!this.#targets.has(target)) this.#sendSubscribe(true, target);\n this.#subscriptions.push(subscription);\n return () => {\n this.#subscriptions = this.#subscriptions.filter((item) => item !== subscription);\n if (!this.#targets.has(target)) this.#sendSubscribe(false, target);\n if (this.#targets.size === 0) this.#disconnect();\n };\n }\n\n // TODO: replace p?: any with a proper type definition\n\n subscribeKeyBlocks(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('KeyBlocks', Source.Middleware, cb);\n }\n\n subscribeKeyBlocksNode(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('KeyBlocks', Source.Node, cb);\n }\n\n subscribeKeyBlocksAll(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('KeyBlocks', Source.All, cb);\n }\n\n subscribeMicroBlocks(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('MicroBlocks', Source.Middleware, cb);\n }\n\n subscribeMicroBlocksNode(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('MicroBlocks', Source.Node, cb);\n }\n\n subscribeMicroBlocksAll(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('MicroBlocks', Source.All, cb);\n }\n\n subscribeTransactions(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('Transactions', Source.Middleware, cb);\n }\n\n subscribeTransactionsNode(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('Transactions', Source.Node, cb);\n }\n\n subscribeTransactionsAll(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('Transactions', Source.All, cb);\n }\n\n subscribeObject(\n target: Encoded.KeyBlockHash | Encoded.Channel | Encoded.ContractAddress\n | Encoded.OracleAddress | Encoded.OracleQueryId | Encoded.AccountAddress\n | Encoded.Name | `${string}.chain`,\n cb: (p?: any, e?: Error) => void,\n ): () => void {\n return this.#subscribe(target, Source.Middleware, cb);\n }\n\n subscribeObjectNode(\n target: Encoded.KeyBlockHash | Encoded.Channel | Encoded.ContractAddress\n | Encoded.OracleAddress | Encoded.OracleQueryId | Encoded.AccountAddress\n | Encoded.Name | `${string}.chain`,\n cb: (p?: any, e?: Error) => void,\n ): () => void {\n return this.#subscribe(target, Source.Node, cb);\n }\n\n subscribeObjectAll(\n target: Encoded.KeyBlockHash | Encoded.Channel | Encoded.ContractAddress\n | Encoded.OracleAddress | Encoded.OracleQueryId | Encoded.AccountAddress\n | Encoded.Name | `${string}.chain`,\n cb: (p?: any, e?: Error) => void,\n ): () => void {\n return this.#subscribe(target, Source.All, cb);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MiddlewareSubscriber.mjs","names":["WebSocket","BaseError","UnexpectedTsError","InternalError","Source","MiddlewareSubscriberError","constructor","message","name","MiddlewareSubscriberDisconnected","closeEvent","_subscriptions","WeakMap","_requestQueue","_webSocket","_targets","_sendMessage","WeakSet","_sendSubscribe","_emit","_disconnect","_messageHandler","_subscribe","MiddlewareSubscriber","webSocket","_classPrivateFieldGet","url","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","get","_get_targets","set","writable","value","reconnect","_classPrivateMethodGet","_disconnect2","call","_classPrivateFieldSet","Promise","resolve","Object","assign","onopen","onerror","errorEvent","_emit2","undefined","error","onmessage","event","data","_messageHandler2","JSON","parse","onclose","all","map","target","_sendSubscribe2","subscribeKeyBlocks","cb","_subscribe2","Middleware","subscribeKeyBlocksNode","Node","subscribeKeyBlocksAll","All","subscribeMicroBlocks","subscribeMicroBlocksNode","subscribeMicroBlocksAll","subscribeTransactions","subscribeTransactionsNode","subscribeTransactionsAll","subscribeObject","subscribeObjectNode","subscribeObjectAll","Set","_sendMessage2","send","stringify","isSubscribe","payload","includes","op","push","condition","p","e","filter","source","forEach","onlyReset","close","Array","isArray","request","shift","t","subscription","size","has","item"],"sources":["../src/MiddlewareSubscriber.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport WebSocket from 'isomorphic-ws';\nimport { BaseError, UnexpectedTsError, InternalError } from './utils/errors';\nimport { Encoded } from './utils/encoder';\n\ninterface Message {\n payload: Object;\n source: Source.Middleware | Source.Node;\n subscription: 'KeyBlocks' | 'MicroBlocks' | 'Transactions' | 'Object';\n target?: string;\n}\n\nenum Source {\n Middleware = 'mdw',\n Node = 'node',\n All = 'all',\n}\n\nexport class MiddlewareSubscriberError extends BaseError {\n constructor(message: string) {\n super(message);\n this.name = 'MiddlewareSubscriberError';\n }\n}\n\nexport class MiddlewareSubscriberDisconnected extends MiddlewareSubscriberError {\n constructor(readonly closeEvent: WebSocket.CloseEvent) {\n super('Connection closed');\n this.name = 'MiddlewareSubscriberDisconnected';\n }\n}\n\nexport default class MiddlewareSubscriber {\n #subscriptions: Array<\n readonly [target: string, s: Source, cb: (p?: Object, e?: Error) => void]\n > = [];\n\n readonly #requestQueue: Array<[isSubscribe: boolean, target: string]> = [];\n\n #webSocket?: WebSocket;\n\n get webSocket(): WebSocket | undefined {\n return this.#webSocket;\n }\n\n get #targets(): Set<string> {\n return new Set(this.#subscriptions.map(([target]) => target));\n }\n\n #sendMessage(message: any): void {\n if (this.#webSocket == null) throw new UnexpectedTsError();\n this.#webSocket.send(JSON.stringify(message));\n }\n\n #sendSubscribe(isSubscribe: boolean, target: string): void {\n if (this.#webSocket == null) return;\n const payload = ['KeyBlocks', 'MicroBlocks', 'Transactions'].includes(target)\n ? target : 'Object';\n this.#sendMessage({\n op: isSubscribe ? 'Subscribe' : 'Unsubscribe',\n payload,\n ...payload === 'Object' && { target },\n });\n this.#requestQueue.push([isSubscribe, target]);\n }\n\n #emit(condition: (target: string, source: Source) => boolean, p?: Object, e?: Error): void {\n this.#subscriptions\n .filter(([target, source]) => condition(target, source))\n .forEach(([, , cb]) => cb(p, e));\n }\n\n constructor(readonly url: string) {\n }\n\n #disconnect(onlyReset = false): void {\n if (this.#webSocket == null) return;\n if (!onlyReset) this.#webSocket.close();\n Object.assign(this.#webSocket, {\n onopen: undefined,\n onerror: undefined,\n onmessage: undefined,\n });\n this.#webSocket = undefined;\n }\n\n async reconnect(): Promise<void> {\n this.#disconnect();\n this.#webSocket = await new Promise((resolve) => {\n const webSocket = new WebSocket(this.url);\n Object.assign(webSocket, {\n onopen: () => resolve(webSocket),\n onerror: (errorEvent: WebSocket.ErrorEvent) => {\n this.#emit(() => true, undefined, errorEvent.error);\n },\n onmessage: (event: WebSocket.MessageEvent) => {\n if (typeof event.data !== 'string') {\n throw new InternalError(`Unknown incoming message type: ${typeof event.data}`);\n }\n this.#messageHandler(JSON.parse(event.data));\n },\n onclose: (event: WebSocket.CloseEvent) => {\n this.#emit(() => true, undefined, new MiddlewareSubscriberDisconnected(event));\n this.#disconnect(true);\n },\n });\n });\n await Promise.all([...this.#targets].map((target) => this.#sendSubscribe(true, target)));\n }\n\n #messageHandler(message: string | string[] | Message): void {\n if (typeof message === 'string' || Array.isArray(message)) {\n const request = this.#requestQueue.shift();\n if (request == null) throw new InternalError('Request queue is empty');\n const [isSubscribe, target] = request;\n let error;\n if (typeof message === 'string') error = new MiddlewareSubscriberError(message);\n if (message.includes(target) !== isSubscribe) {\n error = new InternalError(`Expected ${target} to be${isSubscribe ? '' : ' not'} included into ${message}`);\n }\n if (error != null) this.#emit((t) => target === t, undefined, error);\n return;\n }\n this.#emit(\n (target, source) => (target === message.subscription || target === message.target)\n && (source === message.source || source === Source.All),\n message.payload,\n );\n }\n\n #subscribe(target: string, source: Source, cb: (p?: Object, e?: Error) => void): () => void {\n const subscription = [target, source, cb] as const;\n if (this.#targets.size === 0) this.reconnect();\n if (!this.#targets.has(target)) this.#sendSubscribe(true, target);\n this.#subscriptions.push(subscription);\n return () => {\n this.#subscriptions = this.#subscriptions.filter((item) => item !== subscription);\n if (!this.#targets.has(target)) this.#sendSubscribe(false, target);\n if (this.#targets.size === 0) this.#disconnect();\n };\n }\n\n // TODO: replace p?: any with a proper type definition\n\n subscribeKeyBlocks(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('KeyBlocks', Source.Middleware, cb);\n }\n\n subscribeKeyBlocksNode(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('KeyBlocks', Source.Node, cb);\n }\n\n subscribeKeyBlocksAll(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('KeyBlocks', Source.All, cb);\n }\n\n subscribeMicroBlocks(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('MicroBlocks', Source.Middleware, cb);\n }\n\n subscribeMicroBlocksNode(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('MicroBlocks', Source.Node, cb);\n }\n\n subscribeMicroBlocksAll(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('MicroBlocks', Source.All, cb);\n }\n\n subscribeTransactions(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('Transactions', Source.Middleware, cb);\n }\n\n subscribeTransactionsNode(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('Transactions', Source.Node, cb);\n }\n\n subscribeTransactionsAll(cb: (p?: any, e?: Error) => void): () => void {\n return this.#subscribe('Transactions', Source.All, cb);\n }\n\n subscribeObject(\n target: Encoded.KeyBlockHash | Encoded.Channel | Encoded.ContractAddress\n | Encoded.OracleAddress | Encoded.OracleQueryId | Encoded.AccountAddress\n | Encoded.Name | `${string}.chain`,\n cb: (p?: any, e?: Error) => void,\n ): () => void {\n return this.#subscribe(target, Source.Middleware, cb);\n }\n\n subscribeObjectNode(\n target: Encoded.KeyBlockHash | Encoded.Channel | Encoded.ContractAddress\n | Encoded.OracleAddress | Encoded.OracleQueryId | Encoded.AccountAddress\n | Encoded.Name | `${string}.chain`,\n cb: (p?: any, e?: Error) => void,\n ): () => void {\n return this.#subscribe(target, Source.Node, cb);\n }\n\n subscribeObjectAll(\n target: Encoded.KeyBlockHash | Encoded.Channel | Encoded.ContractAddress\n | Encoded.OracleAddress | Encoded.OracleQueryId | Encoded.AccountAddress\n | Encoded.Name | `${string}.chain`,\n cb: (p?: any, e?: Error) => void,\n ): () => void {\n return this.#subscribe(target, Source.All, cb);\n }\n}\n"],"mappings":"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"}
|
package/es/Node.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { OperationOptions } from '@azure/core-client';
|
|
1
2
|
import { Node as NodeApi, NodeOptionalParams } from './apis/node';
|
|
2
3
|
import { Encoded } from './utils/encoder';
|
|
3
4
|
import { ConsensusProtocolVersion } from './tx/builder/constants';
|
|
4
|
-
declare const bigIntPropertyNames: readonly ["balance", "queryFee", "fee", "amount", "nameFee", "channelAmount", "initiatorAmount", "responderAmount", "channelReserve", "initiatorAmountFinal", "responderAmountFinal", "gasPrice", "deposit"];
|
|
5
|
-
declare const numberPropertyNames: readonly ["time", "gas", "gasUsed", "nameSalt", "nonce", "nextNonce", "height", "blockHeight", "topBlockHeight", "ttl", "nameTtl", "clientTtl", "inbound", "outbound", "peerCount", "pendingTransactionsCount", "effectiveAtHeight", "version", "solutions", "round"];
|
|
5
|
+
declare const bigIntPropertyNames: readonly ["balance", "queryFee", "fee", "amount", "nameFee", "channelAmount", "initiatorAmount", "responderAmount", "channelReserve", "initiatorAmountFinal", "responderAmountFinal", "gasPrice", "minGasPrice", "deposit"];
|
|
6
|
+
declare const numberPropertyNames: readonly ["time", "gas", "gasUsed", "nameSalt", "nonce", "nextNonce", "height", "blockHeight", "topBlockHeight", "ttl", "nameTtl", "clientTtl", "inbound", "outbound", "peerCount", "pendingTransactionsCount", "effectiveAtHeight", "version", "solutions", "round", "minutes", "utilization", "difficulty", "hashrate"];
|
|
6
7
|
type BigIntPropertyNames = typeof bigIntPropertyNames[number];
|
|
7
8
|
type NumberPropertyNames = typeof numberPropertyNames[number];
|
|
8
9
|
type PreserveOptional<NewType, OrigType> = OrigType extends undefined ? NewType | undefined : NewType;
|
|
@@ -35,6 +36,13 @@ export default class Node extends Node_base {
|
|
|
35
36
|
retryCount?: number;
|
|
36
37
|
retryOverallDelay?: number;
|
|
37
38
|
});
|
|
39
|
+
_getCachedStatus(options?: OperationOptions): ReturnType<Node['getStatus']>;
|
|
40
|
+
/** @ts-expect-error use code generation to create node class? */
|
|
41
|
+
getStatus(...args: Parameters<InstanceType<NodeTransformedApi>['getStatus']>): ReturnType<InstanceType<NodeTransformedApi>['getStatus']>;
|
|
42
|
+
/**
|
|
43
|
+
* Returns network ID provided by node.
|
|
44
|
+
* This method won't do extra requests on subsequent calls.
|
|
45
|
+
*/
|
|
38
46
|
getNetworkId(): Promise<string>;
|
|
39
47
|
getNodeInfo(): Promise<NodeInfo>;
|
|
40
48
|
}
|
package/es/Node.mjs
CHANGED
|
@@ -1,41 +1,39 @@
|
|
|
1
|
-
import _classPrivateFieldGet from "@babel/runtime-corejs3/helpers/classPrivateFieldGet";
|
|
2
1
|
import _classPrivateFieldSet from "@babel/runtime-corejs3/helpers/classPrivateFieldSet";
|
|
2
|
+
import _classPrivateFieldGet from "@babel/runtime-corejs3/helpers/classPrivateFieldGet";
|
|
3
3
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
4
4
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
5
5
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
6
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) {
|
|
6
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { _assertClassBrand(privateSet, receiver); return fn; }
|
|
7
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
7
8
|
// eslint-disable-next-line max-classes-per-file
|
|
8
9
|
import BigNumber from 'bignumber.js';
|
|
10
|
+
import { userAgentPolicyName, setClientRequestIdPolicyName } from '@azure/core-rest-pipeline';
|
|
9
11
|
import { genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy, genVersionCheckPolicy, genRetryOnFailurePolicy } from "./utils/autorest.mjs";
|
|
10
12
|
import { Node as NodeApi } from "./apis/node/index.mjs";
|
|
11
13
|
import { mapObject } from "./utils/other.mjs";
|
|
12
14
|
import { UnsupportedVersionError } from "./utils/errors.mjs";
|
|
13
15
|
import { ConsensusProtocolVersion } from "./tx/builder/constants.mjs";
|
|
14
|
-
const bigIntPropertyNames = ['balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount', 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal', 'responderAmountFinal', 'gasPrice', 'deposit'];
|
|
15
|
-
const numberPropertyNames = ['time', 'gas', 'gasUsed', 'nameSalt', 'nonce', 'nextNonce', 'height', 'blockHeight', 'topBlockHeight', 'ttl', 'nameTtl', 'clientTtl', 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight', 'version', 'solutions', 'round'];
|
|
16
|
+
const bigIntPropertyNames = ['balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount', 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal', 'responderAmountFinal', 'gasPrice', 'minGasPrice', 'deposit'];
|
|
17
|
+
const numberPropertyNames = ['time', 'gas', 'gasUsed', 'nameSalt', 'nonce', 'nextNonce', 'height', 'blockHeight', 'topBlockHeight', 'ttl', 'nameTtl', 'clientTtl', 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight', 'version', 'solutions', 'round', 'minutes', 'utilization', 'difficulty', 'hashrate'];
|
|
16
18
|
var _mapData = /*#__PURE__*/new WeakSet();
|
|
17
19
|
var _encodeArg = /*#__PURE__*/new WeakSet();
|
|
18
20
|
var _decodeRes = /*#__PURE__*/new WeakSet();
|
|
19
21
|
class NodeTransformed extends NodeApi {
|
|
20
|
-
constructor() {
|
|
21
|
-
super(...
|
|
22
|
+
constructor(...args) {
|
|
23
|
+
super(...args);
|
|
22
24
|
_classPrivateMethodInitSpec(this, _decodeRes);
|
|
23
25
|
_classPrivateMethodInitSpec(this, _encodeArg);
|
|
24
26
|
_classPrivateMethodInitSpec(this, _mapData);
|
|
25
27
|
}
|
|
26
28
|
async sendOperationRequest(operationArguments, operationSpec) {
|
|
27
|
-
const args = mapObject(operationArguments,
|
|
28
|
-
let [key, value] = _ref;
|
|
29
|
-
return [key, _classPrivateMethodGet(this, _encodeArg, _encodeArg2).call(this, value)];
|
|
30
|
-
});
|
|
29
|
+
const args = mapObject(operationArguments, ([key, value]) => [key, _classPrivateMethodGet(this, _encodeArg, _encodeArg2).call(this, value)]);
|
|
31
30
|
return _classPrivateMethodGet(this, _decodeRes, _decodeRes2).call(this, await super.sendOperationRequest(args, operationSpec));
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
33
|
function _mapData2(data, transform) {
|
|
35
34
|
if (Array.isArray(data)) return data.map(d => _classPrivateMethodGet(this, _mapData, _mapData2).call(this, d, transform));
|
|
36
35
|
if (data != null && typeof data === 'object') {
|
|
37
|
-
return mapObject(data,
|
|
38
|
-
let [key, value] = _ref6;
|
|
36
|
+
return mapObject(data, ([key, value]) => {
|
|
39
37
|
if (value == null) return [key, value];
|
|
40
38
|
if (bigIntPropertyNames.some(k => k === key)) return [key, transform.bigInt(value)];
|
|
41
39
|
if (numberPropertyNames.some(k => k === key)) return [key, transform.number(value)];
|
|
@@ -59,7 +57,7 @@ function _decodeRes2(data) {
|
|
|
59
57
|
number: value => +value
|
|
60
58
|
});
|
|
61
59
|
}
|
|
62
|
-
var
|
|
60
|
+
var _cachedStatusPromise = /*#__PURE__*/new WeakMap();
|
|
63
61
|
export default class Node extends NodeTransformed {
|
|
64
62
|
/**
|
|
65
63
|
* @param url - Url for node API
|
|
@@ -68,52 +66,56 @@ export default class Node extends NodeTransformed {
|
|
|
68
66
|
* @param options.retryCount - Amount of extra requests to do in case of failure
|
|
69
67
|
* @param options.retryOverallDelay - Time in ms to wait between all retries
|
|
70
68
|
*/
|
|
71
|
-
constructor(url
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
69
|
+
constructor(url, {
|
|
70
|
+
ignoreVersion = false,
|
|
71
|
+
retryCount = 3,
|
|
72
|
+
retryOverallDelay = 800,
|
|
73
|
+
...options
|
|
74
|
+
} = {}) {
|
|
75
|
+
const getVersion = async opts => (await this._getCachedStatus(opts)).nodeVersion;
|
|
78
76
|
// eslint-disable-next-line constructor-super
|
|
79
77
|
super(url, {
|
|
80
78
|
allowInsecureConnection: true,
|
|
81
|
-
additionalPolicies: [genRequestQueuesPolicy(), genCombineGetRequestsPolicy(), genRetryOnFailurePolicy(retryCount, retryOverallDelay), genErrorFormatterPolicy(body => ` ${body.
|
|
79
|
+
additionalPolicies: [...(ignoreVersion ? [] : [genVersionCheckPolicy('node', getVersion, '6.2.0', '8.0.0')]), genRequestQueuesPolicy(), genCombineGetRequestsPolicy(), genRetryOnFailurePolicy(retryCount, retryOverallDelay), genErrorFormatterPolicy(body => [' ', body.reason, body.errorCode == null ? '' : ` (${body.errorCode})`].join(''))],
|
|
82
80
|
...options
|
|
83
81
|
});
|
|
84
|
-
_classPrivateFieldInitSpec(this,
|
|
82
|
+
_classPrivateFieldInitSpec(this, _cachedStatusPromise, {
|
|
85
83
|
writable: true,
|
|
86
84
|
value: void 0
|
|
87
85
|
});
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
networkId
|
|
99
|
-
} = _ref3;
|
|
100
|
-
return networkId;
|
|
101
|
-
}, error => error));
|
|
102
|
-
this.pipeline.addPolicy(genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'));
|
|
103
|
-
}
|
|
86
|
+
this.pipeline.removePolicy({
|
|
87
|
+
name: userAgentPolicyName
|
|
88
|
+
});
|
|
89
|
+
this.pipeline.removePolicy({
|
|
90
|
+
name: setClientRequestIdPolicyName
|
|
91
|
+
});
|
|
92
|
+
// TODO: use instead our retry policy
|
|
93
|
+
this.pipeline.removePolicy({
|
|
94
|
+
name: 'defaultRetryPolicy'
|
|
95
|
+
});
|
|
104
96
|
this.intAsString = true;
|
|
105
97
|
}
|
|
98
|
+
async _getCachedStatus(options) {
|
|
99
|
+
if (_classPrivateFieldGet(this, _cachedStatusPromise) != null) return _classPrivateFieldGet(this, _cachedStatusPromise);
|
|
100
|
+
return this.getStatus(options);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// eslint-disable-next-line rulesdir/tsdoc-syntax
|
|
104
|
+
/** @ts-expect-error use code generation to create node class? */
|
|
105
|
+
async getStatus(...args) {
|
|
106
|
+
const promise = super.getStatus(...args);
|
|
107
|
+
promise.then(() => {
|
|
108
|
+
_classPrivateFieldSet(this, _cachedStatusPromise, promise);
|
|
109
|
+
}, () => {});
|
|
110
|
+
return promise;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Returns network ID provided by node.
|
|
115
|
+
* This method won't do extra requests on subsequent calls.
|
|
116
|
+
*/
|
|
106
117
|
async getNetworkId() {
|
|
107
|
-
|
|
108
|
-
(_classPrivateFieldGet2 = _classPrivateFieldGet(this, _networkIdPromise)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : _classPrivateFieldSet(this, _networkIdPromise, this.getStatus().then(_ref4 => {
|
|
109
|
-
let {
|
|
110
|
-
networkId
|
|
111
|
-
} = _ref4;
|
|
112
|
-
return networkId;
|
|
113
|
-
}));
|
|
114
|
-
const networkId = await _classPrivateFieldGet(this, _networkIdPromise);
|
|
115
|
-
if (networkId instanceof Error) throw networkId;
|
|
116
|
-
return networkId;
|
|
118
|
+
return (await this._getCachedStatus()).networkId;
|
|
117
119
|
}
|
|
118
120
|
async getNodeInfo() {
|
|
119
121
|
const {
|
|
@@ -122,12 +124,9 @@ export default class Node extends NodeTransformed {
|
|
|
122
124
|
protocols,
|
|
123
125
|
topBlockHeight
|
|
124
126
|
} = await this.getStatus();
|
|
125
|
-
const consensusProtocolVersion = protocols.filter(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
} = _ref5;
|
|
129
|
-
return topBlockHeight >= effectiveAtHeight;
|
|
130
|
-
}).reduce((acc, p) => p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc, {
|
|
127
|
+
const consensusProtocolVersion = protocols.filter(({
|
|
128
|
+
effectiveAtHeight
|
|
129
|
+
}) => topBlockHeight >= effectiveAtHeight).reduce((acc, p) => p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc, {
|
|
131
130
|
effectiveAtHeight: -1,
|
|
132
131
|
version: 0
|
|
133
132
|
}).version;
|