@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/contract/compiler.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2021 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
|
-
* ContractCompilerHttp module
|
|
20
|
-
*
|
|
21
|
-
* @module @aeternity/aepp-sdk/es/contract/compiler
|
|
22
|
-
* @export ContractCompilerHttp
|
|
23
|
-
* @example import { ContractCompilerHttp } from '@aeternity/aepp-sdk'
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import semverSatisfies from '../utils/semver-satisfies'
|
|
27
|
-
import AsyncInit from '../utils/async-init'
|
|
28
|
-
import genSwaggerClient from '../utils/swagger'
|
|
29
|
-
import { MissingParamError, UnsupportedVersionError } from '../utils/errors'
|
|
30
|
-
import { mapObject } from '../utils/other'
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Contract Compiler Stamp
|
|
34
|
-
*
|
|
35
|
-
* This stamp include api call's related to contract compiler functionality.
|
|
36
|
-
* @function
|
|
37
|
-
* @alias module:@aeternity/aepp-sdk/es/contract/compiler
|
|
38
|
-
* @rtype Stamp
|
|
39
|
-
* @param {Object} [options={}] - Initializer object
|
|
40
|
-
* @param {String} [options.compilerUrl] compilerUrl - Url for compiler API
|
|
41
|
-
* @return {Object} Contract compiler instance
|
|
42
|
-
* @example ContractCompilerHttp({ compilerUrl: 'COMPILER_URL' })
|
|
43
|
-
*/
|
|
44
|
-
export default AsyncInit.compose({
|
|
45
|
-
async init ({ compilerUrl, ignoreVersion }) {
|
|
46
|
-
if (!compilerUrl) return
|
|
47
|
-
await this.setCompilerUrl(compilerUrl, { ignoreVersion })
|
|
48
|
-
},
|
|
49
|
-
methods: {
|
|
50
|
-
async setCompilerUrl (compilerUrl, { ignoreVersion = false } = {}) {
|
|
51
|
-
if (!compilerUrl) throw new MissingParamError('compilerUrl required')
|
|
52
|
-
compilerUrl = compilerUrl.replace(/\/$/, '')
|
|
53
|
-
const client = await genSwaggerClient(`${compilerUrl}/api`, {
|
|
54
|
-
disableBigNumbers: true,
|
|
55
|
-
disableCaseConversion: true,
|
|
56
|
-
responseInterceptor: response => {
|
|
57
|
-
if (response.ok) return
|
|
58
|
-
let message = `${new URL(response.url).pathname.slice(1)} error`
|
|
59
|
-
if (response.body.reason) {
|
|
60
|
-
message += ': ' + response.body.reason +
|
|
61
|
-
(response.body.parameter ? ` in ${response.body.parameter}` : '') +
|
|
62
|
-
// TODO: revising after improving documentation https://github.com/aeternity/aesophia_http/issues/78
|
|
63
|
-
(response.body.info ? ` (${JSON.stringify(response.body.info)})` : '')
|
|
64
|
-
}
|
|
65
|
-
if (Array.isArray(response.body)) {
|
|
66
|
-
message += ':\n' + response.body
|
|
67
|
-
.map(e => `${e.type}:${e.pos.line}:${e.pos.col}: ${e.message}${e.context ? `(${e.context})` : ''}`)
|
|
68
|
-
.map(e => e.trim()) // TODO: remove after fixing https://github.com/aeternity/aesophia_http/issues/80
|
|
69
|
-
.join('\n')
|
|
70
|
-
}
|
|
71
|
-
response.statusText = message
|
|
72
|
-
return response
|
|
73
|
-
}
|
|
74
|
-
})
|
|
75
|
-
this.compilerVersion = client.spec.info.version
|
|
76
|
-
this.compilerApi = mapObject(
|
|
77
|
-
client.api,
|
|
78
|
-
([key, fn]) => [
|
|
79
|
-
key,
|
|
80
|
-
({ options: { filesystem, ...options } = {}, ...args } = {}) => fn({
|
|
81
|
-
...args, options: { ...options, file_system: filesystem }
|
|
82
|
-
})
|
|
83
|
-
]
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
if (ignoreVersion) return
|
|
87
|
-
if (!semverSatisfies(this.compilerVersion, COMPILER_GE_VERSION, COMPILER_LT_VERSION)) {
|
|
88
|
-
throw new UnsupportedVersionError(
|
|
89
|
-
'compiler', this.compilerVersion, COMPILER_GE_VERSION, COMPILER_LT_VERSION
|
|
90
|
-
)
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
props: {
|
|
95
|
-
compilerVersion: null
|
|
96
|
-
}
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
const COMPILER_GE_VERSION = '6.1.0'
|
|
100
|
-
const COMPILER_LT_VERSION = '7.0.0'
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js'
|
|
2
|
-
import { MAX_AUTH_FUN_GAS } from '../../tx/builder/schema'
|
|
3
|
-
import { InvalidAuthDataError } from '../../utils/errors'
|
|
4
|
-
|
|
5
|
-
export const prepareGaParams = (ins) => async (authData, authFnName) => {
|
|
6
|
-
if (typeof authData !== 'object') throw new InvalidAuthDataError('AuthData must be an object')
|
|
7
|
-
if (authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS)) { throw new InvalidAuthDataError(`the maximum gas value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${authData.gas}`) }
|
|
8
|
-
const gas = authData.gas || MAX_AUTH_FUN_GAS
|
|
9
|
-
if (authData.callData) {
|
|
10
|
-
if (authData.callData.split('_')[0] !== 'cb') throw new InvalidAuthDataError('Auth data must be a string with "cb" prefix.')
|
|
11
|
-
return { authCallData: authData.callData, gas }
|
|
12
|
-
}
|
|
13
|
-
if (!authData.source || !authData.args) throw new InvalidAuthDataError('Auth data must contain source code and arguments.')
|
|
14
|
-
const contract = await ins.getContractInstance({ source: authData.source })
|
|
15
|
-
return {
|
|
16
|
-
authCallData: contract.calldata.encode(contract._name, authFnName, authData.args),
|
|
17
|
-
gas
|
|
18
|
-
}
|
|
19
|
-
}
|
package/src/contract/ga/index.js
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2021 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
|
-
* Generalized Account module - routines to use generalized account
|
|
20
|
-
*
|
|
21
|
-
* @module @aeternity/aepp-sdk/es/contract/ga
|
|
22
|
-
* @export GeneralizedAccount
|
|
23
|
-
* @example import { GeneralizedAccount } from '@aeternity/aepp-sdk'
|
|
24
|
-
*/
|
|
25
|
-
import Contract from '../../ae/contract'
|
|
26
|
-
import { TX_TYPE } from '../../tx/builder/schema'
|
|
27
|
-
import { buildTx, unpackTx } from '../../tx/builder'
|
|
28
|
-
import { prepareGaParams } from './helpers'
|
|
29
|
-
import { hash } from '../../utils/crypto'
|
|
30
|
-
import { IllegalArgumentError, MissingParamError } from '../../utils/errors'
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* GeneralizedAccount Stamp
|
|
34
|
-
*
|
|
35
|
-
* Provide Generalized Account implementation
|
|
36
|
-
* {@link module:@aeternity/aepp-sdk/es/contract/ga} clients.
|
|
37
|
-
* @function
|
|
38
|
-
* @alias module:@aeternity/aepp-sdk/es/contract/ga
|
|
39
|
-
* @rtype Stamp
|
|
40
|
-
* @param {Object} [options={}] - Initializer object
|
|
41
|
-
* @return {Object} GeneralizedAccount instance
|
|
42
|
-
* @example
|
|
43
|
-
* const authContract = ``
|
|
44
|
-
* await aeSdk.createGeneralizedAccount(authFnName, authContract, [...authFnArguments]
|
|
45
|
-
* // Make spend using GA
|
|
46
|
-
* const callData = 'cb_...' // encoded call data for auth contract
|
|
47
|
-
* await aeSdk.spend(10000, receiverPub, { authData: { callData } })
|
|
48
|
-
* // or
|
|
49
|
-
* await aeSdk.spend(10000, receiverPub, {
|
|
50
|
-
* authData: { source: authContract, args: [...authContractArgs] }
|
|
51
|
-
* }) // sdk will prepare callData itself
|
|
52
|
-
*/
|
|
53
|
-
export const GeneralizedAccount = Contract.compose({
|
|
54
|
-
methods: {
|
|
55
|
-
createGeneralizedAccount,
|
|
56
|
-
createMetaTx,
|
|
57
|
-
isGA
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
|
-
export default GeneralizedAccount
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* @alias module:@aeternity/aepp-sdk/es/contract/ga
|
|
64
|
-
* @function
|
|
65
|
-
* Check if account is GA
|
|
66
|
-
* @param {String} address - Account address
|
|
67
|
-
* @return {Boolean}
|
|
68
|
-
*/
|
|
69
|
-
async function isGA (address) {
|
|
70
|
-
const { contractId } = await this.getAccount(address)
|
|
71
|
-
return !!contractId
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Convert current account to GA
|
|
76
|
-
* @alias module:@aeternity/aepp-sdk/es/contract/ga
|
|
77
|
-
* @function
|
|
78
|
-
* @param {String} authFnName - Authorization function name
|
|
79
|
-
* @param {String} source - Auth contract source code
|
|
80
|
-
* @param {Array} [args] - init arguments
|
|
81
|
-
* @param {Object} [options] - Options
|
|
82
|
-
* @return {Promise<Readonly<{
|
|
83
|
-
* result: *, owner: *, address, rawTx: *, transaction: *
|
|
84
|
-
* }>>}
|
|
85
|
-
*/
|
|
86
|
-
async function createGeneralizedAccount (authFnName, source, args = [], options = {}) {
|
|
87
|
-
const opt = { ...this.Ae.defaults, ...options }
|
|
88
|
-
const ownerId = await this.address(opt)
|
|
89
|
-
if (await this.isGA(ownerId)) throw new IllegalArgumentError(`Account ${ownerId} is already GA`)
|
|
90
|
-
|
|
91
|
-
const contract = await this.getContractInstance({ source })
|
|
92
|
-
await contract.compile()
|
|
93
|
-
const { tx, contractId } = await this.gaAttachTx({
|
|
94
|
-
...opt,
|
|
95
|
-
gas: opt.gas ?? await contract._estimateGas('init', args, opt),
|
|
96
|
-
ownerId,
|
|
97
|
-
code: contract.bytecode,
|
|
98
|
-
callData: contract.calldata.encode(contract._name, 'init', args),
|
|
99
|
-
authFun: hash(authFnName)
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
const { hash: transaction, rawTx } = await this.send(tx, opt)
|
|
103
|
-
|
|
104
|
-
return Object.freeze({
|
|
105
|
-
owner: ownerId,
|
|
106
|
-
transaction,
|
|
107
|
-
rawTx,
|
|
108
|
-
gaContractId: contractId
|
|
109
|
-
})
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const wrapInEmptySignedTx = (tx) => buildTx({ encodedTx: tx, signatures: [] }, TX_TYPE.signed)
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Create a metaTx transaction
|
|
116
|
-
* @alias module:@aeternity/aepp-sdk/es/contract/ga
|
|
117
|
-
* @function
|
|
118
|
-
* @param {String} rawTransaction Inner transaction
|
|
119
|
-
* @param {Object} authData Object with gaMeta params
|
|
120
|
-
* @param {String} authFnName - Authorization function name
|
|
121
|
-
* @param {Object} options - Options
|
|
122
|
-
* @return {String}
|
|
123
|
-
*/
|
|
124
|
-
async function createMetaTx (rawTransaction, authData, authFnName, options = {}) {
|
|
125
|
-
if (!authData) throw new MissingParamError('authData is required')
|
|
126
|
-
// Check if authData is callData or if it's an object prepare a callData from source and args
|
|
127
|
-
const { authCallData, gas } = await prepareGaParams(this)(authData, authFnName)
|
|
128
|
-
const opt = { ...this.Ae.defaults, ...options }
|
|
129
|
-
const { abiVersion } = await this.getVmVersion(TX_TYPE.contractCall)
|
|
130
|
-
const wrappedTx = wrapInEmptySignedTx(unpackTx(rawTransaction))
|
|
131
|
-
const params = {
|
|
132
|
-
...opt,
|
|
133
|
-
tx: {
|
|
134
|
-
...wrappedTx,
|
|
135
|
-
tx: wrappedTx.txObject
|
|
136
|
-
},
|
|
137
|
-
gaId: await this.address(opt),
|
|
138
|
-
abiVersion,
|
|
139
|
-
authData: authCallData,
|
|
140
|
-
gas,
|
|
141
|
-
vsn: 2
|
|
142
|
-
}
|
|
143
|
-
const { fee } = await this.prepareTxParams(TX_TYPE.gaMeta, params)
|
|
144
|
-
const { rlpEncoded: metaTxRlp } = buildTx(
|
|
145
|
-
{ ...params, fee: `${fee}` },
|
|
146
|
-
TX_TYPE.gaMeta,
|
|
147
|
-
{ vsn: 2 }
|
|
148
|
-
)
|
|
149
|
-
return wrapInEmptySignedTx(metaTxRlp).tx
|
|
150
|
-
}
|
package/src/index.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2021 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 * as Crypto from './utils/crypto'
|
|
19
|
-
import * as Keystore from './utils/keystore'
|
|
20
|
-
import * as Bytes from './utils/bytes'
|
|
21
|
-
import * as TxBuilder from './tx/builder'
|
|
22
|
-
import * as TxBuilderHelper from './tx/builder/helpers'
|
|
23
|
-
import * as SCHEMA from './tx/builder/schema'
|
|
24
|
-
import * as AmountFormatter from './utils/amount-formatter'
|
|
25
|
-
import * as HdWallet from './utils/hd-wallet'
|
|
26
|
-
|
|
27
|
-
import Ae from './ae'
|
|
28
|
-
import Chain from './chain'
|
|
29
|
-
import ChainNode from './chain/node'
|
|
30
|
-
import Node from './node'
|
|
31
|
-
import NodePool from './node-pool'
|
|
32
|
-
import Tx from './tx'
|
|
33
|
-
import Transaction from './tx/tx'
|
|
34
|
-
import verifyTransaction from './tx/validator'
|
|
35
|
-
import AccountBase from './account/base'
|
|
36
|
-
import AccountMultiple from './account/multiple'
|
|
37
|
-
import MemoryAccount from './account/memory'
|
|
38
|
-
import Aens from './ae/aens'
|
|
39
|
-
import Contract from './ae/contract'
|
|
40
|
-
import GeneralizedAccount from './contract/ga'
|
|
41
|
-
import ContractCompilerHttp from './contract/compiler'
|
|
42
|
-
import RpcAepp from './ae/aepp'
|
|
43
|
-
import RpcWallet from './ae/wallet'
|
|
44
|
-
import Oracle from './ae/oracle'
|
|
45
|
-
import genSwaggerClient from './utils/swagger'
|
|
46
|
-
import Channel from './channel'
|
|
47
|
-
import Universal from './ae/universal'
|
|
48
|
-
|
|
49
|
-
export { default as ContentScriptBridge } from './utils/aepp-wallet-communication/content-script-bridge'
|
|
50
|
-
export * as AeppWalletHelpers from './utils/aepp-wallet-communication/helpers'
|
|
51
|
-
export * as AeppWalletSchema from './utils/aepp-wallet-communication/schema'
|
|
52
|
-
export { default as WalletDetector } from './utils/aepp-wallet-communication/wallet-detector'
|
|
53
|
-
export { default as BrowserRuntimeConnection } from './utils/aepp-wallet-communication/connection/browser-runtime'
|
|
54
|
-
export { default as BrowserWindowMessageConnection } from './utils/aepp-wallet-communication/connection/browser-window-message'
|
|
55
|
-
export * from './utils/errors'
|
|
56
|
-
|
|
57
|
-
export const getDefaultPointerKey = TxBuilderHelper.getDefaultPointerKey
|
|
58
|
-
|
|
59
|
-
export {
|
|
60
|
-
AmountFormatter,
|
|
61
|
-
AccountBase,
|
|
62
|
-
AccountMultiple,
|
|
63
|
-
Ae,
|
|
64
|
-
Aens,
|
|
65
|
-
Bytes,
|
|
66
|
-
Contract,
|
|
67
|
-
ContractCompilerHttp,
|
|
68
|
-
ChainNode,
|
|
69
|
-
RpcAepp,
|
|
70
|
-
RpcWallet,
|
|
71
|
-
Channel,
|
|
72
|
-
Crypto,
|
|
73
|
-
Keystore,
|
|
74
|
-
Chain,
|
|
75
|
-
GeneralizedAccount,
|
|
76
|
-
HdWallet,
|
|
77
|
-
MemoryAccount,
|
|
78
|
-
Node,
|
|
79
|
-
NodePool,
|
|
80
|
-
Oracle,
|
|
81
|
-
genSwaggerClient,
|
|
82
|
-
Transaction,
|
|
83
|
-
verifyTransaction,
|
|
84
|
-
Tx,
|
|
85
|
-
TxBuilder,
|
|
86
|
-
TxBuilderHelper,
|
|
87
|
-
Universal,
|
|
88
|
-
SCHEMA
|
|
89
|
-
}
|
package/src/node-pool/index.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NodePool module
|
|
3
|
-
* @module @aeternity/aepp-sdk/es/node-pool
|
|
4
|
-
* @export NodePool
|
|
5
|
-
* @example import { NodePool } from '@aeternity/aepp-sdk'
|
|
6
|
-
*/
|
|
7
|
-
import stampit from '@stamp/it'
|
|
8
|
-
import { getNetworkId } from '../node'
|
|
9
|
-
import { DisconnectedError, DuplicateNodeError, NodeNotFoundError, TypeError } from '../utils/errors'
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Node Pool Stamp
|
|
13
|
-
* This stamp allow you to make basic manipulation(add, remove, select) on list of nodes
|
|
14
|
-
* @function
|
|
15
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
16
|
-
* @rtype Stamp
|
|
17
|
-
* @param {Object} [options={}] - Initializer object
|
|
18
|
-
* @param {Array} [options.nodes] - Array with Node instances
|
|
19
|
-
* @return {Object} NodePool instance
|
|
20
|
-
*/
|
|
21
|
-
export default stampit({
|
|
22
|
-
init ({ nodes = [] } = {}) {
|
|
23
|
-
this.pool = new Map()
|
|
24
|
-
this.validateNodes(nodes)
|
|
25
|
-
|
|
26
|
-
nodes.forEach((node, i) => {
|
|
27
|
-
const { name, instance } = node
|
|
28
|
-
this.addNode(name, instance, i === 0)
|
|
29
|
-
})
|
|
30
|
-
if (nodes.length) this.selectNode(nodes[0].name)
|
|
31
|
-
},
|
|
32
|
-
propertyDescriptors: {
|
|
33
|
-
api: {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
configurable: false,
|
|
36
|
-
get () {
|
|
37
|
-
if (!this.selectedNode || !this.selectedNode.instance) {
|
|
38
|
-
throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!')
|
|
39
|
-
}
|
|
40
|
-
return this.selectedNode.instance.api
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
methods: {
|
|
45
|
-
/**
|
|
46
|
-
* Add Node
|
|
47
|
-
* @function
|
|
48
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
49
|
-
* @rtype (name: String, nodeInstance: Object, select: Boolean) => void
|
|
50
|
-
* @param {String} name - Node name
|
|
51
|
-
* @param {Object} node - Node instance
|
|
52
|
-
* @param {Boolean} select - Select this node as current
|
|
53
|
-
* @return {void}
|
|
54
|
-
* @example
|
|
55
|
-
* // add and select new node with name 'testNode'
|
|
56
|
-
* nodePool.addNode('testNode', awaitNode({ url, internalUrl }), true)
|
|
57
|
-
*/
|
|
58
|
-
addNode (name, node, select = false) {
|
|
59
|
-
if (this.pool.has(name)) throw new DuplicateNodeError(name)
|
|
60
|
-
|
|
61
|
-
this.validateNodes([{ name, instance: node }])
|
|
62
|
-
|
|
63
|
-
this.pool.set(name, {
|
|
64
|
-
name,
|
|
65
|
-
instance: node,
|
|
66
|
-
url: node.url,
|
|
67
|
-
internalUrl: node.internalUrl,
|
|
68
|
-
networkId: node.nodeNetworkId,
|
|
69
|
-
version: node.version,
|
|
70
|
-
consensusProtocolVersion: node.consensusProtocolVersion
|
|
71
|
-
})
|
|
72
|
-
if (select || !this.selectedNode) {
|
|
73
|
-
this.selectNode(name)
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
/**
|
|
77
|
-
* Select Node
|
|
78
|
-
* @function
|
|
79
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
80
|
-
* @rtype (name: String) => void
|
|
81
|
-
* @param {String} name - Node name
|
|
82
|
-
* @return {void}
|
|
83
|
-
* @example
|
|
84
|
-
* nodePool.selectNode('testNode')
|
|
85
|
-
*/
|
|
86
|
-
selectNode (name) {
|
|
87
|
-
if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`)
|
|
88
|
-
|
|
89
|
-
this.selectedNode = this.pool.get(name)
|
|
90
|
-
},
|
|
91
|
-
/**
|
|
92
|
-
* Get NetworkId of current Node
|
|
93
|
-
* @function
|
|
94
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
95
|
-
* @rtype () => String
|
|
96
|
-
* @return {String}
|
|
97
|
-
* @example
|
|
98
|
-
* nodePool.getNetworkId()
|
|
99
|
-
*/
|
|
100
|
-
getNetworkId,
|
|
101
|
-
/**
|
|
102
|
-
* Check if you have selected node
|
|
103
|
-
* @function
|
|
104
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
105
|
-
* @rtype () => Boolean
|
|
106
|
-
* @return {Boolean}
|
|
107
|
-
* @example
|
|
108
|
-
* nodePool.isNodeConnected()
|
|
109
|
-
*/
|
|
110
|
-
isNodeConnected () {
|
|
111
|
-
return !!this.selectedNode.instance
|
|
112
|
-
},
|
|
113
|
-
/**
|
|
114
|
-
* Get information about node
|
|
115
|
-
* @function
|
|
116
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
117
|
-
* @rtype () => Object
|
|
118
|
-
* @return {Object}
|
|
119
|
-
* @example
|
|
120
|
-
* nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
|
|
121
|
-
*/
|
|
122
|
-
getNodeInfo () {
|
|
123
|
-
if (!this.isNodeConnected()) throw new DisconnectedError()
|
|
124
|
-
return {
|
|
125
|
-
name: this.selectedNode.name,
|
|
126
|
-
...this.selectedNode.instance.getNodeInfo()
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
/**
|
|
130
|
-
* Get array of available nodes
|
|
131
|
-
* @function
|
|
132
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
133
|
-
* @rtype () => Object[]
|
|
134
|
-
* @return {Object[]}
|
|
135
|
-
* @example
|
|
136
|
-
* nodePool.getNodesInPool()
|
|
137
|
-
*/
|
|
138
|
-
getNodesInPool () {
|
|
139
|
-
return Array.from(this.pool.entries()).map(([name, node]) => ({
|
|
140
|
-
name,
|
|
141
|
-
...node.instance.getNodeInfo()
|
|
142
|
-
}))
|
|
143
|
-
},
|
|
144
|
-
validateNodes (nodes) {
|
|
145
|
-
// TODO: validate it on TypeScript level instead
|
|
146
|
-
// (to speedup development, save runtime resources)
|
|
147
|
-
if (!Array.isArray(nodes)) throw new TypeError('"nodes" should be an array')
|
|
148
|
-
const notObject = nodes.map(n => typeof n).find(t => t !== 'object')
|
|
149
|
-
if (notObject) throw new TypeError(`Each node should be an object, got ${notObject} instead`)
|
|
150
|
-
const wrongFields = nodes.find(n => typeof n.name !== 'string' || typeof n.instance !== 'object')
|
|
151
|
-
if (notObject) {
|
|
152
|
-
throw new TypeError(
|
|
153
|
-
'Each node should have name (string), instance (object) ' +
|
|
154
|
-
`fields, got ${JSON.stringify(wrongFields)} instead`
|
|
155
|
-
)
|
|
156
|
-
}
|
|
157
|
-
const wrongInstanceFields = nodes
|
|
158
|
-
.map(n => n.instance)
|
|
159
|
-
.find(i => typeof i.api !== 'object' || typeof i.genesisHash !== 'string' ||
|
|
160
|
-
typeof i.consensusProtocolVersion !== 'number')
|
|
161
|
-
if (wrongInstanceFields) {
|
|
162
|
-
throw new TypeError(
|
|
163
|
-
'Each node instance should have api (object), consensusProtocolVersion (number), ' +
|
|
164
|
-
`genesisHash (string) fields, got ${JSON.stringify(wrongInstanceFields)} instead`
|
|
165
|
-
)
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
props: {
|
|
170
|
-
selectedNode: {}
|
|
171
|
-
}
|
|
172
|
-
})
|
package/src/node.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2021 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
|
-
* Node module
|
|
20
|
-
* @module @aeternity/aepp-sdk/es/node
|
|
21
|
-
* @export Node
|
|
22
|
-
* @example import { Node } from '@aeternity/aepp-sdk'
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
import AsyncInit from './utils/async-init'
|
|
26
|
-
import genSwaggerClient from './utils/swagger'
|
|
27
|
-
import semverSatisfies from './utils/semver-satisfies'
|
|
28
|
-
import { MissingParamError, UnsupportedVersionError } from './utils/errors'
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Obtain networkId from account or node
|
|
32
|
-
* @instance
|
|
33
|
-
* @category async
|
|
34
|
-
* @rtype () => networkId: String
|
|
35
|
-
* @return {String} NetworkId
|
|
36
|
-
*/
|
|
37
|
-
export function getNetworkId ({ networkId, force = false } = {}) {
|
|
38
|
-
const res = networkId || this.networkId || this.selectedNode?.networkId
|
|
39
|
-
if (!force && !res) throw new MissingParamError('networkId is not provided')
|
|
40
|
-
if (force && !res) return null
|
|
41
|
-
return res
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* {@link genSwaggerClient} based Node remote API Stamp
|
|
46
|
-
* @function
|
|
47
|
-
* @alias module:@aeternity/aepp-sdk/es/node
|
|
48
|
-
* @rtype Stamp
|
|
49
|
-
* @param {Object} [options={}] - Options
|
|
50
|
-
* @param {String} options.url - Base URL for Node
|
|
51
|
-
* @param {String} options.internalUrl - Base URL for internal requests
|
|
52
|
-
* @param {Object} options.axiosConfig - Object with axios configuration
|
|
53
|
-
* @param {Object} options.axiosConfig.config
|
|
54
|
-
* @param {Function} options.axiosConfig.errorHandler - (err) => throw err
|
|
55
|
-
* @return {Object} Node client
|
|
56
|
-
* @example Node({url: 'https://testnet.aeternity.io'})
|
|
57
|
-
*/
|
|
58
|
-
const Node = AsyncInit.compose({
|
|
59
|
-
async init ({ url, internalUrl, ignoreVersion }) {
|
|
60
|
-
if (!url) throw new MissingParamError('"url" required')
|
|
61
|
-
this.url = url.replace(/\/$/, '')
|
|
62
|
-
this.internalUrl = internalUrl?.replace(/\/$/, '')
|
|
63
|
-
const client = await genSwaggerClient(`${this.url}/api?oas3`, {
|
|
64
|
-
internalUrl: this.internalUrl,
|
|
65
|
-
responseInterceptor: response => {
|
|
66
|
-
if (response.ok) return
|
|
67
|
-
return Object.assign(response, {
|
|
68
|
-
statusText: `${new URL(response.url).pathname.slice(1)} error: ` + response.body.reason
|
|
69
|
-
})
|
|
70
|
-
}
|
|
71
|
-
})
|
|
72
|
-
this.version = client.spec.info.version
|
|
73
|
-
if (
|
|
74
|
-
!semverSatisfies(this.version, NODE_GE_VERSION, NODE_LT_VERSION) &&
|
|
75
|
-
!ignoreVersion
|
|
76
|
-
) {
|
|
77
|
-
throw new UnsupportedVersionError('node', this.version, NODE_GE_VERSION, NODE_LT_VERSION)
|
|
78
|
-
}
|
|
79
|
-
this.api = client.api
|
|
80
|
-
|
|
81
|
-
const {
|
|
82
|
-
nodeRevision: revision, genesisKeyBlockHash: genesisHash, networkId,
|
|
83
|
-
protocols, topBlockHeight
|
|
84
|
-
} = await this.api.getStatus()
|
|
85
|
-
this.consensusProtocolVersion = protocols
|
|
86
|
-
.filter(({ effectiveAtHeight }) => topBlockHeight >= effectiveAtHeight)
|
|
87
|
-
.reduce(
|
|
88
|
-
(acc, p) => p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc,
|
|
89
|
-
{ effectiveAtHeight: -1, version: 0 }
|
|
90
|
-
)
|
|
91
|
-
.version
|
|
92
|
-
this.nodeNetworkId = networkId
|
|
93
|
-
return Object.assign(this, { revision, genesisHash })
|
|
94
|
-
},
|
|
95
|
-
methods: {
|
|
96
|
-
getNodeInfo () {
|
|
97
|
-
return {
|
|
98
|
-
url: this.url,
|
|
99
|
-
internalUrl: this.internalUrl,
|
|
100
|
-
nodeNetworkId: this.nodeNetworkId,
|
|
101
|
-
version: this.version,
|
|
102
|
-
consensusProtocolVersion: this.consensusProtocolVersion
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
props: {
|
|
107
|
-
version: null,
|
|
108
|
-
consensusProtocolVersion: null,
|
|
109
|
-
nodeNetworkId: null
|
|
110
|
-
}
|
|
111
|
-
})
|
|
112
|
-
|
|
113
|
-
const NODE_GE_VERSION = '6.2.0'
|
|
114
|
-
const NODE_LT_VERSION = '7.0.0'
|
|
115
|
-
|
|
116
|
-
export default Node
|