@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,45 @@
|
|
|
1
|
+
import { Tag } from '../constants';
|
|
2
|
+
import {
|
|
3
|
+
encode, Encoding, Encoded, decode,
|
|
4
|
+
} from '../../../utils/encoder';
|
|
5
|
+
import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
|
|
6
|
+
|
|
7
|
+
export default function genMapField<E extends Encoding, T extends Tag>(encoding: E, tag: T): {
|
|
8
|
+
serialize: (
|
|
9
|
+
// TODO: replace with `TxParams & { tag: T }`,
|
|
10
|
+
// but fix TS2502 value is referenced directly or indirectly in its own type annotation
|
|
11
|
+
value: Record<Encoded.Generic<E>, any>, options: { buildTx: typeof buildTxType }
|
|
12
|
+
) => Buffer;
|
|
13
|
+
deserialize: (
|
|
14
|
+
value: Buffer, options: { unpackTx: typeof unpackTxType },
|
|
15
|
+
// TODO: replace with `TxUnpacked & { tag: T }`,
|
|
16
|
+
// TS2577 Return type annotation circularly references itself
|
|
17
|
+
) => Record<Encoded.Generic<E>, any>;
|
|
18
|
+
recursiveType: true;
|
|
19
|
+
} {
|
|
20
|
+
return {
|
|
21
|
+
serialize(object, { buildTx }) {
|
|
22
|
+
return decode(buildTx({
|
|
23
|
+
tag: Tag.Mtree,
|
|
24
|
+
values: Object.entries(object).map(([key, value]) => ({
|
|
25
|
+
tag: Tag.MtreeValue,
|
|
26
|
+
key: decode(key as Encoded.Generic<E>),
|
|
27
|
+
value: decode(buildTx({ ...value as any, tag })),
|
|
28
|
+
})),
|
|
29
|
+
}));
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
deserialize(buffer, { unpackTx }) {
|
|
33
|
+
const { values } = unpackTx(encode(buffer, Encoding.Transaction), Tag.Mtree);
|
|
34
|
+
return Object.fromEntries(values
|
|
35
|
+
// TODO: remove after resolving https://github.com/aeternity/aeternity/issues/4066
|
|
36
|
+
.filter(({ key }) => encoding !== Encoding.ContractAddress || key.length === 32)
|
|
37
|
+
.map(({ key, value }) => [
|
|
38
|
+
encode(key, encoding),
|
|
39
|
+
unpackTx(encode(value, Encoding.Transaction), tag),
|
|
40
|
+
])) as Record<Encoded.Generic<E>, any>;
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
recursiveType: true,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { encode as rlpEncode, Input } from 'rlp';
|
|
2
|
+
import { Tag } from '../constants';
|
|
3
|
+
import { hash } from '../../../utils/crypto';
|
|
4
|
+
import {
|
|
5
|
+
MerkleTreeHashMismatchError,
|
|
6
|
+
MissingNodeInTreeError,
|
|
7
|
+
UnknownPathNibbleError,
|
|
8
|
+
UnexpectedTsError,
|
|
9
|
+
UnknownNodeLengthError,
|
|
10
|
+
InternalError,
|
|
11
|
+
} from '../../../utils/errors';
|
|
12
|
+
import {
|
|
13
|
+
decode, encode, Encoded, Encoding,
|
|
14
|
+
} from '../../../utils/encoder';
|
|
15
|
+
import type { unpackTx } from '..';
|
|
16
|
+
import type { TxUnpacked } from '../schema.generated';
|
|
17
|
+
|
|
18
|
+
enum NodeType {
|
|
19
|
+
Branch,
|
|
20
|
+
Extension,
|
|
21
|
+
Leaf,
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type MPTreeBinary = [Buffer, Array<[Buffer, Buffer[]]>];
|
|
25
|
+
|
|
26
|
+
class MPTree<E extends Encoding, T extends Tag> {
|
|
27
|
+
readonly #rootHash: string;
|
|
28
|
+
|
|
29
|
+
#isComplete = true;
|
|
30
|
+
|
|
31
|
+
get isComplete(): boolean {
|
|
32
|
+
return this.#isComplete;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
readonly #nodes: { [key: string]: Buffer[] };
|
|
36
|
+
|
|
37
|
+
readonly #encoding: E;
|
|
38
|
+
|
|
39
|
+
readonly #tag: T;
|
|
40
|
+
|
|
41
|
+
readonly #unpackTx: typeof unpackTx;
|
|
42
|
+
|
|
43
|
+
static #nodeHash(node: Input): string {
|
|
44
|
+
return Buffer.from(hash(rlpEncode(node))).toString('hex');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Deserialize Merkle Patricia Tree
|
|
49
|
+
* @param binary - Binary
|
|
50
|
+
* @param tag - Tag to use to decode value
|
|
51
|
+
* @param unpTx - Implementation of unpackTx use to decode values
|
|
52
|
+
* @returns Merkle Patricia Tree
|
|
53
|
+
*/
|
|
54
|
+
constructor(binary: MPTreeBinary, encoding: E, tag: T, unpTx: typeof unpackTx) {
|
|
55
|
+
this.#encoding = encoding;
|
|
56
|
+
this.#tag = tag;
|
|
57
|
+
this.#unpackTx = unpTx;
|
|
58
|
+
this.#rootHash = binary[0].toString('hex');
|
|
59
|
+
this.#nodes = Object.fromEntries(
|
|
60
|
+
binary[1].map((node) => [node[0].toString('hex'), node[1]]),
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
if (this.#nodes[this.#rootHash] == null) {
|
|
64
|
+
if (Object.keys(this.#nodes).length !== 0) {
|
|
65
|
+
throw new MissingNodeInTreeError('Can\'t find a node by root hash');
|
|
66
|
+
}
|
|
67
|
+
this.#isComplete = false;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
Object.entries(this.#nodes).forEach(([key, node]) => {
|
|
71
|
+
if (MPTree.#nodeHash(node) !== key) throw new MerkleTreeHashMismatchError();
|
|
72
|
+
const { type } = MPTree.#parseNode(node);
|
|
73
|
+
switch (type) {
|
|
74
|
+
case NodeType.Branch:
|
|
75
|
+
node
|
|
76
|
+
.slice(0, 16)
|
|
77
|
+
.filter((n) => n.length)
|
|
78
|
+
.forEach((n) => {
|
|
79
|
+
// TODO: enable after resolving https://github.com/aeternity/aeternity/issues/4066
|
|
80
|
+
// if (n.length !== 32) {
|
|
81
|
+
// throw new ArgumentError('MPTree branch item length', 32, n.length);
|
|
82
|
+
// }
|
|
83
|
+
if (this.#nodes[n.toString('hex')] == null) this.#isComplete = false;
|
|
84
|
+
});
|
|
85
|
+
break;
|
|
86
|
+
case NodeType.Extension:
|
|
87
|
+
if (this.#nodes[node[1].toString('hex')] == null) {
|
|
88
|
+
throw new MissingNodeInTreeError('Can\'t find a node by hash in extension node');
|
|
89
|
+
}
|
|
90
|
+
break;
|
|
91
|
+
case NodeType.Leaf:
|
|
92
|
+
break;
|
|
93
|
+
default:
|
|
94
|
+
throw new InternalError(`Unknown MPTree node type: ${type}`);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
isEqual(tree: MPTree<E, T>): boolean {
|
|
100
|
+
return this.#rootHash === tree.#rootHash;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
static #parseNode(node: Buffer[]): { type: NodeType; value?: Buffer; path?: string } {
|
|
104
|
+
switch (node.length) {
|
|
105
|
+
case 17:
|
|
106
|
+
return {
|
|
107
|
+
type: NodeType.Branch,
|
|
108
|
+
...node[16].length !== 0 && { value: node[16] },
|
|
109
|
+
};
|
|
110
|
+
case 2: {
|
|
111
|
+
const nibble = node[0][0] >> 4; // eslint-disable-line no-bitwise
|
|
112
|
+
if (nibble > 3) throw new UnknownPathNibbleError(nibble);
|
|
113
|
+
const type = nibble <= 1 ? NodeType.Extension : NodeType.Leaf;
|
|
114
|
+
const slice = [0, 2].includes(nibble) ? 2 : 1;
|
|
115
|
+
return {
|
|
116
|
+
type,
|
|
117
|
+
...type === NodeType.Leaf && { value: node[1] },
|
|
118
|
+
path: node[0].toString('hex').slice(slice),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
default:
|
|
122
|
+
throw new UnknownNodeLengthError(node.length);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Serialize Merkle Patricia Tree
|
|
128
|
+
* @returns Binary
|
|
129
|
+
*/
|
|
130
|
+
serialize(): MPTreeBinary {
|
|
131
|
+
return [
|
|
132
|
+
Buffer.from(this.#rootHash, 'hex'),
|
|
133
|
+
Object.entries(this.#nodes).map(([mptHash, value]) => ([
|
|
134
|
+
Buffer.from(mptHash, 'hex'),
|
|
135
|
+
value,
|
|
136
|
+
])),
|
|
137
|
+
];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Retrieve value from Merkle Patricia Tree
|
|
142
|
+
* @param _key - The key of the element to retrieve
|
|
143
|
+
* @returns Value associated to the specified key
|
|
144
|
+
*/
|
|
145
|
+
#getRaw(_key: string): Buffer | undefined {
|
|
146
|
+
let searchFrom = this.#rootHash;
|
|
147
|
+
let key = _key;
|
|
148
|
+
while (true) { // eslint-disable-line no-constant-condition
|
|
149
|
+
const node = this.#nodes[searchFrom];
|
|
150
|
+
if (node == null) {
|
|
151
|
+
if (!this.isComplete) return undefined;
|
|
152
|
+
throw new InternalError('Can\'t find node in complete tree');
|
|
153
|
+
}
|
|
154
|
+
const { type, value, path } = MPTree.#parseNode(node);
|
|
155
|
+
switch (type) {
|
|
156
|
+
case NodeType.Branch:
|
|
157
|
+
if (key.length === 0) return value;
|
|
158
|
+
searchFrom = node[+`0x${key[0]}`].toString('hex');
|
|
159
|
+
key = key.substring(1);
|
|
160
|
+
break;
|
|
161
|
+
case NodeType.Extension:
|
|
162
|
+
if (key.substring(0, path?.length) !== path) return undefined;
|
|
163
|
+
searchFrom = node[1].toString('hex');
|
|
164
|
+
key = key.substring(path.length);
|
|
165
|
+
break;
|
|
166
|
+
case NodeType.Leaf:
|
|
167
|
+
if (path !== key) return undefined;
|
|
168
|
+
return value;
|
|
169
|
+
default:
|
|
170
|
+
throw new InternalError(`Unknown MPTree node type: ${type}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Retrieve value from Merkle Patricia Tree
|
|
177
|
+
* @param key - The key of the element to retrieve
|
|
178
|
+
* @returns Value associated to the specified key
|
|
179
|
+
*/
|
|
180
|
+
get(key: Encoded.Generic<E>): TxUnpacked & { tag: T } | undefined {
|
|
181
|
+
const d = this.#getRaw(decode(key).toString('hex'));
|
|
182
|
+
if (d == null) return d;
|
|
183
|
+
return this.#unpackTx(encode(d, Encoding.Transaction), this.#tag);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
#entriesRaw(): Array<[string, Buffer]> {
|
|
187
|
+
const entries: Array<[string, Buffer]> = [];
|
|
188
|
+
const rec = (searchFrom: string, key: string): void => {
|
|
189
|
+
const node = this.#nodes[searchFrom];
|
|
190
|
+
if (node == null) {
|
|
191
|
+
if (!this.isComplete) return;
|
|
192
|
+
throw new InternalError('Can\'t find node in complete tree');
|
|
193
|
+
}
|
|
194
|
+
const { type, value, path } = MPTree.#parseNode(node);
|
|
195
|
+
switch (type) {
|
|
196
|
+
case NodeType.Branch:
|
|
197
|
+
node
|
|
198
|
+
.slice(0, 16)
|
|
199
|
+
.map((t, idx): [typeof t, number] => [t, idx])
|
|
200
|
+
.filter(([t]) => t.length)
|
|
201
|
+
.forEach(([t, idx]) => rec(t.toString('hex'), key + idx.toString(16)));
|
|
202
|
+
if (value != null) entries.push([key, value]);
|
|
203
|
+
break;
|
|
204
|
+
case NodeType.Extension:
|
|
205
|
+
rec(node[1].toString('hex'), key + path);
|
|
206
|
+
break;
|
|
207
|
+
case NodeType.Leaf:
|
|
208
|
+
if (value == null) throw new UnexpectedTsError();
|
|
209
|
+
entries.push([key + path, value]);
|
|
210
|
+
break;
|
|
211
|
+
default:
|
|
212
|
+
throw new InternalError(`Unknown MPTree node type: ${type}`);
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
rec(this.#rootHash, '');
|
|
216
|
+
return entries;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
toObject(): Record<Encoded.Generic<E>, TxUnpacked & { tag: T }> {
|
|
220
|
+
return Object.fromEntries(this.#entriesRaw()
|
|
221
|
+
// TODO: remove after resolving https://github.com/aeternity/aeternity/issues/4066
|
|
222
|
+
.filter(([k]) => this.#encoding !== Encoding.ContractAddress || k.length !== 66)
|
|
223
|
+
.map(([k, v]) => [
|
|
224
|
+
encode(Buffer.from(k, 'hex'), this.#encoding),
|
|
225
|
+
this.#unpackTx(encode(v, Encoding.Transaction), this.#tag),
|
|
226
|
+
])) as Record<Encoded.Generic<E>, TxUnpacked & { tag: T }>;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export default function genMPTreeField<E extends Encoding, T extends Tag>(encoding: E, tag: T): {
|
|
231
|
+
serialize: (value: MPTree<E, T>) => MPTreeBinary;
|
|
232
|
+
deserialize: (value: MPTreeBinary, o: { unpackTx: typeof unpackTx }) => MPTree<E, T>;
|
|
233
|
+
} {
|
|
234
|
+
return {
|
|
235
|
+
serialize(value) {
|
|
236
|
+
return value.serialize();
|
|
237
|
+
},
|
|
238
|
+
|
|
239
|
+
deserialize(value, { unpackTx }) {
|
|
240
|
+
return new MPTree(value, encoding, tag, unpackTx);
|
|
241
|
+
},
|
|
242
|
+
};
|
|
243
|
+
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import BigNumber from 'bignumber.js';
|
|
2
2
|
import { getMinimumNameFee } from '../helpers';
|
|
3
3
|
import { InsufficientNameFeeError } from '../../../utils/errors';
|
|
4
|
-
import { Int } from './u-int';
|
|
5
4
|
import coinAmount from './coin-amount';
|
|
6
|
-
import { AensName } from '../constants';
|
|
5
|
+
import { AensName, Int } from '../constants';
|
|
7
6
|
|
|
8
7
|
export default {
|
|
9
8
|
...coinAmount,
|
|
@@ -26,7 +25,8 @@ export default {
|
|
|
26
25
|
serialize(
|
|
27
26
|
value: Int | undefined,
|
|
28
27
|
txFields: { name: AensName } & Parameters<typeof coinAmount['serialize']>[1],
|
|
28
|
+
parameters: Parameters<typeof coinAmount['serialize']>[2],
|
|
29
29
|
): Buffer {
|
|
30
|
-
return coinAmount.serialize.call(this, value, txFields);
|
|
30
|
+
return coinAmount.serialize.call(this, value, txFields, parameters);
|
|
31
31
|
},
|
|
32
32
|
};
|
|
@@ -3,7 +3,7 @@ import { produceNameId, isNameValid } from '../helpers';
|
|
|
3
3
|
import address from './address';
|
|
4
4
|
import { Encoded, Encoding } from '../../../utils/encoder';
|
|
5
5
|
|
|
6
|
-
const addressName = address
|
|
6
|
+
const addressName = address(Encoding.Name);
|
|
7
7
|
|
|
8
8
|
export default {
|
|
9
9
|
...addressName,
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { isAccountNotFoundError } from '../../../utils/other';
|
|
2
|
+
import shortUInt from './short-u-int';
|
|
3
|
+
import Node from '../../../Node';
|
|
4
|
+
import { ArgumentError } from '../../../utils/errors';
|
|
5
|
+
import { NextNonceStrategy } from '../../../apis/node';
|
|
6
|
+
|
|
7
|
+
export default function genNonceField<SenderKey extends string>(senderKey: SenderKey): {
|
|
8
|
+
serialize: (value: number) => Buffer;
|
|
9
|
+
// TODO: (value: number) => Promise<number> | (value: undefined, ...) => Promise<number>
|
|
10
|
+
prepare: (
|
|
11
|
+
value: number | undefined,
|
|
12
|
+
params: {},
|
|
13
|
+
// TODO: replace `string` with AddressEncodings
|
|
14
|
+
options: { [key in SenderKey]: string } & { strategy?: NextNonceStrategy; onNode?: Node },
|
|
15
|
+
) => Promise<number>;
|
|
16
|
+
deserialize: (value: Buffer) => number;
|
|
17
|
+
senderKey: string;
|
|
18
|
+
} {
|
|
19
|
+
return {
|
|
20
|
+
...shortUInt,
|
|
21
|
+
|
|
22
|
+
async prepare(value, params, options) {
|
|
23
|
+
if (value != null) return value;
|
|
24
|
+
const { onNode, strategy } = options;
|
|
25
|
+
const senderId = options[senderKey];
|
|
26
|
+
const requirement = 'provided (or provide `nonce` instead)';
|
|
27
|
+
if (onNode == null) throw new ArgumentError('onNode', requirement, onNode);
|
|
28
|
+
if (senderId == null) throw new ArgumentError('senderId', requirement, senderId);
|
|
29
|
+
return (
|
|
30
|
+
await onNode.getAccountNextNonce(senderId.replace(/^ok_/, 'ak_'), { strategy })
|
|
31
|
+
.catch((error) => {
|
|
32
|
+
if (!isAccountNotFoundError(error)) throw error;
|
|
33
|
+
return { nextNonce: 1 };
|
|
34
|
+
})
|
|
35
|
+
).nextNonce;
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
senderKey,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -2,9 +2,9 @@ import { NamePointer as NamePointerString } from '../../../apis/node';
|
|
|
2
2
|
import { toBytes } from '../../../utils/bytes';
|
|
3
3
|
import { Encoded } from '../../../utils/encoder';
|
|
4
4
|
import { IllegalArgumentError } from '../../../utils/errors';
|
|
5
|
-
import address, { AddressEncodings } from './address';
|
|
5
|
+
import address, { AddressEncodings, idTagToEncoding } from './address';
|
|
6
6
|
|
|
7
|
-
const addressAny = address
|
|
7
|
+
const addressAny = address(...idTagToEncoding);
|
|
8
8
|
|
|
9
9
|
// TODO: remove after fixing node types
|
|
10
10
|
type NamePointer = NamePointerString & {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ArgumentError } from '../../../utils/errors';
|
|
2
|
+
import shortUInt from './short-u-int';
|
|
3
|
+
|
|
4
|
+
export default function genShortUIntConstField<
|
|
5
|
+
Value extends number, Optional extends boolean = false,
|
|
6
|
+
>(constValue: Value, optional?: Optional): {
|
|
7
|
+
serialize: Optional extends true ? (value?: Value) => Buffer : (value: Value) => Buffer;
|
|
8
|
+
deserialize: (value: Buffer) => Value;
|
|
9
|
+
constValue: Value;
|
|
10
|
+
constValueOptional: boolean;
|
|
11
|
+
} {
|
|
12
|
+
return {
|
|
13
|
+
serialize(value?: Value) {
|
|
14
|
+
if ((optional !== true || value != null) && value !== constValue) {
|
|
15
|
+
throw new ArgumentError('ShortUIntConst', constValue, value);
|
|
16
|
+
}
|
|
17
|
+
return shortUInt.serialize(constValue);
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
deserialize(buf) {
|
|
21
|
+
const value = shortUInt.deserialize(buf);
|
|
22
|
+
if (value !== constValue) throw new ArgumentError('ShortUIntConst', constValue, value);
|
|
23
|
+
return constValue;
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
constValue,
|
|
27
|
+
|
|
28
|
+
constValueOptional: optional === true,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import shortUInt from './short-u-int';
|
|
2
|
+
import Node from '../../../Node';
|
|
3
|
+
import { ArgumentError } from '../../../utils/errors';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
...shortUInt,
|
|
7
|
+
|
|
8
|
+
serialize(value: number | undefined): Buffer {
|
|
9
|
+
return shortUInt.serialize(value ?? 0);
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
async prepare(
|
|
13
|
+
value: number | undefined,
|
|
14
|
+
params: {},
|
|
15
|
+
// TODO: { absoluteTtl: true } | { absoluteTtl: false, onNode: Node }
|
|
16
|
+
{ onNode, absoluteTtl }: { onNode?: Node; absoluteTtl?: boolean },
|
|
17
|
+
) {
|
|
18
|
+
if (absoluteTtl !== true && value !== 0 && value != null) {
|
|
19
|
+
if (onNode == null) throw new ArgumentError('onNode', 'provided', onNode);
|
|
20
|
+
value += (await onNode.getCurrentKeyBlock()).height;
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
|
2
1
|
import { readInt } from '../helpers';
|
|
2
|
+
import { Int } from '../constants';
|
|
3
3
|
import { ArgumentError } from '../../../utils/errors';
|
|
4
4
|
import { toBytes } from '../../../utils/bytes';
|
|
5
5
|
|
|
6
|
-
export type Int = number | string | BigNumber;
|
|
7
|
-
|
|
8
6
|
export default {
|
|
9
7
|
serialize(value: Int): Buffer {
|
|
10
8
|
if (value < 0) throw new ArgumentError('value', 'greater or equal to 0', value);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Tag } from '../constants';
|
|
2
|
+
import { encode, Encoding, decode } from '../../../utils/encoder';
|
|
3
|
+
import type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index';
|
|
4
|
+
|
|
5
|
+
type TagWrapping = Tag.AccountsMtree | Tag.CallsMtree | Tag.ChannelsMtree | Tag.ContractsMtree
|
|
6
|
+
| Tag.NameserviceMtree | Tag.OraclesMtree;
|
|
7
|
+
|
|
8
|
+
export default function genWrappedField<T extends TagWrapping>(tag: T): {
|
|
9
|
+
serialize: (
|
|
10
|
+
// TODO: replace with `(TxParams & { tag: T })['payload']`,
|
|
11
|
+
// but fix TS2502 value is referenced directly or indirectly in its own type annotation
|
|
12
|
+
value: any, options: { buildTx: typeof buildTxType }
|
|
13
|
+
) => Buffer;
|
|
14
|
+
deserialize: (
|
|
15
|
+
value: Buffer, options: { unpackTx: typeof unpackTxType },
|
|
16
|
+
// TODO: replace with `(TxUnpacked & { tag: T })['payload']`,
|
|
17
|
+
// TS2577 Return type annotation circularly references itself
|
|
18
|
+
) => any;
|
|
19
|
+
recursiveType: true;
|
|
20
|
+
} {
|
|
21
|
+
return {
|
|
22
|
+
serialize(payload, { buildTx }) {
|
|
23
|
+
return decode(buildTx({ tag, payload }));
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
deserialize(buffer, { unpackTx }) {
|
|
27
|
+
return unpackTx<TagWrapping>(encode(buffer, Encoding.Transaction), tag).payload;
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
recursiveType: true,
|
|
31
|
+
};
|
|
32
|
+
}
|