@aeternity/aepp-sdk 12.1.3 → 13.0.0-alpha.1
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 +12031 -11231
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.d.ts +7 -3
- package/es/AeSdk.mjs +17 -22
- package/es/AeSdk.mjs.map +1 -1
- package/es/AeSdkAepp.d.ts +6 -5
- package/es/AeSdkAepp.mjs +7 -30
- package/es/AeSdkAepp.mjs.map +1 -1
- package/es/AeSdkBase.d.ts +18 -140
- package/es/AeSdkBase.mjs +30 -184
- package/es/AeSdkBase.mjs.map +1 -1
- package/es/AeSdkMethods.d.ts +123 -0
- package/es/AeSdkMethods.mjs +122 -0
- package/es/AeSdkMethods.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +7 -21
- package/es/AeSdkWallet.mjs +38 -86
- package/es/AeSdkWallet.mjs.map +1 -1
- package/es/Node.d.ts +11 -15
- package/es/Node.mjs +35 -48
- package/es/Node.mjs.map +1 -1
- package/es/account/Base.d.ts +24 -40
- package/es/account/Base.mjs +1 -101
- package/es/account/Base.mjs.map +1 -1
- package/es/account/Generalized.d.ts +16 -0
- package/es/account/Generalized.mjs +113 -0
- package/es/account/Generalized.mjs.map +1 -0
- package/es/account/Ledger.d.ts +28 -0
- package/es/account/Ledger.mjs +102 -0
- package/es/account/Ledger.mjs.map +1 -0
- package/es/account/LedgerFactory.d.ts +39 -0
- package/es/account/LedgerFactory.mjs +81 -0
- package/es/account/LedgerFactory.mjs.map +1 -0
- package/es/account/Memory.d.ts +13 -17
- package/es/account/Memory.mjs +43 -64
- package/es/account/Memory.mjs.map +1 -1
- package/es/account/Rpc.d.ts +6 -8
- package/es/account/Rpc.mjs +14 -32
- package/es/account/Rpc.mjs.map +1 -1
- package/es/aens.d.ts +4 -4
- package/es/aens.mjs +46 -41
- package/es/aens.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
- 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 +22 -11
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -42
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
- package/es/aepp-wallet-communication/schema.mjs +14 -68
- package/es/aepp-wallet-communication/schema.mjs.map +1 -1
- package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
- package/es/apis/compiler/compiler.d.ts +23 -29
- package/es/apis/compiler/compiler.mjs +128 -189
- package/es/apis/compiler/compiler.mjs.map +1 -1
- package/es/apis/compiler/index.mjs.map +1 -1
- package/es/apis/compiler/models/index.d.ts +82 -135
- package/es/apis/compiler/models/index.mjs +1 -47
- package/es/apis/compiler/models/index.mjs.map +1 -1
- package/es/apis/compiler/models/mappers.d.ts +8 -8
- package/es/apis/compiler/models/mappers.mjs +165 -183
- package/es/apis/compiler/models/mappers.mjs.map +1 -1
- package/es/apis/compiler/models/parameters.d.ts +0 -1
- package/es/apis/compiler/models/parameters.mjs +5 -9
- package/es/apis/compiler/models/parameters.mjs.map +1 -1
- package/es/apis/node/index.mjs.map +1 -1
- package/es/apis/node/models/index.d.ts +48 -48
- package/es/apis/node/models/mappers.mjs +12 -6
- package/es/apis/node/models/mappers.mjs.map +1 -1
- package/es/apis/node/models/parameters.mjs.map +1 -1
- package/es/apis/node/node.mjs +43 -84
- package/es/apis/node/node.mjs.map +1 -1
- package/es/chain.d.ts +10 -2
- package/es/chain.mjs +37 -59
- package/es/chain.mjs.map +1 -1
- package/es/channel/Base.d.ts +200 -0
- package/es/channel/Base.mjs +293 -0
- package/es/channel/Base.mjs.map +1 -0
- package/es/channel/Contract.d.ts +248 -0
- package/es/channel/Contract.mjs +420 -0
- package/es/channel/Contract.mjs.map +1 -0
- package/es/channel/Spend.d.ts +219 -0
- package/es/channel/Spend.mjs +385 -0
- package/es/channel/Spend.mjs.map +1 -0
- package/es/channel/handlers.d.ts +8 -21
- package/es/channel/handlers.mjs +151 -899
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/internal.d.ts +27 -21
- package/es/channel/internal.mjs +101 -191
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Contract.d.ts +210 -0
- package/es/contract/Contract.mjs +551 -0
- package/es/contract/Contract.mjs.map +1 -0
- package/es/contract/compiler/Base.d.ts +81 -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 +155 -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 +118 -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/ga.d.ts +9 -34
- package/es/contract/ga.mjs +29 -112
- package/es/contract/ga.mjs.map +1 -1
- package/es/index-browser.d.ts +39 -0
- package/es/index-browser.mjs +55 -0
- package/es/index-browser.mjs.map +1 -0
- package/es/index.d.ts +4 -35
- package/es/index.mjs +4 -51
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +5 -5
- package/es/oracle.mjs +34 -40
- package/es/oracle.mjs.map +1 -1
- package/es/spend.d.ts +3 -3
- package/es/spend.mjs +18 -23
- package/es/spend.mjs.map +1 -1
- package/es/tx/builder/constants.d.ts +30 -2
- package/es/tx/builder/constants.mjs +43 -14
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types/abi-version.d.ts +10 -0
- package/es/tx/builder/field-types/abi-version.mjs +20 -0
- package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
- package/es/tx/builder/field-types/address.d.ts +14 -0
- package/es/tx/builder/field-types/address.mjs +51 -0
- package/es/tx/builder/field-types/address.mjs.map +1 -0
- 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 +2 -3
- package/es/tx/builder/field-types/coin-amount.mjs +4 -12
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
- package/es/tx/builder/field-types/ct-version.d.ts +30 -0
- package/es/tx/builder/field-types/ct-version.mjs +48 -0
- package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
- package/es/tx/builder/field-types/deposit.d.ts +1 -2
- package/es/tx/builder/field-types/deposit.mjs +2 -4
- 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 +31 -0
- package/es/tx/builder/field-types/entry.mjs.map +1 -0
- package/es/tx/builder/field-types/enumeration.d.ts +7 -0
- package/es/tx/builder/field-types/enumeration.mjs +30 -0
- package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
- package/es/tx/builder/field-types/fee.d.ts +10 -15
- package/es/tx/builder/field-types/fee.mjs +31 -43
- package/es/tx/builder/field-types/fee.mjs.map +1 -1
- package/es/tx/builder/field-types/field.mjs +0 -2
- package/es/tx/builder/field-types/field.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-limit.d.ts +5 -2
- package/es/tx/builder/field-types/gas-limit.mjs +12 -14
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
- package/es/tx/builder/field-types/gas-price.d.ts +1 -2
- package/es/tx/builder/field-types/gas-price.mjs +3 -7
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
- package/es/tx/builder/field-types/index.d.ts +80 -30
- package/es/tx/builder/field-types/index.mjs +34 -9
- package/es/tx/builder/field-types/index.mjs.map +1 -1
- package/es/tx/builder/field-types/mptree.d.ts +37 -0
- package/es/tx/builder/field-types/mptree.mjs +268 -0
- package/es/tx/builder/field-types/mptree.mjs.map +1 -0
- package/es/tx/builder/field-types/name-fee.d.ts +1 -3
- package/es/tx/builder/field-types/name-fee.mjs +3 -5
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
- package/es/tx/builder/field-types/name-id.d.ts +1 -4
- package/es/tx/builder/field-types/name-id.mjs +5 -10
- package/es/tx/builder/field-types/name-id.mjs.map +1 -1
- package/es/tx/builder/field-types/name.mjs +0 -2
- package/es/tx/builder/field-types/name.mjs.map +1 -1
- package/es/tx/builder/field-types/pointers.d.ts +23 -0
- package/es/tx/builder/field-types/pointers.mjs +36 -0
- package/es/tx/builder/field-types/pointers.mjs.map +1 -0
- 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 +5 -0
- package/es/tx/builder/field-types/short-u-int-const.mjs +16 -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 +0 -2
- 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/u-int.d.ts +1 -2
- package/es/tx/builder/field-types/u-int.mjs +3 -4
- package/es/tx/builder/field-types/u-int.mjs.map +1 -1
- package/es/tx/builder/helpers.d.ts +2 -32
- package/es/tx/builder/helpers.mjs +19 -71
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +11 -49
- package/es/tx/builder/index.mjs +57 -337
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +2367 -667
- package/es/tx/builder/schema.mjs +70 -145
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +4 -49
- package/es/tx/index.mjs +38 -112
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/validator.d.ts +4 -6
- package/es/tx/validator.mjs +104 -90
- package/es/tx/validator.mjs.map +1 -1
- package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
- package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
- package/es/utils/amount-formatter.mjs +4 -10
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.d.ts +1 -0
- package/es/utils/autorest.mjs +17 -19
- package/es/utils/autorest.mjs.map +1 -1
- package/es/utils/bignumber.mjs +4 -7
- package/es/utils/bignumber.mjs.map +1 -1
- package/es/utils/bytes.d.ts +0 -17
- package/es/utils/bytes.mjs +6 -35
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +15 -8
- package/es/utils/crypto.mjs +40 -40
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder-types.d.ts +28 -28
- package/es/utils/encoder-types.mjs +0 -1
- package/es/utils/encoder-types.mjs.map +1 -1
- package/es/utils/encoder.d.ts +0 -1
- package/es/utils/encoder.mjs +7 -15
- package/es/utils/encoder.mjs.map +1 -1
- package/es/utils/errors.d.ts +15 -14
- package/es/utils/errors.mjs +86 -172
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +27 -19
- package/es/utils/hd-wallet.mjs +42 -26
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.mjs +0 -8
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.d.ts +2 -0
- package/es/utils/keystore.mjs +37 -36
- package/es/utils/keystore.mjs.map +1 -1
- package/es/utils/other.d.ts +4 -2
- package/es/utils/other.mjs +11 -7
- package/es/utils/other.mjs.map +1 -1
- package/es/utils/semver-satisfies.mjs +0 -3
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.d.ts +0 -12
- package/es/utils/string.mjs +1 -21
- package/es/utils/string.mjs.map +1 -1
- package/package.json +98 -51
- package/src/AeSdk.ts +15 -11
- package/src/AeSdkAepp.ts +9 -7
- package/src/AeSdkBase.ts +31 -202
- package/src/AeSdkMethods.ts +169 -0
- package/src/AeSdkWallet.ts +16 -47
- package/src/Node.ts +17 -18
- package/src/account/Base.ts +29 -75
- package/src/account/Generalized.ts +98 -0
- package/src/account/Ledger.ts +131 -0
- package/src/account/LedgerFactory.ts +86 -0
- package/src/account/Memory.ts +46 -60
- package/src/account/Rpc.ts +17 -26
- package/src/aens.ts +13 -11
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +21 -9
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +4 -4
- package/src/aepp-wallet-communication/rpc/types.ts +11 -1
- package/src/aepp-wallet-communication/schema.ts +18 -18
- package/src/apis/compiler/code-model-v4.yaml +681 -888
- package/src/apis/compiler/compiler.ts +113 -154
- package/src/apis/compiler/models/index.ts +80 -140
- package/src/apis/compiler/models/mappers.ts +165 -183
- package/src/apis/compiler/models/parameters.ts +6 -12
- package/src/chain.ts +11 -6
- package/src/channel/Base.ts +335 -0
- package/src/channel/Contract.ts +488 -0
- package/src/channel/Spend.ts +408 -0
- package/src/channel/handlers.ts +164 -582
- package/src/channel/internal.ts +114 -143
- package/src/contract/Contract.ts +610 -0
- package/src/contract/compiler/Base.ts +94 -0
- package/src/contract/compiler/Cli.ts +134 -0
- package/src/contract/compiler/Http.ts +124 -0
- package/src/contract/compiler/HttpNode.ts +26 -0
- package/src/contract/compiler/getFileSystem.ts +42 -0
- package/src/contract/ga.ts +23 -106
- package/src/index-browser.ts +58 -0
- package/src/index.ts +4 -55
- package/src/oracle.ts +8 -8
- package/src/spend.ts +6 -14
- package/src/tx/builder/constants.ts +33 -3
- package/src/tx/builder/field-types/abi-version.ts +21 -0
- package/src/tx/builder/field-types/address.ts +62 -0
- 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 +4 -9
- package/src/tx/builder/field-types/ct-version.ts +50 -0
- package/src/tx/builder/field-types/deposit.ts +1 -1
- package/src/tx/builder/field-types/encoded.ts +27 -0
- package/src/tx/builder/field-types/entry.ts +31 -0
- package/src/tx/builder/field-types/enumeration.ts +32 -0
- package/src/tx/builder/field-types/fee.ts +39 -21
- package/src/tx/builder/field-types/gas-limit.ts +13 -8
- package/src/tx/builder/field-types/gas-price.ts +0 -2
- package/src/tx/builder/field-types/index.ts +54 -15
- package/src/tx/builder/field-types/mptree.ts +242 -0
- package/src/tx/builder/field-types/name-fee.ts +2 -3
- package/src/tx/builder/field-types/name-id.ts +7 -10
- package/src/tx/builder/field-types/pointers.ts +41 -0
- package/src/tx/builder/field-types/raw.ts +9 -0
- package/src/tx/builder/field-types/short-u-int-const.ts +20 -0
- package/src/tx/builder/field-types/string.ts +11 -0
- package/src/tx/builder/field-types/u-int.ts +4 -5
- package/src/tx/builder/helpers.ts +10 -60
- package/src/tx/builder/index.ts +65 -308
- package/src/tx/builder/schema.ts +280 -341
- package/src/tx/index.ts +40 -103
- package/src/tx/validator.ts +91 -96
- package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
- package/src/utils/autorest.ts +16 -1
- package/src/utils/bytes.ts +6 -34
- package/src/utils/crypto.ts +23 -16
- package/src/utils/encoder.ts +0 -1
- package/src/utils/errors.ts +22 -25
- package/src/utils/hd-wallet.ts +30 -9
- package/src/utils/keystore.ts +24 -21
- package/src/utils/other.ts +16 -1
- package/src/utils/string.ts +0 -20
- package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
- package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
- package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
- package/types-legacy/ts4.2/AeSdkMethods.d.ts +140 -0
- package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
- package/types-legacy/ts4.2/Node.d.ts +78 -0
- package/types-legacy/ts4.2/account/Base.d.ts +52 -0
- package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
- package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
- package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
- package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
- package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
- package/types-legacy/ts4.2/aens.d.ts +222 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
- package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
- package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
- package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
- package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
- package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
- package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
- package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
- package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
- package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
- package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
- package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
- package/types-legacy/ts4.2/chain.d.ts +256 -0
- package/types-legacy/ts4.2/channel/Base.d.ts +199 -0
- package/types-legacy/ts4.2/channel/Contract.d.ts +248 -0
- package/types-legacy/ts4.2/channel/Spend.d.ts +219 -0
- package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
- package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
- package/types-legacy/ts4.2/contract/Contract.d.ts +212 -0
- package/types-legacy/ts4.2/contract/compiler/Base.d.ts +81 -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/ga.d.ts +44 -0
- package/types-legacy/ts4.2/globals.d.ts +16 -0
- package/types-legacy/ts4.2/index-browser.d.ts +39 -0
- package/types-legacy/ts4.2/index.d.ts +5 -0
- package/types-legacy/ts4.2/oracle.d.ts +161 -0
- package/types-legacy/ts4.2/spend.d.ts +62 -0
- package/types-legacy/ts4.2/tx/builder/constants.d.ts +98 -0
- package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +10 -0
- package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +21 -0
- 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 +12 -0
- package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +42 -0
- package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
- 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 +7 -0
- package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +20 -0
- package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +15 -0
- package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +129 -0
- package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +43 -0
- package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +18 -0
- package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
- package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
- package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -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 +5 -0
- package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
- package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +7 -0
- package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
- package/types-legacy/ts4.2/tx/builder/index.d.ts +50 -0
- package/types-legacy/ts4.2/tx/builder/schema.d.ts +4675 -0
- package/types-legacy/ts4.2/tx/index.d.ts +19 -0
- package/types-legacy/ts4.2/tx/validator.d.ts +18 -0
- package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
- package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
- package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
- package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
- package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
- package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
- package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
- package/types-legacy/ts4.2/utils/errors.d.ts +475 -0
- package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
- package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
- package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
- package/types-legacy/ts4.2/utils/other.d.ts +31 -0
- package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
- package/types-legacy/ts4.2/utils/string.d.ts +12 -0
- package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
- package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
- package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
- package/types-legacy/ts4.5/AeSdkMethods.d.ts +140 -0
- package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
- package/types-legacy/ts4.5/Node.d.ts +78 -0
- package/types-legacy/ts4.5/account/Base.d.ts +52 -0
- package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
- package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
- package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
- package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
- package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
- package/types-legacy/ts4.5/aens.d.ts +222 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +19 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
- package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
- package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
- package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
- package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
- package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
- package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
- package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
- package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
- package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
- package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
- package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
- package/types-legacy/ts4.5/chain.d.ts +256 -0
- package/types-legacy/ts4.5/channel/Base.d.ts +199 -0
- package/types-legacy/ts4.5/channel/Contract.d.ts +248 -0
- package/types-legacy/ts4.5/channel/Spend.d.ts +219 -0
- package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
- package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
- package/types-legacy/ts4.5/contract/Contract.d.ts +212 -0
- package/types-legacy/ts4.5/contract/compiler/Base.d.ts +81 -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/ga.d.ts +44 -0
- package/types-legacy/ts4.5/index-browser.d.ts +39 -0
- package/types-legacy/ts4.5/index.d.ts +4 -0
- package/types-legacy/ts4.5/oracle.d.ts +161 -0
- package/types-legacy/ts4.5/spend.d.ts +62 -0
- package/types-legacy/ts4.5/tx/builder/constants.d.ts +98 -0
- package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +10 -0
- package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +21 -0
- 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 +12 -0
- package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +42 -0
- package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
- 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 +7 -0
- package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +20 -0
- package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +15 -0
- package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +129 -0
- package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +43 -0
- package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +18 -0
- package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
- package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
- package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -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 +5 -0
- package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
- package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +7 -0
- package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
- package/types-legacy/ts4.5/tx/builder/index.d.ts +50 -0
- package/types-legacy/ts4.5/tx/builder/schema.d.ts +4675 -0
- package/types-legacy/ts4.5/tx/index.d.ts +19 -0
- package/types-legacy/ts4.5/tx/validator.d.ts +18 -0
- package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
- package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
- package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
- package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
- package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
- package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
- package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
- package/types-legacy/ts4.5/utils/errors.d.ts +475 -0
- package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
- package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
- package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
- package/types-legacy/ts4.5/utils/other.d.ts +31 -0
- package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
- package/types-legacy/ts4.5/utils/string.d.ts +12 -0
- package/es/channel/index.d.ts +0 -625
- package/es/channel/index.mjs +0 -975
- package/es/channel/index.mjs.map +0 -1
- package/es/contract/Compiler.d.ts +0 -18
- package/es/contract/Compiler.mjs +0 -68
- package/es/contract/Compiler.mjs.map +0 -1
- package/es/contract/aci.d.ts +0 -127
- package/es/contract/aci.mjs +0 -508
- package/es/contract/aci.mjs.map +0 -1
- package/es/contract/methods.d.ts +0 -71
- package/es/contract/methods.mjs +0 -104
- package/es/contract/methods.mjs.map +0 -1
- package/es/deprecated/index.d.ts +0 -143
- package/es/deprecated/index.mjs +0 -162
- package/es/deprecated/index.mjs.map +0 -1
- package/es/deprecated/methods.d.ts +0 -18
- package/es/deprecated/methods.mjs +0 -26
- package/es/deprecated/methods.mjs.map +0 -1
- package/es/tx/builder/address.d.ts +0 -25
- package/es/tx/builder/address.mjs +0 -45
- package/es/tx/builder/address.mjs.map +0 -1
- package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
- package/es/utils/mptree.d.ts +0 -26
- package/es/utils/mptree.mjs +0 -165
- package/es/utils/mptree.mjs.map +0 -1
- package/src/channel/index.ts +0 -1025
- package/src/contract/Compiler.ts +0 -67
- package/src/contract/aci.ts +0 -537
- package/src/contract/methods.ts +0 -123
- package/src/deprecated/index.ts +0 -172
- package/src/deprecated/methods.ts +0 -25
- package/src/tx/builder/address.ts +0 -50
- package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
- package/src/utils/mptree.ts +0 -145
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import * as chainMethods from './chain';
|
|
2
|
+
import * as aensMethods from './aens';
|
|
3
|
+
import * as spendMethods from './spend';
|
|
4
|
+
import * as oracleMethods from './oracle';
|
|
5
|
+
import Contract, { ContractMethodsBase } from './contract/Contract';
|
|
6
|
+
import * as contractGaMethods from './contract/ga';
|
|
7
|
+
import { _buildTx } from './tx';
|
|
8
|
+
import { mapObject, UnionToIntersection } from './utils/other';
|
|
9
|
+
import Node from './Node';
|
|
10
|
+
import { AE_AMOUNT_FORMATS } from './utils/amount-formatter';
|
|
11
|
+
import { Tag } from './tx/builder/constants';
|
|
12
|
+
import AccountBase from './account/Base';
|
|
13
|
+
import { Encoded } from './utils/encoder';
|
|
14
|
+
import CompilerBase from './contract/compiler/Base';
|
|
15
|
+
import { ArgumentError, NotImplementedError, TypeError } from './utils/errors';
|
|
16
|
+
|
|
17
|
+
export type OnAccount = Encoded.AccountAddress | AccountBase | undefined;
|
|
18
|
+
|
|
19
|
+
export function getValueOrErrorProxy<Value extends object>(valueCb: () => Value): Value {
|
|
20
|
+
return new Proxy({}, {
|
|
21
|
+
...Object.fromEntries([
|
|
22
|
+
'apply', 'construct', 'defineProperty', 'deleteProperty', 'getOwnPropertyDescriptor',
|
|
23
|
+
'getPrototypeOf', 'isExtensible', 'ownKeys', 'preventExtensions', 'set', 'setPrototypeOf',
|
|
24
|
+
].map((name) => [name, () => { throw new NotImplementedError(`${name} proxy request`); }])),
|
|
25
|
+
get(t: {}, property: string | symbol, receiver: any) {
|
|
26
|
+
const target = valueCb();
|
|
27
|
+
const value = Reflect.get(target, property, receiver);
|
|
28
|
+
return typeof value === 'function' ? value.bind(target) : value;
|
|
29
|
+
},
|
|
30
|
+
has(t: {}, property: string | symbol) {
|
|
31
|
+
return Reflect.has(valueCb(), property);
|
|
32
|
+
},
|
|
33
|
+
}) as Value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const { InvalidTxError: _2, ...chainMethodsOther } = chainMethods;
|
|
37
|
+
|
|
38
|
+
const methods = {
|
|
39
|
+
...chainMethodsOther,
|
|
40
|
+
...aensMethods,
|
|
41
|
+
...spendMethods,
|
|
42
|
+
...oracleMethods,
|
|
43
|
+
...contractGaMethods,
|
|
44
|
+
} as const;
|
|
45
|
+
|
|
46
|
+
type Decrement<Number extends number> = [-1, 0, 1, 2, 3, 4, 5][Number];
|
|
47
|
+
type GetMethodsOptions <Methods extends { [key: string]: Function }> =
|
|
48
|
+
{
|
|
49
|
+
[Name in keyof Methods]:
|
|
50
|
+
Methods[Name] extends (...args: infer Args) => any
|
|
51
|
+
? Args[Decrement<Args['length']>] : never
|
|
52
|
+
};
|
|
53
|
+
type MethodsOptions = GetMethodsOptions<typeof methods>;
|
|
54
|
+
interface AeSdkMethodsOptions
|
|
55
|
+
extends Partial<UnionToIntersection<MethodsOptions[keyof MethodsOptions]>> {
|
|
56
|
+
nodes?: Array<{ name: string; instance: Node }>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* AeSdkMethods is the composition of:
|
|
61
|
+
* - chain methods
|
|
62
|
+
* - tx methods
|
|
63
|
+
* - aens methods
|
|
64
|
+
* - spend methods
|
|
65
|
+
* - oracle methods
|
|
66
|
+
* - contract methods
|
|
67
|
+
* - contract ga methods
|
|
68
|
+
*
|
|
69
|
+
* While these methods can be used separately, this class provides a handy way to store
|
|
70
|
+
* their context (current account, network, and compiler to use).
|
|
71
|
+
*/
|
|
72
|
+
class AeSdkMethods {
|
|
73
|
+
_options: AeSdkMethodsOptions = { denomination: AE_AMOUNT_FORMATS.AETTOS };
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @param options - Options
|
|
77
|
+
*/
|
|
78
|
+
constructor(options: AeSdkMethodsOptions = {}) {
|
|
79
|
+
Object.assign(this._options, options);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Resolves an account
|
|
84
|
+
* @param account - ak-address, instance of AccountBase, or keypair
|
|
85
|
+
*/
|
|
86
|
+
// eslint-disable-next-line class-methods-use-this
|
|
87
|
+
_resolveAccount(account?: OnAccount): AccountBase {
|
|
88
|
+
if (typeof account === 'string') throw new NotImplementedError('Address in AccountResolver');
|
|
89
|
+
if (typeof account === 'object') return account;
|
|
90
|
+
throw new TypeError(
|
|
91
|
+
'Account should be an address (ak-prefixed string), '
|
|
92
|
+
+ `or instance of AccountBase, got ${String(account)} instead`,
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
_getOptions(): AeSdkMethodsOptions & { onAccount: AccountBase } {
|
|
97
|
+
return {
|
|
98
|
+
...this._options,
|
|
99
|
+
onAccount: getValueOrErrorProxy(() => this._resolveAccount()),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async buildTx<TxType extends Tag>(
|
|
104
|
+
txType: TxType,
|
|
105
|
+
options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node },
|
|
106
|
+
): Promise<Encoded.Transaction> {
|
|
107
|
+
// @ts-expect-error TODO: need to figure out what's wrong here
|
|
108
|
+
return _buildTx<TxType>(txType, {
|
|
109
|
+
...this._getOptions(),
|
|
110
|
+
...options,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
async initializeContract<Methods extends ContractMethodsBase>(
|
|
115
|
+
options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode'> & { onNode?: Node },
|
|
116
|
+
): Promise<Contract<Methods>> {
|
|
117
|
+
const { onNode, onCompiler, ...otherOptions } = this._getOptions();
|
|
118
|
+
if (onCompiler == null || onNode == null) {
|
|
119
|
+
throw new ArgumentError('onCompiler, onNode', 'provided', null);
|
|
120
|
+
}
|
|
121
|
+
return Contract.initialize<Methods>({
|
|
122
|
+
...otherOptions,
|
|
123
|
+
onNode,
|
|
124
|
+
onCompiler,
|
|
125
|
+
...options,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
type RequiredKeys<T> = {
|
|
131
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? never : K
|
|
132
|
+
}[keyof T];
|
|
133
|
+
|
|
134
|
+
type OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T;
|
|
135
|
+
|
|
136
|
+
type MakeOptional<Options> = OptionalIfNotRequired<[
|
|
137
|
+
Omit<Options, 'onNode' | 'onCompiler' | 'onAccount'>
|
|
138
|
+
& { onNode?: Node; onCompiler?: CompilerBase; onAccount?: OnAccount },
|
|
139
|
+
]>;
|
|
140
|
+
|
|
141
|
+
type TransformMethods <Methods extends { [key: string]: Function }> =
|
|
142
|
+
{
|
|
143
|
+
[Name in keyof Methods]:
|
|
144
|
+
Methods[Name] extends (...args: [...infer Args, infer Options]) => infer Ret
|
|
145
|
+
? (...args: [...Args, ...MakeOptional<Options>]) => Ret
|
|
146
|
+
: never
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
interface AeSdkMethodsTransformed extends TransformMethods<typeof methods> {}
|
|
150
|
+
|
|
151
|
+
Object.assign(AeSdkMethods.prototype, mapObject<Function, Function>(
|
|
152
|
+
methods,
|
|
153
|
+
([name, handler]) => [
|
|
154
|
+
name,
|
|
155
|
+
function methodWrapper(...args: any[]) {
|
|
156
|
+
args.length = handler.length;
|
|
157
|
+
const options = args[args.length - 1];
|
|
158
|
+
args[args.length - 1] = {
|
|
159
|
+
...this._getOptions(),
|
|
160
|
+
...options,
|
|
161
|
+
...options?.onAccount != null && { onAccount: this._resolveAccount(options.onAccount) },
|
|
162
|
+
};
|
|
163
|
+
return handler(...args);
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
));
|
|
167
|
+
|
|
168
|
+
export default AeSdkMethods as new (options?: ConstructorParameters<typeof AeSdkMethods>[0]) =>
|
|
169
|
+
AeSdkMethods & AeSdkMethodsTransformed;
|
package/src/AeSdkWallet.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { v4 as uuid } from '@aeternity/uuid';
|
|
2
2
|
import AeSdk from './AeSdk';
|
|
3
|
-
import { Account } from './AeSdkBase';
|
|
4
3
|
import verifyTransaction from './tx/validator';
|
|
5
4
|
import RpcClient from './aepp-wallet-communication/rpc/RpcClient';
|
|
6
5
|
import {
|
|
@@ -32,10 +31,6 @@ type OnSubscription = (
|
|
|
32
31
|
clientId: string, params: Parameters<WalletApi[METHODS.subscribeAddress]>[0], origin: string
|
|
33
32
|
) => void;
|
|
34
33
|
|
|
35
|
-
type OnSign = (
|
|
36
|
-
clientId: string, params: Parameters<WalletApi[METHODS.sign]>[0], origin: string
|
|
37
|
-
) => Promise<{ tx?: Encoded.Transaction; onAccount?: Account } | undefined> | Promise<void>;
|
|
38
|
-
|
|
39
34
|
type OnDisconnect = (
|
|
40
35
|
clientId: string, params: Parameters<WalletApi[METHODS.closeConnection]>[0]
|
|
41
36
|
) => void;
|
|
@@ -44,10 +39,6 @@ type OnAskAccounts = (
|
|
|
44
39
|
clientId: string, params: undefined, origin: string
|
|
45
40
|
) => void;
|
|
46
41
|
|
|
47
|
-
type OnMessageSign = (
|
|
48
|
-
clientId: string, params: Parameters<WalletApi[METHODS.signMessage]>[0], origin: string
|
|
49
|
-
) => Promise<{ onAccount?: Account } | undefined> | Promise<void>;
|
|
50
|
-
|
|
51
42
|
interface RpcClientsInfo {
|
|
52
43
|
id: string;
|
|
53
44
|
status: RPC_STATUS;
|
|
@@ -67,20 +58,16 @@ export default class AeSdkWallet extends AeSdk {
|
|
|
67
58
|
|
|
68
59
|
name: string;
|
|
69
60
|
|
|
70
|
-
_clients
|
|
61
|
+
_clients = new Map<string, RpcClientsInfo>();
|
|
71
62
|
|
|
72
63
|
onConnection: OnConnection;
|
|
73
64
|
|
|
74
65
|
onSubscription: OnSubscription;
|
|
75
66
|
|
|
76
|
-
onSign: OnSign;
|
|
77
|
-
|
|
78
67
|
onDisconnect: OnDisconnect;
|
|
79
68
|
|
|
80
69
|
onAskAccounts: OnAskAccounts;
|
|
81
70
|
|
|
82
|
-
onMessageSign: OnMessageSign;
|
|
83
|
-
|
|
84
71
|
/**
|
|
85
72
|
* @param options - Options
|
|
86
73
|
* @param options.name - Wallet name
|
|
@@ -88,9 +75,7 @@ export default class AeSdkWallet extends AeSdk {
|
|
|
88
75
|
* @param options.type - Wallet type
|
|
89
76
|
* @param options.onConnection - Call-back function for incoming AEPP connection
|
|
90
77
|
* @param options.onSubscription - Call-back function for incoming AEPP account subscription
|
|
91
|
-
* @param options.onSign - Call-back function for incoming AEPP sign request
|
|
92
78
|
* @param options.onAskAccounts - Call-back function for incoming AEPP get address request
|
|
93
|
-
* @param options.onMessageSign - Call-back function for incoming AEPP sign message request
|
|
94
79
|
* @param options.onDisconnect - Call-back function for disconnect event
|
|
95
80
|
*/
|
|
96
81
|
constructor({
|
|
@@ -99,10 +84,8 @@ export default class AeSdkWallet extends AeSdk {
|
|
|
99
84
|
type,
|
|
100
85
|
onConnection,
|
|
101
86
|
onSubscription,
|
|
102
|
-
onSign,
|
|
103
87
|
onDisconnect,
|
|
104
88
|
onAskAccounts,
|
|
105
|
-
onMessageSign,
|
|
106
89
|
...options
|
|
107
90
|
}: {
|
|
108
91
|
id: string;
|
|
@@ -110,52 +93,45 @@ export default class AeSdkWallet extends AeSdk {
|
|
|
110
93
|
name: string;
|
|
111
94
|
onConnection: OnConnection;
|
|
112
95
|
onSubscription: OnSubscription;
|
|
113
|
-
onSign: OnSign;
|
|
114
96
|
onDisconnect: OnDisconnect;
|
|
115
97
|
onAskAccounts: OnAskAccounts;
|
|
116
|
-
onMessageSign: OnMessageSign;
|
|
117
98
|
} & ConstructorParameters<typeof AeSdk>[0]) {
|
|
118
99
|
super(options);
|
|
119
100
|
this.onConnection = onConnection;
|
|
120
101
|
this.onSubscription = onSubscription;
|
|
121
|
-
this.onSign = onSign;
|
|
122
102
|
this.onDisconnect = onDisconnect;
|
|
123
103
|
this.onAskAccounts = onAskAccounts;
|
|
124
|
-
this.onMessageSign = onMessageSign;
|
|
125
|
-
this._clients = new Map();
|
|
126
104
|
this.name = name;
|
|
127
105
|
this.id = id;
|
|
128
106
|
this._type = type;
|
|
129
107
|
}
|
|
130
108
|
|
|
131
109
|
_pushAccountsToApps(): void {
|
|
110
|
+
if (this._clients == null) return;
|
|
132
111
|
Array.from(this._clients.keys())
|
|
133
112
|
.filter((clientId) => this._isRpcClientSubscribed(clientId))
|
|
134
113
|
.map((clientId) => this._getClient(clientId).rpc)
|
|
135
114
|
.forEach((client) => client.notify(METHODS.updateAddress, this.getAccounts()));
|
|
136
115
|
}
|
|
137
116
|
|
|
138
|
-
selectAccount(address: Encoded.AccountAddress): void {
|
|
117
|
+
override selectAccount(address: Encoded.AccountAddress): void {
|
|
139
118
|
super.selectAccount(address);
|
|
140
119
|
this._pushAccountsToApps();
|
|
141
120
|
}
|
|
142
121
|
|
|
143
|
-
|
|
144
|
-
account
|
|
145
|
-
options?: Parameters<AeSdk['addAccount']>[1],
|
|
146
|
-
): Promise<void> {
|
|
147
|
-
await super.addAccount(account, options);
|
|
122
|
+
override addAccount(account: AccountBase, options?: Parameters<AeSdk['addAccount']>[1]): void {
|
|
123
|
+
super.addAccount(account, options);
|
|
148
124
|
this._pushAccountsToApps();
|
|
149
125
|
}
|
|
150
126
|
|
|
151
127
|
_getNode(): { node: Network['node'] } {
|
|
152
128
|
this.ensureNodeConnected();
|
|
153
|
-
return { node: { url: this.api
|
|
129
|
+
return { node: { url: this.api.$host, name: this.selectedNodeName } };
|
|
154
130
|
}
|
|
155
131
|
|
|
156
|
-
async selectNode(name: string): Promise<void> {
|
|
132
|
+
override async selectNode(name: string): Promise<void> {
|
|
157
133
|
super.selectNode(name);
|
|
158
|
-
const networkId = await this.getNetworkId();
|
|
134
|
+
const networkId = await this.api.getNetworkId();
|
|
159
135
|
Array.from(this._clients.keys())
|
|
160
136
|
.filter((clientId) => this._isRpcClientConnected(clientId))
|
|
161
137
|
.map((clientId) => this._getClient(clientId))
|
|
@@ -266,22 +242,19 @@ export default class AeSdkWallet extends AeSdk {
|
|
|
266
242
|
await this.onAskAccounts(id, params, origin);
|
|
267
243
|
return this.addresses();
|
|
268
244
|
},
|
|
269
|
-
[METHODS.sign]: async ({ tx, onAccount, returnSigned }, origin) => {
|
|
245
|
+
[METHODS.sign]: async ({ tx, onAccount = this.address, returnSigned }, origin) => {
|
|
270
246
|
if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
|
|
271
|
-
onAccount ??= await this.address();
|
|
272
247
|
if (!this.addresses().includes(onAccount)) {
|
|
273
248
|
throw new RpcPermissionDenyError(onAccount);
|
|
274
249
|
}
|
|
275
250
|
|
|
276
|
-
const
|
|
277
|
-
onAccount = overrides?.onAccount ?? onAccount;
|
|
278
|
-
tx = overrides?.tx ?? tx;
|
|
251
|
+
const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };
|
|
279
252
|
if (returnSigned) {
|
|
280
|
-
return { signedTransaction: await this.signTransaction(tx,
|
|
253
|
+
return { signedTransaction: await this.signTransaction(tx, parameters) };
|
|
281
254
|
}
|
|
282
255
|
try {
|
|
283
256
|
return jsonBig.parse(jsonBig.stringify({
|
|
284
|
-
transactionHash: await this.send(tx, {
|
|
257
|
+
transactionHash: await this.send(tx, { ...parameters, verify: false }),
|
|
285
258
|
}));
|
|
286
259
|
} catch (error) {
|
|
287
260
|
const validation = await verifyTransaction(tx, this.api);
|
|
@@ -289,19 +262,15 @@ export default class AeSdkWallet extends AeSdk {
|
|
|
289
262
|
throw new RpcBroadcastError(error.message);
|
|
290
263
|
}
|
|
291
264
|
},
|
|
292
|
-
[METHODS.signMessage]: async ({ message, onAccount }, origin) => {
|
|
265
|
+
[METHODS.signMessage]: async ({ message, onAccount = this.address }, origin) => {
|
|
293
266
|
if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
|
|
294
|
-
onAccount ??= await this.address();
|
|
295
267
|
if (!this.addresses().includes(onAccount)) {
|
|
296
268
|
throw new RpcPermissionDenyError(onAccount);
|
|
297
269
|
}
|
|
298
270
|
|
|
299
|
-
const
|
|
300
|
-
onAccount = overrides?.onAccount ?? onAccount;
|
|
271
|
+
const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };
|
|
301
272
|
return {
|
|
302
|
-
|
|
303
|
-
signature: await this.signMessage(message, { onAccount, returnHex: true }) as
|
|
304
|
-
unknown as string,
|
|
273
|
+
signature: Buffer.from(await this.signMessage(message, parameters)).toString('hex'),
|
|
305
274
|
};
|
|
306
275
|
},
|
|
307
276
|
},
|
|
@@ -327,7 +296,7 @@ export default class AeSdkWallet extends AeSdk {
|
|
|
327
296
|
return {
|
|
328
297
|
id: this.id,
|
|
329
298
|
name: this.name,
|
|
330
|
-
networkId: await this.getNetworkId(),
|
|
299
|
+
networkId: await this.api.getNetworkId(),
|
|
331
300
|
origin: window.location.origin,
|
|
332
301
|
type: this._type,
|
|
333
302
|
};
|
package/src/Node.ts
CHANGED
|
@@ -8,16 +8,7 @@ import {
|
|
|
8
8
|
import { Node as NodeApi, NodeOptionalParams, ErrorModel } from './apis/node';
|
|
9
9
|
import { mapObject } from './utils/other';
|
|
10
10
|
import { Encoded } from './utils/encoder';
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Obtain networkId from account or node
|
|
15
|
-
*/
|
|
16
|
-
export async function getNetworkId({ networkId }: { networkId?: string } = {}): Promise<string> {
|
|
17
|
-
const res = networkId ?? this.networkId ?? (await this.api?.getStatus())?.networkId;
|
|
18
|
-
if (res != null) return res;
|
|
19
|
-
throw new MissingParamError('networkId is not provided');
|
|
20
|
-
}
|
|
11
|
+
import { ConsensusProtocolVersion } from './tx/builder/constants';
|
|
21
12
|
|
|
22
13
|
const bigIntPropertyNames = [
|
|
23
14
|
'balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount',
|
|
@@ -27,14 +18,14 @@ const bigIntPropertyNames = [
|
|
|
27
18
|
|
|
28
19
|
const numberPropertyNames = [
|
|
29
20
|
'time', 'gas', 'gasUsed', 'nameSalt',
|
|
30
|
-
'nonce', 'nextNonce', 'height', 'blockHeight', '
|
|
21
|
+
'nonce', 'nextNonce', 'height', 'blockHeight', 'topBlockHeight',
|
|
31
22
|
'ttl', 'nameTtl', 'clientTtl',
|
|
32
23
|
'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight',
|
|
33
24
|
'version', 'solutions', 'round',
|
|
34
25
|
] as const;
|
|
35
26
|
|
|
36
27
|
class NodeTransformed extends NodeApi {
|
|
37
|
-
async sendOperationRequest(
|
|
28
|
+
override async sendOperationRequest(
|
|
38
29
|
operationArguments: OperationArguments,
|
|
39
30
|
operationSpec: OperationSpec,
|
|
40
31
|
): Promise<any> {
|
|
@@ -101,7 +92,9 @@ export type TransformNodeType<Type> =
|
|
|
101
92
|
? PreserveOptional<number, Type[Property]>
|
|
102
93
|
: Property extends 'txHash'
|
|
103
94
|
? PreserveOptional<Encoded.TxHash, Type[Property]>
|
|
104
|
-
:
|
|
95
|
+
: Property extends 'bytecode'
|
|
96
|
+
? PreserveOptional<Encoded.ContractBytearray, Type[Property]>
|
|
97
|
+
: TransformNodeType<Type[Property]>
|
|
105
98
|
}
|
|
106
99
|
: Type;
|
|
107
100
|
type NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {
|
|
@@ -114,11 +107,11 @@ export interface NodeInfo {
|
|
|
114
107
|
url: string;
|
|
115
108
|
nodeNetworkId: string;
|
|
116
109
|
version: string;
|
|
117
|
-
consensusProtocolVersion:
|
|
110
|
+
consensusProtocolVersion: ConsensusProtocolVersion;
|
|
118
111
|
}
|
|
119
112
|
|
|
120
113
|
export default class Node extends (NodeTransformed as unknown as NodeTransformedApi) {
|
|
121
|
-
|
|
114
|
+
#networkIdPromise?: Promise<string>;
|
|
122
115
|
|
|
123
116
|
/**
|
|
124
117
|
* @param url - Url for node API
|
|
@@ -139,9 +132,10 @@ export default class Node extends (NodeTransformed as unknown as NodeTransformed
|
|
|
139
132
|
],
|
|
140
133
|
...options,
|
|
141
134
|
});
|
|
142
|
-
this.url = url;
|
|
143
135
|
if (!ignoreVersion) {
|
|
144
|
-
const
|
|
136
|
+
const statusPromise = this.getStatus();
|
|
137
|
+
const versionPromise = statusPromise.then(({ nodeVersion }) => nodeVersion);
|
|
138
|
+
this.#networkIdPromise = statusPromise.then(({ networkId }) => networkId);
|
|
145
139
|
this.pipeline.addPolicy(
|
|
146
140
|
genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'),
|
|
147
141
|
);
|
|
@@ -149,6 +143,11 @@ export default class Node extends (NodeTransformed as unknown as NodeTransformed
|
|
|
149
143
|
this.intAsString = true;
|
|
150
144
|
}
|
|
151
145
|
|
|
146
|
+
async getNetworkId(): Promise<string> {
|
|
147
|
+
this.#networkIdPromise ??= this.getStatus().then(({ networkId }) => networkId);
|
|
148
|
+
return this.#networkIdPromise;
|
|
149
|
+
}
|
|
150
|
+
|
|
152
151
|
async getNodeInfo(): Promise<NodeInfo> {
|
|
153
152
|
const {
|
|
154
153
|
nodeVersion: version,
|
|
@@ -164,7 +163,7 @@ export default class Node extends (NodeTransformed as unknown as NodeTransformed
|
|
|
164
163
|
)
|
|
165
164
|
.version;
|
|
166
165
|
return {
|
|
167
|
-
url: this
|
|
166
|
+
url: this.$host,
|
|
168
167
|
nodeNetworkId,
|
|
169
168
|
version,
|
|
170
169
|
consensusProtocolVersion,
|
package/src/account/Base.ts
CHANGED
|
@@ -14,99 +14,54 @@
|
|
|
14
14
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
15
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import { Tag } from '../tx/builder/constants';
|
|
21
|
-
import { getNetworkId } from '../Node';
|
|
22
|
-
import { concatBuffers } from '../utils/other';
|
|
23
|
-
import type { createMetaTx } from '../contract/ga';
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Check is provided object looks like an instance of AccountBase
|
|
27
|
-
* @param acc - Object to check
|
|
28
|
-
*/
|
|
29
|
-
export const isAccountBase = (acc: AccountBase | any): boolean => (
|
|
30
|
-
!['sign', 'address', 'signTransaction', 'signMessage'].some((f) => typeof acc[f] !== 'function')
|
|
31
|
-
);
|
|
17
|
+
import { Encoded } from '../utils/encoder';
|
|
18
|
+
import Node from '../Node';
|
|
19
|
+
import CompilerBase from '../contract/compiler/Base';
|
|
32
20
|
|
|
33
21
|
/**
|
|
34
22
|
* Account is one of the three basic building blocks of an
|
|
35
23
|
* {@link AeSdk} and provides access to a signing key pair.
|
|
36
24
|
*/
|
|
37
25
|
export default abstract class AccountBase {
|
|
38
|
-
networkId?: string;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @param options - Options
|
|
42
|
-
* @param options.networkId - Using for signing transactions
|
|
43
|
-
*/
|
|
44
|
-
constructor({ networkId }: { networkId?: string } = {}) {
|
|
45
|
-
this.networkId ??= networkId;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
26
|
/**
|
|
49
27
|
* Sign encoded transaction
|
|
50
28
|
* @param tx - Transaction to sign
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
29
|
+
* @param options - Options
|
|
30
|
+
* @param options.innerTx - Sign as inner transaction for PayingFor
|
|
31
|
+
* @param options.authData - Object with gaMeta params
|
|
53
32
|
* @returns Signed transaction
|
|
54
33
|
*/
|
|
55
|
-
|
|
34
|
+
abstract signTransaction(
|
|
56
35
|
tx: Encoded.Transaction,
|
|
57
|
-
|
|
36
|
+
options: {
|
|
58
37
|
innerTx?: boolean;
|
|
59
38
|
networkId?: string;
|
|
60
|
-
authData?:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Get network Id
|
|
75
|
-
* @returns Network Id
|
|
76
|
-
*/
|
|
77
|
-
readonly getNetworkId = getNetworkId;
|
|
39
|
+
authData?: {
|
|
40
|
+
gasLimit?: number;
|
|
41
|
+
callData?: Encoded.ContractBytearray;
|
|
42
|
+
sourceCode?: string;
|
|
43
|
+
args?: any[];
|
|
44
|
+
};
|
|
45
|
+
onNode?: Node;
|
|
46
|
+
onCompiler?: CompilerBase;
|
|
47
|
+
aeppOrigin?: string;
|
|
48
|
+
aeppRpcClientId?: string;
|
|
49
|
+
},
|
|
50
|
+
): Promise<Encoded.Transaction>;
|
|
78
51
|
|
|
79
52
|
/**
|
|
80
53
|
* Sign message
|
|
81
54
|
* @param message - Message to sign
|
|
82
|
-
* @param opt - Options
|
|
83
|
-
* @returns Signature as hex string of Uint8Array
|
|
84
|
-
*/
|
|
85
|
-
async signMessage(
|
|
86
|
-
message: string,
|
|
87
|
-
{ returnHex = false, ...options }: { returnHex?: boolean } = {},
|
|
88
|
-
): Promise<string | Uint8Array> {
|
|
89
|
-
const sig = await this.sign(messageToHash(message), options);
|
|
90
|
-
return returnHex ? Buffer.from(sig).toString('hex') : sig;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Verify message
|
|
95
|
-
* @param message - Message to verify
|
|
96
|
-
* @param signature - Signature
|
|
97
55
|
* @param options - Options
|
|
56
|
+
* @returns Signature as hex string of Uint8Array
|
|
98
57
|
*/
|
|
99
|
-
|
|
58
|
+
abstract signMessage(
|
|
100
59
|
message: string,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
typeof signature === 'string' ? Buffer.from(signature, 'hex') : signature,
|
|
107
|
-
decode(await this.address(options)),
|
|
108
|
-
);
|
|
109
|
-
}
|
|
60
|
+
options?: {
|
|
61
|
+
aeppOrigin?: string;
|
|
62
|
+
aeppRpcClientId?: string;
|
|
63
|
+
},
|
|
64
|
+
): Promise<Uint8Array>;
|
|
110
65
|
|
|
111
66
|
/**
|
|
112
67
|
* Sign data blob
|
|
@@ -117,8 +72,7 @@ export default abstract class AccountBase {
|
|
|
117
72
|
abstract sign(data: string | Uint8Array, options?: any): Promise<Uint8Array>;
|
|
118
73
|
|
|
119
74
|
/**
|
|
120
|
-
*
|
|
121
|
-
* @returns Public account address
|
|
75
|
+
* Account address
|
|
122
76
|
*/
|
|
123
|
-
|
|
77
|
+
readonly address: Encoded.AccountAddress;
|
|
124
78
|
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* ISC License (ISC)
|
|
3
|
+
* Copyright (c) 2022 aeternity developers
|
|
4
|
+
*
|
|
5
|
+
* Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
* purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
* copyright notice and this permission notice appear in all copies.
|
|
8
|
+
*
|
|
9
|
+
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
+
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
+
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
+
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
+
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
+
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
+
* PERFORMANCE OF THIS SOFTWARE.
|
|
16
|
+
*/
|
|
17
|
+
import AccountBase from './Base';
|
|
18
|
+
import {
|
|
19
|
+
ArgumentError,
|
|
20
|
+
InternalError,
|
|
21
|
+
InvalidAuthDataError,
|
|
22
|
+
NotImplementedError,
|
|
23
|
+
} from '../utils/errors';
|
|
24
|
+
import { decode, Encoded } from '../utils/encoder';
|
|
25
|
+
import { getAccount } from '../chain';
|
|
26
|
+
import Contract from '../contract/Contract';
|
|
27
|
+
import { _buildTx } from '../tx';
|
|
28
|
+
import { Tag } from '../tx/builder/constants';
|
|
29
|
+
import { buildTx } from '../tx/builder';
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Generalized account class
|
|
33
|
+
*/
|
|
34
|
+
export default class AccountGeneralized extends AccountBase {
|
|
35
|
+
override readonly address: Encoded.AccountAddress;
|
|
36
|
+
|
|
37
|
+
#authFun?: string;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @param address - Address of generalized account
|
|
41
|
+
*/
|
|
42
|
+
constructor(address: Encoded.AccountAddress) {
|
|
43
|
+
super();
|
|
44
|
+
decode(address);
|
|
45
|
+
this.address = address;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// eslint-disable-next-line class-methods-use-this
|
|
49
|
+
override async sign(): Promise<Uint8Array> {
|
|
50
|
+
throw new NotImplementedError('Can\'t sign using generalized account');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// eslint-disable-next-line class-methods-use-this
|
|
54
|
+
override async signMessage(): Promise<Uint8Array> {
|
|
55
|
+
throw new NotImplementedError('Can\'t sign using generalized account');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
override async signTransaction(
|
|
59
|
+
tx: Encoded.Transaction,
|
|
60
|
+
{ authData, onCompiler, onNode }: Parameters<AccountBase['signTransaction']>[1],
|
|
61
|
+
): Promise<Encoded.Transaction> {
|
|
62
|
+
if (authData == null || onCompiler == null || onNode == null) {
|
|
63
|
+
throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);
|
|
64
|
+
}
|
|
65
|
+
const {
|
|
66
|
+
callData, sourceCode, args, gasLimit,
|
|
67
|
+
} = authData;
|
|
68
|
+
|
|
69
|
+
const authCallData = callData ?? await (async () => {
|
|
70
|
+
if (this.#authFun == null) {
|
|
71
|
+
const account = await getAccount(this.address, { onNode });
|
|
72
|
+
if (account.kind !== 'generalized') {
|
|
73
|
+
throw new ArgumentError('account kind', 'generalized', account.kind);
|
|
74
|
+
}
|
|
75
|
+
this.#authFun = account.authFun;
|
|
76
|
+
}
|
|
77
|
+
if (this.#authFun == null) {
|
|
78
|
+
throw new InternalError('Account in generalised, but authFun not provided');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (sourceCode == null || args == null) {
|
|
82
|
+
throw new InvalidAuthDataError('Auth data must contain source code and arguments.');
|
|
83
|
+
}
|
|
84
|
+
const contract = await Contract.initialize({ onCompiler, onNode, sourceCode });
|
|
85
|
+
return contract._calldata.encode(contract._name, this.#authFun, args);
|
|
86
|
+
})();
|
|
87
|
+
|
|
88
|
+
const gaMetaTx = await _buildTx(Tag.GaMetaTx, {
|
|
89
|
+
tx: decode(buildTx({ tag: Tag.SignedTx, encodedTx: decode(tx), signatures: [] })),
|
|
90
|
+
gaId: this.address,
|
|
91
|
+
authData: authCallData,
|
|
92
|
+
gasLimit,
|
|
93
|
+
nonce: 0,
|
|
94
|
+
onNode,
|
|
95
|
+
});
|
|
96
|
+
return buildTx({ tag: Tag.SignedTx, encodedTx: decode(gaMetaTx), signatures: [] });
|
|
97
|
+
}
|
|
98
|
+
}
|