@aeternity/aepp-sdk 13.2.2 → 13.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +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 +58 -2
- 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/chain.mjs
CHANGED
|
@@ -1,80 +1,95 @@
|
|
|
1
1
|
import { AE_AMOUNT_FORMATS, formatAmount } from "./utils/amount-formatter.mjs";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import { isAccountNotFoundError, pause } from "./utils/other.mjs";
|
|
3
|
+
import { unwrapProxy } from "./utils/wrap-proxy.mjs";
|
|
4
4
|
import { isNameValid, produceNameId } from "./tx/builder/helpers.mjs";
|
|
5
|
-
import { DRY_RUN_ACCOUNT } from "./tx/builder/
|
|
6
|
-
import { AensPointerContextError, DryRunError, InvalidAensNameError,
|
|
5
|
+
import { DRY_RUN_ACCOUNT } from "./tx/builder/constants.mjs";
|
|
6
|
+
import { AensPointerContextError, DryRunError, InvalidAensNameError, TxTimedOutError, TxNotInChainError, InternalError } from "./utils/errors.mjs";
|
|
7
7
|
import { decode, encode, Encoding } from "./utils/encoder.mjs";
|
|
8
|
-
import { buildTxHash } from "./tx/builder/index.mjs";
|
|
9
8
|
/**
|
|
10
9
|
* @category chain
|
|
10
|
+
* @param type - Type
|
|
11
|
+
* @param options - Options
|
|
11
12
|
*/
|
|
12
|
-
export function _getPollInterval(type,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} = _ref;
|
|
13
|
+
export function _getPollInterval(type,
|
|
14
|
+
// TODO: rename to 'key-block' | 'micro-block'
|
|
15
|
+
{
|
|
16
|
+
_expectedMineRate = 180000,
|
|
17
|
+
_microBlockCycle = 3000
|
|
18
|
+
}) {
|
|
19
19
|
const base = {
|
|
20
20
|
block: _expectedMineRate,
|
|
21
21
|
microblock: _microBlockCycle
|
|
22
22
|
}[type];
|
|
23
|
-
return Math.
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @category exception
|
|
28
|
-
*/
|
|
29
|
-
export class InvalidTxError extends TransactionError {
|
|
30
|
-
constructor(message, validation, transaction) {
|
|
31
|
-
super(message);
|
|
32
|
-
this.name = 'InvalidTxError';
|
|
33
|
-
this.validation = validation;
|
|
34
|
-
this.transaction = transaction;
|
|
35
|
-
}
|
|
23
|
+
return Math.floor(base / 3);
|
|
36
24
|
}
|
|
25
|
+
const heightCache = new WeakMap();
|
|
37
26
|
|
|
38
27
|
/**
|
|
39
28
|
* Obtain current height of the chain
|
|
40
29
|
* @category chain
|
|
30
|
+
* @param options - Options
|
|
31
|
+
* @param options.cached - Get height from the cache. The lag behind the actual height shouldn't
|
|
32
|
+
* be more than 1 block. Use if needed to reduce requests count, and approximate value can be used.
|
|
33
|
+
* For example, for timeout check in transaction status polling.
|
|
41
34
|
* @returns Current chain height
|
|
42
35
|
*/
|
|
43
|
-
export async function getHeight(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
export async function getHeight({
|
|
37
|
+
cached = false,
|
|
38
|
+
...options
|
|
39
|
+
}) {
|
|
40
|
+
const onNode = unwrapProxy(options.onNode);
|
|
41
|
+
if (cached) {
|
|
42
|
+
const cache = heightCache.get(onNode);
|
|
43
|
+
if (cache != null && cache.time > Date.now() - _getPollInterval('block', options)) {
|
|
44
|
+
return cache.height;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const {
|
|
48
|
+
height
|
|
49
|
+
} = await onNode.getCurrentKeyBlockHeight();
|
|
50
|
+
heightCache.set(onNode, {
|
|
51
|
+
height,
|
|
52
|
+
time: Date.now()
|
|
53
|
+
});
|
|
54
|
+
return height;
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
/**
|
|
51
|
-
*
|
|
58
|
+
* Return transaction details if it is mined, fail otherwise.
|
|
59
|
+
* If the transaction has ttl specified then would wait till it leaves the mempool.
|
|
60
|
+
* Otherwise would fail if a specified amount of blocks were mined.
|
|
52
61
|
* @category chain
|
|
53
62
|
* @param th - The hash of transaction to poll
|
|
54
63
|
* @param options - Options
|
|
55
64
|
* @param options.interval - Interval (in ms) at which to poll the chain
|
|
56
|
-
* @param options.blocks - Number of blocks mined after which to fail
|
|
65
|
+
* @param options.blocks - Number of blocks mined after which to fail if transaction ttl is not set
|
|
57
66
|
* @param options.onNode - Node to use
|
|
58
67
|
* @returns The transaction as it was mined
|
|
59
68
|
*/
|
|
60
|
-
export async function poll(th,
|
|
69
|
+
export async function poll(th, {
|
|
70
|
+
blocks = 5,
|
|
71
|
+
interval,
|
|
72
|
+
onNode,
|
|
73
|
+
...options
|
|
74
|
+
}) {
|
|
61
75
|
var _interval;
|
|
62
|
-
let {
|
|
63
|
-
blocks = 5,
|
|
64
|
-
interval,
|
|
65
|
-
onNode,
|
|
66
|
-
...options
|
|
67
|
-
} = _ref3;
|
|
68
76
|
(_interval = interval) !== null && _interval !== void 0 ? _interval : interval = _getPollInterval('microblock', options);
|
|
69
|
-
|
|
70
|
-
onNode
|
|
71
|
-
})) + blocks;
|
|
77
|
+
let max;
|
|
72
78
|
do {
|
|
73
79
|
const tx = await onNode.getTransactionByHash(th);
|
|
74
80
|
if (tx.blockHeight !== -1) return tx;
|
|
81
|
+
if (max == null) {
|
|
82
|
+
max = tx.tx.ttl !== 0 ? -1 : (await getHeight({
|
|
83
|
+
...options,
|
|
84
|
+
onNode,
|
|
85
|
+
cached: true
|
|
86
|
+
})) + blocks;
|
|
87
|
+
}
|
|
75
88
|
await pause(interval);
|
|
76
|
-
} while ((await getHeight({
|
|
77
|
-
|
|
89
|
+
} while (max === -1 ? true : (await getHeight({
|
|
90
|
+
...options,
|
|
91
|
+
onNode,
|
|
92
|
+
cached: true
|
|
78
93
|
})) < max);
|
|
79
94
|
throw new TxTimedOutError(blocks, th);
|
|
80
95
|
}
|
|
@@ -88,18 +103,19 @@ export async function poll(th, _ref3) {
|
|
|
88
103
|
* @param options.onNode - Node to use
|
|
89
104
|
* @returns Current chain height
|
|
90
105
|
*/
|
|
91
|
-
export async function awaitHeight(height,
|
|
106
|
+
export async function awaitHeight(height, {
|
|
107
|
+
interval,
|
|
108
|
+
onNode,
|
|
109
|
+
...options
|
|
110
|
+
}) {
|
|
92
111
|
var _interval2;
|
|
93
|
-
|
|
94
|
-
interval,
|
|
95
|
-
onNode,
|
|
96
|
-
...options
|
|
97
|
-
} = _ref4;
|
|
98
|
-
(_interval2 = interval) !== null && _interval2 !== void 0 ? _interval2 : interval = _getPollInterval('block', options);
|
|
112
|
+
(_interval2 = interval) !== null && _interval2 !== void 0 ? _interval2 : interval = Math.min(_getPollInterval('block', options), 5000);
|
|
99
113
|
let currentHeight;
|
|
100
114
|
do {
|
|
101
115
|
if (currentHeight != null) await pause(interval);
|
|
102
|
-
currentHeight =
|
|
116
|
+
currentHeight = await getHeight({
|
|
117
|
+
onNode
|
|
118
|
+
});
|
|
103
119
|
} while (currentHeight < height);
|
|
104
120
|
return currentHeight;
|
|
105
121
|
}
|
|
@@ -113,12 +129,11 @@ export async function awaitHeight(height, _ref4) {
|
|
|
113
129
|
* @param options.onNode - Node to use
|
|
114
130
|
* @returns Current Height
|
|
115
131
|
*/
|
|
116
|
-
export async function waitForTxConfirm(txHash,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
} = _ref5;
|
|
132
|
+
export async function waitForTxConfirm(txHash, {
|
|
133
|
+
confirm = 3,
|
|
134
|
+
onNode,
|
|
135
|
+
...options
|
|
136
|
+
}) {
|
|
122
137
|
const {
|
|
123
138
|
blockHeight
|
|
124
139
|
} = await onNode.getTransactionByHash(txHash);
|
|
@@ -143,99 +158,6 @@ export async function waitForTxConfirm(txHash, _ref5) {
|
|
|
143
158
|
}
|
|
144
159
|
}
|
|
145
160
|
|
|
146
|
-
/**
|
|
147
|
-
* Signs and submits transaction for mining
|
|
148
|
-
* @category chain
|
|
149
|
-
* @param txUnsigned - Transaction to sign and submit
|
|
150
|
-
* @param options - Options
|
|
151
|
-
* @param options.onNode - Node to use
|
|
152
|
-
* @param options.onAccount - Account to use
|
|
153
|
-
* @param options.verify - Verify transaction before broadcast, throw error if not
|
|
154
|
-
* @param options.waitMined - Ensure that transaction get into block
|
|
155
|
-
* @param options.confirm - Number of micro blocks that should be mined after tx get included
|
|
156
|
-
* @returns Transaction details
|
|
157
|
-
*/
|
|
158
|
-
export async function sendTransaction(txUnsigned, _ref6) {
|
|
159
|
-
let {
|
|
160
|
-
onNode,
|
|
161
|
-
onAccount,
|
|
162
|
-
verify = true,
|
|
163
|
-
waitMined = true,
|
|
164
|
-
confirm,
|
|
165
|
-
innerTx,
|
|
166
|
-
...options
|
|
167
|
-
} = _ref6;
|
|
168
|
-
const tx = await onAccount.signTransaction(txUnsigned, {
|
|
169
|
-
...options,
|
|
170
|
-
onNode,
|
|
171
|
-
innerTx,
|
|
172
|
-
networkId: await onNode.getNetworkId()
|
|
173
|
-
});
|
|
174
|
-
if (innerTx === true) return {
|
|
175
|
-
hash: buildTxHash(tx),
|
|
176
|
-
rawTx: tx
|
|
177
|
-
};
|
|
178
|
-
if (verify) {
|
|
179
|
-
const validation = await verifyTransaction(tx, onNode);
|
|
180
|
-
if (validation.length > 0) {
|
|
181
|
-
const message = `Transaction verification errors: ${validation.map(v => v.message).join(', ')}`;
|
|
182
|
-
throw new InvalidTxError(message, validation, tx);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
try {
|
|
186
|
-
let __queue;
|
|
187
|
-
try {
|
|
188
|
-
__queue = onAccount != null ? `tx-${onAccount.address}` : null;
|
|
189
|
-
} catch (error) {
|
|
190
|
-
__queue = null;
|
|
191
|
-
}
|
|
192
|
-
const {
|
|
193
|
-
txHash
|
|
194
|
-
} = await onNode.postTransaction({
|
|
195
|
-
tx
|
|
196
|
-
}, __queue != null ? {
|
|
197
|
-
requestOptions: {
|
|
198
|
-
customHeaders: {
|
|
199
|
-
__queue
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
} : {});
|
|
203
|
-
if (waitMined) {
|
|
204
|
-
const pollResult = await poll(txHash, {
|
|
205
|
-
onNode,
|
|
206
|
-
...options
|
|
207
|
-
});
|
|
208
|
-
const txData = {
|
|
209
|
-
...pollResult,
|
|
210
|
-
hash: pollResult.hash,
|
|
211
|
-
rawTx: tx
|
|
212
|
-
};
|
|
213
|
-
// wait for transaction confirmation
|
|
214
|
-
if (confirm != null && +confirm > 0) {
|
|
215
|
-
const c = typeof confirm === 'boolean' ? undefined : confirm;
|
|
216
|
-
return {
|
|
217
|
-
...txData,
|
|
218
|
-
confirmationHeight: await waitForTxConfirm(txHash, {
|
|
219
|
-
onNode,
|
|
220
|
-
confirm: c,
|
|
221
|
-
...options
|
|
222
|
-
})
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
return txData;
|
|
226
|
-
}
|
|
227
|
-
return {
|
|
228
|
-
hash: txHash,
|
|
229
|
-
rawTx: tx
|
|
230
|
-
};
|
|
231
|
-
} catch (error) {
|
|
232
|
-
ensureError(error);
|
|
233
|
-
throw Object.assign(error, {
|
|
234
|
-
rawTx: tx,
|
|
235
|
-
verifyTx: async () => verifyTransaction(tx, onNode)
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
161
|
/**
|
|
240
162
|
* Get account by account public key
|
|
241
163
|
* @category chain
|
|
@@ -245,12 +167,11 @@ export async function sendTransaction(txUnsigned, _ref6) {
|
|
|
245
167
|
* @param options.hash - Get account on specific block by micro block hash or key block hash
|
|
246
168
|
* @param options.onNode - Node to use
|
|
247
169
|
*/
|
|
248
|
-
export async function getAccount(address,
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
} = _ref7;
|
|
170
|
+
export async function getAccount(address, {
|
|
171
|
+
height,
|
|
172
|
+
hash,
|
|
173
|
+
onNode
|
|
174
|
+
}) {
|
|
254
175
|
if (height != null) return onNode.getAccountByPubkeyAndHeight(address, height);
|
|
255
176
|
if (hash != null) return onNode.getAccountByPubkeyAndHash(address, hash);
|
|
256
177
|
return onNode.getAccountByPubkey(address);
|
|
@@ -266,11 +187,10 @@ export async function getAccount(address, _ref7) {
|
|
|
266
187
|
* (default: top of chain)
|
|
267
188
|
* @param options.hash - The block hash on which to obtain the balance for (default: top of chain)
|
|
268
189
|
*/
|
|
269
|
-
export async function getBalance(address,
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
} = _ref8;
|
|
190
|
+
export async function getBalance(address, {
|
|
191
|
+
format = AE_AMOUNT_FORMATS.AETTOS,
|
|
192
|
+
...options
|
|
193
|
+
}) {
|
|
274
194
|
const addr = address.startsWith('ok_') ? encode(decode(address), Encoding.AccountAddress) : address;
|
|
275
195
|
const {
|
|
276
196
|
balance
|
|
@@ -292,10 +212,9 @@ export async function getBalance(address, _ref8) {
|
|
|
292
212
|
* @param options.onNode - Node to use
|
|
293
213
|
* @returns Current Generation
|
|
294
214
|
*/
|
|
295
|
-
export async function getCurrentGeneration(
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
} = _ref9;
|
|
215
|
+
export async function getCurrentGeneration({
|
|
216
|
+
onNode
|
|
217
|
+
}) {
|
|
299
218
|
return onNode.getCurrentGeneration();
|
|
300
219
|
}
|
|
301
220
|
|
|
@@ -307,10 +226,9 @@ export async function getCurrentGeneration(_ref9) {
|
|
|
307
226
|
* @param options.onNode - Node to use
|
|
308
227
|
* @returns Generation
|
|
309
228
|
*/
|
|
310
|
-
export async function getGeneration(hashOrHeight,
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
} = _ref10;
|
|
229
|
+
export async function getGeneration(hashOrHeight, {
|
|
230
|
+
onNode
|
|
231
|
+
}) {
|
|
314
232
|
if (typeof hashOrHeight === 'number') return onNode.getGenerationByHeight(hashOrHeight);
|
|
315
233
|
return onNode.getGenerationByHash(hashOrHeight);
|
|
316
234
|
}
|
|
@@ -323,10 +241,9 @@ export async function getGeneration(hashOrHeight, _ref10) {
|
|
|
323
241
|
* @param options.onNode - Node to use
|
|
324
242
|
* @returns Transactions
|
|
325
243
|
*/
|
|
326
|
-
export async function getMicroBlockTransactions(hash,
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
} = _ref11;
|
|
244
|
+
export async function getMicroBlockTransactions(hash, {
|
|
245
|
+
onNode
|
|
246
|
+
}) {
|
|
330
247
|
return (await onNode.getMicroBlockTransactionsByHash(hash)).transactions;
|
|
331
248
|
}
|
|
332
249
|
|
|
@@ -338,10 +255,9 @@ export async function getMicroBlockTransactions(hash, _ref11) {
|
|
|
338
255
|
* @param options.onNode - Node to use
|
|
339
256
|
* @returns Key Block
|
|
340
257
|
*/
|
|
341
|
-
export async function getKeyBlock(hashOrHeight,
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
} = _ref12;
|
|
258
|
+
export async function getKeyBlock(hashOrHeight, {
|
|
259
|
+
onNode
|
|
260
|
+
}) {
|
|
345
261
|
if (typeof hashOrHeight === 'number') return onNode.getKeyBlockByHeight(hashOrHeight);
|
|
346
262
|
return onNode.getKeyBlockByHash(hashOrHeight);
|
|
347
263
|
}
|
|
@@ -354,10 +270,9 @@ export async function getKeyBlock(hashOrHeight, _ref12) {
|
|
|
354
270
|
* @param options.onNode - Node to use
|
|
355
271
|
* @returns Micro block header
|
|
356
272
|
*/
|
|
357
|
-
export async function getMicroBlockHeader(hash,
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
} = _ref13;
|
|
273
|
+
export async function getMicroBlockHeader(hash, {
|
|
274
|
+
onNode
|
|
275
|
+
}) {
|
|
361
276
|
return onNode.getMicroBlockHeaderByHash(hash);
|
|
362
277
|
}
|
|
363
278
|
const txDryRunRequests = new Map();
|
|
@@ -382,24 +297,20 @@ async function txDryRunHandler(key, onNode) {
|
|
|
382
297
|
}))
|
|
383
298
|
});
|
|
384
299
|
} catch (error) {
|
|
385
|
-
rs.forEach(
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
} = _ref14;
|
|
389
|
-
return reject(error);
|
|
390
|
-
});
|
|
300
|
+
rs.forEach(({
|
|
301
|
+
reject
|
|
302
|
+
}) => reject(error));
|
|
391
303
|
return;
|
|
392
304
|
}
|
|
393
305
|
const {
|
|
394
306
|
results,
|
|
395
307
|
txEvents
|
|
396
308
|
} = dryRunRes;
|
|
397
|
-
results.forEach((
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
} = _ref15;
|
|
309
|
+
results.forEach(({
|
|
310
|
+
result,
|
|
311
|
+
reason,
|
|
312
|
+
...resultPayload
|
|
313
|
+
}, idx) => {
|
|
403
314
|
const {
|
|
404
315
|
resolve,
|
|
405
316
|
reject,
|
|
@@ -427,14 +338,13 @@ async function txDryRunHandler(key, onNode) {
|
|
|
427
338
|
* @param options.combine - Enables combining of similar requests to a single dry-run call
|
|
428
339
|
* @param options.onNode - Node to use
|
|
429
340
|
*/
|
|
430
|
-
export async function txDryRun(tx, accountAddress,
|
|
341
|
+
export async function txDryRun(tx, accountAddress, {
|
|
342
|
+
top,
|
|
343
|
+
txEvents,
|
|
344
|
+
combine,
|
|
345
|
+
onNode
|
|
346
|
+
}) {
|
|
431
347
|
var _txDryRunRequests$get;
|
|
432
|
-
let {
|
|
433
|
-
top,
|
|
434
|
-
txEvents,
|
|
435
|
-
combine,
|
|
436
|
-
onNode
|
|
437
|
-
} = _ref16;
|
|
438
348
|
const key = combine === true ? [top, txEvents].join() : 'immediate';
|
|
439
349
|
const requests = (_txDryRunRequests$get = txDryRunRequests.get(key)) !== null && _txDryRunRequests$get !== void 0 ? _txDryRunRequests$get : [];
|
|
440
350
|
txDryRunRequests.set(key, requests);
|
|
@@ -465,10 +375,9 @@ export async function txDryRun(tx, accountAddress, _ref16) {
|
|
|
465
375
|
* @param options - Options
|
|
466
376
|
* @param options.onNode - Node to use
|
|
467
377
|
*/
|
|
468
|
-
export async function getContractByteCode(contractId,
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
} = _ref17;
|
|
378
|
+
export async function getContractByteCode(contractId, {
|
|
379
|
+
onNode
|
|
380
|
+
}) {
|
|
472
381
|
return onNode.getContractCode(contractId);
|
|
473
382
|
}
|
|
474
383
|
|
|
@@ -479,10 +388,9 @@ export async function getContractByteCode(contractId, _ref17) {
|
|
|
479
388
|
* @param options - Options
|
|
480
389
|
* @param options.onNode - Node to use
|
|
481
390
|
*/
|
|
482
|
-
export async function getContract(contractId,
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
} = _ref18;
|
|
391
|
+
export async function getContract(contractId, {
|
|
392
|
+
onNode
|
|
393
|
+
}) {
|
|
486
394
|
return onNode.getContract(contractId);
|
|
487
395
|
}
|
|
488
396
|
|
|
@@ -493,10 +401,9 @@ export async function getContract(contractId, _ref18) {
|
|
|
493
401
|
* @param options - Options
|
|
494
402
|
* @param options.onNode - Node to use
|
|
495
403
|
*/
|
|
496
|
-
export async function getName(name,
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
} = _ref19;
|
|
404
|
+
export async function getName(name, {
|
|
405
|
+
onNode
|
|
406
|
+
}) {
|
|
500
407
|
return onNode.getNameEntryByName(name);
|
|
501
408
|
}
|
|
502
409
|
|
|
@@ -512,12 +419,11 @@ export async function getName(name, _ref19) {
|
|
|
512
419
|
* @param options.onNode - Node to use
|
|
513
420
|
* @returns Address or AENS name hash
|
|
514
421
|
*/
|
|
515
|
-
export async function resolveName(nameOrId, key,
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
} = _ref20;
|
|
422
|
+
export async function resolveName(nameOrId, key, {
|
|
423
|
+
verify = true,
|
|
424
|
+
resolveByNode = false,
|
|
425
|
+
onNode
|
|
426
|
+
}) {
|
|
521
427
|
if (isNameValid(nameOrId)) {
|
|
522
428
|
if (verify || resolveByNode) {
|
|
523
429
|
const name = await onNode.getNameEntryByName(nameOrId);
|
package/es/chain.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.mjs","names":["AE_AMOUNT_FORMATS","formatAmount","verifyTransaction","ensureError","isAccountNotFoundError","pause","isNameValid","produceNameId","DRY_RUN_ACCOUNT","AensPointerContextError","DryRunError","InvalidAensNameError","TransactionError","TxTimedOutError","TxNotInChainError","InternalError","decode","encode","Encoding","buildTxHash","_getPollInterval","type","_ref","_expectedMineRate","_microBlockCycle","_maxPollInterval","base","block","microblock","Math","min","InvalidTxError","constructor","message","validation","transaction","name","getHeight","_ref2","onNode","getCurrentKeyBlockHeight","height","poll","th","_ref3","_interval","blocks","interval","options","max","tx","getTransactionByHash","blockHeight","awaitHeight","_ref4","_interval2","currentHeight","waitForTxConfirm","txHash","_ref5","confirm","newBlockHeight","sendTransaction","txUnsigned","_ref6","onAccount","verify","waitMined","innerTx","signTransaction","networkId","getNetworkId","hash","rawTx","length","map","v","join","__queue","address","error","postTransaction","requestOptions","customHeaders","pollResult","txData","c","undefined","confirmationHeight","Object","assign","verifyTx","getAccount","_ref7","getAccountByPubkeyAndHeight","getAccountByPubkeyAndHash","getAccountByPubkey","getBalance","_ref8","format","AETTOS","addr","startsWith","AccountAddress","balance","catch","targetDenomination","getCurrentGeneration","_ref9","getGeneration","hashOrHeight","_ref10","getGenerationByHeight","getGenerationByHash","getMicroBlockTransactions","_ref11","getMicroBlockTransactionsByHash","transactions","getKeyBlock","_ref12","getKeyBlockByHeight","getKeyBlockByHash","getMicroBlockHeader","_ref13","getMicroBlockHeaderByHash","txDryRunRequests","Map","txDryRunHandler","key","rs","get","delete","dryRunRes","top","protectedDryRunTxs","txEvents","txs","req","accounts","Array","from","Set","accountAddress","pubKey","amount","forEach","_ref14","reject","results","_ref15","idx","result","reason","resultPayload","resolve","txDryRun","_ref16","_txDryRunRequests$get","combine","requests","set","Promise","_requests$timeout","push","timeout","setTimeout","getContractByteCode","contractId","_ref17","getContractCode","getContract","_ref18","getName","_ref19","getNameEntryByName","resolveName","nameOrId","_ref20","resolveByNode","pointer","pointers","find","p","id"],"sources":["../src/chain.ts"],"sourcesContent":["import { AE_AMOUNT_FORMATS, formatAmount } from './utils/amount-formatter';\nimport verifyTransaction, { ValidatorResult } from './tx/validator';\nimport { ensureError, isAccountNotFoundError, pause } from './utils/other';\nimport { isNameValid, produceNameId } from './tx/builder/helpers';\nimport { DRY_RUN_ACCOUNT } from './tx/builder/schema';\nimport { AensName } from './tx/builder/constants';\nimport {\n AensPointerContextError, DryRunError, InvalidAensNameError, TransactionError,\n TxTimedOutError, TxNotInChainError, InternalError,\n} from './utils/errors';\nimport Node, { TransformNodeType } from './Node';\nimport {\n Account as AccountNode, ByteCode, ContractObject, DryRunResult, DryRunResults,\n Generation, KeyBlock, MicroBlockHeader, NameEntry, SignedTx,\n} from './apis/node';\nimport {\n decode, encode, Encoded, Encoding,\n} from './utils/encoder';\nimport AccountBase from './account/Base';\nimport { buildTxHash } from './tx/builder';\n\n/**\n * @category chain\n */\nexport function _getPollInterval(\n type: 'block' | 'microblock', // TODO: rename to 'key-block' | 'micro-block'\n { _expectedMineRate = 180000, _microBlockCycle = 3000, _maxPollInterval = 5000 }:\n { _expectedMineRate?: number; _microBlockCycle?: number; _maxPollInterval?: number },\n): number {\n const base = {\n block: _expectedMineRate,\n microblock: _microBlockCycle,\n }[type];\n return Math.min(base / 3, _maxPollInterval);\n}\n\n/**\n * @category exception\n */\nexport class InvalidTxError extends TransactionError {\n validation: ValidatorResult[];\n\n transaction: Encoded.Transaction;\n\n constructor(\n message: string,\n validation: ValidatorResult[],\n transaction: Encoded.Transaction,\n ) {\n super(message);\n this.name = 'InvalidTxError';\n this.validation = validation;\n this.transaction = transaction;\n }\n}\n\n/**\n * Obtain current height of the chain\n * @category chain\n * @returns Current chain height\n */\nexport async function getHeight({ onNode }: { onNode: Node }): Promise<number> {\n return (await onNode.getCurrentKeyBlockHeight()).height;\n}\n\n/**\n * Wait for a transaction to be mined\n * @category chain\n * @param th - The hash of transaction to poll\n * @param options - Options\n * @param options.interval - Interval (in ms) at which to poll the chain\n * @param options.blocks - Number of blocks mined after which to fail\n * @param options.onNode - Node to use\n * @returns The transaction as it was mined\n */\nexport async function poll(\n th: Encoded.TxHash,\n {\n blocks = 5, interval, onNode, ...options\n }:\n { blocks?: number; interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): Promise<TransformNodeType<SignedTx>> {\n interval ??= _getPollInterval('microblock', options);\n const max = await getHeight({ onNode }) + blocks;\n do {\n const tx = await onNode.getTransactionByHash(th);\n if (tx.blockHeight !== -1) return tx;\n await pause(interval);\n } while (await getHeight({ onNode }) < max);\n throw new TxTimedOutError(blocks, th);\n}\n\n/**\n * Wait for the chain to reach a specific height\n * @category chain\n * @param height - Height to wait for\n * @param options - Options\n * @param options.interval - Interval (in ms) at which to poll the chain\n * @param options.onNode - Node to use\n * @returns Current chain height\n */\nexport async function awaitHeight(\n height: number,\n { interval, onNode, ...options }:\n { interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): Promise<number> {\n interval ??= _getPollInterval('block', options);\n let currentHeight;\n do {\n if (currentHeight != null) await pause(interval);\n currentHeight = (await onNode.getCurrentKeyBlockHeight()).height;\n } while (currentHeight < height);\n return currentHeight;\n}\n\n/**\n * Wait for transaction confirmation\n * @category chain\n * @param txHash - Transaction hash\n * @param options - Options\n * @param options.confirm - Number of micro blocks to wait for transaction confirmation\n * @param options.onNode - Node to use\n * @returns Current Height\n */\nexport async function waitForTxConfirm(\n txHash: Encoded.TxHash,\n { confirm = 3, onNode, ...options }:\n { confirm?: number; onNode: Node } & Parameters<typeof awaitHeight>[1],\n): Promise<number> {\n const { blockHeight } = await onNode.getTransactionByHash(txHash);\n const height = await awaitHeight(blockHeight + confirm, { onNode, ...options });\n const { blockHeight: newBlockHeight } = await onNode.getTransactionByHash(txHash);\n switch (newBlockHeight) {\n case -1:\n throw new TxNotInChainError(txHash);\n case blockHeight:\n return height;\n default:\n return waitForTxConfirm(txHash, { onNode, confirm, ...options });\n }\n}\n\n/**\n * Signs and submits transaction for mining\n * @category chain\n * @param txUnsigned - Transaction to sign and submit\n * @param options - Options\n * @param options.onNode - Node to use\n * @param options.onAccount - Account to use\n * @param options.verify - Verify transaction before broadcast, throw error if not\n * @param options.waitMined - Ensure that transaction get into block\n * @param options.confirm - Number of micro blocks that should be mined after tx get included\n * @returns Transaction details\n */\nexport async function sendTransaction(\n txUnsigned: Encoded.Transaction,\n {\n onNode, onAccount, verify = true, waitMined = true, confirm, innerTx, ...options\n }:\n SendTransactionOptions,\n): Promise<SendTransactionReturnType> {\n const tx = await onAccount.signTransaction(txUnsigned, {\n ...options,\n onNode,\n innerTx,\n networkId: await onNode.getNetworkId(),\n });\n\n if (innerTx === true) return { hash: buildTxHash(tx), rawTx: tx };\n\n if (verify) {\n const validation = await verifyTransaction(tx, onNode);\n if (validation.length > 0) {\n const message = `Transaction verification errors: ${\n validation.map((v: { message: string }) => v.message).join(', ')}`;\n throw new InvalidTxError(message, validation, tx);\n }\n }\n\n try {\n let __queue;\n try {\n __queue = onAccount != null ? `tx-${onAccount.address}` : null;\n } catch (error) {\n __queue = null;\n }\n const { txHash } = await onNode.postTransaction(\n { tx },\n __queue != null ? { requestOptions: { customHeaders: { __queue } } } : {},\n );\n\n if (waitMined) {\n const pollResult = await poll(txHash, { onNode, ...options });\n const txData = {\n ...pollResult,\n hash: pollResult.hash as Encoded.TxHash,\n rawTx: tx,\n };\n // wait for transaction confirmation\n if (confirm != null && +confirm > 0) {\n const c = typeof confirm === 'boolean' ? undefined : confirm;\n return {\n ...txData,\n confirmationHeight: await waitForTxConfirm(txHash, { onNode, confirm: c, ...options }),\n };\n }\n return txData;\n }\n return { hash: txHash, rawTx: tx };\n } catch (error) {\n ensureError(error);\n throw Object.assign(error, {\n rawTx: tx,\n verifyTx: async () => verifyTransaction(tx, onNode),\n });\n }\n}\n\ntype SendTransactionOptionsType = {\n onNode: Node;\n onAccount: AccountBase;\n verify?: boolean;\n waitMined?: boolean;\n confirm?: boolean | number;\n} & Parameters<typeof poll>[1] & Omit<Parameters<typeof waitForTxConfirm>[1], 'confirm'>\n& Parameters<AccountBase['signTransaction']>[1];\nexport interface SendTransactionOptions extends SendTransactionOptionsType {}\ninterface SendTransactionReturnType extends Partial<TransformNodeType<SignedTx>> {\n hash: Encoded.TxHash;\n rawTx: Encoded.Transaction;\n confirmationHeight?: number;\n}\n\n/**\n * Get account by account public key\n * @category chain\n * @param address - Account address (public key)\n * @param options - Options\n * @param options.height - Get account on specific block by block height\n * @param options.hash - Get account on specific block by micro block hash or key block hash\n * @param options.onNode - Node to use\n */\nexport async function getAccount(\n address: Encoded.AccountAddress | Encoded.ContractAddress,\n { height, hash, onNode }:\n { height?: number; hash?: Encoded.KeyBlockHash | Encoded.MicroBlockHash; onNode: Node },\n): Promise<TransformNodeType<AccountNode>> {\n if (height != null) return onNode.getAccountByPubkeyAndHeight(address, height);\n if (hash != null) return onNode.getAccountByPubkeyAndHash(address, hash);\n return onNode.getAccountByPubkey(address);\n}\n\n/**\n * Request the balance of specified account\n * @category chain\n * @param address - The public account address to obtain the balance for\n * @param options - Options\n * @param options.format\n * @param options.height - The chain height at which to obtain the balance for\n * (default: top of chain)\n * @param options.hash - The block hash on which to obtain the balance for (default: top of chain)\n */\nexport async function getBalance(\n address: Encoded.AccountAddress | Encoded.ContractAddress | Encoded.OracleAddress,\n { format = AE_AMOUNT_FORMATS.AETTOS, ...options }:\n { format?: AE_AMOUNT_FORMATS } & Parameters<typeof getAccount>[1],\n): Promise<string> {\n const addr = address.startsWith('ok_')\n ? encode(decode(address), Encoding.AccountAddress)\n : address as Encoded.AccountAddress | Encoded.ContractAddress;\n\n const { balance } = await getAccount(addr, options).catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return { balance: 0n };\n });\n\n return formatAmount(balance, { targetDenomination: format });\n}\n\n/**\n * Obtain current generation\n * @category chain\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Current Generation\n */\nexport async function getCurrentGeneration(\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<Generation>> {\n return onNode.getCurrentGeneration();\n}\n\n/**\n * Get generation by hash or height\n * @category chain\n * @param hashOrHeight - Generation hash or height\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Generation\n */\nexport async function getGeneration(\n hashOrHeight: Encoded.KeyBlockHash | number,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<Generation>> {\n if (typeof hashOrHeight === 'number') return onNode.getGenerationByHeight(hashOrHeight);\n return onNode.getGenerationByHash(hashOrHeight);\n}\n\n/**\n * Get micro block transactions\n * @category chain\n * @param hash - Micro block hash\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Transactions\n */\nexport async function getMicroBlockTransactions(\n hash: Encoded.MicroBlockHash,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<SignedTx[]>> {\n return (await onNode.getMicroBlockTransactionsByHash(hash)).transactions;\n}\n\n/**\n * Get key block\n * @category chain\n * @param hashOrHeight - Key block hash or height\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Key Block\n */\nexport async function getKeyBlock(\n hashOrHeight: Encoded.KeyBlockHash | number,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<KeyBlock>> {\n if (typeof hashOrHeight === 'number') return onNode.getKeyBlockByHeight(hashOrHeight);\n return onNode.getKeyBlockByHash(hashOrHeight);\n}\n\n/**\n * Get micro block header\n * @category chain\n * @param hash - Micro block hash\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Micro block header\n */\nexport async function getMicroBlockHeader(\n hash: Encoded.MicroBlockHash,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<MicroBlockHeader>> {\n return onNode.getMicroBlockHeaderByHash(hash);\n}\n\ninterface TxDryRunArguments {\n tx: Encoded.Transaction;\n accountAddress: Encoded.AccountAddress;\n top?: number | Encoded.KeyBlockHash | Encoded.MicroBlockHash;\n txEvents?: any;\n resolve: Function;\n reject: Function;\n}\nconst txDryRunRequests: Map<string, TxDryRunArguments[] & { timeout?: NodeJS.Timeout }> = new Map();\n\nasync function txDryRunHandler(key: string, onNode: Node): Promise<void> {\n const rs = txDryRunRequests.get(key);\n txDryRunRequests.delete(key);\n if (rs == null) throw new InternalError('Can\\'t get dry-run request');\n\n let dryRunRes;\n try {\n const top = typeof rs[0].top === 'number'\n ? (await getKeyBlock(rs[0].top, { onNode })).hash : rs[0].top;\n dryRunRes = await onNode.protectedDryRunTxs({\n top,\n txEvents: rs[0].txEvents,\n txs: rs.map((req) => ({ tx: req.tx })),\n accounts: Array.from(new Set(rs.map((req) => req.accountAddress)))\n .map((pubKey) => ({ pubKey, amount: DRY_RUN_ACCOUNT.amount })),\n });\n } catch (error) {\n rs.forEach(({ reject }) => reject(error));\n return;\n }\n\n const { results, txEvents } = dryRunRes;\n results.forEach(({ result, reason, ...resultPayload }, idx) => {\n const {\n resolve, reject, tx, accountAddress,\n } = rs[idx];\n if (result === 'ok') resolve({ ...resultPayload, txEvents });\n else reject(Object.assign(new DryRunError(reason as string), { tx, accountAddress }));\n });\n}\n\n/**\n * Transaction dry-run\n * @category chain\n * @param tx - transaction to execute\n * @param accountAddress - address that will be used to execute transaction\n * @param options - Options\n * @param options.top - hash of block on which to make dry-run\n * @param options.txEvents - collect and return on-chain tx events that would result from the call\n * @param options.combine - Enables combining of similar requests to a single dry-run call\n * @param options.onNode - Node to use\n */\nexport async function txDryRun(\n tx: Encoded.Transaction,\n accountAddress: Encoded.AccountAddress,\n {\n top, txEvents, combine, onNode,\n }:\n { top?: TxDryRunArguments['top']; txEvents?: boolean; combine?: boolean; onNode: Node },\n): Promise<{\n txEvents?: TransformNodeType<DryRunResults['txEvents']>;\n } & TransformNodeType<DryRunResult>> {\n const key = combine === true ? [top, txEvents].join() : 'immediate';\n const requests = txDryRunRequests.get(key) ?? [];\n txDryRunRequests.set(key, requests);\n return new Promise((resolve, reject) => {\n requests.push({\n tx, accountAddress, top, txEvents, resolve, reject,\n });\n if (combine !== true) {\n void txDryRunHandler(key, onNode);\n return;\n }\n requests.timeout ??= setTimeout(() => { void txDryRunHandler(key, onNode); });\n });\n}\n\n/**\n * Get contract byte code\n * @category contract\n * @param contractId - Contract address\n * @param options - Options\n * @param options.onNode - Node to use\n */\nexport async function getContractByteCode(\n contractId: Encoded.ContractAddress,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<ByteCode>> {\n return onNode.getContractCode(contractId);\n}\n\n/**\n * Get contract entry\n * @category contract\n * @param contractId - Contract address\n * @param options - Options\n * @param options.onNode - Node to use\n */\nexport async function getContract(\n contractId: Encoded.ContractAddress,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<ContractObject>> {\n return onNode.getContract(contractId);\n}\n\n/**\n * Get name entry\n * @category AENS\n * @param name - AENS name\n * @param options - Options\n * @param options.onNode - Node to use\n */\nexport async function getName(\n name: AensName,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<NameEntry>> {\n return onNode.getNameEntryByName(name);\n}\n\n/**\n * Resolve AENS name and return name hash\n * @category AENS\n * @param nameOrId - AENS name or address\n * @param key - in AENS pointers record\n * @param options - Options\n * @param options.verify - To ensure that name exist and have a corresponding pointer\n * // TODO: avoid that to don't trust to current api gateway\n * @param options.resolveByNode - Enables pointer resolving using node\n * @param options.onNode - Node to use\n * @returns Address or AENS name hash\n */\nexport async function resolveName <\n Type extends Encoding.AccountAddress | Encoding.ContractAddress,\n>(\n nameOrId: AensName | Encoded.Generic<Type>,\n key: string,\n { verify = true, resolveByNode = false, onNode }:\n { verify?: boolean; resolveByNode?: boolean; onNode: Node },\n): Promise<Encoded.Generic<Type | Encoding.Name>> {\n if (isNameValid(nameOrId)) {\n if (verify || resolveByNode) {\n const name = await onNode.getNameEntryByName(nameOrId);\n const pointer = name.pointers.find((p) => p.key === key);\n if (pointer == null) throw new AensPointerContextError(nameOrId, key);\n if (resolveByNode) return pointer.id as Encoded.Generic<Type>;\n }\n return produceNameId(nameOrId);\n }\n try {\n decode(nameOrId);\n return nameOrId;\n } catch (error) {\n throw new InvalidAensNameError(`Invalid name or address: ${nameOrId}`);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chain.mjs","names":["AE_AMOUNT_FORMATS","formatAmount","isAccountNotFoundError","pause","unwrapProxy","isNameValid","produceNameId","DRY_RUN_ACCOUNT","AensPointerContextError","DryRunError","InvalidAensNameError","TxTimedOutError","TxNotInChainError","InternalError","decode","encode","Encoding","_getPollInterval","type","_expectedMineRate","_microBlockCycle","base","block","microblock","Math","floor","heightCache","WeakMap","getHeight","cached","options","onNode","cache","get","time","Date","now","height","getCurrentKeyBlockHeight","set","poll","th","blocks","interval","_interval","max","tx","getTransactionByHash","blockHeight","ttl","awaitHeight","_interval2","min","currentHeight","waitForTxConfirm","txHash","confirm","newBlockHeight","getAccount","address","hash","getAccountByPubkeyAndHeight","getAccountByPubkeyAndHash","getAccountByPubkey","getBalance","format","AETTOS","addr","startsWith","AccountAddress","balance","catch","error","targetDenomination","getCurrentGeneration","getGeneration","hashOrHeight","getGenerationByHeight","getGenerationByHash","getMicroBlockTransactions","getMicroBlockTransactionsByHash","transactions","getKeyBlock","getKeyBlockByHeight","getKeyBlockByHash","getMicroBlockHeader","getMicroBlockHeaderByHash","txDryRunRequests","Map","txDryRunHandler","key","rs","delete","dryRunRes","top","protectedDryRunTxs","txEvents","txs","map","req","accounts","Array","from","Set","accountAddress","pubKey","amount","forEach","reject","results","result","reason","resultPayload","idx","resolve","Object","assign","txDryRun","combine","_txDryRunRequests$get","join","requests","Promise","_requests$timeout","push","timeout","setTimeout","getContractByteCode","contractId","getContractCode","getContract","getName","name","getNameEntryByName","resolveName","nameOrId","verify","resolveByNode","pointer","pointers","find","p","id"],"sources":["../src/chain.ts"],"sourcesContent":["import { AE_AMOUNT_FORMATS, formatAmount } from './utils/amount-formatter';\nimport { isAccountNotFoundError, pause } from './utils/other';\nimport { unwrapProxy } from './utils/wrap-proxy';\nimport { isNameValid, produceNameId } from './tx/builder/helpers';\nimport { AensName, DRY_RUN_ACCOUNT } from './tx/builder/constants';\nimport {\n AensPointerContextError, DryRunError, InvalidAensNameError,\n TxTimedOutError, TxNotInChainError, InternalError,\n} from './utils/errors';\nimport Node, { TransformNodeType } from './Node';\nimport {\n Account as AccountNode, ByteCode, ContractObject, DryRunResult, DryRunResults,\n Generation, KeyBlock, MicroBlockHeader, NameEntry, SignedTx,\n} from './apis/node';\nimport {\n decode, encode, Encoded, Encoding,\n} from './utils/encoder';\n\n/**\n * @category chain\n * @param type - Type\n * @param options - Options\n */\nexport function _getPollInterval(\n type: 'block' | 'microblock', // TODO: rename to 'key-block' | 'micro-block'\n { _expectedMineRate = 180000, _microBlockCycle = 3000 }:\n { _expectedMineRate?: number; _microBlockCycle?: number },\n): number {\n const base = {\n block: _expectedMineRate,\n microblock: _microBlockCycle,\n }[type];\n return Math.floor(base / 3);\n}\n\nconst heightCache: WeakMap<Node, { time: number; height: number }> = new WeakMap();\n\n/**\n * Obtain current height of the chain\n * @category chain\n * @param options - Options\n * @param options.cached - Get height from the cache. The lag behind the actual height shouldn't\n * be more than 1 block. Use if needed to reduce requests count, and approximate value can be used.\n * For example, for timeout check in transaction status polling.\n * @returns Current chain height\n */\nexport async function getHeight(\n { cached = false, ...options }: {\n onNode: Node;\n cached?: boolean;\n } & Parameters<typeof _getPollInterval>[1],\n): Promise<number> {\n const onNode = unwrapProxy(options.onNode);\n if (cached) {\n const cache = heightCache.get(onNode);\n if (cache != null && cache.time > Date.now() - _getPollInterval('block', options)) {\n return cache.height;\n }\n }\n const { height } = await onNode.getCurrentKeyBlockHeight();\n heightCache.set(onNode, { height, time: Date.now() });\n return height;\n}\n\n/**\n * Return transaction details if it is mined, fail otherwise.\n * If the transaction has ttl specified then would wait till it leaves the mempool.\n * Otherwise would fail if a specified amount of blocks were mined.\n * @category chain\n * @param th - The hash of transaction to poll\n * @param options - Options\n * @param options.interval - Interval (in ms) at which to poll the chain\n * @param options.blocks - Number of blocks mined after which to fail if transaction ttl is not set\n * @param options.onNode - Node to use\n * @returns The transaction as it was mined\n */\nexport async function poll(\n th: Encoded.TxHash,\n {\n blocks = 5, interval, onNode, ...options\n }:\n { blocks?: number; interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): Promise<TransformNodeType<SignedTx>> {\n interval ??= _getPollInterval('microblock', options);\n let max;\n do {\n const tx = await onNode.getTransactionByHash(th);\n if (tx.blockHeight !== -1) return tx;\n if (max == null) {\n max = tx.tx.ttl !== 0 ? -1\n : await getHeight({ ...options, onNode, cached: true }) + blocks;\n }\n await pause(interval);\n } while (max === -1 ? true : await getHeight({ ...options, onNode, cached: true }) < max);\n throw new TxTimedOutError(blocks, th);\n}\n\n/**\n * Wait for the chain to reach a specific height\n * @category chain\n * @param height - Height to wait for\n * @param options - Options\n * @param options.interval - Interval (in ms) at which to poll the chain\n * @param options.onNode - Node to use\n * @returns Current chain height\n */\nexport async function awaitHeight(\n height: number,\n { interval, onNode, ...options }:\n { interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): Promise<number> {\n interval ??= Math.min(_getPollInterval('block', options), 5000);\n let currentHeight;\n do {\n if (currentHeight != null) await pause(interval);\n currentHeight = await getHeight({ onNode });\n } while (currentHeight < height);\n return currentHeight;\n}\n\n/**\n * Wait for transaction confirmation\n * @category chain\n * @param txHash - Transaction hash\n * @param options - Options\n * @param options.confirm - Number of micro blocks to wait for transaction confirmation\n * @param options.onNode - Node to use\n * @returns Current Height\n */\nexport async function waitForTxConfirm(\n txHash: Encoded.TxHash,\n { confirm = 3, onNode, ...options }:\n { confirm?: number; onNode: Node } & Parameters<typeof awaitHeight>[1],\n): Promise<number> {\n const { blockHeight } = await onNode.getTransactionByHash(txHash);\n const height = await awaitHeight(blockHeight + confirm, { onNode, ...options });\n const { blockHeight: newBlockHeight } = await onNode.getTransactionByHash(txHash);\n switch (newBlockHeight) {\n case -1:\n throw new TxNotInChainError(txHash);\n case blockHeight:\n return height;\n default:\n return waitForTxConfirm(txHash, { onNode, confirm, ...options });\n }\n}\n\n/**\n * Get account by account public key\n * @category chain\n * @param address - Account address (public key)\n * @param options - Options\n * @param options.height - Get account on specific block by block height\n * @param options.hash - Get account on specific block by micro block hash or key block hash\n * @param options.onNode - Node to use\n */\nexport async function getAccount(\n address: Encoded.AccountAddress | Encoded.ContractAddress,\n { height, hash, onNode }:\n { height?: number; hash?: Encoded.KeyBlockHash | Encoded.MicroBlockHash; onNode: Node },\n): Promise<TransformNodeType<AccountNode>> {\n if (height != null) return onNode.getAccountByPubkeyAndHeight(address, height);\n if (hash != null) return onNode.getAccountByPubkeyAndHash(address, hash);\n return onNode.getAccountByPubkey(address);\n}\n\n/**\n * Request the balance of specified account\n * @category chain\n * @param address - The public account address to obtain the balance for\n * @param options - Options\n * @param options.format\n * @param options.height - The chain height at which to obtain the balance for\n * (default: top of chain)\n * @param options.hash - The block hash on which to obtain the balance for (default: top of chain)\n */\nexport async function getBalance(\n address: Encoded.AccountAddress | Encoded.ContractAddress | Encoded.OracleAddress,\n { format = AE_AMOUNT_FORMATS.AETTOS, ...options }:\n { format?: AE_AMOUNT_FORMATS } & Parameters<typeof getAccount>[1],\n): Promise<string> {\n const addr = address.startsWith('ok_')\n ? encode(decode(address), Encoding.AccountAddress)\n : address as Encoded.AccountAddress | Encoded.ContractAddress;\n\n const { balance } = await getAccount(addr, options).catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return { balance: 0n };\n });\n\n return formatAmount(balance, { targetDenomination: format });\n}\n\n/**\n * Obtain current generation\n * @category chain\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Current Generation\n */\nexport async function getCurrentGeneration(\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<Generation>> {\n return onNode.getCurrentGeneration();\n}\n\n/**\n * Get generation by hash or height\n * @category chain\n * @param hashOrHeight - Generation hash or height\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Generation\n */\nexport async function getGeneration(\n hashOrHeight: Encoded.KeyBlockHash | number,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<Generation>> {\n if (typeof hashOrHeight === 'number') return onNode.getGenerationByHeight(hashOrHeight);\n return onNode.getGenerationByHash(hashOrHeight);\n}\n\n/**\n * Get micro block transactions\n * @category chain\n * @param hash - Micro block hash\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Transactions\n */\nexport async function getMicroBlockTransactions(\n hash: Encoded.MicroBlockHash,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<SignedTx[]>> {\n return (await onNode.getMicroBlockTransactionsByHash(hash)).transactions;\n}\n\n/**\n * Get key block\n * @category chain\n * @param hashOrHeight - Key block hash or height\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Key Block\n */\nexport async function getKeyBlock(\n hashOrHeight: Encoded.KeyBlockHash | number,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<KeyBlock>> {\n if (typeof hashOrHeight === 'number') return onNode.getKeyBlockByHeight(hashOrHeight);\n return onNode.getKeyBlockByHash(hashOrHeight);\n}\n\n/**\n * Get micro block header\n * @category chain\n * @param hash - Micro block hash\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Micro block header\n */\nexport async function getMicroBlockHeader(\n hash: Encoded.MicroBlockHash,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<MicroBlockHeader>> {\n return onNode.getMicroBlockHeaderByHash(hash);\n}\n\ninterface TxDryRunArguments {\n tx: Encoded.Transaction;\n accountAddress: Encoded.AccountAddress;\n top?: number | Encoded.KeyBlockHash | Encoded.MicroBlockHash;\n txEvents?: any;\n resolve: Function;\n reject: Function;\n}\nconst txDryRunRequests: Map<string, TxDryRunArguments[] & { timeout?: NodeJS.Timeout }> = new Map();\n\nasync function txDryRunHandler(key: string, onNode: Node): Promise<void> {\n const rs = txDryRunRequests.get(key);\n txDryRunRequests.delete(key);\n if (rs == null) throw new InternalError('Can\\'t get dry-run request');\n\n let dryRunRes;\n try {\n const top = typeof rs[0].top === 'number'\n ? (await getKeyBlock(rs[0].top, { onNode })).hash : rs[0].top;\n dryRunRes = await onNode.protectedDryRunTxs({\n top,\n txEvents: rs[0].txEvents,\n txs: rs.map((req) => ({ tx: req.tx })),\n accounts: Array.from(new Set(rs.map((req) => req.accountAddress)))\n .map((pubKey) => ({ pubKey, amount: DRY_RUN_ACCOUNT.amount })),\n });\n } catch (error) {\n rs.forEach(({ reject }) => reject(error));\n return;\n }\n\n const { results, txEvents } = dryRunRes;\n results.forEach(({ result, reason, ...resultPayload }, idx) => {\n const {\n resolve, reject, tx, accountAddress,\n } = rs[idx];\n if (result === 'ok') resolve({ ...resultPayload, txEvents });\n else reject(Object.assign(new DryRunError(reason as string), { tx, accountAddress }));\n });\n}\n\n/**\n * Transaction dry-run\n * @category chain\n * @param tx - transaction to execute\n * @param accountAddress - address that will be used to execute transaction\n * @param options - Options\n * @param options.top - hash of block on which to make dry-run\n * @param options.txEvents - collect and return on-chain tx events that would result from the call\n * @param options.combine - Enables combining of similar requests to a single dry-run call\n * @param options.onNode - Node to use\n */\nexport async function txDryRun(\n tx: Encoded.Transaction,\n accountAddress: Encoded.AccountAddress,\n {\n top, txEvents, combine, onNode,\n }:\n { top?: TxDryRunArguments['top']; txEvents?: boolean; combine?: boolean; onNode: Node },\n): Promise<{\n txEvents?: TransformNodeType<DryRunResults['txEvents']>;\n } & TransformNodeType<DryRunResult>> {\n const key = combine === true ? [top, txEvents].join() : 'immediate';\n const requests = txDryRunRequests.get(key) ?? [];\n txDryRunRequests.set(key, requests);\n return new Promise((resolve, reject) => {\n requests.push({\n tx, accountAddress, top, txEvents, resolve, reject,\n });\n if (combine !== true) {\n void txDryRunHandler(key, onNode);\n return;\n }\n requests.timeout ??= setTimeout(() => { void txDryRunHandler(key, onNode); });\n });\n}\n\n/**\n * Get contract byte code\n * @category contract\n * @param contractId - Contract address\n * @param options - Options\n * @param options.onNode - Node to use\n */\nexport async function getContractByteCode(\n contractId: Encoded.ContractAddress,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<ByteCode>> {\n return onNode.getContractCode(contractId);\n}\n\n/**\n * Get contract entry\n * @category contract\n * @param contractId - Contract address\n * @param options - Options\n * @param options.onNode - Node to use\n */\nexport async function getContract(\n contractId: Encoded.ContractAddress,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<ContractObject>> {\n return onNode.getContract(contractId);\n}\n\n/**\n * Get name entry\n * @category AENS\n * @param name - AENS name\n * @param options - Options\n * @param options.onNode - Node to use\n */\nexport async function getName(\n name: AensName,\n { onNode }: { onNode: Node },\n): Promise<TransformNodeType<NameEntry>> {\n return onNode.getNameEntryByName(name);\n}\n\n/**\n * Resolve AENS name and return name hash\n * @category AENS\n * @param nameOrId - AENS name or address\n * @param key - in AENS pointers record\n * @param options - Options\n * @param options.verify - To ensure that name exist and have a corresponding pointer\n * // TODO: avoid that to don't trust to current api gateway\n * @param options.resolveByNode - Enables pointer resolving using node\n * @param options.onNode - Node to use\n * @returns Address or AENS name hash\n */\nexport async function resolveName <\n Type extends Encoding.AccountAddress | Encoding.ContractAddress,\n>(\n nameOrId: AensName | Encoded.Generic<Type>,\n key: string,\n { verify = true, resolveByNode = false, onNode }:\n { verify?: boolean; resolveByNode?: boolean; onNode: Node },\n): Promise<Encoded.Generic<Type | Encoding.Name>> {\n if (isNameValid(nameOrId)) {\n if (verify || resolveByNode) {\n const name = await onNode.getNameEntryByName(nameOrId);\n const pointer = name.pointers.find((p) => p.key === key);\n if (pointer == null) throw new AensPointerContextError(nameOrId, key);\n if (resolveByNode) return pointer.id as Encoded.Generic<Type>;\n }\n return produceNameId(nameOrId);\n }\n try {\n decode(nameOrId);\n return nameOrId;\n } catch (error) {\n throw new InvalidAensNameError(`Invalid name or address: ${nameOrId}`);\n }\n}\n"],"mappings":"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"}
|