@aeternity/aepp-sdk 11.0.0 → 12.1.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/LICENSE +1 -1
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -22
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +2 -1
- package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +20764 -1
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.d.ts +37 -0
- package/es/AeSdk.mjs +81 -0
- package/es/AeSdk.mjs.map +1 -0
- package/es/AeSdkAepp.d.ts +70 -0
- package/es/AeSdkAepp.mjs +176 -0
- package/es/AeSdkAepp.mjs.map +1 -0
- package/es/AeSdkBase.d.ts +213 -0
- package/es/AeSdkBase.mjs +314 -0
- package/es/AeSdkBase.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +104 -0
- package/es/AeSdkWallet.mjs +326 -0
- package/es/AeSdkWallet.mjs.map +1 -0
- package/es/Node.d.ts +41 -0
- package/es/Node.mjs +147 -0
- package/es/Node.mjs.map +1 -0
- package/es/account/Base.d.ts +68 -0
- package/es/account/Base.mjs +123 -0
- package/es/account/Base.mjs.map +1 -0
- package/es/account/Memory.d.ts +26 -0
- package/es/account/Memory.mjs +103 -0
- package/es/account/Memory.mjs.map +1 -0
- package/es/account/Rpc.d.ts +27 -0
- package/es/account/Rpc.mjs +80 -0
- package/es/account/Rpc.mjs.map +1 -0
- package/es/aens.d.ts +222 -0
- package/es/aens.mjs +338 -0
- package/es/aens.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/Browser.d.ts +33 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs +73 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +58 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +146 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection-proxy.d.ts +11 -0
- package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +16 -11
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
- package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +105 -46
- package/es/aepp-wallet-communication/schema.mjs +251 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/aepp-wallet-communication/wallet-detector.d.ts +25 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs +62 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/apis/compiler/compiler.d.ts +92 -0
- package/es/apis/compiler/compiler.mjs +576 -0
- package/es/apis/compiler/compiler.mjs.map +1 -0
- package/es/apis/compiler/index.d.ts +2 -0
- package/es/apis/compiler/index.mjs +3 -0
- package/es/apis/compiler/index.mjs.map +1 -0
- package/es/apis/compiler/models/index.d.ts +248 -0
- package/es/apis/compiler/models/index.mjs +48 -0
- package/es/apis/compiler/models/index.mjs.map +1 -0
- package/es/apis/compiler/models/mappers.d.ts +23 -0
- package/es/apis/compiler/models/mappers.mjs +585 -0
- package/es/apis/compiler/models/mappers.mjs.map +1 -0
- package/es/apis/compiler/models/parameters.d.ts +13 -0
- package/es/apis/compiler/models/parameters.mjs +71 -0
- package/es/apis/compiler/models/parameters.mjs.map +1 -0
- package/es/apis/node/index.d.ts +2 -0
- package/es/apis/node/index.mjs +3 -0
- package/es/apis/node/index.mjs.map +1 -0
- package/es/apis/node/models/index.d.ts +1065 -0
- package/es/apis/node/models/index.mjs +2 -0
- package/es/apis/node/models/index.mjs.map +1 -0
- package/es/apis/node/models/mappers.d.ts +95 -0
- package/es/apis/node/models/mappers.mjs +4166 -0
- package/es/apis/node/models/mappers.mjs.map +1 -0
- package/es/apis/node/models/parameters.d.ts +17 -0
- package/es/apis/node/models/parameters.mjs +165 -0
- package/es/apis/node/models/parameters.mjs.map +1 -0
- package/es/apis/node/node.d.ts +215 -0
- package/es/apis/node/node.mjs +1165 -0
- package/es/apis/node/node.mjs.map +1 -0
- package/es/chain.d.ts +248 -0
- package/es/chain.mjs +560 -0
- package/es/chain.mjs.map +1 -0
- package/es/channel/handlers.d.ts +34 -0
- package/es/channel/handlers.mjs +164 -131
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/index.d.ts +625 -0
- package/es/channel/index.mjs +897 -902
- package/es/channel/index.mjs.map +1 -1
- package/es/channel/internal.d.ts +101 -0
- package/es/channel/internal.mjs +138 -88
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Compiler.d.ts +18 -0
- package/es/contract/Compiler.mjs +68 -0
- package/es/contract/Compiler.mjs.map +1 -0
- package/es/contract/aci.d.ts +127 -0
- package/es/contract/aci.mjs +225 -193
- package/es/contract/aci.mjs.map +1 -1
- package/es/contract/ga.d.ts +69 -0
- package/es/contract/ga.mjs +195 -0
- package/es/contract/ga.mjs.map +1 -0
- package/es/contract/methods.d.ts +71 -0
- package/es/contract/methods.mjs +104 -0
- package/es/contract/methods.mjs.map +1 -0
- package/es/deprecated/index.d.ts +143 -0
- package/es/deprecated/index.mjs +162 -0
- package/es/deprecated/index.mjs.map +1 -0
- package/es/deprecated/methods.d.ts +18 -0
- package/es/deprecated/methods.mjs +26 -0
- package/es/deprecated/methods.mjs.map +1 -0
- package/es/index.d.ts +35 -0
- package/es/index.mjs +35 -40
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +161 -0
- package/es/oracle.mjs +306 -0
- package/es/oracle.mjs.map +1 -0
- package/es/spend.d.ts +62 -0
- package/es/spend.mjs +111 -0
- package/es/spend.mjs.map +1 -0
- package/es/tx/builder/address.d.ts +25 -0
- package/es/tx/builder/address.mjs +45 -0
- package/es/tx/builder/address.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +70 -0
- package/es/tx/builder/constants.mjs +122 -0
- package/es/tx/builder/constants.mjs.map +1 -0
- package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
- package/es/tx/builder/field-types/coin-amount.mjs +26 -0
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
- package/es/tx/builder/field-types/deposit.d.ts +15 -0
- package/es/tx/builder/field-types/deposit.mjs +19 -0
- package/es/tx/builder/field-types/deposit.mjs.map +1 -0
- package/es/tx/builder/field-types/fee.d.ts +25 -0
- package/es/tx/builder/field-types/fee.mjs +150 -0
- package/es/tx/builder/field-types/fee.mjs.map +1 -0
- package/es/tx/builder/field-types/field.d.ts +6 -0
- package/es/tx/builder/field-types/field.mjs +15 -0
- package/es/tx/builder/field-types/field.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
- package/es/tx/builder/field-types/gas-limit.mjs +33 -0
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-price.d.ts +8 -0
- package/es/tx/builder/field-types/gas-price.mjs +18 -0
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
- package/es/tx/builder/field-types/index.d.ts +70 -0
- package/es/tx/builder/field-types/index.mjs +25 -0
- package/es/tx/builder/field-types/index.mjs.map +1 -0
- package/es/tx/builder/field-types/name-fee.d.ts +20 -0
- package/es/tx/builder/field-types/name-fee.mjs +24 -0
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
- package/es/tx/builder/field-types/name-id.d.ts +14 -0
- package/es/tx/builder/field-types/name-id.mjs +19 -0
- package/es/tx/builder/field-types/name-id.mjs.map +1 -0
- package/es/tx/builder/field-types/name.d.ts +13 -0
- package/es/tx/builder/field-types/name.mjs +18 -0
- package/es/tx/builder/field-types/name.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
- package/es/tx/builder/field-types/short-u-int.mjs +12 -0
- package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
- package/es/tx/builder/field-types/u-int.d.ts +8 -0
- package/es/tx/builder/field-types/u-int.mjs +14 -0
- package/es/tx/builder/field-types/u-int.mjs.map +1 -0
- package/es/tx/builder/helpers.d.ts +125 -0
- package/es/tx/builder/helpers.mjs +94 -240
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +88 -0
- package/es/tx/builder/index.mjs +167 -358
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +1201 -0
- package/es/tx/builder/schema.mjs +175 -664
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +64 -0
- package/es/tx/index.mjs +151 -265
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/validator.d.ts +20 -0
- package/es/tx/validator.mjs +104 -124
- package/es/tx/validator.mjs.map +1 -1
- package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
- package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
- package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
- package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
- package/es/typings/bip32-path/index.d.mjs +2 -0
- package/es/typings/bip32-path/index.d.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs.map +1 -1
- package/es/typings/sha-js/index.d.mjs +2 -0
- package/es/typings/sha-js/index.d.mjs.map +1 -0
- package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
- package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
- package/es/utils/amount-formatter.d.ts +42 -0
- package/es/utils/amount-formatter.mjs +36 -49
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.d.ts +6 -0
- package/es/utils/autorest.mjs +97 -0
- package/es/utils/autorest.mjs.map +1 -0
- package/es/utils/bignumber.d.ts +13 -0
- package/es/utils/bignumber.mjs +11 -8
- package/es/utils/bignumber.mjs.map +1 -1
- package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
- package/es/utils/bytes.mjs +11 -15
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +88 -0
- package/es/utils/crypto.mjs +64 -108
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder-types.d.ts +61 -0
- package/es/utils/encoder-types.mjs +36 -0
- package/es/utils/encoder-types.mjs.map +1 -0
- package/es/utils/encoder.d.ts +25 -0
- package/es/utils/encoder.mjs +118 -0
- package/es/utils/encoder.mjs.map +1 -0
- package/es/{errors.d.ts → utils/errors.d.ts} +246 -59
- package/es/utils/errors.mjs +313 -136
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +50 -0
- package/es/utils/hd-wallet.mjs +86 -45
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +12 -16
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +101 -194
- package/es/utils/keystore.mjs.map +1 -1
- package/es/{mptree.d.ts → utils/mptree.d.ts} +6 -9
- package/es/utils/mptree.mjs +22 -18
- package/es/utils/mptree.mjs.map +1 -1
- package/es/utils/other.d.ts +20 -0
- package/es/utils/other.mjs +32 -35
- package/es/utils/other.mjs.map +1 -1
- package/es/utils/semver-satisfies.d.ts +1 -0
- package/es/utils/semver-satisfies.mjs +2 -2
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.d.ts +24 -0
- package/es/utils/string.mjs +8 -10
- package/es/utils/string.mjs.map +1 -1
- package/package.json +56 -42
- package/src/AeSdk.ts +68 -0
- package/src/AeSdkAepp.ts +176 -0
- package/src/AeSdkBase.ts +338 -0
- package/src/AeSdkWallet.ts +348 -0
- package/src/Node.ts +173 -0
- package/src/account/Base.ts +124 -0
- package/src/account/Memory.ts +98 -0
- package/src/account/Rpc.ts +69 -0
- package/src/aens.ts +407 -0
- package/src/aepp-wallet-communication/connection/Browser.ts +71 -0
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +59 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +122 -0
- package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +18 -18
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +143 -0
- package/src/aepp-wallet-communication/rpc/types.ts +66 -0
- package/src/aepp-wallet-communication/schema.ts +224 -0
- package/src/aepp-wallet-communication/wallet-detector.ts +72 -0
- package/src/apis/compiler/code-model-v4.yaml +2649 -0
- package/src/apis/compiler/compiler.ts +585 -0
- package/src/apis/compiler/index.ts +2 -0
- package/src/apis/compiler/models/index.ts +301 -0
- package/src/apis/compiler/models/mappers.ts +583 -0
- package/src/apis/compiler/models/parameters.ts +93 -0
- package/src/apis/node/code-model-v4.yaml +10080 -0
- package/src/apis/node/index.ts +2 -0
- package/src/apis/node/models/index.ts +1257 -0
- package/src/apis/node/models/mappers.ts +4280 -0
- package/src/apis/node/models/parameters.ts +188 -0
- package/src/apis/node/node.ts +1299 -0
- package/src/chain.ts +502 -0
- package/src/channel/handlers.ts +817 -0
- package/src/channel/index.ts +1025 -0
- package/src/channel/internal.ts +361 -0
- package/src/contract/Compiler.ts +67 -0
- package/src/contract/aci.ts +538 -0
- package/src/contract/ga.ts +199 -0
- package/src/contract/methods.ts +123 -0
- package/src/deprecated/index.ts +170 -0
- package/src/deprecated/methods.ts +25 -0
- package/src/index.ts +56 -0
- package/src/oracle.ts +364 -0
- package/src/spend.ts +164 -0
- package/src/tx/builder/address.ts +50 -0
- package/src/tx/builder/constants.ts +126 -0
- package/src/tx/builder/field-types/coin-amount.ts +27 -0
- package/src/tx/builder/field-types/deposit.ts +21 -0
- package/src/tx/builder/field-types/fee.ts +143 -0
- package/src/tx/builder/field-types/field.ts +9 -0
- package/src/tx/builder/field-types/gas-limit.ts +41 -0
- package/src/tx/builder/field-types/gas-price.ts +16 -0
- package/src/tx/builder/field-types/index.ts +45 -0
- package/src/tx/builder/field-types/name-fee.ts +32 -0
- package/src/tx/builder/field-types/name-id.ts +20 -0
- package/src/tx/builder/field-types/name.ts +18 -0
- package/src/tx/builder/field-types/short-u-int.ts +11 -0
- package/src/tx/builder/field-types/u-int.ts +16 -0
- package/src/tx/builder/helpers.ts +248 -0
- package/src/tx/builder/index.ts +400 -0
- package/src/tx/builder/schema.ts +727 -0
- package/src/tx/index.ts +192 -0
- package/src/tx/validator.ts +230 -0
- package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
- package/src/typings/@aeternity__uuid/index.d.ts +5 -0
- package/src/typings/bip32-path/index.d.ts +33 -0
- package/src/typings/blakejs/index.d.ts +4 -32
- package/src/typings/sha-js/index.d.ts +5 -0
- package/src/typings/tweetnacl-auth/index.d.ts +14 -0
- package/src/utils/amount-formatter.ts +56 -69
- package/src/utils/autorest.ts +93 -0
- package/src/utils/bignumber.ts +11 -12
- package/src/utils/bytes.ts +29 -31
- package/src/utils/crypto.ts +205 -0
- package/src/utils/encoder-types.ts +63 -0
- package/src/utils/encoder.ts +146 -0
- package/src/utils/errors.ts +482 -366
- package/src/utils/hd-wallet.ts +166 -0
- package/src/utils/json-big.ts +27 -0
- package/src/utils/keystore.ts +182 -0
- package/src/utils/mptree.ts +64 -61
- package/src/utils/other.ts +34 -41
- package/src/utils/semver-satisfies.ts +15 -11
- package/src/utils/string.ts +18 -20
- package/es/account/base.mjs +0 -179
- package/es/account/base.mjs.map +0 -1
- package/es/account/memory.mjs +0 -99
- package/es/account/memory.mjs.map +0 -1
- package/es/account/multiple.mjs +0 -179
- package/es/account/multiple.mjs.map +0 -1
- package/es/ae/aens.mjs +0 -404
- package/es/ae/aens.mjs.map +0 -1
- package/es/ae/aepp.mjs +0 -45
- package/es/ae/aepp.mjs.map +0 -1
- package/es/ae/contract.mjs +0 -159
- package/es/ae/contract.mjs.map +0 -1
- package/es/ae/index.mjs +0 -207
- package/es/ae/index.mjs.map +0 -1
- package/es/ae/oracle.mjs +0 -339
- package/es/ae/oracle.mjs.map +0 -1
- package/es/ae/universal.mjs +0 -45
- package/es/ae/universal.mjs.map +0 -1
- package/es/ae/wallet.mjs +0 -50
- package/es/ae/wallet.mjs.map +0 -1
- package/es/amount-formatter.d.ts +0 -58
- package/es/bignumber.d.ts +0 -18
- package/es/chain/index.mjs +0 -272
- package/es/chain/index.mjs.map +0 -1
- package/es/chain/node.mjs +0 -442
- package/es/chain/node.mjs.map +0 -1
- package/es/contract/compiler.mjs +0 -115
- package/es/contract/compiler.mjs.map +0 -1
- package/es/contract/ga/helpers.mjs +0 -30
- package/es/contract/ga/helpers.mjs.map +0 -1
- package/es/contract/ga/index.mjs +0 -178
- package/es/contract/ga/index.mjs.map +0 -1
- package/es/crypto-ts.d.ts +0 -9
- package/es/node-pool/index.mjs +0 -188
- package/es/node-pool/index.mjs.map +0 -1
- package/es/node.mjs +0 -133
- package/es/node.mjs.map +0 -1
- package/es/other.d.ts +0 -31
- package/es/semver-satisfies.d.ts +0 -1
- package/es/string.d.ts +0 -26
- package/es/tx/builder/field-types.mjs +0 -74
- package/es/tx/builder/field-types.mjs.map +0 -1
- package/es/tx/tx-object.mjs +0 -283
- package/es/tx/tx-object.mjs.map +0 -1
- package/es/tx/tx.mjs +0 -938
- package/es/tx/tx.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
- package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
- package/es/utils/async-init.mjs +0 -64
- package/es/utils/async-init.mjs.map +0 -1
- package/es/utils/crypto-ts.mjs.map +0 -1
- package/es/utils/swagger.mjs +0 -164
- package/es/utils/swagger.mjs.map +0 -1
- package/src/account/base.js +0 -153
- package/src/account/memory.js +0 -83
- package/src/account/multiple.js +0 -162
- package/src/ae/aens.js +0 -361
- package/src/ae/aepp.js +0 -45
- package/src/ae/contract.js +0 -148
- package/src/ae/index.js +0 -168
- package/src/ae/oracle.js +0 -311
- package/src/ae/universal.js +0 -47
- package/src/ae/wallet.js +0 -50
- package/src/chain/index.js +0 -269
- package/src/chain/node.js +0 -320
- package/src/channel/handlers.js +0 -673
- package/src/channel/index.js +0 -898
- package/src/channel/internal.js +0 -237
- package/src/contract/aci.js +0 -376
- package/src/contract/compiler.js +0 -100
- package/src/contract/ga/helpers.js +0 -19
- package/src/contract/ga/index.js +0 -150
- package/src/index.js +0 -89
- package/src/node-pool/index.js +0 -172
- package/src/node.js +0 -116
- package/src/tx/builder/field-types.js +0 -61
- package/src/tx/builder/helpers.js +0 -380
- package/src/tx/builder/index.js +0 -465
- package/src/tx/builder/schema.js +0 -1197
- package/src/tx/index.js +0 -301
- package/src/tx/tx-object.js +0 -187
- package/src/tx/tx.js +0 -631
- package/src/tx/validator.js +0 -181
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
- package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
- package/src/utils/aepp-wallet-communication/helpers.js +0 -60
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
- package/src/utils/aepp-wallet-communication/schema.ts +0 -80
- package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
- package/src/utils/async-init.js +0 -45
- package/src/utils/crypto.js +0 -229
- package/src/utils/hd-wallet.js +0 -100
- package/src/utils/json-big.js +0 -26
- package/src/utils/keystore.js +0 -219
- package/src/utils/swagger.js +0 -156
package/es/contract/aci.mjs
CHANGED
|
@@ -1,174 +1,172 @@
|
|
|
1
1
|
/*
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* ContractACI module
|
|
20
|
-
*
|
|
21
|
-
* @module @aeternity/aepp-sdk/es/contract/aci
|
|
22
|
-
* @export getContractInstance
|
|
23
|
-
*/
|
|
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
|
+
// @ts-expect-error TODO remove
|
|
24
18
|
import _aeternityAeppCalldata from '@aeternity/aepp-calldata';
|
|
25
19
|
const {
|
|
26
20
|
Encoder: Calldata
|
|
27
21
|
} = _aeternityAeppCalldata;
|
|
28
|
-
import { DRY_RUN_ACCOUNT,
|
|
29
|
-
import
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
22
|
+
import { DRY_RUN_ACCOUNT, AMOUNT } from "../tx/builder/schema.mjs";
|
|
23
|
+
import { Tag } from "../tx/builder/constants.mjs";
|
|
24
|
+
import { buildContractIdByContractTx, unpackTx } from "../tx/builder/index.mjs";
|
|
25
|
+
import { _buildTx } from "../tx/index.mjs";
|
|
26
|
+
import { send } from "../spend.mjs";
|
|
27
|
+
import { decode } from "../utils/encoder.mjs";
|
|
28
|
+
import { MissingContractDefError, MissingContractAddressError, InactiveContractError, BytecodeMismatchError, DuplicateContractError, MissingFunctionNameError, InvalidMethodInvocationError, NotPayableFunctionError, TypeError, NodeInvocationError, IllegalArgumentError, NoSuchContractFunctionError, MissingEventDefinitionError, AmbiguousEventDefinitionError, UnexpectedTsError, InternalError } from "../utils/errors.mjs";
|
|
29
|
+
import { hash as calcHash } from "../utils/crypto.mjs";
|
|
30
|
+
import { getAccount, getContract, getContractByteCode, getKeyBlock, resolveName, txDryRun } from "../chain.mjs";
|
|
31
|
+
|
|
33
32
|
/**
|
|
34
33
|
* Generate contract ACI object with predefined js methods for contract usage - can be used for
|
|
35
34
|
* creating a reference to already deployed contracts
|
|
36
|
-
* @
|
|
37
|
-
* @param
|
|
38
|
-
* @
|
|
39
|
-
* @param {String} [options.bytecode] Contract bytecode
|
|
40
|
-
* @param {Object} [options.aci] Contract ACI
|
|
41
|
-
* @param {String} [options.contractAddress] Contract address
|
|
42
|
-
* @param {Object} [options.filesystem] Contact source external namespaces map
|
|
43
|
-
* @param {Boolean} [options.validateBytecode] Compare source code with on-chain version
|
|
44
|
-
* @return {ContractInstance} JS Contract API
|
|
35
|
+
* @category contract
|
|
36
|
+
* @param options - Options object
|
|
37
|
+
* @returns JS Contract API
|
|
45
38
|
* @example
|
|
39
|
+
* ```js
|
|
46
40
|
* const contractIns = await aeSdk.getContractInstance({ source })
|
|
47
41
|
* await contractIns.deploy([321]) or await contractIns.methods.init(321)
|
|
48
42
|
* const callResult = await contractIns.call('setState', [123]) or
|
|
49
43
|
* await contractIns.methods.setState.send(123, options)
|
|
50
44
|
* const staticCallResult = await contractIns.call('setState', [123], { callStatic: true }) or
|
|
51
45
|
* await contractIns.methods.setState.get(123, options)
|
|
52
|
-
*
|
|
46
|
+
* ```
|
|
47
|
+
* Also you can call contract like: `await contractIns.methods.setState(123, options)`
|
|
53
48
|
* Then sdk decide to make on-chain or static call(dry-run API) transaction based on function is
|
|
54
49
|
* stateful or not
|
|
55
50
|
*/
|
|
56
|
-
|
|
57
|
-
export default async function getContractInstance() {
|
|
58
|
-
var _this = this;
|
|
59
|
-
|
|
51
|
+
export default async function getContractInstance(_ref) {
|
|
60
52
|
let {
|
|
53
|
+
onAccount,
|
|
54
|
+
onCompiler,
|
|
55
|
+
onNode,
|
|
61
56
|
source,
|
|
62
57
|
bytecode,
|
|
63
58
|
aci: _aci,
|
|
64
59
|
contractAddress,
|
|
65
|
-
|
|
60
|
+
fileSystem = {},
|
|
66
61
|
validateBytecode,
|
|
67
62
|
...otherOptions
|
|
68
|
-
} =
|
|
63
|
+
} = _ref;
|
|
69
64
|
|
|
70
|
-
if (
|
|
71
|
-
|
|
65
|
+
if (_aci == null && source != null) {
|
|
66
|
+
// TODO: should be fixed when the compiledAci interface gets updated
|
|
67
|
+
_aci = await onCompiler.generateACI({
|
|
72
68
|
code: source,
|
|
73
69
|
options: {
|
|
74
|
-
|
|
70
|
+
fileSystem
|
|
75
71
|
}
|
|
76
72
|
});
|
|
77
73
|
}
|
|
78
74
|
|
|
79
|
-
if (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
if (_aci == null) throw new MissingContractDefError();
|
|
76
|
+
|
|
77
|
+
if (contractAddress != null) {
|
|
78
|
+
contractAddress = await resolveName(contractAddress, 'contract_pubkey', {
|
|
79
|
+
resolveByNode: true,
|
|
80
|
+
onNode
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
83
|
|
|
84
|
-
if (
|
|
84
|
+
if (contractAddress == null && source == null && bytecode == null) {
|
|
85
85
|
throw new MissingContractAddressError('Can\'t create instance by ACI without address');
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
if (contractAddress) {
|
|
89
|
-
const contract = await
|
|
90
|
-
|
|
88
|
+
if (contractAddress != null) {
|
|
89
|
+
const contract = await getContract(contractAddress, {
|
|
90
|
+
onNode
|
|
91
|
+
});
|
|
92
|
+
if (contract.active == null) throw new InactiveContractError(contractAddress);
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
const instance = {
|
|
94
96
|
_aci,
|
|
95
|
-
_name: _aci.
|
|
96
|
-
calldata: new Calldata([_aci.
|
|
97
|
+
_name: _aci.encodedAci.contract.name,
|
|
98
|
+
calldata: new Calldata([_aci.encodedAci, ..._aci.externalEncodedAci]),
|
|
97
99
|
source,
|
|
98
100
|
bytecode,
|
|
99
101
|
deployInfo: {
|
|
100
102
|
address: contractAddress
|
|
101
103
|
},
|
|
102
|
-
options: {
|
|
104
|
+
options: {
|
|
105
|
+
onAccount,
|
|
106
|
+
onCompiler,
|
|
107
|
+
onNode,
|
|
108
|
+
amount: AMOUNT,
|
|
103
109
|
callStatic: false,
|
|
104
|
-
|
|
110
|
+
fileSystem,
|
|
105
111
|
...otherOptions
|
|
106
112
|
},
|
|
107
|
-
|
|
113
|
+
|
|
114
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
115
|
+
|
|
116
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
117
|
+
async compile(_options) {},
|
|
118
|
+
|
|
119
|
+
async _estimateGas(_name, _params, _options) {},
|
|
120
|
+
|
|
121
|
+
async deploy(_params, _options) {},
|
|
122
|
+
|
|
123
|
+
async call(_fn, _params, _options) {},
|
|
124
|
+
|
|
125
|
+
decodeEvents(_events, options) {},
|
|
126
|
+
|
|
127
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
128
|
+
|
|
129
|
+
/* eslint-enable @typescript-eslint/no-empty-function */
|
|
130
|
+
methods: undefined
|
|
108
131
|
};
|
|
109
132
|
|
|
110
|
-
if (validateBytecode) {
|
|
111
|
-
if (
|
|
112
|
-
const onChanBytecode = (await
|
|
113
|
-
|
|
133
|
+
if (validateBytecode != null) {
|
|
134
|
+
if (contractAddress == null) throw new MissingContractAddressError('Can\'t validate bytecode without contract address');
|
|
135
|
+
const onChanBytecode = (await getContractByteCode(contractAddress, {
|
|
136
|
+
onNode
|
|
137
|
+
})).bytecode;
|
|
138
|
+
const isValid = source != null ? await onCompiler.validateByteCode({
|
|
114
139
|
bytecode: onChanBytecode,
|
|
115
140
|
source,
|
|
116
141
|
options: instance.options
|
|
117
|
-
}).then(
|
|
118
|
-
if (!isValid) throw new BytecodeMismatchError(source ? 'source' : 'bytecode');
|
|
142
|
+
}).then(() => true, () => false) : bytecode === onChanBytecode;
|
|
143
|
+
if (!isValid) throw new BytecodeMismatchError(source != null ? 'source' : 'bytecode');
|
|
119
144
|
}
|
|
120
145
|
/**
|
|
121
146
|
* Compile contract
|
|
122
|
-
* @
|
|
123
|
-
* @rtype () => ContractInstance: Object
|
|
124
|
-
* @return {String} bytecode bytecode
|
|
147
|
+
* @returns bytecode
|
|
125
148
|
*/
|
|
126
149
|
|
|
127
150
|
|
|
128
151
|
instance.compile = async function () {
|
|
129
152
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
130
|
-
if (instance.bytecode) throw new IllegalArgumentError('Contract already compiled');
|
|
131
|
-
if (
|
|
132
|
-
|
|
133
|
-
bytecode
|
|
134
|
-
} = await _this.compilerApi.compileContract({
|
|
153
|
+
if (instance.bytecode != null) throw new IllegalArgumentError('Contract already compiled');
|
|
154
|
+
if (instance.source == null) throw new IllegalArgumentError('Can\'t compile without source code');
|
|
155
|
+
instance.bytecode = (await onCompiler.compileContract({
|
|
135
156
|
code: instance.source,
|
|
136
157
|
options: { ...instance.options,
|
|
137
158
|
...options
|
|
138
159
|
}
|
|
139
|
-
});
|
|
140
|
-
instance.bytecode = bytecode;
|
|
160
|
+
})).bytecode;
|
|
141
161
|
return instance.bytecode;
|
|
142
162
|
};
|
|
143
163
|
|
|
144
|
-
const
|
|
145
|
-
const txData = await this.send(tx, options);
|
|
146
|
-
const result = {
|
|
147
|
-
hash: txData.hash,
|
|
148
|
-
tx: TxObject({
|
|
149
|
-
tx: txData.rawTx
|
|
150
|
-
}),
|
|
151
|
-
txData,
|
|
152
|
-
rawTx: txData.rawTx
|
|
153
|
-
};
|
|
154
|
-
if (options.waitMined === false) return result;
|
|
155
|
-
const {
|
|
156
|
-
callInfo
|
|
157
|
-
} = await this.api.getTransactionInfoByHash(txData.hash);
|
|
158
|
-
Object.assign(result.txData, callInfo); // TODO: don't duplicate data in result
|
|
159
|
-
|
|
160
|
-
await handleCallError(callInfo);
|
|
161
|
-
return { ...result,
|
|
162
|
-
result: callInfo
|
|
163
|
-
};
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
const handleCallError = _ref => {
|
|
164
|
+
const handleCallError = (_ref2, transaction) => {
|
|
167
165
|
let {
|
|
168
166
|
returnType,
|
|
169
167
|
returnValue
|
|
170
|
-
} =
|
|
171
|
-
let message;
|
|
168
|
+
} = _ref2;
|
|
169
|
+
let message;
|
|
172
170
|
|
|
173
171
|
switch (returnType) {
|
|
174
172
|
case 'ok':
|
|
@@ -183,10 +181,34 @@ export default async function getContractInstance() {
|
|
|
183
181
|
break;
|
|
184
182
|
|
|
185
183
|
default:
|
|
186
|
-
throw new InternalError(`Unknown
|
|
184
|
+
throw new InternalError(`Unknown return type: ${returnType}`);
|
|
187
185
|
}
|
|
188
186
|
|
|
189
|
-
throw new NodeInvocationError(message);
|
|
187
|
+
throw new NodeInvocationError(message, transaction);
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
const sendAndProcess = async (tx, options) => {
|
|
191
|
+
options = { ...instance.options,
|
|
192
|
+
...options
|
|
193
|
+
};
|
|
194
|
+
const txData = await send(tx, options);
|
|
195
|
+
const result = {
|
|
196
|
+
hash: txData.hash,
|
|
197
|
+
tx: unpackTx(txData.rawTx),
|
|
198
|
+
txData,
|
|
199
|
+
rawTx: txData.rawTx
|
|
200
|
+
};
|
|
201
|
+
if (txData.blockHeight == null) return result;
|
|
202
|
+
const {
|
|
203
|
+
callInfo
|
|
204
|
+
} = await onNode.getTransactionInfoByHash(txData.hash);
|
|
205
|
+
Object.assign(result.txData, callInfo); // TODO: don't duplicate data in result
|
|
206
|
+
// @ts-expect-error TODO api should be updated to match types
|
|
207
|
+
|
|
208
|
+
handleCallError(callInfo, tx);
|
|
209
|
+
return { ...result,
|
|
210
|
+
result: callInfo
|
|
211
|
+
};
|
|
190
212
|
};
|
|
191
213
|
|
|
192
214
|
instance._estimateGas = async (name, params, options) => {
|
|
@@ -202,35 +224,33 @@ export default async function getContractInstance() {
|
|
|
202
224
|
};
|
|
203
225
|
/**
|
|
204
226
|
* Deploy contract
|
|
205
|
-
* @
|
|
206
|
-
* @
|
|
207
|
-
* @
|
|
208
|
-
* @param {Object} [options] options
|
|
209
|
-
* @return {Object} deploy info
|
|
227
|
+
* @param params - Contract init function arguments array
|
|
228
|
+
* @param options - Options
|
|
229
|
+
* @returns deploy info
|
|
210
230
|
*/
|
|
211
231
|
|
|
212
232
|
|
|
213
233
|
instance.deploy = async function () {
|
|
214
|
-
var _opt$
|
|
234
|
+
var _opt$gasLimit;
|
|
215
235
|
|
|
216
236
|
let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
217
237
|
let options = arguments.length > 1 ? arguments[1] : undefined;
|
|
218
238
|
const opt = { ...instance.options,
|
|
219
239
|
...options
|
|
220
240
|
};
|
|
221
|
-
if (
|
|
222
|
-
|
|
223
|
-
if (
|
|
224
|
-
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
} = await _this.contractCreateTx({ ...opt,
|
|
229
|
-
gas: (_opt$gas = opt.gas) !== null && _opt$gas !== void 0 ? _opt$gas : await instance._estimateGas('init', params, opt),
|
|
241
|
+
if (instance.bytecode == null) await instance.compile(opt); // @ts-expect-error TODO: need to fix compatibility between return types of `deploy` and `call`
|
|
242
|
+
|
|
243
|
+
if (opt.callStatic === true) return instance.call('init', params, opt);
|
|
244
|
+
if (instance.deployInfo.address != null) throw new DuplicateContractError();
|
|
245
|
+
const ownerId = await opt.onAccount.address(options);
|
|
246
|
+
const tx = await _buildTx(Tag.ContractCreateTx, { ...opt,
|
|
247
|
+
gasLimit: (_opt$gasLimit = opt.gasLimit) !== null && _opt$gasLimit !== void 0 ? _opt$gasLimit : await instance._estimateGas('init', params, opt),
|
|
230
248
|
callData: instance.calldata.encode(instance._name, 'init', params),
|
|
231
249
|
code: instance.bytecode,
|
|
232
|
-
ownerId
|
|
250
|
+
ownerId,
|
|
251
|
+
onNode
|
|
233
252
|
});
|
|
253
|
+
const contractId = buildContractIdByContractTx(tx);
|
|
234
254
|
const {
|
|
235
255
|
hash,
|
|
236
256
|
rawTx,
|
|
@@ -249,15 +269,18 @@ export default async function getContractInstance() {
|
|
|
249
269
|
};
|
|
250
270
|
/**
|
|
251
271
|
* Get function schema from contract ACI object
|
|
252
|
-
* @param
|
|
253
|
-
* @
|
|
272
|
+
* @param name - Function name
|
|
273
|
+
* @returns function ACI
|
|
254
274
|
*/
|
|
255
275
|
|
|
256
276
|
|
|
257
277
|
function getFunctionACI(name) {
|
|
258
|
-
const fn = instance._aci.
|
|
278
|
+
const fn = instance._aci.encodedAci.contract.functions.find(f => f.name === name);
|
|
279
|
+
|
|
280
|
+
if (fn != null) {
|
|
281
|
+
return fn;
|
|
282
|
+
}
|
|
259
283
|
|
|
260
|
-
if (fn) return fn;
|
|
261
284
|
if (name === 'init') return {
|
|
262
285
|
payable: false
|
|
263
286
|
};
|
|
@@ -265,13 +288,10 @@ export default async function getContractInstance() {
|
|
|
265
288
|
}
|
|
266
289
|
/**
|
|
267
290
|
* Call contract function
|
|
268
|
-
* @
|
|
269
|
-
* @
|
|
270
|
-
* @param
|
|
271
|
-
* @
|
|
272
|
-
* @param {Object} [options={}] Array of function arguments
|
|
273
|
-
* @param {Boolean} [options.callStatic=false] Static function call
|
|
274
|
-
* @return {Object} CallResult
|
|
291
|
+
* @param fn - Function name
|
|
292
|
+
* @param params - Array of function arguments
|
|
293
|
+
* @param options - Array of function arguments
|
|
294
|
+
* @returns CallResult
|
|
275
295
|
*/
|
|
276
296
|
|
|
277
297
|
|
|
@@ -283,53 +303,65 @@ export default async function getContractInstance() {
|
|
|
283
303
|
};
|
|
284
304
|
const fnACI = getFunctionACI(fn);
|
|
285
305
|
const contractId = instance.deployInfo.address;
|
|
286
|
-
if (
|
|
287
|
-
if (fn === 'init' &&
|
|
288
|
-
if (
|
|
289
|
-
if (opt.amount > 0 && fnACI.payable === false) throw new NotPayableFunctionError(
|
|
290
|
-
const callerId = await
|
|
291
|
-
if (opt.callStatic) return DRY_RUN_ACCOUNT.pub;
|
|
306
|
+
if (fn == null) throw new MissingFunctionNameError();
|
|
307
|
+
if (fn === 'init' && opt.callStatic === false) throw new InvalidMethodInvocationError('"init" can be called only via dryRun');
|
|
308
|
+
if (contractId == null && fn !== 'init') throw new InvalidMethodInvocationError('You need to deploy contract before calling!');
|
|
309
|
+
if (fn !== 'init' && opt.amount > 0 && fnACI.payable === false) throw new NotPayableFunctionError(opt.amount, fn);
|
|
310
|
+
const callerId = await Promise.resolve().then(() => opt.onAccount.address(opt)).catch(error => {
|
|
311
|
+
if (opt.callStatic === true) return DRY_RUN_ACCOUNT.pub;
|
|
312
|
+
throw error;
|
|
292
313
|
});
|
|
293
314
|
const callData = instance.calldata.encode(instance._name, fn, params);
|
|
294
315
|
let res;
|
|
295
316
|
|
|
296
|
-
if (opt.callStatic) {
|
|
297
|
-
var _opt$gas2, _opt$nonce;
|
|
298
|
-
|
|
317
|
+
if (opt.callStatic === true) {
|
|
299
318
|
if (typeof opt.top === 'number') {
|
|
300
|
-
opt.top = (await
|
|
319
|
+
opt.top = (await getKeyBlock(opt.top, {
|
|
320
|
+
onNode
|
|
321
|
+
})).hash;
|
|
301
322
|
}
|
|
302
323
|
|
|
303
324
|
const txOpt = { ...opt,
|
|
304
|
-
|
|
305
|
-
callData
|
|
306
|
-
nonce: (_opt$nonce = opt.nonce) !== null && _opt$nonce !== void 0 ? _opt$nonce : opt.top && (await _this.getAccount(callerId, {
|
|
307
|
-
hash: opt.top
|
|
308
|
-
})).nonce + 1
|
|
325
|
+
onNode,
|
|
326
|
+
callData
|
|
309
327
|
};
|
|
310
|
-
|
|
328
|
+
|
|
329
|
+
if (opt.nonce == null && opt.top != null) {
|
|
330
|
+
opt.nonce = (await getAccount(callerId, {
|
|
331
|
+
hash: opt.top,
|
|
332
|
+
onNode
|
|
333
|
+
})).nonce + 1;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
const tx = await (fn === 'init' ? _buildTx(Tag.ContractCreateTx, { ...txOpt,
|
|
311
337
|
code: instance.bytecode,
|
|
312
338
|
ownerId: callerId
|
|
313
|
-
})
|
|
339
|
+
}) : _buildTx(Tag.ContractCallTx, { ...txOpt,
|
|
314
340
|
callerId,
|
|
315
341
|
contractId
|
|
316
|
-
});
|
|
342
|
+
}));
|
|
317
343
|
const {
|
|
318
344
|
callObj,
|
|
319
345
|
...dryRunOther
|
|
320
|
-
} = await
|
|
321
|
-
|
|
346
|
+
} = await txDryRun(tx, callerId, {
|
|
347
|
+
onNode,
|
|
348
|
+
...opt
|
|
349
|
+
});
|
|
350
|
+
if (callObj == null) throw new UnexpectedTsError();
|
|
351
|
+
handleCallError({
|
|
352
|
+
returnType: callObj.returnType,
|
|
353
|
+
returnValue: callObj.returnValue
|
|
354
|
+
}, tx);
|
|
322
355
|
res = { ...dryRunOther,
|
|
323
|
-
tx:
|
|
324
|
-
tx
|
|
325
|
-
}),
|
|
356
|
+
tx: unpackTx(tx),
|
|
326
357
|
result: callObj
|
|
327
358
|
};
|
|
328
359
|
} else {
|
|
329
|
-
var _opt$
|
|
360
|
+
var _opt$gasLimit2;
|
|
330
361
|
|
|
331
|
-
const tx = await
|
|
332
|
-
|
|
362
|
+
const tx = await _buildTx(Tag.ContractCallTx, { ...opt,
|
|
363
|
+
onNode,
|
|
364
|
+
gasLimit: (_opt$gasLimit2 = opt.gasLimit) !== null && _opt$gasLimit2 !== void 0 ? _opt$gasLimit2 : await instance._estimateGas(fn, params, opt),
|
|
333
365
|
callerId,
|
|
334
366
|
contractId,
|
|
335
367
|
callData
|
|
@@ -337,53 +369,52 @@ export default async function getContractInstance() {
|
|
|
337
369
|
res = await sendAndProcess(tx, opt);
|
|
338
370
|
}
|
|
339
371
|
|
|
340
|
-
if (opt.
|
|
341
|
-
res.decodedResult = fnACI.returns && fnACI.returns !== 'unit' && fn !== 'init' && instance.calldata.decode(instance._name, fn, res.result.returnValue);
|
|
372
|
+
if (opt.callStatic === true || res.txData.blockHeight != null) {
|
|
373
|
+
res.decodedResult = fnACI.returns != null && fnACI.returns !== 'unit' && fn !== 'init' && instance.calldata.decode(instance._name, fn, res.result.returnValue);
|
|
342
374
|
res.decodedEvents = instance.decodeEvents(res.result.log, opt);
|
|
343
375
|
}
|
|
344
376
|
|
|
345
377
|
return res;
|
|
346
378
|
};
|
|
347
379
|
/**
|
|
348
|
-
* @param
|
|
349
|
-
* @param
|
|
350
|
-
* @param
|
|
351
|
-
* @
|
|
352
|
-
* @
|
|
353
|
-
* @throws {
|
|
354
|
-
* @throws {AmbiguousEventDefinitionError}
|
|
380
|
+
* @param address - Contract address that emitted event
|
|
381
|
+
* @param nameHash - Hash of emitted event name
|
|
382
|
+
* @param options - Options
|
|
383
|
+
* @returns Contract name
|
|
384
|
+
* @throws {@link MissingEventDefinitionError}
|
|
385
|
+
* @throws {@link AmbiguousEventDefinitionError}
|
|
355
386
|
*/
|
|
356
387
|
|
|
357
388
|
|
|
358
|
-
function getContractNameByEvent(address, nameHash,
|
|
389
|
+
function getContractNameByEvent(address, nameHash, _ref3) {
|
|
359
390
|
let {
|
|
360
391
|
contractAddressToName
|
|
361
|
-
} =
|
|
392
|
+
} = _ref3;
|
|
362
393
|
const addressToName = { ...instance.options.contractAddressToName,
|
|
363
394
|
...contractAddressToName
|
|
364
395
|
};
|
|
365
|
-
if (addressToName[address]) return addressToName[address];
|
|
366
|
-
const matchedEvents = [instance._aci.
|
|
396
|
+
if (addressToName[address] != null) return addressToName[address];
|
|
397
|
+
const matchedEvents = [instance._aci.encodedAci, ...instance._aci.externalEncodedAci].filter(_ref4 => {
|
|
367
398
|
let {
|
|
368
399
|
contract
|
|
369
|
-
} =
|
|
400
|
+
} = _ref4;
|
|
370
401
|
return contract === null || contract === void 0 ? void 0 : contract.event;
|
|
371
|
-
}).map(
|
|
402
|
+
}).map(_ref5 => {
|
|
372
403
|
let {
|
|
373
404
|
contract
|
|
374
|
-
} =
|
|
405
|
+
} = _ref5;
|
|
375
406
|
return [contract.name, contract.event.variant];
|
|
376
|
-
}).map(
|
|
377
|
-
let [name, events] =
|
|
407
|
+
}).map(_ref6 => {
|
|
408
|
+
let [name, events] = _ref6;
|
|
378
409
|
return events.map(event => [name, Object.keys(event)[0]]);
|
|
379
|
-
}).flat().filter(
|
|
380
|
-
let [, eventName] =
|
|
381
|
-
return BigInt(
|
|
410
|
+
}).flat().filter(_ref7 => {
|
|
411
|
+
let [, eventName] = _ref7;
|
|
412
|
+
return BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash;
|
|
382
413
|
});
|
|
383
414
|
|
|
384
415
|
switch (matchedEvents.length) {
|
|
385
416
|
case 0:
|
|
386
|
-
throw new MissingEventDefinitionError(nameHash, address);
|
|
417
|
+
throw new MissingEventDefinitionError(nameHash.toString(), address);
|
|
387
418
|
|
|
388
419
|
case 1:
|
|
389
420
|
return matchedEvents[0][0];
|
|
@@ -394,13 +425,9 @@ export default async function getContractInstance() {
|
|
|
394
425
|
}
|
|
395
426
|
/**
|
|
396
427
|
* Decode Events
|
|
397
|
-
* @
|
|
398
|
-
* @
|
|
399
|
-
* @
|
|
400
|
-
* @param {Object} [options]
|
|
401
|
-
* @param {Boolean} [options.omitUnknown] Omit events that can't be decoded in case ACI is not
|
|
402
|
-
* complete
|
|
403
|
-
* @return {Object} DecodedEvents
|
|
428
|
+
* @param events - Array of encoded events (callRes.result.log)
|
|
429
|
+
* @param options - Options
|
|
430
|
+
* @returns DecodedEvents
|
|
404
431
|
*/
|
|
405
432
|
|
|
406
433
|
|
|
@@ -416,7 +443,7 @@ export default async function getContractInstance() {
|
|
|
416
443
|
try {
|
|
417
444
|
contractName = getContractNameByEvent(event.address, topics[0], opt);
|
|
418
445
|
} catch (error) {
|
|
419
|
-
if (omitUnknown && error instanceof MissingEventDefinitionError) return null;
|
|
446
|
+
if ((omitUnknown !== null && omitUnknown !== void 0 ? omitUnknown : false) && error instanceof MissingEventDefinitionError) return null;
|
|
420
447
|
throw error;
|
|
421
448
|
}
|
|
422
449
|
|
|
@@ -430,27 +457,32 @@ export default async function getContractInstance() {
|
|
|
430
457
|
address: event.address
|
|
431
458
|
}
|
|
432
459
|
};
|
|
433
|
-
}).filter(e => e);
|
|
460
|
+
}).filter(e => e != null);
|
|
434
461
|
};
|
|
435
462
|
/**
|
|
436
463
|
* Generate proto function based on contract function using Contract ACI schema
|
|
437
464
|
* All function can be called like:
|
|
438
|
-
*
|
|
465
|
+
* ```js
|
|
466
|
+
* await contract.methods.testFunction()
|
|
467
|
+
* ```
|
|
468
|
+
* then sdk will decide to use dry-run or send tx
|
|
439
469
|
* on-chain base on if function stateful or not.
|
|
440
|
-
* Also you can manually do that:
|
|
441
|
-
*
|
|
442
|
-
*
|
|
470
|
+
* Also, you can manually do that:
|
|
471
|
+
* ```js
|
|
472
|
+
* await contract.methods.testFunction.get() // use call-static (dry-run)
|
|
473
|
+
* await contract.methods.testFunction.send() // send tx on-chain
|
|
474
|
+
* ```
|
|
443
475
|
*/
|
|
444
476
|
|
|
445
477
|
|
|
446
|
-
instance.methods = Object.fromEntries(instance._aci.
|
|
478
|
+
instance.methods = Object.fromEntries(instance._aci.encodedAci.contract.functions.map(_ref8 => {
|
|
447
479
|
let {
|
|
448
480
|
name,
|
|
449
481
|
arguments: aciArgs,
|
|
450
482
|
stateful
|
|
451
|
-
} =
|
|
483
|
+
} = _ref8;
|
|
452
484
|
|
|
453
|
-
const genHandler = callStatic => function () {
|
|
485
|
+
const genHandler = callStatic => async function () {
|
|
454
486
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
455
487
|
args[_key] = arguments[_key];
|
|
456
488
|
}
|