@aeternity/aepp-sdk 13.0.0-alpha.0 → 13.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/aesophia_cli +0 -0
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +5595 -2249
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.mjs.map +1 -1
- package/es/AeSdkAepp.mjs.map +1 -1
- package/es/AeSdkBase.d.ts +3 -3
- package/es/AeSdkBase.mjs +4 -0
- package/es/AeSdkBase.mjs.map +1 -1
- package/es/AeSdkMethods.d.ts +12 -14
- package/es/AeSdkMethods.mjs +6 -8
- package/es/AeSdkMethods.mjs.map +1 -1
- package/es/AeSdkWallet.mjs +1 -1
- package/es/AeSdkWallet.mjs.map +1 -1
- package/es/Node.d.ts +9 -4
- package/es/Node.mjs +12 -6
- package/es/Node.mjs.map +1 -1
- package/es/account/Base.d.ts +13 -8
- package/es/account/Base.mjs +0 -17
- package/es/account/Base.mjs.map +1 -1
- package/es/account/Generalized.mjs +14 -25
- package/es/account/Generalized.mjs.map +1 -1
- package/es/account/Ledger.mjs +2 -1
- package/es/account/Ledger.mjs.map +1 -1
- package/es/account/LedgerFactory.mjs.map +1 -1
- package/es/account/Memory.d.ts +2 -1
- package/es/account/Memory.mjs +11 -22
- package/es/account/Memory.mjs.map +1 -1
- package/es/account/Rpc.mjs.map +1 -1
- package/es/aens.d.ts +12 -14
- package/es/aens.mjs +22 -32
- package/es/aens.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/Browser.mjs +0 -16
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -20
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -6
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
- package/es/aepp-wallet-communication/schema.mjs.map +1 -1
- package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
- package/es/apis/compiler/compiler.d.ts +1 -1
- package/es/apis/compiler/compiler.mjs +4 -20
- package/es/apis/compiler/compiler.mjs.map +1 -1
- package/es/apis/compiler/models/index.d.ts +3 -2
- package/es/apis/compiler/models/index.mjs.map +1 -1
- package/es/apis/compiler/models/mappers.d.ts +1 -1
- package/es/apis/compiler/models/mappers.mjs +19 -2
- package/es/apis/compiler/models/mappers.mjs.map +1 -1
- package/es/apis/node/models/index.d.ts +15 -15
- package/es/apis/node/models/index.mjs.map +1 -1
- package/es/apis/node/models/mappers.d.ts +1 -1
- package/es/apis/node/models/mappers.mjs +2 -1
- package/es/apis/node/models/mappers.mjs.map +1 -1
- package/es/apis/node/models/parameters.d.ts +2 -2
- package/es/apis/node/models/parameters.mjs +2 -2
- package/es/apis/node/models/parameters.mjs.map +1 -1
- package/es/apis/node/node.mjs +3 -19
- package/es/apis/node/node.mjs.map +1 -1
- package/es/chain.d.ts +17 -9
- package/es/chain.mjs +23 -23
- package/es/chain.mjs.map +1 -1
- package/es/channel/Base.d.ts +27 -9
- package/es/channel/Base.mjs +27 -27
- package/es/channel/Base.mjs.map +1 -1
- package/es/channel/Contract.d.ts +8 -7
- package/es/channel/Contract.mjs +8 -21
- package/es/channel/Contract.mjs.map +1 -1
- package/es/channel/Spend.d.ts +5 -1
- package/es/channel/Spend.mjs +4 -18
- package/es/channel/Spend.mjs.map +1 -1
- package/es/channel/handlers.mjs +16 -26
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/internal.d.ts +19 -2
- package/es/channel/internal.mjs +22 -20
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Contract.d.ts +43 -123
- package/es/contract/Contract.mjs +230 -250
- package/es/contract/Contract.mjs.map +1 -1
- package/es/contract/compiler/Base.d.ts +74 -0
- package/es/contract/compiler/Base.mjs +5 -0
- package/es/contract/compiler/Base.mjs.map +1 -0
- package/es/contract/compiler/Cli.d.ts +23 -0
- package/es/contract/compiler/Cli.mjs +149 -0
- package/es/contract/compiler/Cli.mjs.map +1 -0
- package/es/contract/compiler/Http.d.ts +32 -0
- package/es/contract/compiler/Http.mjs +94 -0
- package/es/contract/compiler/Http.mjs.map +1 -0
- package/es/contract/compiler/HttpNode.d.ts +17 -0
- package/es/contract/compiler/HttpNode.mjs +26 -0
- package/es/contract/compiler/HttpNode.mjs.map +1 -0
- package/es/contract/compiler/getFileSystem.d.ts +6 -0
- package/es/contract/compiler/getFileSystem.mjs +40 -0
- package/es/contract/compiler/getFileSystem.mjs.map +1 -0
- package/es/contract/delegation-signature.d.ts +43 -0
- package/es/contract/delegation-signature.mjs +45 -0
- package/es/contract/delegation-signature.mjs.map +1 -0
- package/es/contract/ga.d.ts +27 -10
- package/es/contract/ga.mjs +63 -29
- package/es/contract/ga.mjs.map +1 -1
- package/es/index-browser.d.ts +40 -0
- package/es/index-browser.mjs +41 -0
- package/es/index-browser.mjs.map +1 -0
- package/es/index.d.ts +4 -38
- package/es/index.mjs +4 -53
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +12 -17
- package/es/oracle.mjs +29 -49
- package/es/oracle.mjs.map +1 -1
- package/es/spend.d.ts +19 -27
- package/es/spend.mjs +21 -46
- package/es/spend.mjs.map +1 -1
- package/es/tx/builder/SchemaTypes.d.ts +37 -0
- package/es/tx/builder/SchemaTypes.mjs +2 -0
- package/es/tx/builder/SchemaTypes.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +31 -2
- package/es/tx/builder/constants.mjs +34 -3
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types/abi-version.d.ts +19 -0
- package/es/tx/builder/field-types/abi-version.mjs +40 -0
- package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
- package/es/tx/builder/field-types/address.d.ts +5 -6
- package/es/tx/builder/field-types/address.mjs +17 -8
- package/es/tx/builder/field-types/address.mjs.map +1 -1
- package/es/tx/builder/field-types/array.d.ts +7 -0
- package/es/tx/builder/field-types/array.mjs +11 -0
- package/es/tx/builder/field-types/array.mjs.map +1 -0
- package/es/tx/builder/field-types/boolean.d.ts +6 -0
- package/es/tx/builder/field-types/boolean.mjs +13 -0
- package/es/tx/builder/field-types/boolean.mjs.map +1 -0
- package/es/tx/builder/field-types/coin-amount.d.ts +4 -5
- package/es/tx/builder/field-types/coin-amount.mjs +4 -5
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
- package/es/tx/builder/field-types/ct-version.d.ts +49 -0
- package/es/tx/builder/field-types/ct-version.mjs +76 -0
- package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
- package/es/tx/builder/field-types/deposit.d.ts +3 -2
- package/es/tx/builder/field-types/deposit.mjs +3 -2
- package/es/tx/builder/field-types/deposit.mjs.map +1 -1
- package/es/tx/builder/field-types/encoded.d.ts +6 -0
- package/es/tx/builder/field-types/encoded.mjs +21 -0
- package/es/tx/builder/field-types/encoded.mjs.map +1 -0
- package/es/tx/builder/field-types/entry.d.ts +11 -0
- package/es/tx/builder/field-types/entry.mjs +34 -0
- package/es/tx/builder/field-types/entry.mjs.map +1 -0
- package/es/tx/builder/field-types/enumeration.d.ts +5 -3
- package/es/tx/builder/field-types/enumeration.mjs +11 -2
- package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
- package/es/tx/builder/field-types/fee.d.ts +12 -7
- package/es/tx/builder/field-types/fee.mjs +28 -20
- package/es/tx/builder/field-types/fee.mjs.map +1 -1
- package/es/tx/builder/field-types/field.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-limit.d.ts +7 -3
- package/es/tx/builder/field-types/gas-limit.mjs +13 -8
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-price.d.ts +3 -1
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
- package/es/tx/builder/field-types/index.d.ts +107 -30
- package/es/tx/builder/field-types/index.mjs +38 -12
- package/es/tx/builder/field-types/index.mjs.map +1 -1
- package/es/tx/builder/field-types/map.d.ts +13 -0
- package/es/tx/builder/field-types/map.mjs +49 -0
- package/es/tx/builder/field-types/map.mjs.map +1 -0
- package/es/tx/builder/field-types/mptree.d.ts +42 -0
- package/es/tx/builder/field-types/mptree.mjs +266 -0
- package/es/tx/builder/field-types/mptree.mjs.map +1 -0
- package/es/tx/builder/field-types/name-fee.d.ts +2 -3
- package/es/tx/builder/field-types/name-fee.mjs +2 -2
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
- package/es/tx/builder/field-types/name-id.mjs +2 -1
- package/es/tx/builder/field-types/name-id.mjs.map +1 -1
- package/es/tx/builder/field-types/name.mjs.map +1 -1
- package/es/tx/builder/field-types/nonce.d.ts +14 -0
- package/es/tx/builder/field-types/nonce.mjs +29 -0
- package/es/tx/builder/field-types/nonce.mjs.map +1 -0
- package/es/tx/builder/field-types/pointers.mjs +2 -2
- package/es/tx/builder/field-types/pointers.mjs.map +1 -1
- package/es/tx/builder/field-types/raw.d.ts +6 -0
- package/es/tx/builder/field-types/raw.mjs +13 -0
- package/es/tx/builder/field-types/raw.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int-const.d.ts +7 -0
- package/es/tx/builder/field-types/short-u-int-const.mjs +20 -0
- package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
- package/es/tx/builder/field-types/string.d.ts +6 -0
- package/es/tx/builder/field-types/string.mjs +10 -0
- package/es/tx/builder/field-types/string.mjs.map +1 -0
- package/es/tx/builder/field-types/ttl.d.ts +11 -0
- package/es/tx/builder/field-types/ttl.mjs +21 -0
- package/es/tx/builder/field-types/ttl.mjs.map +1 -0
- package/es/tx/builder/field-types/u-int.d.ts +1 -2
- package/es/tx/builder/field-types/u-int.mjs.map +1 -1
- package/es/tx/builder/field-types/wrapped.d.ts +14 -0
- package/es/tx/builder/field-types/wrapped.mjs +22 -0
- package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +18 -36
- package/es/tx/builder/index.mjs +65 -236
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +2734 -1324
- package/es/tx/builder/schema.generated.d.ts +2011 -0
- package/es/tx/builder/schema.generated.mjs +2 -0
- package/es/tx/builder/schema.generated.mjs.map +1 -0
- package/es/tx/builder/schema.mjs +459 -223
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/execution-cost.d.ts +35 -0
- package/es/tx/execution-cost.mjs +123 -0
- package/es/tx/execution-cost.mjs.map +1 -0
- package/es/tx/transaction-signer.d.ts +6 -0
- package/es/tx/transaction-signer.mjs +27 -0
- package/es/tx/transaction-signer.mjs.map +1 -0
- package/es/tx/validator.d.ts +3 -5
- package/es/tx/validator.mjs +91 -153
- package/es/tx/validator.mjs.map +1 -1
- package/es/utils/amount-formatter.mjs +0 -16
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.d.ts +3 -2
- package/es/utils/autorest.mjs +43 -11
- package/es/utils/autorest.mjs.map +1 -1
- package/es/utils/bytes.mjs +1 -17
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.mjs +0 -16
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder.mjs.map +1 -1
- package/es/utils/errors.d.ts +16 -38
- package/es/utils/errors.mjs +3 -43
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.mjs.map +1 -1
- package/es/utils/other.mjs.map +1 -1
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.mjs +0 -17
- package/es/utils/string.mjs.map +1 -1
- package/package.json +52 -40
- package/src/AeSdkBase.ts +6 -3
- package/src/AeSdkMethods.ts +12 -18
- package/src/AeSdkWallet.ts +1 -1
- package/src/Node.ts +23 -9
- package/src/account/Base.ts +13 -24
- package/src/account/Generalized.ts +9 -24
- package/src/account/Ledger.ts +1 -1
- package/src/account/Memory.ts +15 -22
- package/src/aens.ts +34 -49
- package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -24
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
- package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
- package/src/aepp-wallet-communication/rpc/types.ts +6 -2
- package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
- package/src/apis/compiler/compiler.ts +3 -27
- package/src/apis/compiler/models/index.ts +3 -2
- package/src/apis/compiler/models/mappers.ts +15 -2
- package/src/apis/node/models/index.ts +16 -15
- package/src/apis/node/models/mappers.ts +2 -1
- package/src/apis/node/models/parameters.ts +2 -2
- package/src/apis/node/node.ts +3 -27
- package/src/chain.ts +33 -30
- package/src/channel/Base.ts +39 -31
- package/src/channel/Contract.ts +18 -32
- package/src/channel/Spend.ts +8 -18
- package/src/channel/handlers.ts +14 -26
- package/src/channel/internal.ts +41 -23
- package/src/contract/Contract.ts +188 -228
- package/src/contract/compiler/Base.ts +87 -0
- package/src/contract/compiler/Cli.ts +128 -0
- package/src/contract/compiler/Http.ts +105 -0
- package/src/contract/compiler/HttpNode.ts +26 -0
- package/src/contract/compiler/getFileSystem.ts +42 -0
- package/src/contract/delegation-signature.ts +56 -0
- package/src/contract/ga.ts +61 -37
- package/src/index-browser.ts +50 -0
- package/src/index.ts +4 -56
- package/src/oracle.ts +47 -57
- package/src/spend.ts +34 -68
- package/src/tx/builder/SchemaTypes.ts +79 -0
- package/src/tx/builder/constants.ts +34 -3
- package/src/tx/builder/field-types/abi-version.ts +44 -0
- package/src/tx/builder/field-types/address.ts +23 -13
- package/src/tx/builder/field-types/array.ts +19 -0
- package/src/tx/builder/field-types/boolean.ts +9 -0
- package/src/tx/builder/field-types/coin-amount.ts +8 -5
- package/src/tx/builder/field-types/ct-version.ts +83 -0
- package/src/tx/builder/field-types/deposit.ts +4 -2
- package/src/tx/builder/field-types/encoded.ts +27 -0
- package/src/tx/builder/field-types/entry.ts +36 -0
- package/src/tx/builder/field-types/enumeration.ts +15 -4
- package/src/tx/builder/field-types/fee.ts +41 -19
- package/src/tx/builder/field-types/gas-limit.ts +13 -8
- package/src/tx/builder/field-types/index.ts +60 -17
- package/src/tx/builder/field-types/map.ts +45 -0
- package/src/tx/builder/field-types/mptree.ts +243 -0
- package/src/tx/builder/field-types/name-fee.ts +3 -3
- package/src/tx/builder/field-types/name-id.ts +1 -1
- package/src/tx/builder/field-types/nonce.ts +40 -0
- package/src/tx/builder/field-types/pointers.ts +2 -2
- package/src/tx/builder/field-types/raw.ts +9 -0
- package/src/tx/builder/field-types/short-u-int-const.ts +30 -0
- package/src/tx/builder/field-types/string.ts +11 -0
- package/src/tx/builder/field-types/ttl.ts +24 -0
- package/src/tx/builder/field-types/u-int.ts +1 -3
- package/src/tx/builder/field-types/wrapped.ts +32 -0
- package/src/tx/builder/index.ts +82 -280
- package/src/tx/builder/schema.generated.ts +2013 -0
- package/src/tx/builder/schema.ts +536 -666
- package/src/tx/execution-cost.ts +146 -0
- package/src/tx/transaction-signer.ts +27 -0
- package/src/tx/validator.ts +100 -154
- package/src/utils/amount-formatter.ts +0 -16
- package/src/utils/autorest.ts +52 -11
- package/src/utils/bytes.ts +1 -17
- package/src/utils/crypto.ts +0 -16
- package/src/utils/errors.ts +18 -56
- package/src/utils/string.ts +0 -17
- package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
- package/types-legacy/ts4.2/AeSdkMethods.d.ts +12 -14
- package/types-legacy/ts4.2/Node.d.ts +8 -4
- package/types-legacy/ts4.2/account/Base.d.ts +13 -8
- package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
- package/types-legacy/ts4.2/aens.d.ts +12 -14
- package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
- package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
- package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
- package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
- package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
- package/types-legacy/ts4.2/chain.d.ts +17 -9
- package/types-legacy/ts4.2/channel/Base.d.ts +27 -9
- package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
- package/types-legacy/ts4.2/channel/Spend.d.ts +5 -1
- package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
- package/types-legacy/ts4.2/contract/Contract.d.ts +42 -122
- package/types-legacy/ts4.2/contract/compiler/Base.d.ts +74 -0
- package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
- package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
- package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
- package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
- package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
- package/types-legacy/ts4.2/contract/ga.d.ts +27 -10
- package/types-legacy/ts4.2/index-browser.d.ts +40 -0
- package/types-legacy/ts4.2/index.d.ts +4 -38
- package/types-legacy/ts4.2/oracle.d.ts +12 -17
- package/types-legacy/ts4.2/spend.d.ts +19 -27
- package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
- package/types-legacy/ts4.2/tx/builder/constants.d.ts +31 -2
- package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +19 -0
- package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
- package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +4 -5
- package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +72 -0
- package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +3 -2
- package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
- package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
- package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +12 -7
- package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +7 -3
- package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
- package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +113 -30
- package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
- package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +48 -0
- package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +2 -3
- package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
- package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
- package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
- package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
- package/types-legacy/ts4.2/tx/builder/index.d.ts +21 -36
- package/types-legacy/ts4.2/tx/builder/schema.d.ts +2971 -2926
- package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
- package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
- package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
- package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
- package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
- package/types-legacy/ts4.2/utils/errors.d.ts +16 -38
- package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
- package/types-legacy/ts4.5/AeSdkMethods.d.ts +12 -14
- package/types-legacy/ts4.5/Node.d.ts +8 -4
- package/types-legacy/ts4.5/account/Base.d.ts +13 -8
- package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
- package/types-legacy/ts4.5/aens.d.ts +12 -14
- package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
- package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
- package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
- package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
- package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
- package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
- package/types-legacy/ts4.5/chain.d.ts +17 -9
- package/types-legacy/ts4.5/channel/Base.d.ts +27 -9
- package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
- package/types-legacy/ts4.5/channel/Spend.d.ts +5 -1
- package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
- package/types-legacy/ts4.5/contract/Contract.d.ts +42 -122
- package/types-legacy/ts4.5/contract/compiler/Base.d.ts +74 -0
- package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
- package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
- package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
- package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
- package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
- package/types-legacy/ts4.5/contract/ga.d.ts +27 -10
- package/types-legacy/ts4.5/index-browser.d.ts +40 -0
- package/types-legacy/ts4.5/index.d.ts +4 -38
- package/types-legacy/ts4.5/oracle.d.ts +12 -17
- package/types-legacy/ts4.5/spend.d.ts +19 -27
- package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
- package/types-legacy/ts4.5/tx/builder/constants.d.ts +31 -2
- package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +19 -0
- package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
- package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +4 -5
- package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +72 -0
- package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +3 -2
- package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
- package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
- package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +12 -7
- package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +7 -3
- package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
- package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +113 -30
- package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
- package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +48 -0
- package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +2 -3
- package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
- package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
- package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
- package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
- package/types-legacy/ts4.5/tx/builder/index.d.ts +21 -36
- package/types-legacy/ts4.5/tx/builder/schema.d.ts +2971 -2926
- package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
- package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
- package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
- package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
- package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
- package/types-legacy/ts4.5/utils/errors.d.ts +16 -38
- package/es/contract/CompilerHttp.d.ts +0 -18
- package/es/contract/CompilerHttp.mjs +0 -63
- package/es/contract/CompilerHttp.mjs.map +0 -1
- package/es/tx/builder/field-types/addresses.d.ts +0 -6
- package/es/tx/builder/field-types/addresses.mjs +0 -13
- package/es/tx/builder/field-types/addresses.mjs.map +0 -1
- package/es/tx/index.d.ts +0 -34
- package/es/tx/index.mjs +0 -172
- package/es/tx/index.mjs.map +0 -1
- package/es/utils/mptree.d.ts +0 -26
- package/es/utils/mptree.mjs +0 -143
- package/es/utils/mptree.mjs.map +0 -1
- package/src/apis/compiler/code-model-v4.yaml +0 -2442
- package/src/apis/node/code-model-v4.yaml +0 -10080
- package/src/contract/CompilerHttp.ts +0 -67
- package/src/tx/builder/field-types/addresses.ts +0 -18
- package/src/tx/index.ts +0 -196
- package/src/utils/mptree.ts +0 -145
- package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
- package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
- package/types-legacy/ts4.2/tx/index.d.ts +0 -34
- package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
- package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
- package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
- package/types-legacy/ts4.5/tx/index.d.ts +0 -34
- package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
package/es/contract/Contract.mjs
CHANGED
|
@@ -1,24 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Copyright (c) 2022 aeternity developers
|
|
8
|
-
*
|
|
9
|
-
* Permission to use, copy, modify, and/or distribute this software for any
|
|
10
|
-
* purpose with or without fee is hereby granted, provided that the above
|
|
11
|
-
* copyright notice and this permission notice appear in all copies.
|
|
12
|
-
*
|
|
13
|
-
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
14
|
-
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
15
|
-
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
16
|
-
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
17
|
-
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
18
|
-
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
19
|
-
* PERFORMANCE OF THIS SOFTWARE.
|
|
20
|
-
*/
|
|
21
|
-
|
|
1
|
+
import _classPrivateFieldSet from "@babel/runtime-corejs3/helpers/classPrivateFieldSet";
|
|
2
|
+
import _classPrivateFieldGet from "@babel/runtime-corejs3/helpers/classPrivateFieldGet";
|
|
3
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
4
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
5
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
6
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
|
22
7
|
/**
|
|
23
8
|
* Contract module - routines to interact with the æternity contract
|
|
24
9
|
*
|
|
@@ -32,15 +17,16 @@ const {
|
|
|
32
17
|
} = _aeternityAeppCalldata;
|
|
33
18
|
import { DRY_RUN_ACCOUNT } from "../tx/builder/schema.mjs";
|
|
34
19
|
import { Tag } from "../tx/builder/constants.mjs";
|
|
35
|
-
import { buildContractIdByContractTx, unpackTx } from "../tx/builder/index.mjs";
|
|
36
|
-
import { _buildTx } from "../tx/index.mjs";
|
|
37
|
-
import { send } from "../spend.mjs";
|
|
20
|
+
import { buildContractIdByContractTx, unpackTx, buildTxAsync, buildTxHash } from "../tx/builder/index.mjs";
|
|
38
21
|
import { decode } from "../utils/encoder.mjs";
|
|
39
|
-
import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError, UnexpectedTsError, InternalError, NoWalletConnectedError } from "../utils/errors.mjs";
|
|
22
|
+
import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError as _TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError, UnexpectedTsError, InternalError, NoWalletConnectedError, ContractError } from "../utils/errors.mjs";
|
|
40
23
|
import { hash as calcHash } from "../utils/crypto.mjs";
|
|
41
|
-
import { getAccount, getContract, getContractByteCode,
|
|
42
|
-
|
|
43
|
-
|
|
24
|
+
import { getAccount, getContract, getContractByteCode, resolveName, txDryRun, sendTransaction } from "../chain.mjs";
|
|
25
|
+
var _getCallResult = /*#__PURE__*/new WeakSet();
|
|
26
|
+
var _sendAndProcess = /*#__PURE__*/new WeakSet();
|
|
27
|
+
var _getFunctionAci = /*#__PURE__*/new WeakSet();
|
|
28
|
+
var _getContractNameByEvent = /*#__PURE__*/new WeakSet();
|
|
29
|
+
var _aciContract = /*#__PURE__*/new WeakMap();
|
|
44
30
|
/**
|
|
45
31
|
* Generate contract ACI object with predefined js methods for contract usage - can be used for
|
|
46
32
|
* creating a reference to already deployed contracts
|
|
@@ -59,54 +45,6 @@ import { isNameValid, produceNameId } from "../tx/builder/helpers.mjs";
|
|
|
59
45
|
* stateful or not
|
|
60
46
|
*/
|
|
61
47
|
class Contract {
|
|
62
|
-
/**
|
|
63
|
-
* Helper to generate a signature to delegate
|
|
64
|
-
* - pre-claim/claim/transfer/revoke of a name to a contract.
|
|
65
|
-
* - register/extend/respond of an Oracle to a contract.
|
|
66
|
-
* @category contract
|
|
67
|
-
* @param ids - The list of id's to prepend
|
|
68
|
-
* @param _options - Options
|
|
69
|
-
* @param _options.omitAddress - Prepend delegation signature with an account address
|
|
70
|
-
* @param _options.onAccount - Account to use
|
|
71
|
-
* @returns Signature
|
|
72
|
-
* @example
|
|
73
|
-
* ```js
|
|
74
|
-
* const aeSdk = new AeSdk({ ... })
|
|
75
|
-
* const contract = await aeSdk.initializeContract({ address: 'ct_asd2ks...' })
|
|
76
|
-
* const aensName = 'example.chain'
|
|
77
|
-
* const onAccount = new MemoryAccount(...) // Sign with a specific account
|
|
78
|
-
* // Preclaim signature
|
|
79
|
-
* const preclaimSig = await contract.$createDelegationSignature([], { onAccount })
|
|
80
|
-
* // Claim, transfer and revoke signature
|
|
81
|
-
* const aensDelegationSig = await contract
|
|
82
|
-
* .$createDelegationSignature([aensName], { onAccount })
|
|
83
|
-
* ```
|
|
84
|
-
* @example
|
|
85
|
-
* ```js
|
|
86
|
-
* const aeSdk = new AeSdk({ ... })
|
|
87
|
-
* const contract = await aeSdk.initializeContract({ address: 'ct_asd2ks...' })
|
|
88
|
-
* const oracleQueryId = 'oq_...'
|
|
89
|
-
* const onAccount = new MemoryAccount(...) // Sign with a specific account
|
|
90
|
-
* // Oracle register and extend signature
|
|
91
|
-
* const oracleDelegationSig = await contract.$createDelegationSignature([], { onAccount })
|
|
92
|
-
* // Oracle respond signature
|
|
93
|
-
* const respondSig = await contract
|
|
94
|
-
* .$createDelegationSignature([oracleQueryId], { onAccount, omitAddress: true })
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
async $createDelegationSignature() {
|
|
98
|
-
let ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
99
|
-
let _options = arguments.length > 1 ? arguments[1] : undefined;
|
|
100
|
-
const options = {
|
|
101
|
-
...this.$options,
|
|
102
|
-
..._options
|
|
103
|
-
};
|
|
104
|
-
const contractId = this.$options.address;
|
|
105
|
-
if (options.onAccount == null) throw new IllegalArgumentError('Can\'t create delegation signature without account');
|
|
106
|
-
if (contractId == null) throw new MissingContractAddressError('Can\'t create delegation signature without address');
|
|
107
|
-
return options.onAccount.sign(concatBuffers([_Buffer.from(await options.onNode.getNetworkId()), ...(options.omitAddress === true ? [] : [decode(options.onAccount.address)]), ...ids.map(e => isNameValid(e) ? produceNameId(e) : e).map(e => decode(e)), decode(contractId)]), options);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
48
|
/**
|
|
111
49
|
* Compile contract
|
|
112
50
|
* @returns bytecode
|
|
@@ -114,56 +52,21 @@ class Contract {
|
|
|
114
52
|
async $compile() {
|
|
115
53
|
if (this.$options.bytecode != null) return this.$options.bytecode;
|
|
116
54
|
if (this.$options.sourceCode == null) throw new IllegalArgumentError('Can\'t compile without source code');
|
|
117
|
-
this.$options.
|
|
118
|
-
|
|
119
|
-
options: {
|
|
120
|
-
fileSystem: this.$options.fileSystem
|
|
121
|
-
}
|
|
122
|
-
})).bytecode;
|
|
55
|
+
if (this.$options.onCompiler == null) throw new IllegalArgumentError('Can\'t compile without compiler');
|
|
56
|
+
this.$options.bytecode = (await this.$options.onCompiler.compileBySourceCode(this.$options.sourceCode, this.$options.fileSystem)).bytecode;
|
|
123
57
|
return this.$options.bytecode;
|
|
124
58
|
}
|
|
125
|
-
|
|
126
|
-
let {
|
|
127
|
-
returnType,
|
|
128
|
-
returnValue
|
|
129
|
-
} = _ref;
|
|
130
|
-
let message;
|
|
131
|
-
switch (returnType) {
|
|
132
|
-
case 'ok':
|
|
133
|
-
return;
|
|
134
|
-
case 'revert':
|
|
135
|
-
message = this._calldata.decodeFateString(returnValue);
|
|
136
|
-
break;
|
|
137
|
-
case 'error':
|
|
138
|
-
message = decode(returnValue).toString();
|
|
139
|
-
break;
|
|
140
|
-
default:
|
|
141
|
-
throw new InternalError(`Unknown return type: ${returnType}`);
|
|
142
|
-
}
|
|
143
|
-
throw new NodeInvocationError(message, transaction);
|
|
144
|
-
}
|
|
145
|
-
async _sendAndProcess(tx, options) {
|
|
146
|
-
options = {
|
|
147
|
-
...this.$options,
|
|
148
|
-
...options
|
|
149
|
-
};
|
|
150
|
-
const txData = await send(tx, options);
|
|
151
|
-
const result = {
|
|
152
|
-
hash: txData.hash,
|
|
153
|
-
tx: unpackTx(txData.rawTx),
|
|
154
|
-
txData,
|
|
155
|
-
rawTx: txData.rawTx
|
|
156
|
-
};
|
|
157
|
-
if (txData.blockHeight == null) return result;
|
|
59
|
+
async $getCallResultByTxHash(hash, fnName, options) {
|
|
158
60
|
const {
|
|
159
61
|
callInfo
|
|
160
|
-
} = await this.$options.onNode.getTransactionInfoByHash(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
62
|
+
} = await this.$options.onNode.getTransactionInfoByHash(hash);
|
|
63
|
+
if (callInfo == null) {
|
|
64
|
+
throw new ContractError(`callInfo is not available for transaction ${hash}`);
|
|
65
|
+
}
|
|
66
|
+
const callInfoTyped = callInfo;
|
|
164
67
|
return {
|
|
165
|
-
...
|
|
166
|
-
result:
|
|
68
|
+
..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fnName, undefined, options),
|
|
69
|
+
result: callInfoTyped
|
|
167
70
|
};
|
|
168
71
|
}
|
|
169
72
|
async _estimateGas(name, params) {
|
|
@@ -189,17 +92,26 @@ class Contract {
|
|
|
189
92
|
* @returns deploy info
|
|
190
93
|
*/
|
|
191
94
|
async $deploy(params, options) {
|
|
192
|
-
var _opt$gasLimit;
|
|
193
|
-
const
|
|
95
|
+
var _opt$gasLimit, _other$result;
|
|
96
|
+
const {
|
|
97
|
+
callStatic,
|
|
98
|
+
...opt
|
|
99
|
+
} = {
|
|
194
100
|
...this.$options,
|
|
195
101
|
...options
|
|
196
102
|
};
|
|
197
103
|
if (this.$options.bytecode == null) await this.$compile();
|
|
198
|
-
if (
|
|
104
|
+
if (callStatic === true) return this.$call('init', params, {
|
|
105
|
+
...opt,
|
|
106
|
+
callStatic
|
|
107
|
+
});
|
|
199
108
|
if (this.$options.address != null) throw new DuplicateContractError();
|
|
109
|
+
if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t deploy without account');
|
|
200
110
|
const ownerId = opt.onAccount.address;
|
|
201
|
-
|
|
111
|
+
if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t deploy without bytecode');
|
|
112
|
+
const tx = await buildTxAsync({
|
|
202
113
|
...opt,
|
|
114
|
+
tag: Tag.ContractCreateTx,
|
|
203
115
|
gasLimit: (_opt$gasLimit = opt.gasLimit) !== null && _opt$gasLimit !== void 0 ? _opt$gasLimit : await this._estimateGas('init', params, opt),
|
|
204
116
|
callData: this._calldata.encode(this._name, 'init', params),
|
|
205
117
|
code: this.$options.bytecode,
|
|
@@ -209,9 +121,15 @@ class Contract {
|
|
|
209
121
|
const {
|
|
210
122
|
hash,
|
|
211
123
|
...other
|
|
212
|
-
} = await this.
|
|
124
|
+
} = await _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, 'init', {
|
|
125
|
+
...opt,
|
|
126
|
+
onAccount: opt.onAccount
|
|
127
|
+
});
|
|
213
128
|
return {
|
|
214
129
|
...other,
|
|
130
|
+
...(((_other$result = other.result) === null || _other$result === void 0 ? void 0 : _other$result.log) != null && {
|
|
131
|
+
decodedEvents: this.$decodeEvents(other.result.log, opt)
|
|
132
|
+
}),
|
|
215
133
|
owner: ownerId,
|
|
216
134
|
transaction: hash,
|
|
217
135
|
address: this.$options.address
|
|
@@ -223,16 +141,6 @@ class Contract {
|
|
|
223
141
|
* @param name - Function name
|
|
224
142
|
* @returns function ACI
|
|
225
143
|
*/
|
|
226
|
-
_getFunctionACI(name) {
|
|
227
|
-
const fn = this._aci.encodedAci.contract.functions.find(f => f.name === name);
|
|
228
|
-
if (fn != null) {
|
|
229
|
-
return fn;
|
|
230
|
-
}
|
|
231
|
-
if (name === 'init') return {
|
|
232
|
-
payable: false
|
|
233
|
-
};
|
|
234
|
-
throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
|
|
235
|
-
}
|
|
236
144
|
|
|
237
145
|
/**
|
|
238
146
|
* Call contract function
|
|
@@ -242,58 +150,63 @@ class Contract {
|
|
|
242
150
|
* @returns CallResult
|
|
243
151
|
*/
|
|
244
152
|
async $call(fn, params) {
|
|
153
|
+
var _opt$gasLimit2;
|
|
245
154
|
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
246
|
-
const
|
|
155
|
+
const {
|
|
156
|
+
callStatic,
|
|
157
|
+
top,
|
|
158
|
+
...opt
|
|
159
|
+
} = {
|
|
247
160
|
...this.$options,
|
|
248
161
|
...options
|
|
249
162
|
};
|
|
250
|
-
const
|
|
163
|
+
const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fn);
|
|
251
164
|
const contractId = this.$options.address;
|
|
252
165
|
const {
|
|
253
166
|
onNode
|
|
254
167
|
} = opt;
|
|
255
168
|
if (fn == null) throw new MissingFunctionNameError();
|
|
256
|
-
if (fn === 'init' &&
|
|
257
|
-
if (fn !== 'init' && opt.amount
|
|
169
|
+
if (fn === 'init' && callStatic !== true) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
|
|
170
|
+
if (fn !== 'init' && opt.amount != null && opt.amount > 0 && !fnAci.payable) {
|
|
171
|
+
throw new NotPayableFunctionError(opt.amount, fn);
|
|
172
|
+
}
|
|
258
173
|
let callerId;
|
|
259
174
|
try {
|
|
175
|
+
if (opt.onAccount == null) throw new InternalError('Use fallback account');
|
|
260
176
|
callerId = opt.onAccount.address;
|
|
261
177
|
} catch (error) {
|
|
262
|
-
const useFallbackAccount =
|
|
178
|
+
const useFallbackAccount = callStatic === true && (error instanceof _TypeError && error.message === 'Account should be an address (ak-prefixed string), or instance of AccountBase, got undefined instead' || error instanceof NoWalletConnectedError);
|
|
263
179
|
if (!useFallbackAccount) throw error;
|
|
264
180
|
callerId = DRY_RUN_ACCOUNT.pub;
|
|
265
181
|
}
|
|
266
182
|
const callData = this._calldata.encode(this._name, fn, params);
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
opt.
|
|
183
|
+
if (callStatic === true) {
|
|
184
|
+
if (opt.nonce == null && top != null) {
|
|
185
|
+
const topKey = typeof top === 'number' ? 'height' : 'hash';
|
|
186
|
+
opt.nonce = (await getAccount(callerId, {
|
|
187
|
+
[topKey]: top,
|
|
271
188
|
onNode
|
|
272
|
-
})).
|
|
189
|
+
})).nonce + 1;
|
|
273
190
|
}
|
|
274
191
|
const txOpt = {
|
|
275
192
|
...opt,
|
|
276
193
|
onNode,
|
|
277
194
|
callData
|
|
278
195
|
};
|
|
279
|
-
if (opt.nonce == null && opt.top != null) {
|
|
280
|
-
opt.nonce = (await getAccount(callerId, {
|
|
281
|
-
hash: opt.top,
|
|
282
|
-
onNode
|
|
283
|
-
})).nonce + 1;
|
|
284
|
-
}
|
|
285
196
|
let tx;
|
|
286
197
|
if (fn === 'init') {
|
|
287
198
|
if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t dry-run "init" without bytecode');
|
|
288
|
-
tx = await
|
|
199
|
+
tx = await buildTxAsync({
|
|
289
200
|
...txOpt,
|
|
201
|
+
tag: Tag.ContractCreateTx,
|
|
290
202
|
code: this.$options.bytecode,
|
|
291
203
|
ownerId: callerId
|
|
292
204
|
});
|
|
293
205
|
} else {
|
|
294
206
|
if (contractId == null) throw new MissingContractAddressError('Can\'t dry-run contract without address');
|
|
295
|
-
tx = await
|
|
207
|
+
tx = await buildTxAsync({
|
|
296
208
|
...txOpt,
|
|
209
|
+
tag: Tag.ContractCallTx,
|
|
297
210
|
callerId,
|
|
298
211
|
contractId
|
|
299
212
|
});
|
|
@@ -301,34 +214,39 @@ class Contract {
|
|
|
301
214
|
const {
|
|
302
215
|
callObj,
|
|
303
216
|
...dryRunOther
|
|
304
|
-
} = await txDryRun(tx, callerId,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
217
|
+
} = await txDryRun(tx, callerId, {
|
|
218
|
+
...opt,
|
|
219
|
+
top
|
|
220
|
+
});
|
|
221
|
+
if (callObj == null) {
|
|
222
|
+
throw new InternalError(`callObj is not available for transaction ${tx}`);
|
|
223
|
+
}
|
|
224
|
+
const callInfoTyped = callObj;
|
|
225
|
+
return {
|
|
311
226
|
...dryRunOther,
|
|
227
|
+
..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fn, tx, opt),
|
|
312
228
|
tx: unpackTx(tx),
|
|
313
|
-
result:
|
|
229
|
+
result: callInfoTyped,
|
|
230
|
+
rawTx: tx,
|
|
231
|
+
hash: buildTxHash(tx),
|
|
232
|
+
txData: undefined
|
|
314
233
|
};
|
|
315
|
-
} else {
|
|
316
|
-
var _opt$gasLimit2;
|
|
317
|
-
if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
|
|
318
|
-
const tx = await _buildTx(Tag.ContractCallTx, {
|
|
319
|
-
...opt,
|
|
320
|
-
gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
|
|
321
|
-
callerId,
|
|
322
|
-
contractId,
|
|
323
|
-
callData
|
|
324
|
-
});
|
|
325
|
-
res = await this._sendAndProcess(tx, opt);
|
|
326
|
-
}
|
|
327
|
-
if (opt.callStatic === true || res.txData.blockHeight != null) {
|
|
328
|
-
res.decodedResult = fnACI.returns != null && fnACI.returns !== 'unit' && fn !== 'init' && this._calldata.decode(this._name, fn, res.result.returnValue);
|
|
329
|
-
res.decodedEvents = this.$decodeEvents(res.result.log, opt);
|
|
330
234
|
}
|
|
331
|
-
|
|
235
|
+
if (top != null) throw new IllegalArgumentError('Can\'t handle `top` option in on-chain contract call');
|
|
236
|
+
if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
|
|
237
|
+
const tx = await buildTxAsync({
|
|
238
|
+
...opt,
|
|
239
|
+
tag: Tag.ContractCallTx,
|
|
240
|
+
gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
|
|
241
|
+
callerId,
|
|
242
|
+
contractId,
|
|
243
|
+
callData
|
|
244
|
+
});
|
|
245
|
+
if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t call contract on chain without account');
|
|
246
|
+
return _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, fn, {
|
|
247
|
+
...opt,
|
|
248
|
+
onAccount: opt.onAccount
|
|
249
|
+
});
|
|
332
250
|
}
|
|
333
251
|
|
|
334
252
|
/**
|
|
@@ -339,47 +257,6 @@ class Contract {
|
|
|
339
257
|
* @throws {@link MissingEventDefinitionError}
|
|
340
258
|
* @throws {@link AmbiguousEventDefinitionError}
|
|
341
259
|
*/
|
|
342
|
-
_getContractNameByEvent(ctAddress, nameHash, _ref2) {
|
|
343
|
-
let {
|
|
344
|
-
contractAddressToName
|
|
345
|
-
} = _ref2;
|
|
346
|
-
const addressToName = {
|
|
347
|
-
...this.$options.contractAddressToName,
|
|
348
|
-
...contractAddressToName
|
|
349
|
-
};
|
|
350
|
-
if (addressToName[ctAddress] != null) return addressToName[ctAddress];
|
|
351
|
-
|
|
352
|
-
// TODO: consider using a third-party library
|
|
353
|
-
const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
354
|
-
const matchedEvents = [this._aci.encodedAci, ...this._aci.externalEncodedAci].filter(_ref3 => {
|
|
355
|
-
let {
|
|
356
|
-
contract
|
|
357
|
-
} = _ref3;
|
|
358
|
-
return contract === null || contract === void 0 ? void 0 : contract.event;
|
|
359
|
-
}).map(_ref4 => {
|
|
360
|
-
let {
|
|
361
|
-
contract
|
|
362
|
-
} = _ref4;
|
|
363
|
-
return [contract.name, contract.event.variant];
|
|
364
|
-
}).map(_ref5 => {
|
|
365
|
-
let [name, events] = _ref5;
|
|
366
|
-
return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
|
|
367
|
-
}).flat().filter(_ref6 => {
|
|
368
|
-
let [, eventName] = _ref6;
|
|
369
|
-
return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
|
|
370
|
-
}).filter((_ref7, idx, arr) => {
|
|
371
|
-
let [,, type] = _ref7;
|
|
372
|
-
return !arr.slice(0, idx).some(el => isEqual(el[2], type));
|
|
373
|
-
});
|
|
374
|
-
switch (matchedEvents.length) {
|
|
375
|
-
case 0:
|
|
376
|
-
throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
|
|
377
|
-
case 1:
|
|
378
|
-
return matchedEvents[0][0];
|
|
379
|
-
default:
|
|
380
|
-
throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
260
|
|
|
384
261
|
/**
|
|
385
262
|
* Decode Events
|
|
@@ -396,7 +273,7 @@ class Contract {
|
|
|
396
273
|
const topics = event.topics.map(t => BigInt(t));
|
|
397
274
|
let contractName;
|
|
398
275
|
try {
|
|
399
|
-
contractName = this.
|
|
276
|
+
contractName = _classPrivateMethodGet(this, _getContractNameByEvent, _getContractNameByEvent2).call(this, event.address, topics[0], opt);
|
|
400
277
|
} catch (error) {
|
|
401
278
|
if ((omitUnknown !== null && omitUnknown !== void 0 ? omitUnknown : false) && error instanceof MissingEventDefinitionError) return null;
|
|
402
279
|
throw error;
|
|
@@ -413,26 +290,28 @@ class Contract {
|
|
|
413
290
|
};
|
|
414
291
|
}).filter(e => e != null);
|
|
415
292
|
}
|
|
416
|
-
static async initialize(
|
|
293
|
+
static async initialize(_ref) {
|
|
417
294
|
let {
|
|
418
295
|
onCompiler,
|
|
419
296
|
onNode,
|
|
420
|
-
sourceCode,
|
|
421
297
|
bytecode,
|
|
422
298
|
aci,
|
|
423
299
|
address,
|
|
300
|
+
sourceCodePath,
|
|
301
|
+
sourceCode,
|
|
424
302
|
fileSystem,
|
|
425
303
|
validateBytecode,
|
|
426
304
|
...otherOptions
|
|
427
|
-
} =
|
|
428
|
-
if (aci == null &&
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
305
|
+
} = _ref;
|
|
306
|
+
if (aci == null && onCompiler != null) {
|
|
307
|
+
let res;
|
|
308
|
+
if (sourceCodePath != null) res = await onCompiler.compile(sourceCodePath);
|
|
309
|
+
if (sourceCode != null) res = await onCompiler.compileBySourceCode(sourceCode, fileSystem);
|
|
310
|
+
if (res != null) {
|
|
311
|
+
var _bytecode;
|
|
312
|
+
aci = res.aci;
|
|
313
|
+
(_bytecode = bytecode) !== null && _bytecode !== void 0 ? _bytecode : bytecode = res.bytecode;
|
|
314
|
+
}
|
|
436
315
|
}
|
|
437
316
|
if (aci == null) throw new MissingContractDefError();
|
|
438
317
|
if (address != null) {
|
|
@@ -450,18 +329,16 @@ class Contract {
|
|
|
450
329
|
});
|
|
451
330
|
if (contract.active == null) throw new InactiveContractError(address);
|
|
452
331
|
}
|
|
453
|
-
if (validateBytecode
|
|
332
|
+
if (validateBytecode === true) {
|
|
454
333
|
if (address == null) throw new MissingContractAddressError('Can\'t validate bytecode without contract address');
|
|
455
334
|
const onChanBytecode = (await getContractByteCode(address, {
|
|
456
335
|
onNode
|
|
457
336
|
})).bytecode;
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
}
|
|
464
|
-
}).then(() => true, () => false) : bytecode === onChanBytecode;
|
|
337
|
+
let isValid = false;
|
|
338
|
+
if (bytecode != null) isValid = bytecode === onChanBytecode;else if (sourceCode != null) {
|
|
339
|
+
if (onCompiler == null) throw new IllegalArgumentError('Can\'t validate bytecode without compiler');
|
|
340
|
+
isValid = await onCompiler.validateBySourceCode(onChanBytecode, sourceCode, fileSystem);
|
|
341
|
+
}
|
|
465
342
|
if (!isValid) throw new BytecodeMismatchError(sourceCode != null ? 'source code' : 'bytecode');
|
|
466
343
|
}
|
|
467
344
|
return new ContractWithMethods({
|
|
@@ -475,19 +352,29 @@ class Contract {
|
|
|
475
352
|
...otherOptions
|
|
476
353
|
});
|
|
477
354
|
}
|
|
478
|
-
constructor(
|
|
355
|
+
constructor(_ref2) {
|
|
479
356
|
var _this = this;
|
|
480
357
|
let {
|
|
481
358
|
aci,
|
|
482
359
|
...otherOptions
|
|
483
|
-
} =
|
|
360
|
+
} = _ref2;
|
|
361
|
+
_classPrivateMethodInitSpec(this, _getContractNameByEvent);
|
|
362
|
+
_classPrivateMethodInitSpec(this, _getFunctionAci);
|
|
363
|
+
_classPrivateMethodInitSpec(this, _sendAndProcess);
|
|
364
|
+
_classPrivateMethodInitSpec(this, _getCallResult);
|
|
365
|
+
_classPrivateFieldInitSpec(this, _aciContract, {
|
|
366
|
+
writable: true,
|
|
367
|
+
value: void 0
|
|
368
|
+
});
|
|
484
369
|
this._aci = aci;
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
370
|
+
const aciLast = aci[aci.length - 1];
|
|
371
|
+
if (aciLast.contract == null) {
|
|
372
|
+
throw new IllegalArgumentError(`The last 'aci' item should have 'contract' key, got ${Object.keys(aciLast)} keys instead`);
|
|
373
|
+
}
|
|
374
|
+
_classPrivateFieldSet(this, _aciContract, aciLast.contract);
|
|
375
|
+
this._name = _classPrivateFieldGet(this, _aciContract).name;
|
|
376
|
+
this._calldata = new Calldata(aci);
|
|
377
|
+
this.$options = otherOptions;
|
|
491
378
|
|
|
492
379
|
/**
|
|
493
380
|
* Generate proto function based on contract function using Contract ACI schema
|
|
@@ -503,19 +390,19 @@ class Contract {
|
|
|
503
390
|
* await contract.testFunction({ callStatic: false }) // send tx on-chain
|
|
504
391
|
* ```
|
|
505
392
|
*/
|
|
506
|
-
Object.assign(this, Object.fromEntries(this.
|
|
393
|
+
Object.assign(this, Object.fromEntries(_classPrivateFieldGet(this, _aciContract).functions.map(_ref3 => {
|
|
507
394
|
let {
|
|
508
395
|
name,
|
|
509
396
|
arguments: aciArgs,
|
|
510
397
|
stateful
|
|
511
|
-
} =
|
|
398
|
+
} = _ref3;
|
|
512
399
|
const callStatic = name !== 'init' && !stateful;
|
|
513
400
|
return [name, async function () {
|
|
514
401
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
515
402
|
args[_key] = arguments[_key];
|
|
516
403
|
}
|
|
517
404
|
const options = args.length === aciArgs.length + 1 ? args.pop() : {};
|
|
518
|
-
if (typeof options !== 'object') throw new
|
|
405
|
+
if (typeof options !== 'object') throw new _TypeError(`Options should be an object: ${options}`);
|
|
519
406
|
if (name === 'init') return _this.$deploy(args, {
|
|
520
407
|
callStatic,
|
|
521
408
|
...options
|
|
@@ -528,6 +415,99 @@ class Contract {
|
|
|
528
415
|
})));
|
|
529
416
|
}
|
|
530
417
|
}
|
|
418
|
+
function _getCallResult2(_ref4, fnName, transaction, options) {
|
|
419
|
+
let {
|
|
420
|
+
returnType,
|
|
421
|
+
returnValue,
|
|
422
|
+
log
|
|
423
|
+
} = _ref4;
|
|
424
|
+
let message;
|
|
425
|
+
switch (returnType) {
|
|
426
|
+
case 'ok':
|
|
427
|
+
{
|
|
428
|
+
const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fnName);
|
|
429
|
+
return {
|
|
430
|
+
decodedResult: this._calldata.decode(this._name, fnAci.name, returnValue),
|
|
431
|
+
decodedEvents: this.$decodeEvents(log, options)
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
case 'revert':
|
|
435
|
+
message = this._calldata.decodeFateString(returnValue);
|
|
436
|
+
break;
|
|
437
|
+
case 'error':
|
|
438
|
+
message = decode(returnValue).toString();
|
|
439
|
+
break;
|
|
440
|
+
default:
|
|
441
|
+
throw new InternalError(`Unknown return type: ${returnType}`);
|
|
442
|
+
}
|
|
443
|
+
throw new NodeInvocationError(message, transaction);
|
|
444
|
+
}
|
|
445
|
+
async function _sendAndProcess2(tx, fnName, options) {
|
|
446
|
+
const txData = await sendTransaction(tx, {
|
|
447
|
+
...this.$options,
|
|
448
|
+
...options
|
|
449
|
+
});
|
|
450
|
+
return {
|
|
451
|
+
hash: txData.hash,
|
|
452
|
+
tx: unpackTx(txData.rawTx),
|
|
453
|
+
txData,
|
|
454
|
+
rawTx: txData.rawTx,
|
|
455
|
+
...(txData.blockHeight != null && (await this.$getCallResultByTxHash(txData.hash, fnName, options)))
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
function _getFunctionAci2(name) {
|
|
459
|
+
const fn = _classPrivateFieldGet(this, _aciContract).functions.find(f => f.name === name);
|
|
460
|
+
if (fn != null) {
|
|
461
|
+
return fn;
|
|
462
|
+
}
|
|
463
|
+
if (name === 'init') {
|
|
464
|
+
return {
|
|
465
|
+
arguments: [],
|
|
466
|
+
name: 'init',
|
|
467
|
+
payable: false,
|
|
468
|
+
returns: 'unit',
|
|
469
|
+
stateful: true
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
|
|
473
|
+
}
|
|
474
|
+
function _getContractNameByEvent2(ctAddress, nameHash, _ref5) {
|
|
475
|
+
let {
|
|
476
|
+
contractAddressToName
|
|
477
|
+
} = _ref5;
|
|
478
|
+
const addressToName = {
|
|
479
|
+
...this.$options.contractAddressToName,
|
|
480
|
+
...contractAddressToName
|
|
481
|
+
};
|
|
482
|
+
if (addressToName[ctAddress] != null) return addressToName[ctAddress];
|
|
483
|
+
|
|
484
|
+
// TODO: consider using a third-party library
|
|
485
|
+
const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
486
|
+
const contracts = this._aci.map(_ref6 => {
|
|
487
|
+
let {
|
|
488
|
+
contract
|
|
489
|
+
} = _ref6;
|
|
490
|
+
return contract;
|
|
491
|
+
}).filter(contract => contract === null || contract === void 0 ? void 0 : contract.event);
|
|
492
|
+
const matchedEvents = contracts.map(contract => [contract.name, contract.event.variant]).map(_ref7 => {
|
|
493
|
+
let [name, events] = _ref7;
|
|
494
|
+
return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
|
|
495
|
+
}).flat().filter(_ref8 => {
|
|
496
|
+
let [, eventName] = _ref8;
|
|
497
|
+
return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
|
|
498
|
+
}).filter((_ref9, idx, arr) => {
|
|
499
|
+
let [,, type] = _ref9;
|
|
500
|
+
return !arr.slice(0, idx).some(el => isEqual(el[2], type));
|
|
501
|
+
});
|
|
502
|
+
switch (matchedEvents.length) {
|
|
503
|
+
case 0:
|
|
504
|
+
throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
|
|
505
|
+
case 1:
|
|
506
|
+
return matchedEvents[0][0];
|
|
507
|
+
default:
|
|
508
|
+
throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
|
|
509
|
+
}
|
|
510
|
+
}
|
|
531
511
|
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
532
512
|
const ContractWithMethods = Contract;
|
|
533
513
|
export default ContractWithMethods;
|