@aeternity/aepp-sdk 11.0.1 → 12.1.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/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 +20765 -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 +136 -85
- 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 +61 -47
- package/es/tx/builder/constants.mjs.map +1 -1
- 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 -198
- 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 -561
- 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 -98
- 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 +71 -59
- package/es/utils/encoder.mjs.map +1 -1
- 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 +55 -43
- 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 +172 -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 +116 -71
- 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/encoder.d.ts +0 -26
- 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 -903
- package/src/channel/internal.js +0 -236
- 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/constants.js +0 -100
- package/src/tx/builder/field-types.js +0 -61
- package/src/tx/builder/helpers.js +0 -334
- package/src/tx/builder/index.js +0 -465
- package/src/tx/builder/schema.js +0 -1100
- 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 -219
- 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/src/aens.ts
ADDED
|
@@ -0,0 +1,407 @@
|
|
|
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
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Aens methods - routines to interact with the æternity naming system
|
|
20
|
+
*
|
|
21
|
+
* The high-level description of the naming system is
|
|
22
|
+
* https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol
|
|
23
|
+
* repository.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import BigNumber from 'bignumber.js';
|
|
27
|
+
import { genSalt } from './utils/crypto';
|
|
28
|
+
import { commitmentHash, isAuctionName } from './tx/builder/helpers';
|
|
29
|
+
import {
|
|
30
|
+
CLIENT_TTL, NAME_TTL, Tag, AensName,
|
|
31
|
+
} from './tx/builder/constants';
|
|
32
|
+
import { ArgumentError } from './utils/errors';
|
|
33
|
+
import { Encoded } from './utils/encoder';
|
|
34
|
+
import { send, SendOptions } from './spend';
|
|
35
|
+
import { getName, getHeight } from './chain';
|
|
36
|
+
import { _buildTx, BuildTxOptions } from './tx';
|
|
37
|
+
import { TransformNodeType } from './Node';
|
|
38
|
+
import { NameEntry, NamePointer } from './apis/node';
|
|
39
|
+
import AccountBase from './account/Base';
|
|
40
|
+
|
|
41
|
+
interface KeyPointers {
|
|
42
|
+
[key: string]: string | Buffer;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Revoke a name
|
|
47
|
+
* @category AENS
|
|
48
|
+
* @param name - Name hash
|
|
49
|
+
* @param options - Options
|
|
50
|
+
* @param options.onAccount - Make operation on specific account from sdk (you pass
|
|
51
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
52
|
+
* @param options.fee - fee
|
|
53
|
+
* @param options.ttl - ttl
|
|
54
|
+
* @param options.nonce - nonce
|
|
55
|
+
* @returns Transaction result
|
|
56
|
+
* @example
|
|
57
|
+
* ```js
|
|
58
|
+
* const name = 'test.chain'
|
|
59
|
+
* const nameObject = await sdkInstance.aensQuery(name)
|
|
60
|
+
*
|
|
61
|
+
* await sdkInstance.aensRevoke(name, { fee, ttl , nonce })
|
|
62
|
+
* // or
|
|
63
|
+
* await nameObject.revoke({ fee, ttl, nonce })
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export async function aensRevoke(
|
|
67
|
+
name: AensName,
|
|
68
|
+
options: AensRevokeOptions,
|
|
69
|
+
): ReturnType<typeof send> {
|
|
70
|
+
const nameRevokeTx = await _buildTx(Tag.NameRevokeTx, {
|
|
71
|
+
...options,
|
|
72
|
+
nameId: name,
|
|
73
|
+
accountId: await options.onAccount.address(options),
|
|
74
|
+
});
|
|
75
|
+
return send(nameRevokeTx, options);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
interface AensRevokeOptions extends
|
|
79
|
+
BuildTxOptions<Tag.NameRevokeTx, 'nameId' | 'accountId'>,
|
|
80
|
+
SendOptions {}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Update a name
|
|
84
|
+
* @category AENS
|
|
85
|
+
* @param name - AENS name
|
|
86
|
+
* @param pointers - Map of pointer keys to corresponding addresses
|
|
87
|
+
* @param options - Options
|
|
88
|
+
* @param options.extendPointers - Get the pointers from the node and merge with provided
|
|
89
|
+
* ones. Pointers with the same type will be overwritten
|
|
90
|
+
* @param options.onAccount - Make operation on specific account from sdk (you
|
|
91
|
+
* pass publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
92
|
+
* @param options.fee - fee
|
|
93
|
+
* @param options.ttl - ttl
|
|
94
|
+
* @param options.nonce - nonce
|
|
95
|
+
* @param options.nameTtl - Name ttl represented in number of
|
|
96
|
+
* blocks (Max value is 50000 blocks)
|
|
97
|
+
* @param options.clientTtl=84600 a suggestion as to how long any
|
|
98
|
+
* clients should cache this information
|
|
99
|
+
* @throws Invalid pointer array error
|
|
100
|
+
* @example
|
|
101
|
+
* ```js
|
|
102
|
+
* const name = 'test.chain'
|
|
103
|
+
* const pointersArray = ['ak_asd23dasdas...,' 'ct_asdf34fasdasd...']
|
|
104
|
+
* const nameObject = await sdkInstance.aensQuery(name)
|
|
105
|
+
*
|
|
106
|
+
* await sdkInstance.aensUpdate(name, pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })
|
|
107
|
+
* // or
|
|
108
|
+
* await nameObject.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export async function aensUpdate(
|
|
112
|
+
name: AensName,
|
|
113
|
+
pointers: KeyPointers,
|
|
114
|
+
{ extendPointers, ...options }: AensUpdateOptions,
|
|
115
|
+
): ReturnType<typeof send> {
|
|
116
|
+
const allPointers = {
|
|
117
|
+
...extendPointers === true && Object.fromEntries(
|
|
118
|
+
(await getName(name, options)).pointers
|
|
119
|
+
.map(({ key, id }: { key: string; id: string }) => [key, id]),
|
|
120
|
+
),
|
|
121
|
+
...pointers,
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const nameUpdateTx = await _buildTx(Tag.NameUpdateTx, {
|
|
125
|
+
clientTtl: CLIENT_TTL,
|
|
126
|
+
nameTtl: NAME_TTL,
|
|
127
|
+
...options,
|
|
128
|
+
nameId: name,
|
|
129
|
+
accountId: await options.onAccount.address(options),
|
|
130
|
+
pointers: Object.entries(allPointers).map(([key, id]) => ({ key, id: id.toString() })),
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
return send(nameUpdateTx, options);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
interface AensUpdateOptions extends
|
|
137
|
+
BuildTxOptions<Tag.NameUpdateTx, 'nameId' | 'accountId' | 'pointers' | 'clientTtl' | 'nameTtl'>,
|
|
138
|
+
SendOptions {
|
|
139
|
+
extendPointers?: boolean;
|
|
140
|
+
clientTtl?: number;
|
|
141
|
+
nameTtl?: number;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Transfer a domain to another account
|
|
146
|
+
* @category AENS
|
|
147
|
+
* @param name - AENS name
|
|
148
|
+
* @param account - Recipient account publick key
|
|
149
|
+
* @param options - Options
|
|
150
|
+
* @param options.onAccount - Make operation on specific account from sdk (you pass
|
|
151
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
152
|
+
* @param options.fee - fee
|
|
153
|
+
* @param options.ttl - ttl
|
|
154
|
+
* @param options.nonce - nonce
|
|
155
|
+
* @returns Transaction result
|
|
156
|
+
* @example
|
|
157
|
+
* ```js
|
|
158
|
+
* const name = 'test.chain'
|
|
159
|
+
* const recipientPub = 'ak_asd23dasdas...'
|
|
160
|
+
* const nameObject = await sdkInstance.aensQuery(name)
|
|
161
|
+
*
|
|
162
|
+
* await sdkInstance.aensTransfer(name, recipientPub, { ttl, fee, nonce })
|
|
163
|
+
* // or
|
|
164
|
+
* await nameObject.transfer(recipientPub, { ttl, fee, nonce })
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
export async function aensTransfer(
|
|
168
|
+
name: AensName,
|
|
169
|
+
account: Encoded.AccountAddress,
|
|
170
|
+
options: AensTransferOptions,
|
|
171
|
+
): ReturnType<typeof send> {
|
|
172
|
+
const nameTransferTx = await _buildTx(Tag.NameTransferTx, {
|
|
173
|
+
...options,
|
|
174
|
+
nameId: name,
|
|
175
|
+
accountId: await options.onAccount.address(options),
|
|
176
|
+
recipientId: account,
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
return send(nameTransferTx, options);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
interface AensTransferOptions extends
|
|
183
|
+
BuildTxOptions<Tag.NameTransferTx, 'nameId' | 'accountId' | 'recipientId'>,
|
|
184
|
+
SendOptions {}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Query the AENS name info from the node
|
|
188
|
+
* and return the object with info and predefined functions for manipulating name
|
|
189
|
+
* @category AENS
|
|
190
|
+
* @param name - AENS name
|
|
191
|
+
* @param opt - Options
|
|
192
|
+
* @returns
|
|
193
|
+
* @example
|
|
194
|
+
* ```js
|
|
195
|
+
* const nameObject = sdkInstance.aensQuery('test.chain')
|
|
196
|
+
* console.log(nameObject)
|
|
197
|
+
* {
|
|
198
|
+
* id, // name hash
|
|
199
|
+
* pointers, // array of pointers
|
|
200
|
+
* update, // Update name function
|
|
201
|
+
* extendTtl, // Extend Ttl name function
|
|
202
|
+
* transfer, // Transfer name function
|
|
203
|
+
* revoke // Revoke name function
|
|
204
|
+
* }
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
export async function aensQuery(
|
|
208
|
+
name: AensName,
|
|
209
|
+
opt: Parameters<typeof getName>[1] & Parameters<typeof aensUpdate>[2]
|
|
210
|
+
& Parameters<typeof aensTransfer>[2],
|
|
211
|
+
): Promise<Readonly<
|
|
212
|
+
TransformNodeType<NameEntry> & {
|
|
213
|
+
id: Encoded.Name;
|
|
214
|
+
owner: Encoded.AccountAddress;
|
|
215
|
+
pointers: KeyPointers | NamePointer[];
|
|
216
|
+
ttl: number;
|
|
217
|
+
update: (
|
|
218
|
+
pointers: KeyPointers,
|
|
219
|
+
options?: Omit<Parameters<typeof aensQuery>[1], 'onNode' | 'onCompiler' | 'onAccount'> & {
|
|
220
|
+
onAccount?: AccountBase;
|
|
221
|
+
}
|
|
222
|
+
) => ReturnType<typeof aensUpdate> & ReturnType<typeof aensQuery>;
|
|
223
|
+
transfer: (
|
|
224
|
+
account: Encoded.AccountAddress,
|
|
225
|
+
options?: Parameters<typeof aensQuery>[1]
|
|
226
|
+
) => ReturnType<typeof aensUpdate> & ReturnType<typeof aensQuery>;
|
|
227
|
+
revoke: (options?: Omit<Parameters<typeof aensRevoke>[1], 'onNode' | 'onCompiler' | 'onAccount'> & {
|
|
228
|
+
onAccount?: AccountBase;
|
|
229
|
+
}
|
|
230
|
+
) => ReturnType<typeof aensRevoke>;
|
|
231
|
+
extendTtl: (
|
|
232
|
+
nameTtl: number,
|
|
233
|
+
options?: Omit<Parameters<typeof aensQuery>[1], 'onNode' | 'onCompiler' | 'onAccount'>
|
|
234
|
+
) => ReturnType<typeof aensUpdate> & ReturnType<typeof aensQuery>;
|
|
235
|
+
}
|
|
236
|
+
>> {
|
|
237
|
+
const nameEntry = await getName(name, opt);
|
|
238
|
+
return Object.freeze({
|
|
239
|
+
...nameEntry,
|
|
240
|
+
id: nameEntry.id as Encoded.Name,
|
|
241
|
+
owner: nameEntry.owner as Encoded.AccountAddress,
|
|
242
|
+
async update(pointers, options) {
|
|
243
|
+
return {
|
|
244
|
+
...await aensUpdate(name, pointers, { ...opt, ...options }),
|
|
245
|
+
...await aensQuery(name, { ...opt, ...options }),
|
|
246
|
+
};
|
|
247
|
+
},
|
|
248
|
+
async transfer(account, options) {
|
|
249
|
+
return {
|
|
250
|
+
...await aensTransfer(name, account, { ...opt, ...options }),
|
|
251
|
+
...await aensQuery(name, { ...opt, ...options }),
|
|
252
|
+
};
|
|
253
|
+
},
|
|
254
|
+
async revoke(options) {
|
|
255
|
+
return aensRevoke(name, { ...opt, ...options });
|
|
256
|
+
},
|
|
257
|
+
async extendTtl(nameTtl = NAME_TTL, options = {}) {
|
|
258
|
+
if (nameTtl > NAME_TTL || nameTtl <= 0) {
|
|
259
|
+
throw new ArgumentError('nameTtl', `a number between 1 and ${NAME_TTL} blocks`, nameTtl);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return {
|
|
263
|
+
...await aensUpdate(name, {}, {
|
|
264
|
+
...opt, ...options, nameTtl, extendPointers: true,
|
|
265
|
+
}),
|
|
266
|
+
...await aensQuery(name, { ...opt, ...options }),
|
|
267
|
+
};
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Claim a previously preclaimed registration. This can only be done after the
|
|
274
|
+
* preclaim step
|
|
275
|
+
* @category AENS
|
|
276
|
+
* @param name - AENS name
|
|
277
|
+
* @param salt - Salt from pre-claim, or 0 if it's a bid
|
|
278
|
+
* @param options - options
|
|
279
|
+
* @param options.onAccount - Make operation on specific account from sdk (you pass
|
|
280
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
281
|
+
* @param options.fee - fee
|
|
282
|
+
* @param options.ttl - ttl
|
|
283
|
+
* @param options.nonce - nonce
|
|
284
|
+
* @param options.nameFee - Name Fee (By default calculated by sdk)
|
|
285
|
+
* @returns the result of the claim
|
|
286
|
+
* @example
|
|
287
|
+
* ```js
|
|
288
|
+
* const name = 'test.chain'
|
|
289
|
+
* const salt = preclaimResult.salt // salt from pre-claim transaction
|
|
290
|
+
*
|
|
291
|
+
* await sdkInstance.aensClaim(name, salt, { ttl, fee, nonce, nameFee })
|
|
292
|
+
* ```
|
|
293
|
+
*/
|
|
294
|
+
export async function aensClaim(
|
|
295
|
+
name: AensName,
|
|
296
|
+
salt: number,
|
|
297
|
+
options: AensClaimOptions,
|
|
298
|
+
): Promise<AensClaimReturnType> {
|
|
299
|
+
const claimTx = await _buildTx(Tag.NameClaimTx, {
|
|
300
|
+
...options,
|
|
301
|
+
accountId: await options.onAccount.address(options),
|
|
302
|
+
nameSalt: salt,
|
|
303
|
+
name,
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
const result = await send(claimTx, options);
|
|
307
|
+
if (!isAuctionName(name)) {
|
|
308
|
+
const nameInter = result.blockHeight != null && result.blockHeight > 0
|
|
309
|
+
? await aensQuery(name, options)
|
|
310
|
+
: {};
|
|
311
|
+
return Object.assign(result, nameInter);
|
|
312
|
+
}
|
|
313
|
+
return result;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
type AensClaimOptionsType = BuildTxOptions<Tag.NameClaimTx, 'accountId' | 'nameSalt' | 'name'>
|
|
317
|
+
& SendOptions & Parameters<typeof aensQuery>[1];
|
|
318
|
+
interface AensClaimOptions extends AensClaimOptionsType {}
|
|
319
|
+
interface AensClaimReturnType extends
|
|
320
|
+
Awaited<ReturnType<typeof send>>,
|
|
321
|
+
Partial<Awaited<ReturnType<typeof aensQuery>>> {}
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Preclaim a name. Sends a hash of the name and a random salt to the node
|
|
325
|
+
* @category AENS
|
|
326
|
+
* @param name - AENS name
|
|
327
|
+
* @param options - Options
|
|
328
|
+
* @param options.onAccount - Make operation on specific account from sdk (you pass
|
|
329
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
330
|
+
* @param options.fee - fee
|
|
331
|
+
* @param options.ttl - ttl
|
|
332
|
+
* @param options.nonce - nonce
|
|
333
|
+
* @example
|
|
334
|
+
* ```js
|
|
335
|
+
* const name = 'test.chain'
|
|
336
|
+
* const salt = preclaimResult.salt // salt from pre-claim transaction
|
|
337
|
+
*
|
|
338
|
+
* await sdkInstance.aensPreclaim(name, { ttl, fee, nonce })
|
|
339
|
+
* {
|
|
340
|
+
* ...transactionResult,
|
|
341
|
+
* claim, // Claim function (options={}) => claimTransactionResult
|
|
342
|
+
* salt,
|
|
343
|
+
* commitmentId
|
|
344
|
+
* }
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
export async function aensPreclaim(name: AensName, options: AensPreclaimOptions): Promise<Readonly<
|
|
348
|
+
Awaited<ReturnType<typeof send>> & {
|
|
349
|
+
height: number;
|
|
350
|
+
salt: number;
|
|
351
|
+
commitmentId: string;
|
|
352
|
+
claim: (opts?: Parameters<typeof aensClaim>[2]) => ReturnType<typeof aensClaim>;
|
|
353
|
+
}
|
|
354
|
+
>> {
|
|
355
|
+
const salt = genSalt();
|
|
356
|
+
const height = await getHeight(options);
|
|
357
|
+
const commitmentId = commitmentHash(name, salt);
|
|
358
|
+
|
|
359
|
+
const preclaimTx = await _buildTx(Tag.NamePreclaimTx, {
|
|
360
|
+
...options,
|
|
361
|
+
accountId: await options.onAccount.address(options),
|
|
362
|
+
commitmentId,
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
return Object.freeze({
|
|
366
|
+
...await send(preclaimTx, options),
|
|
367
|
+
height,
|
|
368
|
+
salt,
|
|
369
|
+
commitmentId,
|
|
370
|
+
async claim(opts?: Parameters<typeof aensClaim>[2]) {
|
|
371
|
+
return aensClaim(name, salt, { ...options, ...opts });
|
|
372
|
+
},
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
interface AensPreclaimOptions extends
|
|
377
|
+
BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>,
|
|
378
|
+
SendOptions,
|
|
379
|
+
AensClaimOptions {}
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* Bid to name auction
|
|
383
|
+
* @category AENS
|
|
384
|
+
* @param name - Domain name
|
|
385
|
+
* @param nameFee - Name fee (bid fee)
|
|
386
|
+
* @param options - Options
|
|
387
|
+
* @param options.onAccount - Make operation on specific account from sdk (you pass
|
|
388
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
389
|
+
* @param options.fee - fee
|
|
390
|
+
* @param options.ttl - ttl
|
|
391
|
+
* @param options.nonce - nonce
|
|
392
|
+
* @returns Transaction result
|
|
393
|
+
* @example
|
|
394
|
+
* ```js
|
|
395
|
+
* const name = 'test.chain'
|
|
396
|
+
* const bidFee = computeBidFee(name, startFee, incrementPercentage)
|
|
397
|
+
*
|
|
398
|
+
* await sdkInstance.aensBid(name, 213109412839123, { ttl, fee, nonce })
|
|
399
|
+
* ```
|
|
400
|
+
*/
|
|
401
|
+
export async function aensBid(
|
|
402
|
+
name: AensName,
|
|
403
|
+
nameFee: number | string | BigNumber,
|
|
404
|
+
options: Omit<Parameters<typeof aensClaim>[2], 'nameFee'>,
|
|
405
|
+
): ReturnType<typeof aensClaim> {
|
|
406
|
+
return aensClaim(name, 0, { ...options, nameFee });
|
|
407
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
|
|
18
|
+
import { AlreadyConnectedError, NoWalletConnectedError } from '../../utils/errors';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Browser connection base interface
|
|
22
|
+
* @category aepp wallet communication
|
|
23
|
+
*/
|
|
24
|
+
export default abstract class BrowserConnection {
|
|
25
|
+
debug: boolean;
|
|
26
|
+
|
|
27
|
+
protected constructor({ debug = false }: { debug?: boolean }) {
|
|
28
|
+
this.debug = debug;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Connect
|
|
33
|
+
* @param onMessage - Message handler
|
|
34
|
+
* @param onDisconnect - trigger when runtime connection in closed
|
|
35
|
+
*/
|
|
36
|
+
connect(
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
38
|
+
onMessage: (message: any, origin: string, source: any) => void,
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
40
|
+
onDisconnect: () => void,
|
|
41
|
+
): void {
|
|
42
|
+
if (this.isConnected()) throw new AlreadyConnectedError('You already connected');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Disconnect
|
|
47
|
+
*/
|
|
48
|
+
disconnect(): void {
|
|
49
|
+
if (!this.isConnected()) throw new NoWalletConnectedError('You dont have connection. Please connect before');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Receive message
|
|
54
|
+
*/
|
|
55
|
+
protected receiveMessage(message: any): void {
|
|
56
|
+
if (this.debug) console.log('Receive message:', message);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Send message
|
|
61
|
+
*/
|
|
62
|
+
sendMessage(message: any): void {
|
|
63
|
+
if (this.debug) console.log('Send message:', message);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Check if connected
|
|
68
|
+
* @returns Is connected
|
|
69
|
+
*/
|
|
70
|
+
abstract isConnected(): boolean;
|
|
71
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
|
|
18
|
+
import { Runtime } from 'webextension-polyfill';
|
|
19
|
+
import BrowserConnection from './Browser';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* BrowserRuntimeConnection
|
|
23
|
+
* Handle browser runtime communication
|
|
24
|
+
* @category aepp wallet communication
|
|
25
|
+
*/
|
|
26
|
+
export default class BrowserRuntimeConnection extends BrowserConnection {
|
|
27
|
+
port: Runtime.Port;
|
|
28
|
+
|
|
29
|
+
constructor({ port, ...options }: { port: Runtime.Port; debug: boolean }) {
|
|
30
|
+
super(options);
|
|
31
|
+
this.port = port;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
disconnect(): void {
|
|
35
|
+
super.disconnect();
|
|
36
|
+
this.port.disconnect();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
connect(
|
|
40
|
+
onMessage: (message: any, origin: string, source: Runtime.Port) => void,
|
|
41
|
+
onDisconnect: () => void,
|
|
42
|
+
): void {
|
|
43
|
+
super.connect(onMessage, onDisconnect);
|
|
44
|
+
this.port.onMessage.addListener((message, port) => {
|
|
45
|
+
this.receiveMessage(message);
|
|
46
|
+
onMessage(message, port.name, port);
|
|
47
|
+
});
|
|
48
|
+
this.port.onDisconnect.addListener(onDisconnect);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
sendMessage(message: any): void {
|
|
52
|
+
super.sendMessage(message);
|
|
53
|
+
this.port.postMessage(message);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
isConnected(): boolean {
|
|
57
|
+
return this.port.onMessage.hasListeners();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
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
|
+
|
|
18
|
+
import BrowserConnection from './Browser';
|
|
19
|
+
import { MESSAGE_DIRECTION } from '../schema';
|
|
20
|
+
import { InternalError, RpcConnectionError } from '../../utils/errors';
|
|
21
|
+
|
|
22
|
+
export type ImplPostMessage = Pick<Window, 'addEventListener' | 'removeEventListener' | 'postMessage'>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Browser window Post Message connector module
|
|
26
|
+
* @category aepp wallet communication
|
|
27
|
+
*/
|
|
28
|
+
export default class BrowserWindowMessageConnection extends BrowserConnection {
|
|
29
|
+
origin?: string;
|
|
30
|
+
|
|
31
|
+
sendDirection?: MESSAGE_DIRECTION;
|
|
32
|
+
|
|
33
|
+
receiveDirection: MESSAGE_DIRECTION;
|
|
34
|
+
|
|
35
|
+
listener?: (this: Window, ev: MessageEvent<any>) => void;
|
|
36
|
+
|
|
37
|
+
#onDisconnect?: () => void;
|
|
38
|
+
|
|
39
|
+
#target?: ImplPostMessage;
|
|
40
|
+
|
|
41
|
+
#self: ImplPostMessage;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @param options - Options
|
|
45
|
+
* @param options.target Target window for message
|
|
46
|
+
* @param options.self Host window for message
|
|
47
|
+
* @param options.origin Origin of receiver
|
|
48
|
+
* @param options.sendDirection Wrapping messages into additional struct
|
|
49
|
+
* `({ type: 'to_aepp' || 'to_waellet', data })`
|
|
50
|
+
* Used for handling messages between content script and page
|
|
51
|
+
* @param options.receiveDirection Unwrapping messages from additional struct
|
|
52
|
+
*/
|
|
53
|
+
constructor({
|
|
54
|
+
target,
|
|
55
|
+
self = window,
|
|
56
|
+
origin,
|
|
57
|
+
sendDirection,
|
|
58
|
+
receiveDirection = MESSAGE_DIRECTION.to_aepp,
|
|
59
|
+
...options
|
|
60
|
+
}: {
|
|
61
|
+
target?: ImplPostMessage;
|
|
62
|
+
self?: ImplPostMessage;
|
|
63
|
+
origin?: string;
|
|
64
|
+
sendDirection?: MESSAGE_DIRECTION;
|
|
65
|
+
receiveDirection?: MESSAGE_DIRECTION;
|
|
66
|
+
debug?: boolean;
|
|
67
|
+
} = {}) {
|
|
68
|
+
super(options);
|
|
69
|
+
this.#target = target;
|
|
70
|
+
this.#self = self;
|
|
71
|
+
this.origin = origin;
|
|
72
|
+
this.sendDirection = sendDirection;
|
|
73
|
+
this.receiveDirection = receiveDirection;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
isConnected(): boolean {
|
|
77
|
+
return this.listener != null;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
connect(
|
|
81
|
+
onMessage: (message: any, origin: string, source: MessageEventSource | null) => void,
|
|
82
|
+
onDisconnect: () => void,
|
|
83
|
+
): void {
|
|
84
|
+
super.connect(onMessage, onDisconnect);
|
|
85
|
+
this.listener = (message: MessageEvent<any>) => {
|
|
86
|
+
// TODO: strict validate origin and source instead of checking message structure
|
|
87
|
+
if (
|
|
88
|
+
typeof message.data !== 'object'
|
|
89
|
+
|| (message.data.jsonrpc ?? message.data.data?.jsonrpc) !== '2.0'
|
|
90
|
+
) return;
|
|
91
|
+
if (this.origin != null && this.origin !== message.origin) return;
|
|
92
|
+
if (this.#target != null && this.#target !== message.source) return;
|
|
93
|
+
this.receiveMessage(message);
|
|
94
|
+
let { data } = message;
|
|
95
|
+
if (data.type != null) {
|
|
96
|
+
if (message.data.type !== this.receiveDirection) return;
|
|
97
|
+
data = data.data;
|
|
98
|
+
}
|
|
99
|
+
onMessage(data, message.origin, message.source);
|
|
100
|
+
};
|
|
101
|
+
this.#self.addEventListener('message', this.listener);
|
|
102
|
+
this.#onDisconnect = onDisconnect;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
disconnect(): void {
|
|
106
|
+
super.disconnect();
|
|
107
|
+
if (this.listener == null || this.#onDisconnect == null) {
|
|
108
|
+
throw new InternalError('Expected to not happen, required for TS');
|
|
109
|
+
}
|
|
110
|
+
this.#self.removeEventListener('message', this.listener);
|
|
111
|
+
delete this.listener;
|
|
112
|
+
this.#onDisconnect();
|
|
113
|
+
this.#onDisconnect = undefined;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
sendMessage(msg: any): void {
|
|
117
|
+
if (this.#target == null) throw new RpcConnectionError('Can\'t send messages without target');
|
|
118
|
+
const message = this.sendDirection != null ? { type: this.sendDirection, data: msg } : msg;
|
|
119
|
+
super.sendMessage(message);
|
|
120
|
+
this.#target.postMessage(message, this.origin ?? '*');
|
|
121
|
+
}
|
|
122
|
+
}
|