@aeternity/aepp-sdk 13.0.0-alpha.1 → 13.0.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/README.md +1 -1
- 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 +1833 -1543
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.mjs.map +1 -1
- package/es/AeSdkAepp.d.ts +5 -4
- package/es/AeSdkAepp.mjs +13 -17
- package/es/AeSdkAepp.mjs.map +1 -1
- package/es/AeSdkBase.mjs.map +1 -1
- package/es/AeSdkMethods.d.ts +11 -12
- 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 +5 -1
- package/es/Node.mjs +11 -5
- package/es/Node.mjs.map +1 -1
- package/es/account/Base.d.ts +11 -6
- package/es/account/Base.mjs +0 -17
- package/es/account/Base.mjs.map +1 -1
- package/es/account/Generalized.mjs +12 -25
- package/es/account/Generalized.mjs.map +1 -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 +9 -21
- 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 +17 -31
- 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.mjs +0 -16
- 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 +4 -5
- 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 +8 -8
- package/es/chain.mjs +20 -23
- package/es/chain.mjs.map +1 -1
- package/es/channel/Base.d.ts +25 -12
- package/es/channel/Base.mjs +23 -26
- package/es/channel/Base.mjs.map +1 -1
- package/es/channel/Contract.mjs +8 -21
- package/es/channel/Contract.mjs.map +1 -1
- package/es/channel/Spend.d.ts +4 -2
- package/es/channel/Spend.mjs +0 -16
- package/es/channel/Spend.mjs.map +1 -1
- package/es/channel/handlers.mjs +6 -18
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/internal.d.ts +19 -2
- package/es/channel/internal.mjs +19 -19
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Contract.d.ts +30 -85
- package/es/contract/Contract.mjs +197 -215
- package/es/contract/Contract.mjs.map +1 -1
- package/es/contract/compiler/Base.d.ts +10 -14
- package/es/contract/compiler/Base.mjs.map +1 -1
- package/es/contract/compiler/Cli.mjs +5 -11
- package/es/contract/compiler/Cli.mjs.map +1 -1
- package/es/contract/compiler/Http.mjs +6 -30
- package/es/contract/compiler/Http.mjs.map +1 -1
- package/es/contract/compiler/HttpNode.mjs.map +1 -1
- package/es/contract/compiler/getFileSystem.mjs.map +1 -1
- 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 +23 -7
- package/es/contract/ga.mjs +52 -27
- package/es/contract/ga.mjs.map +1 -1
- package/es/index-browser.d.ts +5 -4
- package/es/index-browser.mjs +7 -21
- package/es/index-browser.mjs.map +1 -1
- package/es/oracle.d.ts +12 -17
- package/es/oracle.mjs +28 -48
- package/es/oracle.mjs.map +1 -1
- package/es/spend.d.ts +19 -27
- package/es/spend.mjs +20 -43
- 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 +4 -2
- package/es/tx/builder/constants.mjs +2 -0
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types/abi-version.d.ts +11 -2
- package/es/tx/builder/field-types/abi-version.mjs +24 -4
- package/es/tx/builder/field-types/abi-version.mjs.map +1 -1
- package/es/tx/builder/field-types/address.mjs.map +1 -1
- package/es/tx/builder/field-types/array.d.ts +1 -1
- package/es/tx/builder/field-types/array.mjs.map +1 -1
- package/es/tx/builder/field-types/boolean.mjs.map +1 -1
- package/es/tx/builder/field-types/coin-amount.d.ts +3 -4
- 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 +22 -3
- package/es/tx/builder/field-types/ct-version.mjs +32 -4
- package/es/tx/builder/field-types/ct-version.mjs.map +1 -1
- package/es/tx/builder/field-types/deposit.d.ts +2 -1
- 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 +1 -1
- package/es/tx/builder/field-types/encoded.mjs.map +1 -1
- package/es/tx/builder/field-types/entry.mjs +3 -0
- package/es/tx/builder/field-types/entry.mjs.map +1 -1
- package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
- package/es/tx/builder/field-types/fee.d.ts +3 -1
- package/es/tx/builder/field-types/fee.mjs +5 -1
- 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 +3 -2
- package/es/tx/builder/field-types/gas-limit.mjs +4 -2
- 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 +52 -13
- package/es/tx/builder/field-types/index.mjs +10 -2
- 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 +7 -2
- package/es/tx/builder/field-types/mptree.mjs +5 -7
- package/es/tx/builder/field-types/mptree.mjs.map +1 -1
- package/es/tx/builder/field-types/name-fee.d.ts +1 -1
- package/es/tx/builder/field-types/name-fee.mjs +2 -2
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -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.map +1 -1
- package/es/tx/builder/field-types/raw.mjs.map +1 -1
- package/es/tx/builder/field-types/short-u-int-const.d.ts +4 -2
- package/es/tx/builder/field-types/short-u-int-const.mjs +12 -8
- package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -1
- package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
- package/es/tx/builder/field-types/string.mjs.map +1 -1
- 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.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 +20 -20
- package/es/tx/builder/index.mjs +54 -64
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +2735 -2865
- 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 -155
- 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.mjs +60 -109
- 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 +0 -16
- 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 +14 -31
- package/es/utils/errors.mjs +3 -33
- 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.d.ts +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 +34 -30
- package/src/AeSdkAepp.ts +16 -14
- package/src/AeSdkMethods.ts +11 -16
- package/src/AeSdkWallet.ts +1 -1
- package/src/Node.ts +17 -6
- package/src/account/Base.ts +11 -22
- package/src/account/Generalized.ts +9 -24
- package/src/account/Memory.ts +14 -21
- package/src/aens.ts +31 -47
- package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +0 -17
- 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/types.ts +7 -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 +29 -28
- package/src/channel/Base.ts +33 -33
- package/src/channel/Contract.ts +8 -23
- package/src/channel/Spend.ts +2 -17
- package/src/channel/handlers.ts +5 -18
- package/src/channel/internal.ts +40 -22
- package/src/contract/Contract.ts +161 -170
- package/src/contract/compiler/Base.ts +10 -14
- package/src/contract/compiler/Cli.ts +5 -11
- package/src/contract/compiler/Http.ts +6 -25
- package/src/contract/delegation-signature.ts +56 -0
- package/src/contract/ga.ts +53 -32
- package/src/index-browser.ts +15 -21
- package/src/oracle.ts +46 -56
- package/src/spend.ts +33 -67
- package/src/tx/builder/SchemaTypes.ts +79 -0
- package/src/tx/builder/constants.ts +2 -0
- package/src/tx/builder/field-types/abi-version.ts +29 -6
- package/src/tx/builder/field-types/array.ts +1 -1
- package/src/tx/builder/field-types/coin-amount.ts +6 -4
- package/src/tx/builder/field-types/ct-version.ts +37 -4
- package/src/tx/builder/field-types/deposit.ts +3 -1
- package/src/tx/builder/field-types/encoded.ts +1 -1
- package/src/tx/builder/field-types/entry.ts +8 -3
- package/src/tx/builder/field-types/fee.ts +6 -4
- package/src/tx/builder/field-types/gas-limit.ts +2 -2
- package/src/tx/builder/field-types/index.ts +15 -1
- package/src/tx/builder/field-types/map.ts +45 -0
- package/src/tx/builder/field-types/mptree.ts +4 -3
- package/src/tx/builder/field-types/name-fee.ts +2 -1
- package/src/tx/builder/field-types/nonce.ts +40 -0
- package/src/tx/builder/field-types/short-u-int-const.ts +18 -8
- package/src/tx/builder/field-types/ttl.ts +24 -0
- package/src/tx/builder/field-types/wrapped.ts +32 -0
- package/src/tx/builder/index.ts +57 -71
- package/src/tx/builder/schema.generated.ts +2013 -0
- package/src/tx/builder/schema.ts +544 -624
- package/src/tx/execution-cost.ts +146 -0
- package/src/tx/transaction-signer.ts +27 -0
- package/src/tx/validator.ts +60 -91
- package/src/utils/amount-formatter.ts +0 -16
- package/src/utils/autorest.ts +52 -11
- package/src/utils/bytes.ts +0 -16
- package/src/utils/crypto.ts +0 -16
- package/src/utils/errors.ts +16 -45
- package/src/utils/string.ts +0 -17
- package/types-legacy/ts4.2/AeSdkAepp.d.ts +5 -4
- package/types-legacy/ts4.2/AeSdkMethods.d.ts +11 -12
- package/types-legacy/ts4.2/Node.d.ts +5 -1
- package/types-legacy/ts4.2/account/Base.d.ts +11 -6
- 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/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 +8 -8
- package/types-legacy/ts4.2/channel/Base.d.ts +25 -12
- package/types-legacy/ts4.2/channel/Spend.d.ts +4 -2
- package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
- package/types-legacy/ts4.2/contract/Contract.d.ts +29 -84
- package/types-legacy/ts4.2/contract/compiler/Base.d.ts +10 -14
- package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
- package/types-legacy/ts4.2/contract/ga.d.ts +23 -7
- package/types-legacy/ts4.2/index-browser.d.ts +5 -4
- 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 +4 -2
- package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +11 -2
- package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +1 -1
- package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +3 -4
- package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +33 -3
- package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +2 -1
- package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +1 -1
- package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +3 -1
- package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +3 -2
- 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 +52 -13
- 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 +7 -2
- package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +1 -1
- package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
- package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +4 -2
- package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
- package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
- package/types-legacy/ts4.2/tx/builder/index.d.ts +23 -20
- package/types-legacy/ts4.2/tx/builder/schema.d.ts +2962 -4629
- 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/utils/autorest.d.ts +3 -2
- package/types-legacy/ts4.2/utils/errors.d.ts +14 -31
- package/types-legacy/ts4.2/utils/other.d.ts +1 -1
- package/types-legacy/ts4.5/AeSdkAepp.d.ts +5 -4
- package/types-legacy/ts4.5/AeSdkMethods.d.ts +11 -12
- package/types-legacy/ts4.5/Node.d.ts +5 -1
- package/types-legacy/ts4.5/account/Base.d.ts +11 -6
- 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/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 +8 -8
- package/types-legacy/ts4.5/channel/Base.d.ts +25 -12
- package/types-legacy/ts4.5/channel/Spend.d.ts +4 -2
- package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
- package/types-legacy/ts4.5/contract/Contract.d.ts +29 -84
- package/types-legacy/ts4.5/contract/compiler/Base.d.ts +10 -14
- package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
- package/types-legacy/ts4.5/contract/ga.d.ts +23 -7
- package/types-legacy/ts4.5/index-browser.d.ts +5 -4
- 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 +4 -2
- package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +11 -2
- package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +1 -1
- package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +3 -4
- package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +33 -3
- package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +2 -1
- package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +1 -1
- package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +3 -1
- package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +3 -2
- 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 +52 -13
- 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 +7 -2
- package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +1 -1
- package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
- package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +4 -2
- package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
- package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
- package/types-legacy/ts4.5/tx/builder/index.d.ts +23 -20
- package/types-legacy/ts4.5/tx/builder/schema.d.ts +2962 -4629
- 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/utils/autorest.d.ts +3 -2
- package/types-legacy/ts4.5/utils/errors.d.ts +14 -31
- package/types-legacy/ts4.5/utils/other.d.ts +1 -1
- package/es/tx/index.d.ts +0 -19
- package/es/tx/index.mjs +0 -115
- package/es/tx/index.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/tx/index.ts +0 -129
- package/types-legacy/ts4.2/tx/index.d.ts +0 -19
- package/types-legacy/ts4.5/tx/index.d.ts +0 -19
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, resolveName, txDryRun } from "../chain.mjs";
|
|
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,106 +45,41 @@ 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
|
|
113
51
|
*/
|
|
114
52
|
async $compile() {
|
|
115
53
|
if (this.$options.bytecode != null) return this.$options.bytecode;
|
|
116
|
-
if (this.$options.sourceCode == null) throw new IllegalArgumentError('Can\'t compile without source code');
|
|
117
54
|
if (this.$options.onCompiler == null) throw new IllegalArgumentError('Can\'t compile without compiler');
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
returnType,
|
|
124
|
-
returnValue
|
|
125
|
-
} = _ref;
|
|
126
|
-
let message;
|
|
127
|
-
switch (returnType) {
|
|
128
|
-
case 'ok':
|
|
129
|
-
return;
|
|
130
|
-
case 'revert':
|
|
131
|
-
message = this._calldata.decodeFateString(returnValue);
|
|
132
|
-
break;
|
|
133
|
-
case 'error':
|
|
134
|
-
message = decode(returnValue).toString();
|
|
135
|
-
break;
|
|
136
|
-
default:
|
|
137
|
-
throw new InternalError(`Unknown return type: ${returnType}`);
|
|
55
|
+
if (this.$options.sourceCode != null) {
|
|
56
|
+
const {
|
|
57
|
+
bytecode
|
|
58
|
+
} = await this.$options.onCompiler.compileBySourceCode(this.$options.sourceCode, this.$options.fileSystem);
|
|
59
|
+
this.$options.bytecode = bytecode;
|
|
138
60
|
}
|
|
139
|
-
|
|
61
|
+
if (this.$options.sourceCodePath != null) {
|
|
62
|
+
const {
|
|
63
|
+
bytecode
|
|
64
|
+
} = await this.$options.onCompiler.compile(this.$options.sourceCodePath);
|
|
65
|
+
this.$options.bytecode = bytecode;
|
|
66
|
+
}
|
|
67
|
+
if (this.$options.bytecode == null) {
|
|
68
|
+
throw new IllegalArgumentError('Can\'t compile without sourceCode and sourceCodePath');
|
|
69
|
+
}
|
|
70
|
+
return this.$options.bytecode;
|
|
140
71
|
}
|
|
141
|
-
async
|
|
142
|
-
const txData = await send(tx, {
|
|
143
|
-
...this.$options,
|
|
144
|
-
...options
|
|
145
|
-
});
|
|
146
|
-
const result = {
|
|
147
|
-
hash: txData.hash,
|
|
148
|
-
tx: unpackTx(txData.rawTx),
|
|
149
|
-
txData,
|
|
150
|
-
rawTx: txData.rawTx
|
|
151
|
-
};
|
|
152
|
-
if (txData.blockHeight == null) return result;
|
|
72
|
+
async $getCallResultByTxHash(hash, fnName, options) {
|
|
153
73
|
const {
|
|
154
74
|
callInfo
|
|
155
|
-
} = await this.$options.onNode.getTransactionInfoByHash(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
75
|
+
} = await this.$options.onNode.getTransactionInfoByHash(hash);
|
|
76
|
+
if (callInfo == null) {
|
|
77
|
+
throw new ContractError(`callInfo is not available for transaction ${hash}`);
|
|
78
|
+
}
|
|
79
|
+
const callInfoTyped = callInfo;
|
|
159
80
|
return {
|
|
160
|
-
...
|
|
161
|
-
result:
|
|
81
|
+
..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fnName, undefined, options),
|
|
82
|
+
result: callInfoTyped
|
|
162
83
|
};
|
|
163
84
|
}
|
|
164
85
|
async _estimateGas(name, params) {
|
|
@@ -201,8 +122,9 @@ class Contract {
|
|
|
201
122
|
if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t deploy without account');
|
|
202
123
|
const ownerId = opt.onAccount.address;
|
|
203
124
|
if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t deploy without bytecode');
|
|
204
|
-
const tx = await
|
|
125
|
+
const tx = await buildTxAsync({
|
|
205
126
|
...opt,
|
|
127
|
+
tag: Tag.ContractCreateTx,
|
|
206
128
|
gasLimit: (_opt$gasLimit = opt.gasLimit) !== null && _opt$gasLimit !== void 0 ? _opt$gasLimit : await this._estimateGas('init', params, opt),
|
|
207
129
|
callData: this._calldata.encode(this._name, 'init', params),
|
|
208
130
|
code: this.$options.bytecode,
|
|
@@ -212,7 +134,7 @@ class Contract {
|
|
|
212
134
|
const {
|
|
213
135
|
hash,
|
|
214
136
|
...other
|
|
215
|
-
} = await this.
|
|
137
|
+
} = await _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, 'init', {
|
|
216
138
|
...opt,
|
|
217
139
|
onAccount: opt.onAccount
|
|
218
140
|
});
|
|
@@ -232,16 +154,6 @@ class Contract {
|
|
|
232
154
|
* @param name - Function name
|
|
233
155
|
* @returns function ACI
|
|
234
156
|
*/
|
|
235
|
-
_getFunctionACI(name) {
|
|
236
|
-
const fn = this._aci.encodedAci.contract.functions.find(f => f.name === name);
|
|
237
|
-
if (fn != null) {
|
|
238
|
-
return fn;
|
|
239
|
-
}
|
|
240
|
-
if (name === 'init') return {
|
|
241
|
-
payable: false
|
|
242
|
-
};
|
|
243
|
-
throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
|
|
244
|
-
}
|
|
245
157
|
|
|
246
158
|
/**
|
|
247
159
|
* Call contract function
|
|
@@ -251,6 +163,7 @@ class Contract {
|
|
|
251
163
|
* @returns CallResult
|
|
252
164
|
*/
|
|
253
165
|
async $call(fn, params) {
|
|
166
|
+
var _opt$gasLimit2;
|
|
254
167
|
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
255
168
|
const {
|
|
256
169
|
callStatic,
|
|
@@ -260,14 +173,14 @@ class Contract {
|
|
|
260
173
|
...this.$options,
|
|
261
174
|
...options
|
|
262
175
|
};
|
|
263
|
-
const
|
|
176
|
+
const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fn);
|
|
264
177
|
const contractId = this.$options.address;
|
|
265
178
|
const {
|
|
266
179
|
onNode
|
|
267
180
|
} = opt;
|
|
268
181
|
if (fn == null) throw new MissingFunctionNameError();
|
|
269
182
|
if (fn === 'init' && callStatic !== true) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
|
|
270
|
-
if (fn !== 'init' && opt.amount != null && opt.amount > 0 &&
|
|
183
|
+
if (fn !== 'init' && opt.amount != null && opt.amount > 0 && !fnAci.payable) {
|
|
271
184
|
throw new NotPayableFunctionError(opt.amount, fn);
|
|
272
185
|
}
|
|
273
186
|
let callerId;
|
|
@@ -275,12 +188,11 @@ class Contract {
|
|
|
275
188
|
if (opt.onAccount == null) throw new InternalError('Use fallback account');
|
|
276
189
|
callerId = opt.onAccount.address;
|
|
277
190
|
} catch (error) {
|
|
278
|
-
const useFallbackAccount = callStatic === true && (error instanceof
|
|
191
|
+
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);
|
|
279
192
|
if (!useFallbackAccount) throw error;
|
|
280
193
|
callerId = DRY_RUN_ACCOUNT.pub;
|
|
281
194
|
}
|
|
282
195
|
const callData = this._calldata.encode(this._name, fn, params);
|
|
283
|
-
let res;
|
|
284
196
|
if (callStatic === true) {
|
|
285
197
|
if (opt.nonce == null && top != null) {
|
|
286
198
|
const topKey = typeof top === 'number' ? 'height' : 'hash';
|
|
@@ -297,15 +209,17 @@ class Contract {
|
|
|
297
209
|
let tx;
|
|
298
210
|
if (fn === 'init') {
|
|
299
211
|
if (this.$options.bytecode == null) throw new IllegalArgumentError('Can\'t dry-run "init" without bytecode');
|
|
300
|
-
tx = await
|
|
212
|
+
tx = await buildTxAsync({
|
|
301
213
|
...txOpt,
|
|
214
|
+
tag: Tag.ContractCreateTx,
|
|
302
215
|
code: this.$options.bytecode,
|
|
303
216
|
ownerId: callerId
|
|
304
217
|
});
|
|
305
218
|
} else {
|
|
306
219
|
if (contractId == null) throw new MissingContractAddressError('Can\'t dry-run contract without address');
|
|
307
|
-
tx = await
|
|
220
|
+
tx = await buildTxAsync({
|
|
308
221
|
...txOpt,
|
|
222
|
+
tag: Tag.ContractCallTx,
|
|
309
223
|
callerId,
|
|
310
224
|
contractId
|
|
311
225
|
});
|
|
@@ -317,38 +231,35 @@ class Contract {
|
|
|
317
231
|
...opt,
|
|
318
232
|
top
|
|
319
233
|
});
|
|
320
|
-
if (callObj == null)
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
res = {
|
|
234
|
+
if (callObj == null) {
|
|
235
|
+
throw new InternalError(`callObj is not available for transaction ${tx}`);
|
|
236
|
+
}
|
|
237
|
+
const callInfoTyped = callObj;
|
|
238
|
+
return {
|
|
326
239
|
...dryRunOther,
|
|
240
|
+
..._classPrivateMethodGet(this, _getCallResult, _getCallResult2).call(this, callInfoTyped, fn, tx, opt),
|
|
327
241
|
tx: unpackTx(tx),
|
|
328
|
-
result:
|
|
242
|
+
result: callInfoTyped,
|
|
243
|
+
rawTx: tx,
|
|
244
|
+
hash: buildTxHash(tx),
|
|
245
|
+
txData: undefined
|
|
329
246
|
};
|
|
330
|
-
} else {
|
|
331
|
-
var _opt$gasLimit2;
|
|
332
|
-
if (top != null) throw new IllegalArgumentError('Can\'t handle `top` option in on-chain contract call');
|
|
333
|
-
if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
|
|
334
|
-
const tx = await _buildTx(Tag.ContractCallTx, {
|
|
335
|
-
...opt,
|
|
336
|
-
gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
|
|
337
|
-
callerId,
|
|
338
|
-
contractId,
|
|
339
|
-
callData
|
|
340
|
-
});
|
|
341
|
-
if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t call contract on chain without account');
|
|
342
|
-
res = await this._sendAndProcess(tx, {
|
|
343
|
-
...opt,
|
|
344
|
-
onAccount: opt.onAccount
|
|
345
|
-
});
|
|
346
247
|
}
|
|
347
|
-
if (
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
248
|
+
if (top != null) throw new IllegalArgumentError('Can\'t handle `top` option in on-chain contract call');
|
|
249
|
+
if (contractId == null) throw new MissingContractAddressError('Can\'t call contract without address');
|
|
250
|
+
const tx = await buildTxAsync({
|
|
251
|
+
...opt,
|
|
252
|
+
tag: Tag.ContractCallTx,
|
|
253
|
+
gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await this._estimateGas(fn, params, opt),
|
|
254
|
+
callerId,
|
|
255
|
+
contractId,
|
|
256
|
+
callData
|
|
257
|
+
});
|
|
258
|
+
if (opt.onAccount == null) throw new IllegalArgumentError('Can\'t call contract on chain without account');
|
|
259
|
+
return _classPrivateMethodGet(this, _sendAndProcess, _sendAndProcess2).call(this, tx, fn, {
|
|
260
|
+
...opt,
|
|
261
|
+
onAccount: opt.onAccount
|
|
262
|
+
});
|
|
352
263
|
}
|
|
353
264
|
|
|
354
265
|
/**
|
|
@@ -359,47 +270,6 @@ class Contract {
|
|
|
359
270
|
* @throws {@link MissingEventDefinitionError}
|
|
360
271
|
* @throws {@link AmbiguousEventDefinitionError}
|
|
361
272
|
*/
|
|
362
|
-
_getContractNameByEvent(ctAddress, nameHash, _ref2) {
|
|
363
|
-
let {
|
|
364
|
-
contractAddressToName
|
|
365
|
-
} = _ref2;
|
|
366
|
-
const addressToName = {
|
|
367
|
-
...this.$options.contractAddressToName,
|
|
368
|
-
...contractAddressToName
|
|
369
|
-
};
|
|
370
|
-
if (addressToName[ctAddress] != null) return addressToName[ctAddress];
|
|
371
|
-
|
|
372
|
-
// TODO: consider using a third-party library
|
|
373
|
-
const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
374
|
-
const matchedEvents = [this._aci.encodedAci, ...this._aci.externalEncodedAci].filter(_ref3 => {
|
|
375
|
-
let {
|
|
376
|
-
contract
|
|
377
|
-
} = _ref3;
|
|
378
|
-
return contract === null || contract === void 0 ? void 0 : contract.event;
|
|
379
|
-
}).map(_ref4 => {
|
|
380
|
-
let {
|
|
381
|
-
contract
|
|
382
|
-
} = _ref4;
|
|
383
|
-
return [contract.name, contract.event.variant];
|
|
384
|
-
}).map(_ref5 => {
|
|
385
|
-
let [name, events] = _ref5;
|
|
386
|
-
return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
|
|
387
|
-
}).flat().filter(_ref6 => {
|
|
388
|
-
let [, eventName] = _ref6;
|
|
389
|
-
return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
|
|
390
|
-
}).filter((_ref7, idx, arr) => {
|
|
391
|
-
let [,, type] = _ref7;
|
|
392
|
-
return !arr.slice(0, idx).some(el => isEqual(el[2], type));
|
|
393
|
-
});
|
|
394
|
-
switch (matchedEvents.length) {
|
|
395
|
-
case 0:
|
|
396
|
-
throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
|
|
397
|
-
case 1:
|
|
398
|
-
return matchedEvents[0][0];
|
|
399
|
-
default:
|
|
400
|
-
throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
273
|
|
|
404
274
|
/**
|
|
405
275
|
* Decode Events
|
|
@@ -416,7 +286,7 @@ class Contract {
|
|
|
416
286
|
const topics = event.topics.map(t => BigInt(t));
|
|
417
287
|
let contractName;
|
|
418
288
|
try {
|
|
419
|
-
contractName = this.
|
|
289
|
+
contractName = _classPrivateMethodGet(this, _getContractNameByEvent, _getContractNameByEvent2).call(this, event.address, topics[0], opt);
|
|
420
290
|
} catch (error) {
|
|
421
291
|
if ((omitUnknown !== null && omitUnknown !== void 0 ? omitUnknown : false) && error instanceof MissingEventDefinitionError) return null;
|
|
422
292
|
throw error;
|
|
@@ -433,7 +303,7 @@ class Contract {
|
|
|
433
303
|
};
|
|
434
304
|
}).filter(e => e != null);
|
|
435
305
|
}
|
|
436
|
-
static async initialize(
|
|
306
|
+
static async initialize(_ref) {
|
|
437
307
|
let {
|
|
438
308
|
onCompiler,
|
|
439
309
|
onNode,
|
|
@@ -445,7 +315,7 @@ class Contract {
|
|
|
445
315
|
fileSystem,
|
|
446
316
|
validateBytecode,
|
|
447
317
|
...otherOptions
|
|
448
|
-
} =
|
|
318
|
+
} = _ref;
|
|
449
319
|
if (aci == null && onCompiler != null) {
|
|
450
320
|
let res;
|
|
451
321
|
if (sourceCodePath != null) res = await onCompiler.compile(sourceCodePath);
|
|
@@ -463,7 +333,7 @@ class Contract {
|
|
|
463
333
|
onNode
|
|
464
334
|
});
|
|
465
335
|
}
|
|
466
|
-
if (address == null && sourceCode == null && bytecode == null) {
|
|
336
|
+
if (address == null && sourceCode == null && sourceCodePath == null && bytecode == null) {
|
|
467
337
|
throw new MissingContractAddressError('Can\'t create instance by ACI without address');
|
|
468
338
|
}
|
|
469
339
|
if (address != null) {
|
|
@@ -481,13 +351,19 @@ class Contract {
|
|
|
481
351
|
if (bytecode != null) isValid = bytecode === onChanBytecode;else if (sourceCode != null) {
|
|
482
352
|
if (onCompiler == null) throw new IllegalArgumentError('Can\'t validate bytecode without compiler');
|
|
483
353
|
isValid = await onCompiler.validateBySourceCode(onChanBytecode, sourceCode, fileSystem);
|
|
354
|
+
} else if (sourceCodePath != null) {
|
|
355
|
+
if (onCompiler == null) throw new IllegalArgumentError('Can\'t validate bytecode without compiler');
|
|
356
|
+
isValid = await onCompiler.validate(onChanBytecode, sourceCodePath);
|
|
357
|
+
}
|
|
358
|
+
if (!isValid) {
|
|
359
|
+
throw new BytecodeMismatchError((sourceCode !== null && sourceCode !== void 0 ? sourceCode : sourceCodePath) != null ? 'source code' : 'bytecode');
|
|
484
360
|
}
|
|
485
|
-
if (!isValid) throw new BytecodeMismatchError(sourceCode != null ? 'source code' : 'bytecode');
|
|
486
361
|
}
|
|
487
362
|
return new ContractWithMethods({
|
|
488
363
|
onCompiler,
|
|
489
364
|
onNode,
|
|
490
365
|
sourceCode,
|
|
366
|
+
sourceCodePath,
|
|
491
367
|
bytecode,
|
|
492
368
|
aci,
|
|
493
369
|
address,
|
|
@@ -495,15 +371,28 @@ class Contract {
|
|
|
495
371
|
...otherOptions
|
|
496
372
|
});
|
|
497
373
|
}
|
|
498
|
-
constructor(
|
|
374
|
+
constructor(_ref2) {
|
|
499
375
|
var _this = this;
|
|
500
376
|
let {
|
|
501
377
|
aci,
|
|
502
378
|
...otherOptions
|
|
503
|
-
} =
|
|
379
|
+
} = _ref2;
|
|
380
|
+
_classPrivateMethodInitSpec(this, _getContractNameByEvent);
|
|
381
|
+
_classPrivateMethodInitSpec(this, _getFunctionAci);
|
|
382
|
+
_classPrivateMethodInitSpec(this, _sendAndProcess);
|
|
383
|
+
_classPrivateMethodInitSpec(this, _getCallResult);
|
|
384
|
+
_classPrivateFieldInitSpec(this, _aciContract, {
|
|
385
|
+
writable: true,
|
|
386
|
+
value: void 0
|
|
387
|
+
});
|
|
504
388
|
this._aci = aci;
|
|
505
|
-
|
|
506
|
-
|
|
389
|
+
const aciLast = aci[aci.length - 1];
|
|
390
|
+
if (aciLast.contract == null) {
|
|
391
|
+
throw new IllegalArgumentError(`The last 'aci' item should have 'contract' key, got ${Object.keys(aciLast)} keys instead`);
|
|
392
|
+
}
|
|
393
|
+
_classPrivateFieldSet(this, _aciContract, aciLast.contract);
|
|
394
|
+
this._name = _classPrivateFieldGet(this, _aciContract).name;
|
|
395
|
+
this._calldata = new Calldata(aci);
|
|
507
396
|
this.$options = otherOptions;
|
|
508
397
|
|
|
509
398
|
/**
|
|
@@ -520,19 +409,19 @@ class Contract {
|
|
|
520
409
|
* await contract.testFunction({ callStatic: false }) // send tx on-chain
|
|
521
410
|
* ```
|
|
522
411
|
*/
|
|
523
|
-
Object.assign(this, Object.fromEntries(this.
|
|
412
|
+
Object.assign(this, Object.fromEntries(_classPrivateFieldGet(this, _aciContract).functions.map(_ref3 => {
|
|
524
413
|
let {
|
|
525
414
|
name,
|
|
526
415
|
arguments: aciArgs,
|
|
527
416
|
stateful
|
|
528
|
-
} =
|
|
417
|
+
} = _ref3;
|
|
529
418
|
const callStatic = name !== 'init' && !stateful;
|
|
530
419
|
return [name, async function () {
|
|
531
420
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
532
421
|
args[_key] = arguments[_key];
|
|
533
422
|
}
|
|
534
423
|
const options = args.length === aciArgs.length + 1 ? args.pop() : {};
|
|
535
|
-
if (typeof options !== 'object') throw new
|
|
424
|
+
if (typeof options !== 'object') throw new _TypeError(`Options should be an object: ${options}`);
|
|
536
425
|
if (name === 'init') return _this.$deploy(args, {
|
|
537
426
|
callStatic,
|
|
538
427
|
...options
|
|
@@ -545,6 +434,99 @@ class Contract {
|
|
|
545
434
|
})));
|
|
546
435
|
}
|
|
547
436
|
}
|
|
437
|
+
function _getCallResult2(_ref4, fnName, transaction, options) {
|
|
438
|
+
let {
|
|
439
|
+
returnType,
|
|
440
|
+
returnValue,
|
|
441
|
+
log
|
|
442
|
+
} = _ref4;
|
|
443
|
+
let message;
|
|
444
|
+
switch (returnType) {
|
|
445
|
+
case 'ok':
|
|
446
|
+
{
|
|
447
|
+
const fnAci = _classPrivateMethodGet(this, _getFunctionAci, _getFunctionAci2).call(this, fnName);
|
|
448
|
+
return {
|
|
449
|
+
decodedResult: this._calldata.decode(this._name, fnAci.name, returnValue),
|
|
450
|
+
decodedEvents: this.$decodeEvents(log, options)
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
case 'revert':
|
|
454
|
+
message = this._calldata.decodeFateString(returnValue);
|
|
455
|
+
break;
|
|
456
|
+
case 'error':
|
|
457
|
+
message = decode(returnValue).toString();
|
|
458
|
+
break;
|
|
459
|
+
default:
|
|
460
|
+
throw new InternalError(`Unknown return type: ${returnType}`);
|
|
461
|
+
}
|
|
462
|
+
throw new NodeInvocationError(message, transaction);
|
|
463
|
+
}
|
|
464
|
+
async function _sendAndProcess2(tx, fnName, options) {
|
|
465
|
+
const txData = await sendTransaction(tx, {
|
|
466
|
+
...this.$options,
|
|
467
|
+
...options
|
|
468
|
+
});
|
|
469
|
+
return {
|
|
470
|
+
hash: txData.hash,
|
|
471
|
+
tx: unpackTx(txData.rawTx),
|
|
472
|
+
txData,
|
|
473
|
+
rawTx: txData.rawTx,
|
|
474
|
+
...(txData.blockHeight != null && (await this.$getCallResultByTxHash(txData.hash, fnName, options)))
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
function _getFunctionAci2(name) {
|
|
478
|
+
const fn = _classPrivateFieldGet(this, _aciContract).functions.find(f => f.name === name);
|
|
479
|
+
if (fn != null) {
|
|
480
|
+
return fn;
|
|
481
|
+
}
|
|
482
|
+
if (name === 'init') {
|
|
483
|
+
return {
|
|
484
|
+
arguments: [],
|
|
485
|
+
name: 'init',
|
|
486
|
+
payable: false,
|
|
487
|
+
returns: 'unit',
|
|
488
|
+
stateful: true
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
throw new NoSuchContractFunctionError(`Function ${name} doesn't exist in contract`);
|
|
492
|
+
}
|
|
493
|
+
function _getContractNameByEvent2(ctAddress, nameHash, _ref5) {
|
|
494
|
+
let {
|
|
495
|
+
contractAddressToName
|
|
496
|
+
} = _ref5;
|
|
497
|
+
const addressToName = {
|
|
498
|
+
...this.$options.contractAddressToName,
|
|
499
|
+
...contractAddressToName
|
|
500
|
+
};
|
|
501
|
+
if (addressToName[ctAddress] != null) return addressToName[ctAddress];
|
|
502
|
+
|
|
503
|
+
// TODO: consider using a third-party library
|
|
504
|
+
const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
505
|
+
const contracts = this._aci.map(_ref6 => {
|
|
506
|
+
let {
|
|
507
|
+
contract
|
|
508
|
+
} = _ref6;
|
|
509
|
+
return contract;
|
|
510
|
+
}).filter(contract => contract === null || contract === void 0 ? void 0 : contract.event);
|
|
511
|
+
const matchedEvents = contracts.map(contract => [contract.name, contract.event.variant]).map(_ref7 => {
|
|
512
|
+
let [name, events] = _ref7;
|
|
513
|
+
return events.map(event => [name, Object.keys(event)[0], Object.values(event)[0]]);
|
|
514
|
+
}).flat().filter(_ref8 => {
|
|
515
|
+
let [, eventName] = _ref8;
|
|
516
|
+
return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
|
|
517
|
+
}).filter((_ref9, idx, arr) => {
|
|
518
|
+
let [,, type] = _ref9;
|
|
519
|
+
return !arr.slice(0, idx).some(el => isEqual(el[2], type));
|
|
520
|
+
});
|
|
521
|
+
switch (matchedEvents.length) {
|
|
522
|
+
case 0:
|
|
523
|
+
throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);
|
|
524
|
+
case 1:
|
|
525
|
+
return matchedEvents[0][0];
|
|
526
|
+
default:
|
|
527
|
+
throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
548
530
|
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
549
531
|
const ContractWithMethods = Contract;
|
|
550
532
|
export default ContractWithMethods;
|