@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
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Tag, ConsensusProtocolVersion, AbiVersion } from '../constants';
|
|
2
|
+
import { getProtocolDetails } from './ct-version';
|
|
3
|
+
import Node from '../../../Node';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
_getProtocolDetails(c: ConsensusProtocolVersion, tag: Tag): AbiVersion {
|
|
7
|
+
const kind = Tag.ContractCallTx === tag || Tag.GaMetaTx === tag
|
|
8
|
+
? 'contract-call' : 'oracle-call';
|
|
9
|
+
return getProtocolDetails(c, kind).abiVersion;
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
serialize(
|
|
13
|
+
value: AbiVersion | undefined,
|
|
14
|
+
{ tag }: { tag: Tag },
|
|
15
|
+
{ consensusProtocolVersion = ConsensusProtocolVersion.Iris }:
|
|
16
|
+
{ consensusProtocolVersion?: ConsensusProtocolVersion },
|
|
17
|
+
): Buffer {
|
|
18
|
+
const result = value ?? this._getProtocolDetails(consensusProtocolVersion, tag);
|
|
19
|
+
|
|
20
|
+
return Buffer.from([result]);
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
async prepare(
|
|
24
|
+
value: AbiVersion | undefined,
|
|
25
|
+
{ tag }: { tag: Tag },
|
|
26
|
+
// TODO: { consensusProtocolVersion: ConsensusProtocolVersion } | { onNode: Node } | {}
|
|
27
|
+
options: { consensusProtocolVersion?: ConsensusProtocolVersion; onNode?: Node },
|
|
28
|
+
): Promise<AbiVersion | undefined> {
|
|
29
|
+
if (value != null) return value;
|
|
30
|
+
if (options.consensusProtocolVersion != null) return undefined;
|
|
31
|
+
if (Object.keys(ConsensusProtocolVersion).length === 2) return undefined;
|
|
32
|
+
if (options.onNode != null) {
|
|
33
|
+
return this._getProtocolDetails(
|
|
34
|
+
(await options.onNode.getNodeInfo()).consensusProtocolVersion,
|
|
35
|
+
tag,
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
deserialize(buffer: Buffer): AbiVersion {
|
|
42
|
+
return buffer[0];
|
|
43
|
+
},
|
|
44
|
+
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { PrefixNotFoundError, TagNotFoundError } from '../../../utils/errors';
|
|
1
|
+
import { ArgumentError, PrefixNotFoundError, TagNotFoundError } from '../../../utils/errors';
|
|
2
2
|
import { toBytes } from '../../../utils/bytes';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
decode, encode, Encoded, Encoding,
|
|
5
|
+
} from '../../../utils/encoder';
|
|
4
6
|
import { isItemOfArray } from '../../../utils/other';
|
|
5
7
|
|
|
6
8
|
/**
|
|
@@ -9,7 +11,7 @@ import { isItemOfArray } from '../../../utils/other';
|
|
|
9
11
|
* @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_id.erl#L97-L102}
|
|
10
12
|
* @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L163-L168}
|
|
11
13
|
*/
|
|
12
|
-
const idTagToEncoding = [
|
|
14
|
+
export const idTagToEncoding = [
|
|
13
15
|
Encoding.AccountAddress,
|
|
14
16
|
Encoding.Name,
|
|
15
17
|
Encoding.Commitment,
|
|
@@ -20,10 +22,12 @@ const idTagToEncoding = [
|
|
|
20
22
|
|
|
21
23
|
export type AddressEncodings = typeof idTagToEncoding[number];
|
|
22
24
|
|
|
23
|
-
export default function genAddressField<Encoding extends AddressEncodings>(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
export default function genAddressField<Encoding extends AddressEncodings>(
|
|
26
|
+
...encodings: Encoding[]
|
|
27
|
+
): {
|
|
28
|
+
serialize: (value: Encoded.Generic<Encoding>) => Buffer;
|
|
29
|
+
deserialize: (value: Buffer) => Encoded.Generic<Encoding>;
|
|
30
|
+
} {
|
|
27
31
|
return {
|
|
28
32
|
/**
|
|
29
33
|
* Utility function to create and _id type
|
|
@@ -31,9 +35,12 @@ export default function genAddressField<Encoding extends AddressEncodings>(): {
|
|
|
31
35
|
* @returns Buffer Buffer with ID tag and decoded HASh
|
|
32
36
|
*/
|
|
33
37
|
serialize(hashId) {
|
|
34
|
-
const
|
|
35
|
-
if (!isItemOfArray(
|
|
36
|
-
|
|
38
|
+
const enc = hashId.slice(0, 2);
|
|
39
|
+
if (!isItemOfArray(enc, idTagToEncoding)) throw new TagNotFoundError(enc);
|
|
40
|
+
if (!isItemOfArray(enc, encodings)) {
|
|
41
|
+
throw new ArgumentError('Address encoding', encodings.join(', '), enc);
|
|
42
|
+
}
|
|
43
|
+
const idTag = idTagToEncoding.indexOf(enc) + 1;
|
|
37
44
|
return Buffer.from([...toBytes(idTag), ...decode(hashId)]);
|
|
38
45
|
},
|
|
39
46
|
|
|
@@ -44,9 +51,12 @@ export default function genAddressField<Encoding extends AddressEncodings>(): {
|
|
|
44
51
|
*/
|
|
45
52
|
deserialize(buf) {
|
|
46
53
|
const idTag = Buffer.from(buf).readUIntBE(0, 1);
|
|
47
|
-
const
|
|
48
|
-
if (
|
|
49
|
-
|
|
54
|
+
const enc = idTagToEncoding[idTag - 1];
|
|
55
|
+
if (enc == null) throw new PrefixNotFoundError(idTag);
|
|
56
|
+
if (!isItemOfArray(enc, encodings)) {
|
|
57
|
+
throw new ArgumentError('Address encoding', encodings.join(', '), enc);
|
|
58
|
+
}
|
|
59
|
+
return encode(buf.subarray(1), enc) as Encoded.Generic<Encoding>;
|
|
50
60
|
},
|
|
51
61
|
};
|
|
52
62
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default function genArrayField<Input, Output, Binary>(
|
|
2
|
+
itemHandler: {
|
|
3
|
+
serialize: (value: Input, params: unknown) => Binary;
|
|
4
|
+
deserialize: (value: Binary, params: unknown) => Output;
|
|
5
|
+
},
|
|
6
|
+
): {
|
|
7
|
+
serialize: (value: readonly Input[], params: unknown) => Binary[];
|
|
8
|
+
deserialize: (value: Binary[], params: unknown) => Output[];
|
|
9
|
+
} {
|
|
10
|
+
return {
|
|
11
|
+
serialize(items, params) {
|
|
12
|
+
return items.map((item) => itemHandler.serialize(item, params));
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
deserialize(buffers, params) {
|
|
16
|
+
return buffers.map((buffer) => itemHandler.deserialize(buffer, params));
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import uInt
|
|
1
|
+
import uInt from './u-int';
|
|
2
|
+
import { Int } from '../constants';
|
|
2
3
|
import { AE_AMOUNT_FORMATS, formatAmount } from '../../../utils/amount-formatter';
|
|
3
4
|
|
|
4
|
-
export interface Options { denomination?: AE_AMOUNT_FORMATS }
|
|
5
|
-
|
|
6
5
|
export default {
|
|
7
6
|
...uInt,
|
|
8
7
|
|
|
@@ -10,11 +9,15 @@ export default {
|
|
|
10
9
|
return value ?? '0';
|
|
11
10
|
},
|
|
12
11
|
|
|
13
|
-
serialize(
|
|
12
|
+
serialize(
|
|
13
|
+
value: Int | undefined,
|
|
14
|
+
params: {},
|
|
15
|
+
{ denomination = AE_AMOUNT_FORMATS.AETTOS }: { denomination?: AE_AMOUNT_FORMATS },
|
|
16
|
+
): Buffer {
|
|
14
17
|
return uInt.serialize(
|
|
15
18
|
this.serializeAettos(
|
|
16
19
|
value != null ? formatAmount(value, { denomination }) : value,
|
|
17
|
-
|
|
20
|
+
params,
|
|
18
21
|
),
|
|
19
22
|
);
|
|
20
23
|
},
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ConsensusProtocolVersion, VmVersion, AbiVersion } from '../constants';
|
|
2
|
+
import Node from '../../../Node';
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* First abi/vm by default
|
|
6
|
+
* @see {@link https://github.com/aeternity/protocol/blob/71cf111/contracts/contract_vms.md#virtual-machines-on-the-æternity-blockchain}
|
|
7
|
+
*/
|
|
8
|
+
export const ProtocolToVmAbi = {
|
|
9
|
+
[ConsensusProtocolVersion.Iris]: {
|
|
10
|
+
'contract-create': {
|
|
11
|
+
vmVersion: [VmVersion.Fate2], abiVersion: [AbiVersion.Fate],
|
|
12
|
+
},
|
|
13
|
+
'contract-call': {
|
|
14
|
+
vmVersion: [], abiVersion: [AbiVersion.Fate, AbiVersion.Sophia],
|
|
15
|
+
},
|
|
16
|
+
'oracle-call': {
|
|
17
|
+
vmVersion: [], abiVersion: [AbiVersion.NoAbi, AbiVersion.Fate],
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
[ConsensusProtocolVersion.Ceres]: {
|
|
21
|
+
'contract-create': {
|
|
22
|
+
vmVersion: [VmVersion.Fate2], abiVersion: [AbiVersion.Fate],
|
|
23
|
+
},
|
|
24
|
+
'contract-call': {
|
|
25
|
+
vmVersion: [], abiVersion: [AbiVersion.Fate],
|
|
26
|
+
},
|
|
27
|
+
'oracle-call': {
|
|
28
|
+
vmVersion: [], abiVersion: [AbiVersion.NoAbi, AbiVersion.Fate],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
} as const;
|
|
32
|
+
|
|
33
|
+
export interface CtVersion {
|
|
34
|
+
vmVersion: VmVersion;
|
|
35
|
+
abiVersion: AbiVersion;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function getProtocolDetails(
|
|
39
|
+
protocolVersion: ConsensusProtocolVersion,
|
|
40
|
+
type: 'contract-create' | 'contract-call' | 'oracle-call',
|
|
41
|
+
): CtVersion {
|
|
42
|
+
const protocol = ProtocolToVmAbi[protocolVersion][type];
|
|
43
|
+
return {
|
|
44
|
+
vmVersion: protocol.vmVersion[0] ?? VmVersion.Fate2,
|
|
45
|
+
abiVersion: protocol.abiVersion[0],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default {
|
|
50
|
+
serialize(
|
|
51
|
+
value: CtVersion | undefined,
|
|
52
|
+
params: {},
|
|
53
|
+
{ consensusProtocolVersion = ConsensusProtocolVersion.Iris }:
|
|
54
|
+
{ consensusProtocolVersion?: ConsensusProtocolVersion },
|
|
55
|
+
): Buffer {
|
|
56
|
+
value ??= getProtocolDetails(consensusProtocolVersion, 'contract-create');
|
|
57
|
+
|
|
58
|
+
return Buffer.from([value.vmVersion, 0, value.abiVersion]);
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
async prepare(
|
|
62
|
+
value: CtVersion | undefined,
|
|
63
|
+
params: {},
|
|
64
|
+
// TODO: { consensusProtocolVersion: ConsensusProtocolVersion } | { onNode: Node } | {}
|
|
65
|
+
options: { consensusProtocolVersion?: ConsensusProtocolVersion; onNode?: Node },
|
|
66
|
+
): Promise<CtVersion | undefined> {
|
|
67
|
+
if (value != null) return value;
|
|
68
|
+
if (options.consensusProtocolVersion != null) return undefined;
|
|
69
|
+
if (Object.keys(ConsensusProtocolVersion).length === 2) return undefined;
|
|
70
|
+
if (options.onNode != null) {
|
|
71
|
+
return getProtocolDetails(
|
|
72
|
+
(await options.onNode.getNodeInfo()).consensusProtocolVersion,
|
|
73
|
+
'contract-create',
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
deserialize(buffer: Buffer): CtVersion {
|
|
80
|
+
const [vm, , abi] = buffer;
|
|
81
|
+
return { vmVersion: +vm, abiVersion: +abi };
|
|
82
|
+
},
|
|
83
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import coinAmount from './coin-amount';
|
|
2
|
-
import { Int } from '
|
|
2
|
+
import { Int } from '../constants';
|
|
3
3
|
import { IllegalArgumentError } from '../../../utils/errors';
|
|
4
4
|
|
|
5
5
|
export default {
|
|
@@ -8,14 +8,16 @@ export default {
|
|
|
8
8
|
/**
|
|
9
9
|
* @param value - Deposit value in string format. Should be equal to '0'.
|
|
10
10
|
* @param options - Options
|
|
11
|
+
* @param parameters - Parameters
|
|
11
12
|
* @returns Deposit value Buffer.
|
|
12
13
|
*/
|
|
13
14
|
serialize(
|
|
14
15
|
value: Int | undefined,
|
|
15
16
|
options: Parameters<typeof coinAmount['serialize']>[1],
|
|
17
|
+
parameters: Parameters<typeof coinAmount['serialize']>[2],
|
|
16
18
|
): Buffer {
|
|
17
19
|
value ??= 0;
|
|
18
20
|
if (+value !== 0) throw new IllegalArgumentError(`Contract deposit is not refundable, so it should be equal 0, got ${value.toString()} instead`);
|
|
19
|
-
return coinAmount.serialize(value, options);
|
|
21
|
+
return coinAmount.serialize(value, options, parameters);
|
|
20
22
|
},
|
|
21
23
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
decode, encode, Encoded, Encoding,
|
|
3
|
+
} from '../../../utils/encoder';
|
|
4
|
+
import { ArgumentError } from '../../../utils/errors';
|
|
5
|
+
|
|
6
|
+
export default function genEncodedField<E extends Encoding, Optional extends boolean = false>(
|
|
7
|
+
encoding: E,
|
|
8
|
+
optional?: Optional,
|
|
9
|
+
): {
|
|
10
|
+
serialize: Optional extends true
|
|
11
|
+
? (value?: Encoded.Generic<E>) => Buffer : (value: Encoded.Generic<E>) => Buffer;
|
|
12
|
+
deserialize: (value: Buffer) => Encoded.Generic<E>;
|
|
13
|
+
} {
|
|
14
|
+
return {
|
|
15
|
+
serialize(encodedData?: Encoded.Generic<E>) {
|
|
16
|
+
if (encodedData == null) {
|
|
17
|
+
if (optional === true) return Buffer.from([]);
|
|
18
|
+
throw new ArgumentError('Encoded data', 'provided', encodedData);
|
|
19
|
+
}
|
|
20
|
+
return decode(encodedData);
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
deserialize(buffer) {
|
|
24
|
+
return encode(buffer, encoding);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
decode, encode, Encoded, Encoding,
|
|
3
|
+
} from '../../../utils/encoder';
|
|
4
|
+
import { Tag } from '../constants';
|
|
5
|
+
import { ArgumentError } from '../../../utils/errors';
|
|
6
|
+
import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
|
|
7
|
+
|
|
8
|
+
export default function genEntryField<T extends Tag = Tag>(tag?: T): {
|
|
9
|
+
serialize: (
|
|
10
|
+
// TODO: replace with `TxParams & { tag: T }`,
|
|
11
|
+
// but fix TS2502 value is referenced directly or indirectly in its own type annotation
|
|
12
|
+
value: any,
|
|
13
|
+
options: { buildTx: typeof buildTxType },
|
|
14
|
+
) => Buffer;
|
|
15
|
+
deserialize: (
|
|
16
|
+
value: Buffer, options: { unpackTx: typeof unpackTxType },
|
|
17
|
+
// TODO: replace with `TxUnpacked & { tag: T }`,
|
|
18
|
+
// TS2577 Return type annotation circularly references itself
|
|
19
|
+
) => any;
|
|
20
|
+
} {
|
|
21
|
+
return {
|
|
22
|
+
serialize(txParams, { buildTx }) {
|
|
23
|
+
if (ArrayBuffer.isView(txParams)) return Buffer.from(txParams as any);
|
|
24
|
+
if (typeof txParams === 'string' && txParams.startsWith('tx_')) {
|
|
25
|
+
return decode(txParams as Encoded.Transaction);
|
|
26
|
+
}
|
|
27
|
+
return decode(buildTx({ ...txParams, ...tag != null && { tag } }));
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
deserialize(buf, { unpackTx }) {
|
|
31
|
+
const tx = unpackTx(encode(buf, Encoding.Transaction));
|
|
32
|
+
if (tag != null && tx.tag !== tag) throw new ArgumentError('Tag', tag, tx.tag);
|
|
33
|
+
return tx;
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { ArgumentError } from '../../../utils/errors';
|
|
2
|
+
import { isItemOfArray } from '../../../utils/other';
|
|
2
3
|
|
|
3
|
-
export default function genEnumerationField<
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
export default function genEnumerationField<
|
|
5
|
+
Enum extends { [key: string]: number | string },
|
|
6
|
+
>(enm: Enum): {
|
|
7
|
+
serialize: (value: Enum[keyof Enum]) => Buffer;
|
|
8
|
+
deserialize: (value: Buffer) => Enum[keyof Enum];
|
|
6
9
|
} {
|
|
10
|
+
const values = Object.values(enm).filter((v) => typeof v === 'number');
|
|
7
11
|
return {
|
|
8
12
|
serialize(value) {
|
|
9
13
|
if (typeof value !== 'number') throw new ArgumentError('value', 'to be a number', value);
|
|
10
14
|
if (value > 0xff) throw new ArgumentError('value', 'to be less than 256', value);
|
|
15
|
+
if (!isItemOfArray(value, values)) {
|
|
16
|
+
throw new ArgumentError('value', 'to be a value of Enum', value);
|
|
17
|
+
}
|
|
11
18
|
return Buffer.from([value]);
|
|
12
19
|
},
|
|
13
20
|
|
|
@@ -15,7 +22,11 @@ export default function genEnumerationField<Enum extends number>(): {
|
|
|
15
22
|
if (buffer.length !== 1) {
|
|
16
23
|
throw new ArgumentError('buffer', 'to have single element', buffer.length);
|
|
17
24
|
}
|
|
18
|
-
|
|
25
|
+
const value = buffer[0];
|
|
26
|
+
if (!isItemOfArray(value, values)) {
|
|
27
|
+
throw new ArgumentError('value', 'to be a value of Enum', value);
|
|
28
|
+
}
|
|
29
|
+
return value as Enum[keyof Enum];
|
|
19
30
|
},
|
|
20
31
|
};
|
|
21
32
|
}
|
|
@@ -3,6 +3,8 @@ import { IllegalArgumentError } from '../../../utils/errors';
|
|
|
3
3
|
import { MIN_GAS_PRICE, Tag } from '../constants';
|
|
4
4
|
import coinAmount from './coin-amount';
|
|
5
5
|
import { isKeyOfObject } from '../../../utils/other';
|
|
6
|
+
import { decode, Encoded } from '../../../utils/encoder';
|
|
7
|
+
import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
|
|
6
8
|
|
|
7
9
|
const BASE_GAS = 15000;
|
|
8
10
|
const GAS_PER_BYTE = 20;
|
|
@@ -75,7 +77,7 @@ const TX_FEE_OTHER_GAS = (
|
|
|
75
77
|
}
|
|
76
78
|
};
|
|
77
79
|
|
|
78
|
-
function getOracleRelativeTtl(params: any
|
|
80
|
+
function getOracleRelativeTtl(params: any): number {
|
|
79
81
|
const ttlKeys = {
|
|
80
82
|
[Tag.OracleRegisterTx]: 'oracleTtlValue',
|
|
81
83
|
[Tag.OracleExtendTx]: 'oracleTtlValue',
|
|
@@ -83,22 +85,30 @@ function getOracleRelativeTtl(params: any, txType: Tag): number {
|
|
|
83
85
|
[Tag.OracleResponseTx]: 'responseTtlValue',
|
|
84
86
|
} as const;
|
|
85
87
|
|
|
86
|
-
|
|
87
|
-
return
|
|
88
|
+
const { tag } = params;
|
|
89
|
+
if (!isKeyOfObject(tag, ttlKeys)) return 1;
|
|
90
|
+
return params[ttlKeys[tag]];
|
|
88
91
|
}
|
|
89
92
|
|
|
90
93
|
/**
|
|
91
94
|
* Calculate fee based on tx type and params
|
|
92
95
|
*/
|
|
93
|
-
export function buildFee(
|
|
94
|
-
|
|
96
|
+
export function buildFee(
|
|
97
|
+
builtTx: Encoded.Transaction,
|
|
98
|
+
unpackTx: typeof unpackTxType,
|
|
99
|
+
buildTx: typeof buildTxType,
|
|
100
|
+
): BigNumber {
|
|
101
|
+
const { length } = decode(builtTx);
|
|
102
|
+
const txObject = unpackTx(builtTx);
|
|
103
|
+
|
|
104
|
+
let innerTxSize = 0;
|
|
105
|
+
if (txObject.tag === Tag.GaMetaTx || txObject.tag === Tag.PayingForTx) {
|
|
106
|
+
innerTxSize = decode(buildTx(txObject.tx.encodedTx)).length;
|
|
107
|
+
}
|
|
95
108
|
|
|
96
|
-
return TX_FEE_BASE_GAS(
|
|
97
|
-
.plus(TX_FEE_OTHER_GAS(
|
|
98
|
-
relativeTtl: getOracleRelativeTtl(txObject,
|
|
99
|
-
innerTxSize: [Tag.GaMetaTx, Tag.PayingForTx].includes(txType)
|
|
100
|
-
? txObject.tx.tx.encodedTx.rlpEncoded.length
|
|
101
|
-
: 0,
|
|
109
|
+
return TX_FEE_BASE_GAS(txObject.tag)
|
|
110
|
+
.plus(TX_FEE_OTHER_GAS(txObject.tag, length, {
|
|
111
|
+
relativeTtl: getOracleRelativeTtl(txObject), innerTxSize,
|
|
102
112
|
}))
|
|
103
113
|
.times(MIN_GAS_PRICE);
|
|
104
114
|
}
|
|
@@ -106,18 +116,18 @@ export function buildFee(txType: Tag, buildTx: any): BigNumber {
|
|
|
106
116
|
/**
|
|
107
117
|
* Calculate min fee
|
|
108
118
|
* @category transaction builder
|
|
109
|
-
* @param txType - Transaction type
|
|
110
119
|
* @param rebuildTx - Callback to get built transaction with specific fee
|
|
111
120
|
*/
|
|
112
121
|
function calculateMinFee(
|
|
113
|
-
|
|
114
|
-
|
|
122
|
+
rebuildTx: (value: BigNumber) => Encoded.Transaction,
|
|
123
|
+
unpackTx: typeof unpackTxType,
|
|
124
|
+
buildTx: typeof buildTxType,
|
|
115
125
|
): BigNumber {
|
|
116
126
|
let fee = new BigNumber(0);
|
|
117
127
|
let previousFee;
|
|
118
128
|
do {
|
|
119
129
|
previousFee = fee;
|
|
120
|
-
fee = buildFee(
|
|
130
|
+
fee = buildFee(rebuildTx(fee), unpackTx, buildTx);
|
|
121
131
|
} while (!fee.eq(previousFee));
|
|
122
132
|
return fee;
|
|
123
133
|
}
|
|
@@ -127,13 +137,25 @@ export default {
|
|
|
127
137
|
|
|
128
138
|
serializeAettos(
|
|
129
139
|
_value: string | undefined,
|
|
130
|
-
{
|
|
131
|
-
|
|
140
|
+
{
|
|
141
|
+
rebuildTx, unpackTx, buildTx, _computingMinFee, _pickBiggerFee,
|
|
142
|
+
}: {
|
|
143
|
+
rebuildTx: (params: any) => Encoded.Transaction;
|
|
144
|
+
unpackTx: typeof unpackTxType;
|
|
145
|
+
buildTx: typeof buildTxType;
|
|
146
|
+
_computingMinFee?: BigNumber;
|
|
147
|
+
_pickBiggerFee?: boolean;
|
|
148
|
+
},
|
|
132
149
|
): string {
|
|
133
|
-
if (_computingMinFee != null) return _computingMinFee;
|
|
134
|
-
const minFee = calculateMinFee(
|
|
150
|
+
if (_computingMinFee != null) return _computingMinFee.toFixed();
|
|
151
|
+
const minFee = calculateMinFee(
|
|
152
|
+
(fee) => rebuildTx({ _computingMinFee: fee }),
|
|
153
|
+
unpackTx,
|
|
154
|
+
buildTx,
|
|
155
|
+
);
|
|
135
156
|
const value = new BigNumber(_value ?? minFee);
|
|
136
157
|
if (minFee.gt(value)) {
|
|
158
|
+
if (_pickBiggerFee === true) return minFee.toFixed();
|
|
137
159
|
throw new IllegalArgumentError(`Fee ${value.toString()} must be bigger then ${minFee}`);
|
|
138
160
|
}
|
|
139
161
|
return value.toFixed();
|
|
@@ -2,13 +2,15 @@ import { IllegalArgumentError } from '../../../utils/errors';
|
|
|
2
2
|
import { MIN_GAS_PRICE, Tag, MAX_AUTH_FUN_GAS } from '../constants';
|
|
3
3
|
import shortUInt from './short-u-int';
|
|
4
4
|
import { buildFee } from './fee';
|
|
5
|
+
import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
|
|
5
6
|
|
|
6
7
|
function calculateGasLimitMax(
|
|
7
|
-
txType: Tag,
|
|
8
8
|
gasMax: number,
|
|
9
9
|
rebuildTx: (value: number) => any,
|
|
10
|
+
unpackTx: typeof unpackTxType,
|
|
11
|
+
buildTx: typeof buildTxType,
|
|
10
12
|
): number {
|
|
11
|
-
return gasMax - +buildFee(
|
|
13
|
+
return gasMax - +buildFee(rebuildTx(gasMax), unpackTx, buildTx).dividedBy(MIN_GAS_PRICE);
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
export default {
|
|
@@ -17,20 +19,23 @@ export default {
|
|
|
17
19
|
serialize(
|
|
18
20
|
_value: number | undefined,
|
|
19
21
|
{
|
|
20
|
-
|
|
22
|
+
tag, rebuildTx, unpackTx, buildTx, _computingGasLimit,
|
|
21
23
|
}: {
|
|
22
|
-
|
|
24
|
+
tag: Tag;
|
|
23
25
|
rebuildTx: (params: any) => any;
|
|
24
|
-
|
|
26
|
+
unpackTx: typeof unpackTxType;
|
|
27
|
+
buildTx: typeof buildTxType;
|
|
25
28
|
_computingGasLimit?: number;
|
|
26
29
|
},
|
|
30
|
+
{ gasMax = 6e6 }: { gasMax?: number },
|
|
27
31
|
): Buffer {
|
|
28
32
|
if (_computingGasLimit != null) return shortUInt.serialize(_computingGasLimit);
|
|
29
33
|
|
|
30
|
-
const gasLimitMax =
|
|
31
|
-
txType,
|
|
34
|
+
const gasLimitMax = tag === Tag.GaMetaTx ? MAX_AUTH_FUN_GAS : calculateGasLimitMax(
|
|
32
35
|
gasMax,
|
|
33
|
-
(gasLimit) => rebuildTx({ _computingGasLimit: gasLimit }),
|
|
36
|
+
(gasLimit) => rebuildTx({ _computingGasLimit: gasLimit, _pickBiggerFee: true }),
|
|
37
|
+
unpackTx,
|
|
38
|
+
buildTx,
|
|
34
39
|
);
|
|
35
40
|
const value = _value ?? gasLimitMax;
|
|
36
41
|
if (value > gasLimitMax) {
|
|
@@ -1,55 +1,98 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _uInt from './u-int';
|
|
3
|
-
import _shortUInt from './short-u-int';
|
|
4
|
-
import _coinAmount from './coin-amount';
|
|
1
|
+
import _abiVersion from './abi-version';
|
|
5
2
|
import _address from './address';
|
|
6
|
-
import
|
|
3
|
+
import _array from './array';
|
|
4
|
+
import _boolean from './boolean';
|
|
5
|
+
import _coinAmount from './coin-amount';
|
|
6
|
+
import _ctVersion from './ct-version';
|
|
7
7
|
import _deposit from './deposit';
|
|
8
|
+
import _encoded from './encoded';
|
|
9
|
+
import _entry from './entry';
|
|
8
10
|
import _enumeration from './enumeration';
|
|
9
11
|
import _fee from './fee';
|
|
12
|
+
import _field from './field';
|
|
10
13
|
import _gasLimit from './gas-limit';
|
|
11
14
|
import _gasPrice from './gas-price';
|
|
15
|
+
import _map from './map';
|
|
16
|
+
import _mptree from './mptree';
|
|
12
17
|
import _name from './name';
|
|
13
18
|
import _nameFee from './name-fee';
|
|
14
19
|
import _nameId from './name-id';
|
|
20
|
+
import _nonce from './nonce';
|
|
15
21
|
import _pointers from './pointers';
|
|
22
|
+
import _raw from './raw';
|
|
23
|
+
import _shortUInt from './short-u-int';
|
|
24
|
+
import _shortUIntConst from './short-u-int-const';
|
|
25
|
+
import _string from './string';
|
|
26
|
+
import _ttl from './ttl';
|
|
27
|
+
import _uInt from './u-int';
|
|
28
|
+
import _wrapped from './wrapped';
|
|
16
29
|
|
|
17
30
|
// TODO: remove after fixing https://github.com/Gerrit0/typedoc-plugin-missing-exports/issues/15
|
|
18
|
-
const
|
|
19
|
-
const uInt = _uInt;
|
|
20
|
-
const shortUInt = _shortUInt;
|
|
21
|
-
const coinAmount = _coinAmount;
|
|
31
|
+
const abiVersion = _abiVersion;
|
|
22
32
|
const address = _address;
|
|
23
|
-
const
|
|
33
|
+
const array = _array;
|
|
34
|
+
const boolean = _boolean;
|
|
35
|
+
const coinAmount = _coinAmount;
|
|
36
|
+
const ctVersion = _ctVersion;
|
|
24
37
|
const deposit = _deposit;
|
|
38
|
+
const encoded = _encoded;
|
|
39
|
+
const entry = _entry;
|
|
25
40
|
const enumeration = _enumeration;
|
|
26
41
|
const fee = _fee;
|
|
42
|
+
const field = _field;
|
|
27
43
|
const gasLimit = _gasLimit;
|
|
28
44
|
const gasPrice = _gasPrice;
|
|
45
|
+
const map = _map;
|
|
46
|
+
const mptree = _mptree;
|
|
29
47
|
const name = _name;
|
|
30
48
|
const nameFee = _nameFee;
|
|
31
49
|
const nameId = _nameId;
|
|
50
|
+
const nonce = _nonce;
|
|
32
51
|
const pointers = _pointers;
|
|
52
|
+
const raw = _raw;
|
|
53
|
+
const shortUInt = _shortUInt;
|
|
54
|
+
const shortUIntConst = _shortUIntConst;
|
|
55
|
+
const string = _string;
|
|
56
|
+
const ttl = _ttl;
|
|
57
|
+
const uInt = _uInt;
|
|
58
|
+
const wrapped = _wrapped;
|
|
33
59
|
|
|
60
|
+
export type BinaryData = Buffer | Buffer[] | Buffer[][]
|
|
61
|
+
| Array<[Buffer, Array<[Buffer, Buffer[]]>]>;
|
|
34
62
|
export interface Field {
|
|
35
|
-
serialize: (value: any, options: any) =>
|
|
36
|
-
|
|
63
|
+
serialize: (value: any, options: any, parameters: any) => BinaryData;
|
|
64
|
+
prepare?: (value: any, options: any, parameters: any) => Promise<any>;
|
|
65
|
+
deserialize: (value: BinaryData, options: any) => any;
|
|
66
|
+
recursiveType?: boolean;
|
|
37
67
|
}
|
|
38
68
|
|
|
39
69
|
export {
|
|
40
|
-
|
|
41
|
-
uInt,
|
|
42
|
-
shortUInt,
|
|
43
|
-
coinAmount,
|
|
70
|
+
abiVersion,
|
|
44
71
|
address,
|
|
45
|
-
|
|
72
|
+
array,
|
|
73
|
+
boolean,
|
|
74
|
+
coinAmount,
|
|
75
|
+
ctVersion,
|
|
46
76
|
deposit,
|
|
77
|
+
encoded,
|
|
78
|
+
entry,
|
|
47
79
|
enumeration,
|
|
48
80
|
fee,
|
|
81
|
+
field,
|
|
49
82
|
gasLimit,
|
|
50
83
|
gasPrice,
|
|
84
|
+
map,
|
|
85
|
+
mptree,
|
|
51
86
|
name,
|
|
52
87
|
nameFee,
|
|
53
88
|
nameId,
|
|
89
|
+
nonce,
|
|
54
90
|
pointers,
|
|
91
|
+
raw,
|
|
92
|
+
shortUInt,
|
|
93
|
+
shortUIntConst,
|
|
94
|
+
string,
|
|
95
|
+
ttl,
|
|
96
|
+
uInt,
|
|
97
|
+
wrapped,
|
|
55
98
|
};
|