@aeternity/aepp-sdk 13.0.0-alpha.0 → 13.0.0-beta.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/bin/aesophia_cli +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 +5595 -2249
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.mjs.map +1 -1
- package/es/AeSdkAepp.mjs.map +1 -1
- package/es/AeSdkBase.d.ts +3 -3
- package/es/AeSdkBase.mjs +4 -0
- package/es/AeSdkBase.mjs.map +1 -1
- package/es/AeSdkMethods.d.ts +12 -14
- package/es/AeSdkMethods.mjs +6 -8
- package/es/AeSdkMethods.mjs.map +1 -1
- package/es/AeSdkWallet.mjs +1 -1
- package/es/AeSdkWallet.mjs.map +1 -1
- package/es/Node.d.ts +9 -4
- package/es/Node.mjs +12 -6
- package/es/Node.mjs.map +1 -1
- package/es/account/Base.d.ts +13 -8
- package/es/account/Base.mjs +0 -17
- package/es/account/Base.mjs.map +1 -1
- package/es/account/Generalized.mjs +14 -25
- package/es/account/Generalized.mjs.map +1 -1
- package/es/account/Ledger.mjs +2 -1
- package/es/account/Ledger.mjs.map +1 -1
- package/es/account/LedgerFactory.mjs.map +1 -1
- package/es/account/Memory.d.ts +2 -1
- package/es/account/Memory.mjs +11 -22
- package/es/account/Memory.mjs.map +1 -1
- package/es/account/Rpc.mjs.map +1 -1
- package/es/aens.d.ts +12 -14
- package/es/aens.mjs +22 -32
- package/es/aens.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/Browser.mjs +0 -16
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -20
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -6
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
- package/es/aepp-wallet-communication/schema.mjs.map +1 -1
- package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
- package/es/apis/compiler/compiler.d.ts +1 -1
- package/es/apis/compiler/compiler.mjs +4 -20
- package/es/apis/compiler/compiler.mjs.map +1 -1
- package/es/apis/compiler/models/index.d.ts +3 -2
- package/es/apis/compiler/models/index.mjs.map +1 -1
- package/es/apis/compiler/models/mappers.d.ts +1 -1
- package/es/apis/compiler/models/mappers.mjs +19 -2
- package/es/apis/compiler/models/mappers.mjs.map +1 -1
- package/es/apis/node/models/index.d.ts +15 -15
- package/es/apis/node/models/index.mjs.map +1 -1
- package/es/apis/node/models/mappers.d.ts +1 -1
- package/es/apis/node/models/mappers.mjs +2 -1
- 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.mjs +3 -19
- package/es/apis/node/node.mjs.map +1 -1
- package/es/chain.d.ts +17 -9
- package/es/chain.mjs +23 -23
- package/es/chain.mjs.map +1 -1
- package/es/channel/Base.d.ts +27 -9
- package/es/channel/Base.mjs +27 -27
- package/es/channel/Base.mjs.map +1 -1
- package/es/channel/Contract.d.ts +8 -7
- package/es/channel/Contract.mjs +8 -21
- package/es/channel/Contract.mjs.map +1 -1
- package/es/channel/Spend.d.ts +5 -1
- package/es/channel/Spend.mjs +4 -18
- package/es/channel/Spend.mjs.map +1 -1
- package/es/channel/handlers.mjs +16 -26
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/internal.d.ts +19 -2
- package/es/channel/internal.mjs +22 -20
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Contract.d.ts +43 -123
- package/es/contract/Contract.mjs +230 -250
- package/es/contract/Contract.mjs.map +1 -1
- package/es/contract/compiler/Base.d.ts +74 -0
- package/es/contract/compiler/Base.mjs +5 -0
- package/es/contract/compiler/Base.mjs.map +1 -0
- package/es/contract/compiler/Cli.d.ts +23 -0
- package/es/contract/compiler/Cli.mjs +149 -0
- package/es/contract/compiler/Cli.mjs.map +1 -0
- package/es/contract/compiler/Http.d.ts +32 -0
- package/es/contract/compiler/Http.mjs +94 -0
- package/es/contract/compiler/Http.mjs.map +1 -0
- package/es/contract/compiler/HttpNode.d.ts +17 -0
- package/es/contract/compiler/HttpNode.mjs +26 -0
- package/es/contract/compiler/HttpNode.mjs.map +1 -0
- package/es/contract/compiler/getFileSystem.d.ts +6 -0
- package/es/contract/compiler/getFileSystem.mjs +40 -0
- package/es/contract/compiler/getFileSystem.mjs.map +1 -0
- package/es/contract/delegation-signature.d.ts +43 -0
- package/es/contract/delegation-signature.mjs +45 -0
- package/es/contract/delegation-signature.mjs.map +1 -0
- package/es/contract/ga.d.ts +27 -10
- package/es/contract/ga.mjs +63 -29
- package/es/contract/ga.mjs.map +1 -1
- package/es/index-browser.d.ts +40 -0
- package/es/index-browser.mjs +41 -0
- package/es/index-browser.mjs.map +1 -0
- package/es/index.d.ts +4 -38
- package/es/index.mjs +4 -53
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +12 -17
- package/es/oracle.mjs +29 -49
- package/es/oracle.mjs.map +1 -1
- package/es/spend.d.ts +19 -27
- package/es/spend.mjs +21 -46
- package/es/spend.mjs.map +1 -1
- package/es/tx/builder/SchemaTypes.d.ts +37 -0
- package/es/tx/builder/SchemaTypes.mjs +2 -0
- package/es/tx/builder/SchemaTypes.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +31 -2
- package/es/tx/builder/constants.mjs +34 -3
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types/abi-version.d.ts +19 -0
- package/es/tx/builder/field-types/abi-version.mjs +40 -0
- package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
- package/es/tx/builder/field-types/address.d.ts +5 -6
- package/es/tx/builder/field-types/address.mjs +17 -8
- package/es/tx/builder/field-types/address.mjs.map +1 -1
- package/es/tx/builder/field-types/array.d.ts +7 -0
- package/es/tx/builder/field-types/array.mjs +11 -0
- package/es/tx/builder/field-types/array.mjs.map +1 -0
- package/es/tx/builder/field-types/boolean.d.ts +6 -0
- package/es/tx/builder/field-types/boolean.mjs +13 -0
- package/es/tx/builder/field-types/boolean.mjs.map +1 -0
- package/es/tx/builder/field-types/coin-amount.d.ts +4 -5
- package/es/tx/builder/field-types/coin-amount.mjs +4 -5
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
- package/es/tx/builder/field-types/ct-version.d.ts +49 -0
- package/es/tx/builder/field-types/ct-version.mjs +76 -0
- package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
- package/es/tx/builder/field-types/deposit.d.ts +3 -2
- package/es/tx/builder/field-types/deposit.mjs +3 -2
- package/es/tx/builder/field-types/deposit.mjs.map +1 -1
- package/es/tx/builder/field-types/encoded.d.ts +6 -0
- package/es/tx/builder/field-types/encoded.mjs +21 -0
- package/es/tx/builder/field-types/encoded.mjs.map +1 -0
- package/es/tx/builder/field-types/entry.d.ts +11 -0
- package/es/tx/builder/field-types/entry.mjs +34 -0
- package/es/tx/builder/field-types/entry.mjs.map +1 -0
- package/es/tx/builder/field-types/enumeration.d.ts +5 -3
- package/es/tx/builder/field-types/enumeration.mjs +11 -2
- package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
- package/es/tx/builder/field-types/fee.d.ts +12 -7
- package/es/tx/builder/field-types/fee.mjs +28 -20
- package/es/tx/builder/field-types/fee.mjs.map +1 -1
- package/es/tx/builder/field-types/field.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-limit.d.ts +7 -3
- package/es/tx/builder/field-types/gas-limit.mjs +13 -8
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-price.d.ts +3 -1
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
- package/es/tx/builder/field-types/index.d.ts +107 -30
- package/es/tx/builder/field-types/index.mjs +38 -12
- package/es/tx/builder/field-types/index.mjs.map +1 -1
- package/es/tx/builder/field-types/map.d.ts +13 -0
- package/es/tx/builder/field-types/map.mjs +49 -0
- package/es/tx/builder/field-types/map.mjs.map +1 -0
- package/es/tx/builder/field-types/mptree.d.ts +42 -0
- package/es/tx/builder/field-types/mptree.mjs +266 -0
- package/es/tx/builder/field-types/mptree.mjs.map +1 -0
- package/es/tx/builder/field-types/name-fee.d.ts +2 -3
- package/es/tx/builder/field-types/name-fee.mjs +2 -2
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
- package/es/tx/builder/field-types/name-id.mjs +2 -1
- package/es/tx/builder/field-types/name-id.mjs.map +1 -1
- package/es/tx/builder/field-types/name.mjs.map +1 -1
- package/es/tx/builder/field-types/nonce.d.ts +14 -0
- package/es/tx/builder/field-types/nonce.mjs +29 -0
- package/es/tx/builder/field-types/nonce.mjs.map +1 -0
- package/es/tx/builder/field-types/pointers.mjs +2 -2
- package/es/tx/builder/field-types/pointers.mjs.map +1 -1
- package/es/tx/builder/field-types/raw.d.ts +6 -0
- package/es/tx/builder/field-types/raw.mjs +13 -0
- package/es/tx/builder/field-types/raw.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int-const.d.ts +7 -0
- package/es/tx/builder/field-types/short-u-int-const.mjs +20 -0
- package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
- package/es/tx/builder/field-types/string.d.ts +6 -0
- package/es/tx/builder/field-types/string.mjs +10 -0
- package/es/tx/builder/field-types/string.mjs.map +1 -0
- package/es/tx/builder/field-types/ttl.d.ts +11 -0
- package/es/tx/builder/field-types/ttl.mjs +21 -0
- package/es/tx/builder/field-types/ttl.mjs.map +1 -0
- package/es/tx/builder/field-types/u-int.d.ts +1 -2
- package/es/tx/builder/field-types/u-int.mjs.map +1 -1
- package/es/tx/builder/field-types/wrapped.d.ts +14 -0
- package/es/tx/builder/field-types/wrapped.mjs +22 -0
- package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +18 -36
- package/es/tx/builder/index.mjs +65 -236
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +2734 -1324
- package/es/tx/builder/schema.generated.d.ts +2011 -0
- package/es/tx/builder/schema.generated.mjs +2 -0
- package/es/tx/builder/schema.generated.mjs.map +1 -0
- package/es/tx/builder/schema.mjs +459 -223
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/execution-cost.d.ts +35 -0
- package/es/tx/execution-cost.mjs +123 -0
- package/es/tx/execution-cost.mjs.map +1 -0
- package/es/tx/transaction-signer.d.ts +6 -0
- package/es/tx/transaction-signer.mjs +27 -0
- package/es/tx/transaction-signer.mjs.map +1 -0
- package/es/tx/validator.d.ts +3 -5
- package/es/tx/validator.mjs +91 -153
- package/es/tx/validator.mjs.map +1 -1
- package/es/utils/amount-formatter.mjs +0 -16
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.d.ts +3 -2
- package/es/utils/autorest.mjs +43 -11
- package/es/utils/autorest.mjs.map +1 -1
- package/es/utils/bytes.mjs +1 -17
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.mjs +0 -16
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder.mjs.map +1 -1
- package/es/utils/errors.d.ts +16 -38
- package/es/utils/errors.mjs +3 -43
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.mjs.map +1 -1
- package/es/utils/other.mjs.map +1 -1
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.mjs +0 -17
- package/es/utils/string.mjs.map +1 -1
- package/package.json +52 -40
- package/src/AeSdkBase.ts +6 -3
- package/src/AeSdkMethods.ts +12 -18
- package/src/AeSdkWallet.ts +1 -1
- package/src/Node.ts +23 -9
- package/src/account/Base.ts +13 -24
- package/src/account/Generalized.ts +9 -24
- package/src/account/Ledger.ts +1 -1
- package/src/account/Memory.ts +15 -22
- package/src/aens.ts +34 -49
- package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -24
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
- package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
- package/src/aepp-wallet-communication/rpc/types.ts +6 -2
- package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
- package/src/apis/compiler/compiler.ts +3 -27
- package/src/apis/compiler/models/index.ts +3 -2
- package/src/apis/compiler/models/mappers.ts +15 -2
- package/src/apis/node/models/index.ts +16 -15
- package/src/apis/node/models/mappers.ts +2 -1
- package/src/apis/node/models/parameters.ts +2 -2
- package/src/apis/node/node.ts +3 -27
- package/src/chain.ts +33 -30
- package/src/channel/Base.ts +39 -31
- package/src/channel/Contract.ts +18 -32
- package/src/channel/Spend.ts +8 -18
- package/src/channel/handlers.ts +14 -26
- package/src/channel/internal.ts +41 -23
- package/src/contract/Contract.ts +188 -228
- package/src/contract/compiler/Base.ts +87 -0
- package/src/contract/compiler/Cli.ts +128 -0
- package/src/contract/compiler/Http.ts +105 -0
- package/src/contract/compiler/HttpNode.ts +26 -0
- package/src/contract/compiler/getFileSystem.ts +42 -0
- package/src/contract/delegation-signature.ts +56 -0
- package/src/contract/ga.ts +61 -37
- package/src/index-browser.ts +50 -0
- package/src/index.ts +4 -56
- package/src/oracle.ts +47 -57
- package/src/spend.ts +34 -68
- package/src/tx/builder/SchemaTypes.ts +79 -0
- package/src/tx/builder/constants.ts +34 -3
- package/src/tx/builder/field-types/abi-version.ts +44 -0
- package/src/tx/builder/field-types/address.ts +23 -13
- package/src/tx/builder/field-types/array.ts +19 -0
- package/src/tx/builder/field-types/boolean.ts +9 -0
- package/src/tx/builder/field-types/coin-amount.ts +8 -5
- package/src/tx/builder/field-types/ct-version.ts +83 -0
- package/src/tx/builder/field-types/deposit.ts +4 -2
- package/src/tx/builder/field-types/encoded.ts +27 -0
- package/src/tx/builder/field-types/entry.ts +36 -0
- package/src/tx/builder/field-types/enumeration.ts +15 -4
- package/src/tx/builder/field-types/fee.ts +41 -19
- package/src/tx/builder/field-types/gas-limit.ts +13 -8
- package/src/tx/builder/field-types/index.ts +60 -17
- package/src/tx/builder/field-types/map.ts +45 -0
- package/src/tx/builder/field-types/mptree.ts +243 -0
- package/src/tx/builder/field-types/name-fee.ts +3 -3
- package/src/tx/builder/field-types/name-id.ts +1 -1
- package/src/tx/builder/field-types/nonce.ts +40 -0
- package/src/tx/builder/field-types/pointers.ts +2 -2
- package/src/tx/builder/field-types/raw.ts +9 -0
- package/src/tx/builder/field-types/short-u-int-const.ts +30 -0
- package/src/tx/builder/field-types/string.ts +11 -0
- package/src/tx/builder/field-types/ttl.ts +24 -0
- package/src/tx/builder/field-types/u-int.ts +1 -3
- package/src/tx/builder/field-types/wrapped.ts +32 -0
- package/src/tx/builder/index.ts +82 -280
- package/src/tx/builder/schema.generated.ts +2013 -0
- package/src/tx/builder/schema.ts +536 -666
- package/src/tx/execution-cost.ts +146 -0
- package/src/tx/transaction-signer.ts +27 -0
- package/src/tx/validator.ts +100 -154
- package/src/utils/amount-formatter.ts +0 -16
- package/src/utils/autorest.ts +52 -11
- package/src/utils/bytes.ts +1 -17
- package/src/utils/crypto.ts +0 -16
- package/src/utils/errors.ts +18 -56
- package/src/utils/string.ts +0 -17
- package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
- package/types-legacy/ts4.2/AeSdkMethods.d.ts +12 -14
- package/types-legacy/ts4.2/Node.d.ts +8 -4
- package/types-legacy/ts4.2/account/Base.d.ts +13 -8
- package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
- package/types-legacy/ts4.2/aens.d.ts +12 -14
- package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
- package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
- package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
- package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
- package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
- package/types-legacy/ts4.2/chain.d.ts +17 -9
- package/types-legacy/ts4.2/channel/Base.d.ts +27 -9
- package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
- package/types-legacy/ts4.2/channel/Spend.d.ts +5 -1
- package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
- package/types-legacy/ts4.2/contract/Contract.d.ts +42 -122
- package/types-legacy/ts4.2/contract/compiler/Base.d.ts +74 -0
- package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
- package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
- package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
- package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
- package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
- package/types-legacy/ts4.2/contract/ga.d.ts +27 -10
- package/types-legacy/ts4.2/index-browser.d.ts +40 -0
- package/types-legacy/ts4.2/index.d.ts +4 -38
- package/types-legacy/ts4.2/oracle.d.ts +12 -17
- package/types-legacy/ts4.2/spend.d.ts +19 -27
- package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
- package/types-legacy/ts4.2/tx/builder/constants.d.ts +31 -2
- package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +19 -0
- package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
- package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +4 -5
- package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +72 -0
- package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +3 -2
- package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
- package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
- package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +12 -7
- package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +7 -3
- package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
- package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +113 -30
- package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
- package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +48 -0
- package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +2 -3
- package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
- package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
- package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
- package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
- package/types-legacy/ts4.2/tx/builder/index.d.ts +21 -36
- package/types-legacy/ts4.2/tx/builder/schema.d.ts +2971 -2926
- package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
- package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
- package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
- package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
- package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
- package/types-legacy/ts4.2/utils/errors.d.ts +16 -38
- package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
- package/types-legacy/ts4.5/AeSdkMethods.d.ts +12 -14
- package/types-legacy/ts4.5/Node.d.ts +8 -4
- package/types-legacy/ts4.5/account/Base.d.ts +13 -8
- package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
- package/types-legacy/ts4.5/aens.d.ts +12 -14
- package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
- package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
- package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
- package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
- package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
- package/types-legacy/ts4.5/chain.d.ts +17 -9
- package/types-legacy/ts4.5/channel/Base.d.ts +27 -9
- package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
- package/types-legacy/ts4.5/channel/Spend.d.ts +5 -1
- package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
- package/types-legacy/ts4.5/contract/Contract.d.ts +42 -122
- package/types-legacy/ts4.5/contract/compiler/Base.d.ts +74 -0
- package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
- package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
- package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
- package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
- package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
- package/types-legacy/ts4.5/contract/ga.d.ts +27 -10
- package/types-legacy/ts4.5/index-browser.d.ts +40 -0
- package/types-legacy/ts4.5/index.d.ts +4 -38
- package/types-legacy/ts4.5/oracle.d.ts +12 -17
- package/types-legacy/ts4.5/spend.d.ts +19 -27
- package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
- package/types-legacy/ts4.5/tx/builder/constants.d.ts +31 -2
- package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +19 -0
- package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
- package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +4 -5
- package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +72 -0
- package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +3 -2
- package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
- package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
- package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +12 -7
- package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +7 -3
- package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
- package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +113 -30
- package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
- package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +48 -0
- package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +2 -3
- package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
- package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
- package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
- package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
- package/types-legacy/ts4.5/tx/builder/index.d.ts +21 -36
- package/types-legacy/ts4.5/tx/builder/schema.d.ts +2971 -2926
- package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
- package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
- package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
- package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
- package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
- package/types-legacy/ts4.5/utils/errors.d.ts +16 -38
- package/es/contract/CompilerHttp.d.ts +0 -18
- package/es/contract/CompilerHttp.mjs +0 -63
- package/es/contract/CompilerHttp.mjs.map +0 -1
- package/es/tx/builder/field-types/addresses.d.ts +0 -6
- package/es/tx/builder/field-types/addresses.mjs +0 -13
- package/es/tx/builder/field-types/addresses.mjs.map +0 -1
- package/es/tx/index.d.ts +0 -34
- package/es/tx/index.mjs +0 -172
- package/es/tx/index.mjs.map +0 -1
- package/es/utils/mptree.d.ts +0 -26
- package/es/utils/mptree.mjs +0 -143
- package/es/utils/mptree.mjs.map +0 -1
- package/src/apis/compiler/code-model-v4.yaml +0 -2442
- package/src/apis/node/code-model-v4.yaml +0 -10080
- package/src/contract/CompilerHttp.ts +0 -67
- package/src/tx/builder/field-types/addresses.ts +0 -18
- package/src/tx/index.ts +0 -196
- package/src/utils/mptree.ts +0 -145
- package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
- package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
- package/types-legacy/ts4.2/tx/index.d.ts +0 -34
- package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
- package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
- package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
- package/types-legacy/ts4.5/tx/index.d.ts +0 -34
- package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
package/src/tx/builder/index.ts
CHANGED
|
@@ -1,314 +1,116 @@
|
|
|
1
|
-
import { decode as rlpDecode, encode as rlpEncode
|
|
1
|
+
import { decode as rlpDecode, encode as rlpEncode } from 'rlp';
|
|
2
2
|
import {
|
|
3
3
|
decode, encode, Encoded, Encoding,
|
|
4
4
|
} from '../../utils/encoder';
|
|
5
|
-
import { AE_AMOUNT_FORMATS } from '../../utils/amount-formatter';
|
|
6
5
|
import { hash } from '../../utils/crypto';
|
|
7
|
-
import { Field } from './field-types';
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
RawTxObject,
|
|
11
|
-
TX_SCHEMA,
|
|
12
|
-
TxField,
|
|
13
|
-
TxParamsCommon,
|
|
14
|
-
TxSchema,
|
|
15
|
-
TxTypeSchemas,
|
|
16
|
-
} from './schema';
|
|
6
|
+
import { BinaryData, Field } from './field-types';
|
|
7
|
+
import { txSchema } from './schema';
|
|
8
|
+
import { TxUnpacked, TxParams, TxParamsAsync } from './schema.generated';
|
|
17
9
|
import { Tag } from './constants';
|
|
18
10
|
import { buildContractId, readInt } from './helpers';
|
|
19
|
-
import {
|
|
20
|
-
import MPTree, { MPTreeBinary } from '../../utils/mptree';
|
|
21
|
-
import {
|
|
22
|
-
ArgumentError,
|
|
23
|
-
DecodeError,
|
|
24
|
-
InvalidTxParamsError,
|
|
25
|
-
SchemaNotFoundError,
|
|
26
|
-
} from '../../utils/errors';
|
|
27
|
-
import { isKeyOfObject } from '../../utils/other';
|
|
11
|
+
import { ArgumentError, DecodeError, SchemaNotFoundError } from '../../utils/errors';
|
|
28
12
|
|
|
29
13
|
/**
|
|
30
14
|
* JavaScript-based Transaction builder
|
|
31
15
|
*/
|
|
32
16
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
switch (type) {
|
|
41
|
-
case FIELD_TYPES.ctVersion: {
|
|
42
|
-
const [vm, , abi] = value;
|
|
43
|
-
return {
|
|
44
|
-
vmVersion: readInt(Buffer.from([vm])),
|
|
45
|
-
abiVersion: readInt(Buffer.from([abi])),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
case FIELD_TYPES.bool:
|
|
49
|
-
return value[0] === 1;
|
|
50
|
-
case FIELD_TYPES.binary:
|
|
51
|
-
return encode(value, prefix as Encoding);
|
|
52
|
-
case FIELD_TYPES.stateTree:
|
|
53
|
-
return encode(value, Encoding.StateTrees);
|
|
54
|
-
case FIELD_TYPES.string:
|
|
55
|
-
return value.toString();
|
|
56
|
-
case FIELD_TYPES.payload:
|
|
57
|
-
return encode(value, Encoding.Bytearray);
|
|
58
|
-
case FIELD_TYPES.rlpBinary:
|
|
59
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
60
|
-
return unpackTx(encode(value, Encoding.Transaction));
|
|
61
|
-
case FIELD_TYPES.rlpBinaries:
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
63
|
-
return value.map((v: Buffer) => unpackTx(encode(v, Encoding.Transaction)));
|
|
64
|
-
case FIELD_TYPES.rawBinary:
|
|
65
|
-
return value;
|
|
66
|
-
case FIELD_TYPES.hex:
|
|
67
|
-
return value.toString('hex');
|
|
68
|
-
case FIELD_TYPES.offChainUpdates:
|
|
69
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
70
|
-
return value.map((v: Buffer) => unpackTx(encode(v, Encoding.Transaction)));
|
|
71
|
-
case FIELD_TYPES.callStack:
|
|
72
|
-
// TODO: fix this
|
|
73
|
-
return [readInt(value)];
|
|
74
|
-
case FIELD_TYPES.mptrees:
|
|
75
|
-
return value.map((t: MPTreeBinary) => new MPTree(t));
|
|
76
|
-
case FIELD_TYPES.sophiaCodeTypeInfo:
|
|
77
|
-
return value.reduce(
|
|
78
|
-
(acc: object, [funHash, fnName, argType, outType]: [
|
|
79
|
-
funHash: Buffer,
|
|
80
|
-
fnName: string,
|
|
81
|
-
argType: string,
|
|
82
|
-
outType: string,
|
|
83
|
-
]) => ({
|
|
84
|
-
...acc,
|
|
85
|
-
[fnName.toString()]: { funHash, argType, outType },
|
|
86
|
-
}),
|
|
87
|
-
{},
|
|
88
|
-
);
|
|
89
|
-
default:
|
|
90
|
-
if (typeof type === 'number') return value;
|
|
91
|
-
return type.deserialize(value);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function serializeField(value: any, type: FIELD_TYPES | Field, params: any): any {
|
|
96
|
-
switch (type) {
|
|
97
|
-
case FIELD_TYPES.bool:
|
|
98
|
-
return Buffer.from([(value === true) ? 1 : 0]);
|
|
99
|
-
case FIELD_TYPES.binary:
|
|
100
|
-
return decode(value);
|
|
101
|
-
case FIELD_TYPES.stateTree:
|
|
102
|
-
return decode(value);
|
|
103
|
-
case FIELD_TYPES.hex:
|
|
104
|
-
return Buffer.from(value, 'hex');
|
|
105
|
-
case FIELD_TYPES.signatures:
|
|
106
|
-
return value.map(Buffer.from);
|
|
107
|
-
case FIELD_TYPES.payload:
|
|
108
|
-
return typeof value === 'string' && value.split('_')[0] === 'ba'
|
|
109
|
-
? decode(value as Encoded.Bytearray)
|
|
110
|
-
: toBytes(value);
|
|
111
|
-
case FIELD_TYPES.string:
|
|
112
|
-
return toBytes(value);
|
|
113
|
-
case FIELD_TYPES.rlpBinary:
|
|
114
|
-
return value.rlpEncoded ?? value;
|
|
115
|
-
case FIELD_TYPES.mptrees:
|
|
116
|
-
return value.map((t: MPTree) => t.serialize());
|
|
117
|
-
case FIELD_TYPES.ctVersion:
|
|
118
|
-
return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)]);
|
|
119
|
-
default:
|
|
120
|
-
if (typeof type === 'number') return value;
|
|
121
|
-
return type.serialize(value, params);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function validateField(
|
|
126
|
-
value: any,
|
|
127
|
-
type: FIELD_TYPES | Field,
|
|
128
|
-
): string | undefined {
|
|
129
|
-
// All fields are required
|
|
130
|
-
if (value == null) return 'Field is required';
|
|
131
|
-
|
|
132
|
-
// Validate type of value
|
|
133
|
-
switch (type) {
|
|
134
|
-
case FIELD_TYPES.ctVersion:
|
|
135
|
-
if (!(Boolean(value.abiVersion) && Boolean(value.vmVersion))) {
|
|
136
|
-
return 'Value must be an object with "vmVersion" and "abiVersion" fields';
|
|
137
|
-
}
|
|
138
|
-
return undefined;
|
|
139
|
-
default:
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Validate transaction params
|
|
146
|
-
* @category transaction builder
|
|
147
|
-
* @param params - Object with tx params
|
|
148
|
-
* @param schema - Transaction schema
|
|
149
|
-
* @param excludeKeys - Array of keys to exclude for validation
|
|
150
|
-
* @returns Object with validation errors
|
|
151
|
-
*/
|
|
152
|
-
function validateParams(
|
|
153
|
-
params: any,
|
|
154
|
-
schema: TxField[],
|
|
155
|
-
{ excludeKeys = [] }: { excludeKeys: string[] },
|
|
156
|
-
): object {
|
|
157
|
-
const optionalFields = ['payload', 'nameFee', 'deposit', 'gasPrice', 'fee', 'gasLimit', 'amount'];
|
|
158
|
-
return Object.fromEntries(
|
|
159
|
-
schema
|
|
160
|
-
// TODO: allow optional keys in schema
|
|
161
|
-
.filter(([key]) => !excludeKeys.includes(key) && !optionalFields.includes(key))
|
|
162
|
-
.map(([key, type]) => [key, validateField(params[key], type)])
|
|
163
|
-
.filter(([, message]) => message),
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Unpack binary transaction
|
|
169
|
-
* @category transaction builder
|
|
170
|
-
* @param binary - Array with binary transaction field's
|
|
171
|
-
* @param schema - Transaction schema
|
|
172
|
-
* @returns Object with transaction field's
|
|
173
|
-
*/
|
|
174
|
-
function unpackRawTx<Tx extends TxSchema>(
|
|
175
|
-
binary: Uint8Array | NestedUint8Array,
|
|
176
|
-
schema: TxField[],
|
|
177
|
-
): RawTxObject<Tx> {
|
|
178
|
-
return schema
|
|
179
|
-
.reduce<any>(
|
|
180
|
-
(
|
|
181
|
-
acc,
|
|
182
|
-
[key, fieldType, prefix],
|
|
183
|
-
index,
|
|
184
|
-
) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),
|
|
185
|
-
{},
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* @category transaction builder
|
|
191
|
-
*/
|
|
192
|
-
export interface BuiltTx<Tx extends TxSchema, Prefix extends Encoding> {
|
|
193
|
-
tx: Encoded.Generic<Prefix>;
|
|
194
|
-
rlpEncoded: Uint8Array;
|
|
195
|
-
binary: Uint8Array;
|
|
196
|
-
txObject: RawTxObject<Tx>;
|
|
17
|
+
export function getSchema(tag: Tag, version?: number): Array<[string, Field]> {
|
|
18
|
+
const schemas = txSchema.filter((s) => s.tag.constValue === tag);
|
|
19
|
+
if (schemas.length === 0) throw new SchemaNotFoundError(`${Tag[tag]} (${tag})`, 0);
|
|
20
|
+
version ??= Math.max(...schemas.map((schema) => schema.version.constValue));
|
|
21
|
+
const schema = schemas.find((s) => s.version.constValue === version);
|
|
22
|
+
if (schema == null) throw new SchemaNotFoundError(`${Tag[tag]} (${tag})`, version);
|
|
23
|
+
return Object.entries(schema);
|
|
197
24
|
}
|
|
198
25
|
|
|
199
26
|
/**
|
|
200
27
|
* Build transaction hash
|
|
201
28
|
* @category transaction builder
|
|
202
|
-
* @param
|
|
203
|
-
* @param type - Transaction type
|
|
29
|
+
* @param params - Object with tx params
|
|
204
30
|
* @param options - options
|
|
205
|
-
* @param options.excludeKeys - Array of keys to exclude for validation and build
|
|
206
|
-
* @param options.denomination - Denomination of amounts
|
|
207
31
|
* @param options.prefix - Prefix of transaction
|
|
208
|
-
* @
|
|
209
|
-
* @returns object
|
|
210
|
-
* @returns object.tx Base64Check transaction hash with 'tx_' prefix
|
|
211
|
-
* @returns object.rlpEncoded rlp encoded transaction
|
|
212
|
-
* @returns object.binary binary transaction
|
|
32
|
+
* @returns object Base64Check transaction hash with 'tx_' prefix
|
|
213
33
|
*/
|
|
214
|
-
export function buildTx<
|
|
215
|
-
|
|
216
|
-
|
|
34
|
+
export function buildTx<
|
|
35
|
+
E extends Encoding = Encoding.Transaction,
|
|
36
|
+
>(
|
|
37
|
+
params: TxParams,
|
|
217
38
|
{
|
|
218
|
-
|
|
219
|
-
prefix = Encoding.Transaction,
|
|
220
|
-
vsn,
|
|
221
|
-
denomination = AE_AMOUNT_FORMATS.AETTOS,
|
|
39
|
+
prefix,
|
|
222
40
|
}: {
|
|
223
|
-
|
|
224
|
-
prefix?: Encoding;
|
|
225
|
-
vsn?: number;
|
|
226
|
-
denomination?: AE_AMOUNT_FORMATS;
|
|
41
|
+
prefix?: E;
|
|
227
42
|
} = {},
|
|
228
|
-
):
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
serializeField(
|
|
251
|
-
params[key],
|
|
252
|
-
fieldType,
|
|
253
|
-
{
|
|
254
|
-
...params,
|
|
255
|
-
txType: type,
|
|
256
|
-
rebuildTx: (overrideParams: any) => buildTx(
|
|
257
|
-
{ ...params, ...overrideParams },
|
|
258
|
-
type,
|
|
259
|
-
{
|
|
260
|
-
excludeKeys, prefix: Encoding.Transaction, vsn, denomination,
|
|
261
|
-
},
|
|
262
|
-
),
|
|
263
|
-
},
|
|
264
|
-
)
|
|
265
|
-
))
|
|
266
|
-
.filter((e) => e !== undefined);
|
|
267
|
-
|
|
268
|
-
const rlpEncoded = rlpEncode(binary);
|
|
269
|
-
const tx = encode(rlpEncoded, prefix);
|
|
270
|
-
return {
|
|
271
|
-
tx,
|
|
272
|
-
rlpEncoded,
|
|
273
|
-
binary,
|
|
274
|
-
txObject: unpackRawTx<TxTypeSchemas[Tag]>(binary, schema),
|
|
275
|
-
} as any;
|
|
43
|
+
): Encoded.Generic<E> {
|
|
44
|
+
const schema = getSchema(params.tag, params.version);
|
|
45
|
+
|
|
46
|
+
const binary = schema.map(([key, field]) => (
|
|
47
|
+
field.serialize(
|
|
48
|
+
// @ts-expect-error the type of `params[key]` can't be determined accurately
|
|
49
|
+
params[key],
|
|
50
|
+
{
|
|
51
|
+
...params,
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
53
|
+
unpackTx,
|
|
54
|
+
buildTx,
|
|
55
|
+
rebuildTx: (overrideParams: any) => buildTx(
|
|
56
|
+
{ ...params, ...overrideParams },
|
|
57
|
+
),
|
|
58
|
+
},
|
|
59
|
+
params,
|
|
60
|
+
)
|
|
61
|
+
));
|
|
62
|
+
|
|
63
|
+
// @ts-expect-error looks like a TypeScript edge case
|
|
64
|
+
return encode(rlpEncode(binary), prefix ?? Encoding.Transaction);
|
|
276
65
|
}
|
|
277
66
|
|
|
67
|
+
export type BuildTxOptions <TxType extends Tag, OmitFields extends string> =
|
|
68
|
+
Omit<TxParamsAsync & { tag: TxType }, 'tag' | OmitFields>;
|
|
69
|
+
|
|
278
70
|
/**
|
|
279
71
|
* @category transaction builder
|
|
280
72
|
*/
|
|
281
|
-
export
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
73
|
+
export async function buildTxAsync(params: TxParamsAsync): Promise<Encoded.Transaction> {
|
|
74
|
+
await Promise.all(
|
|
75
|
+
getSchema(params.tag, params.version)
|
|
76
|
+
.map(async ([key, field]) => {
|
|
77
|
+
if (field.prepare == null) return;
|
|
78
|
+
// @ts-expect-error the type of `params[key]` can't be determined accurately
|
|
79
|
+
params[key] = await field.prepare(params[key], params, params);
|
|
80
|
+
}),
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
// @ts-expect-error after preparation properties should be compatible with sync tx builder
|
|
84
|
+
return buildTx(params);
|
|
285
85
|
}
|
|
86
|
+
|
|
286
87
|
/**
|
|
287
|
-
* Unpack transaction
|
|
88
|
+
* Unpack transaction encoded as string
|
|
288
89
|
* @category transaction builder
|
|
289
90
|
* @param encodedTx - Transaction to unpack
|
|
290
91
|
* @param txType - Expected transaction type
|
|
291
|
-
* @returns
|
|
292
|
-
* @returns object.tx Object with transaction param's
|
|
293
|
-
* @returns object.txType Transaction type
|
|
92
|
+
* @returns Object with transaction param's
|
|
294
93
|
*/
|
|
295
94
|
export function unpackTx<TxType extends Tag>(
|
|
296
|
-
encodedTx: Encoded.Transaction | Encoded.Poi,
|
|
95
|
+
encodedTx: Encoded.Transaction | Encoded.Poi | Encoded.StateTrees | Encoded.CallStateTree,
|
|
297
96
|
txType?: TxType,
|
|
298
|
-
): TxUnpacked
|
|
299
|
-
const
|
|
300
|
-
const
|
|
301
|
-
const
|
|
302
|
-
|
|
303
|
-
if (txType != null && txType !==
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
return
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
97
|
+
): TxUnpacked & { tag: TxType } {
|
|
98
|
+
const binary = rlpDecode(decode(encodedTx));
|
|
99
|
+
const tag = +readInt(binary[0] as Buffer);
|
|
100
|
+
const version = +readInt(binary[1] as Buffer);
|
|
101
|
+
const schema = getSchema(tag, version);
|
|
102
|
+
if (txType != null && txType !== tag) throw new DecodeError(`Expected transaction to have ${Tag[txType]} tag, got ${Tag[tag]} instead`);
|
|
103
|
+
if (binary.length !== schema.length) {
|
|
104
|
+
throw new ArgumentError('Transaction RLP length', schema.length, binary.length);
|
|
105
|
+
}
|
|
106
|
+
return schema.reduce<any>(
|
|
107
|
+
(acc, [name, field], index) => {
|
|
108
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
109
|
+
const deserialized = field.deserialize(binary[index] as BinaryData, { unpackTx });
|
|
110
|
+
return { ...acc, [name]: deserialized };
|
|
111
|
+
},
|
|
112
|
+
{},
|
|
113
|
+
) as any;
|
|
312
114
|
}
|
|
313
115
|
|
|
314
116
|
/**
|
|
@@ -333,9 +135,9 @@ export function buildTxHash(rawTx: Encoded.Transaction | Uint8Array): Encoded.Tx
|
|
|
333
135
|
export function buildContractIdByContractTx(
|
|
334
136
|
contractTx: Encoded.Transaction,
|
|
335
137
|
): Encoded.ContractAddress {
|
|
336
|
-
const
|
|
337
|
-
if (
|
|
338
|
-
throw new ArgumentError('
|
|
138
|
+
const params = unpackTx(contractTx);
|
|
139
|
+
if (Tag.ContractCreateTx !== params.tag && Tag.GaAttachTx !== params.tag) {
|
|
140
|
+
throw new ArgumentError('contractTx', 'a contractCreateTx or gaAttach', params.tag);
|
|
339
141
|
}
|
|
340
|
-
return buildContractId(
|
|
142
|
+
return buildContractId(params.ownerId, params.nonce);
|
|
341
143
|
}
|