@aeternity/aepp-sdk 11.0.1 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +12 -19
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +1 -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 +69 -0
- package/es/AeSdkAepp.mjs +175 -0
- package/es/AeSdkAepp.mjs.map +1 -0
- package/es/AeSdkBase.d.ts +212 -0
- package/es/AeSdkBase.mjs +310 -0
- package/es/AeSdkBase.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +103 -0
- package/es/AeSdkWallet.mjs +322 -0
- package/es/AeSdkWallet.mjs.map +1 -0
- package/es/Node.d.ts +44 -0
- package/es/Node.mjs +141 -0
- package/es/Node.mjs.map +1 -0
- package/es/account/Base.d.ts +65 -0
- package/es/account/Base.mjs +123 -0
- package/es/account/Base.mjs.map +1 -0
- package/es/account/Memory.d.ts +25 -0
- package/es/account/Memory.mjs +81 -0
- package/es/account/Memory.mjs.map +1 -0
- package/es/account/Rpc.d.ts +27 -0
- package/es/account/Rpc.mjs +79 -0
- package/es/account/Rpc.mjs.map +1 -0
- package/es/aens.d.ts +209 -0
- package/es/aens.mjs +332 -0
- package/es/aens.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
- package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -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 +90 -46
- package/es/aepp-wallet-communication/schema.mjs +214 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs +63 -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 +1061 -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 +4164 -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 +220 -0
- package/es/chain.mjs +524 -0
- package/es/chain.mjs.map +1 -0
- package/es/channel/handlers.d.ts +34 -0
- package/es/channel/handlers.mjs +147 -112
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/index.d.ts +634 -0
- package/es/channel/index.mjs +898 -900
- package/es/channel/index.mjs.map +1 -1
- package/es/channel/internal.d.ts +100 -0
- package/es/channel/internal.mjs +97 -51
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Compiler.d.ts +17 -0
- package/es/contract/Compiler.mjs +67 -0
- package/es/contract/Compiler.mjs.map +1 -0
- package/es/contract/aci.d.ts +125 -0
- package/es/contract/aci.mjs +199 -180
- package/es/contract/aci.mjs.map +1 -1
- package/es/contract/ga.d.ts +68 -0
- package/es/contract/ga.mjs +190 -0
- package/es/contract/ga.mjs.map +1 -0
- package/es/contract/methods.d.ts +68 -0
- package/es/contract/methods.mjs +101 -0
- package/es/contract/methods.mjs.map +1 -0
- package/es/index.d.ts +32 -0
- package/es/index.mjs +32 -40
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +154 -0
- package/es/oracle.mjs +288 -0
- package/es/oracle.mjs.map +1 -0
- package/es/spend.d.ts +61 -0
- package/es/spend.mjs +122 -0
- package/es/spend.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +41 -0
- package/es/tx/builder/constants.mjs +11 -19
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types.d.ts +62 -0
- package/es/tx/builder/field-types.mjs +62 -10
- package/es/tx/builder/field-types.mjs.map +1 -1
- package/es/tx/builder/helpers.d.ts +131 -0
- package/es/tx/builder/helpers.mjs +71 -169
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +75 -0
- package/es/tx/builder/index.mjs +141 -323
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +350 -0
- package/es/tx/builder/schema.mjs +173 -510
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +63 -0
- package/es/tx/index.mjs +171 -265
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/min-fee.d.ts +20 -0
- package/es/tx/min-fee.mjs +148 -0
- package/es/tx/min-fee.mjs.map +1 -0
- package/es/tx/validator.d.ts +19 -0
- package/es/tx/validator.mjs +64 -71
- 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/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 +28 -41
- 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 +10 -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 +10 -14
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +103 -0
- package/es/utils/crypto.mjs +60 -68
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder.d.ts +26 -0
- package/es/utils/encoder.mjs +47 -51
- package/es/utils/encoder.mjs.map +1 -1
- package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
- package/es/utils/errors.mjs +318 -125
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +34 -0
- package/es/utils/hd-wallet.mjs +27 -16
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +10 -14
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +98 -193
- package/es/utils/keystore.mjs.map +1 -1
- package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
- package/es/utils/mptree.mjs +13 -14
- package/es/utils/mptree.mjs.map +1 -1
- package/es/utils/other.d.ts +14 -0
- package/es/utils/other.mjs +21 -36
- package/es/utils/other.mjs.map +1 -1
- package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
- 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 +49 -39
- package/src/AeSdk.ts +65 -0
- package/src/AeSdkAepp.ts +167 -0
- package/src/AeSdkBase.ts +320 -0
- package/src/AeSdkWallet.ts +332 -0
- package/src/Node.ts +167 -0
- package/src/account/Base.ts +114 -0
- package/src/account/Memory.ts +83 -0
- package/src/account/Rpc.ts +67 -0
- package/src/aens.ts +391 -0
- package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
- package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
- package/src/aepp-wallet-communication/rpc/types.ts +66 -0
- package/src/aepp-wallet-communication/schema.ts +181 -0
- package/src/aepp-wallet-communication/wallet-detector.ts +71 -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 +10046 -0
- package/src/apis/node/index.ts +2 -0
- package/src/apis/node/models/index.ts +1253 -0
- package/src/apis/node/models/mappers.ts +4278 -0
- package/src/apis/node/models/parameters.ts +188 -0
- package/src/apis/node/node.ts +1299 -0
- package/src/chain.ts +444 -0
- package/src/channel/{handlers.js → handlers.ts} +220 -128
- package/src/channel/index.ts +991 -0
- package/src/channel/internal.ts +345 -0
- package/src/contract/Compiler.ts +66 -0
- package/src/contract/aci.ts +529 -0
- package/src/contract/ga.ts +178 -0
- package/src/contract/methods.ts +118 -0
- package/src/index.ts +51 -0
- package/src/oracle.ts +342 -0
- package/src/spend.ts +152 -0
- package/src/tx/builder/{constants.js → constants.ts} +12 -16
- package/src/tx/builder/field-types.ts +111 -0
- package/src/tx/builder/helpers.ts +253 -0
- package/src/tx/builder/index.ts +394 -0
- package/src/tx/builder/schema.ts +771 -0
- package/src/tx/index.ts +199 -0
- package/src/tx/min-fee.ts +136 -0
- package/src/tx/validator.ts +226 -0
- package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
- package/src/typings/@aeternity__uuid/index.d.ts +3 -0
- package/src/typings/bip32-path/index.d.ts +33 -0
- package/src/typings/tweetnacl-auth/index.d.ts +14 -0
- package/src/utils/amount-formatter.ts +29 -42
- package/src/utils/autorest.ts +90 -0
- package/src/utils/bignumber.ts +9 -11
- package/src/utils/bytes.ts +12 -14
- package/src/utils/crypto.ts +217 -0
- package/src/utils/encoder.ts +52 -55
- package/src/utils/errors.ts +268 -134
- package/src/utils/hd-wallet.ts +134 -0
- package/src/utils/json-big.ts +26 -0
- package/src/utils/keystore.ts +179 -0
- package/src/utils/mptree.ts +14 -14
- package/src/utils/other.ts +28 -43
- package/src/utils/string.ts +8 -10
- 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/string.d.ts +0 -26
- 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/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/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/ae/wallet.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2018 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
|
-
* Wallet module
|
|
20
|
-
* @module @aeternity/aepp-sdk/es/ae/wallet
|
|
21
|
-
* @export Wallet
|
|
22
|
-
* @example import { RpcWallet } from '@aeternity/aepp-sdk'
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
import Ae from './'
|
|
26
|
-
import Chain from '../chain/node'
|
|
27
|
-
import Tx from '../tx/tx'
|
|
28
|
-
import Contract from './contract'
|
|
29
|
-
import GeneralizedAccount from '../contract/ga'
|
|
30
|
-
import WalletRpc from '../utils/aepp-wallet-communication/rpc/wallet-rpc'
|
|
31
|
-
import Oracle from './oracle'
|
|
32
|
-
import Aens from './aens'
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Wallet Stamp
|
|
36
|
-
* @function
|
|
37
|
-
* @alias module:@aeternity/aepp-sdk/es/ae/wallet
|
|
38
|
-
* @rtype Stamp
|
|
39
|
-
* @param {Object} [options={}] - Initializer object
|
|
40
|
-
* @param {String} options.url - Node instance to connect to
|
|
41
|
-
* @param {Account[]} [options.accounts] - Accounts to initialize with
|
|
42
|
-
* @param {String} [options.account] - Public key of account to preselect
|
|
43
|
-
* @return {Object} Wallet instance
|
|
44
|
-
* @example Wallet({
|
|
45
|
-
url: 'https://testnet.aeternity.io/',
|
|
46
|
-
accounts: [MemoryAccount({keypair})],
|
|
47
|
-
address: keypair.publicKey,
|
|
48
|
-
})
|
|
49
|
-
*/
|
|
50
|
-
export default Ae.compose(WalletRpc, Tx, Contract, Oracle, Aens, GeneralizedAccount, Chain)
|
package/src/chain/index.js
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2018 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
|
-
* Chain module
|
|
20
|
-
* @module @aeternity/aepp-sdk/es/chain
|
|
21
|
-
* @export Chain
|
|
22
|
-
* @example import { Chain } from '@aeternity/aepp-sdk'
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
import stampit from '@stamp/it'
|
|
26
|
-
import { required } from '@stamp/required'
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Basic Chain Stamp
|
|
30
|
-
*
|
|
31
|
-
* Attempting to create instances from the Stamp without overwriting all
|
|
32
|
-
* abstract methods using composition will result in an exception.
|
|
33
|
-
* @function
|
|
34
|
-
* @alias module:@aeternity/aepp-sdk/es/chain
|
|
35
|
-
* @rtype Stamp
|
|
36
|
-
* @param {Object} [options={}] - Initializer object
|
|
37
|
-
* @return {Object} Chain instance
|
|
38
|
-
*/
|
|
39
|
-
const Chain = stampit({
|
|
40
|
-
deepProps: {
|
|
41
|
-
Ae: {
|
|
42
|
-
defaults: {
|
|
43
|
-
waitMined: true,
|
|
44
|
-
verify: true,
|
|
45
|
-
_expectedMineRate: 180000,
|
|
46
|
-
_microBlockCycle: 3000,
|
|
47
|
-
_maxPollInterval: 5000
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
methods: {
|
|
52
|
-
_getPollInterval (type) {
|
|
53
|
-
const base = {
|
|
54
|
-
block: this.Ae.defaults._expectedMineRate,
|
|
55
|
-
microblock: this.Ae.defaults._microBlockCycle
|
|
56
|
-
}[type]
|
|
57
|
-
if (!base) throw new Error(`Unknown poll type: ${type}`)
|
|
58
|
-
return Math.min(base / 3, this.Ae.defaults._maxPollInterval)
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}, required({
|
|
62
|
-
methods: {
|
|
63
|
-
sendTransaction: required,
|
|
64
|
-
height: required,
|
|
65
|
-
awaitHeight: required,
|
|
66
|
-
poll: required,
|
|
67
|
-
balance: required,
|
|
68
|
-
getBalance: required,
|
|
69
|
-
tx: required,
|
|
70
|
-
getTxInfo: required,
|
|
71
|
-
mempool: required,
|
|
72
|
-
txDryRun: required,
|
|
73
|
-
getAccount: required
|
|
74
|
-
}
|
|
75
|
-
}))
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Submit a signed transaction for mining
|
|
79
|
-
* @function sendTransaction
|
|
80
|
-
* @instance
|
|
81
|
-
* @abstract
|
|
82
|
-
* @category async
|
|
83
|
-
* @rtype (tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String]
|
|
84
|
-
* @param {String} tx - Transaction to submit
|
|
85
|
-
* @param {String} [options={}] - Options to pass to the implementation
|
|
86
|
-
* @param {String} [options.verify=true] - Verify transaction before broadcast.
|
|
87
|
-
* @return {Object} Transaction
|
|
88
|
-
*/
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Obtain current height of the chain
|
|
92
|
-
* @function height
|
|
93
|
-
* @instance
|
|
94
|
-
* @abstract
|
|
95
|
-
* @category async
|
|
96
|
-
* @rtype () => height: Number
|
|
97
|
-
* @return {Number} Current chain height
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Wait for the chain to reach a specific height
|
|
102
|
-
* @function awaitHeight
|
|
103
|
-
* @instance
|
|
104
|
-
* @abstract
|
|
105
|
-
* @category async
|
|
106
|
-
* @rtype (height: Number, options?: Object) => height: Number
|
|
107
|
-
* @param {Object} [options={}] - Options
|
|
108
|
-
* @param {Number} options.interval - Interval (in ms) at which to poll the chain
|
|
109
|
-
* @param {Number} options.attempts - Number of polling attempts after which to fail
|
|
110
|
-
* @return {Number} Current chain height
|
|
111
|
-
*/
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Wait for a transaction to be mined
|
|
115
|
-
* @function poll
|
|
116
|
-
* @instance
|
|
117
|
-
* @abstract
|
|
118
|
-
* @category async
|
|
119
|
-
* @rtype (th: String, options?: Object) => tx: Object
|
|
120
|
-
* @param {Object} [options={}] - Options
|
|
121
|
-
* @param {Number} options.interval - Interval (in ms) at which to poll the chain
|
|
122
|
-
* @param {Number} options.blocks - Number of blocks mined after which to fail
|
|
123
|
-
* @return {Object} The transaction as it was mined
|
|
124
|
-
*/
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Request the balance of specified account
|
|
128
|
-
* @function balance
|
|
129
|
-
* @instance
|
|
130
|
-
* @abstract
|
|
131
|
-
* @category async
|
|
132
|
-
* @rtype (address: String, options?: Object) => balance: Number
|
|
133
|
-
* @param {String} address - The public account address to obtain the balance for
|
|
134
|
-
* @param {Object} [options={}] - Options
|
|
135
|
-
* @param {Number} options.height - The chain height at which to obtain the balance for (default:
|
|
136
|
-
* top of chain)
|
|
137
|
-
* @param {String} options.hash - The block hash on which to obtain the balance for (default: top
|
|
138
|
-
* of chain)
|
|
139
|
-
* @return {Object} The transaction as it was mined
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Obtain a transaction based on its hash
|
|
144
|
-
* @function tx
|
|
145
|
-
* @instance
|
|
146
|
-
* @abstract
|
|
147
|
-
* @category async
|
|
148
|
-
* @rtype (hash: String, info = false) => tx: Object
|
|
149
|
-
* @param {String} hash - Transaction hash
|
|
150
|
-
* @param {Boolean} info - Retrieve additional transaction date. Works only for (ContractCreate and
|
|
151
|
-
* ContractCall transaction's)
|
|
152
|
-
* @return {Object} Transaction
|
|
153
|
-
*/
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Obtain a transaction info based on its hash
|
|
157
|
-
* @function getTxInfo
|
|
158
|
-
* @instance
|
|
159
|
-
* @abstract
|
|
160
|
-
* @category async
|
|
161
|
-
* @rtype (hash: String) => tx: Object
|
|
162
|
-
* @param {String} hash - Transaction hash
|
|
163
|
-
* @return {Object} Transaction
|
|
164
|
-
*/
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Obtain transaction's from mempool
|
|
168
|
-
* @function mempool
|
|
169
|
-
* @instance
|
|
170
|
-
* @abstract
|
|
171
|
-
* @category async
|
|
172
|
-
* @rtype () => txs: [...Object]
|
|
173
|
-
* @return {Object[]} Transactions
|
|
174
|
-
*/
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Obtain current generation
|
|
178
|
-
* @function getCurrentGeneration
|
|
179
|
-
* @instance
|
|
180
|
-
* @abstract
|
|
181
|
-
* @category async
|
|
182
|
-
* @rtype () => generation: Object
|
|
183
|
-
* @return {Object} Current Generation
|
|
184
|
-
*/
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Get generation by hash or height
|
|
188
|
-
* @function getGeneration
|
|
189
|
-
* @instance
|
|
190
|
-
* @abstract
|
|
191
|
-
* @category async
|
|
192
|
-
* @rtype (hashOrHeight) => generation: Object
|
|
193
|
-
* @param {String|Number} hashOrHeight - Generation hash or height
|
|
194
|
-
* @return {Object} Generation
|
|
195
|
-
*/
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Wait for transaction confirmation
|
|
199
|
-
* @function waitForTxConfirm
|
|
200
|
-
* @instance
|
|
201
|
-
* @abstract
|
|
202
|
-
* @category async
|
|
203
|
-
* @rtype (txHash: String, { confirm: Number | Boolean } = { confirm: 3 }) => Promise<Number>
|
|
204
|
-
* @param {String} txHash - Transaction hash
|
|
205
|
-
* @param {Object} [options] - options
|
|
206
|
-
* @param {Number} [options.confirm=3] - Number of blocks to wait for transaction confirmation
|
|
207
|
-
* @return {Promise<Number>} Current Height
|
|
208
|
-
*/
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Get micro block transactions
|
|
212
|
-
* @function getMicroBlockTransactions
|
|
213
|
-
* @instance
|
|
214
|
-
* @abstract
|
|
215
|
-
* @category async
|
|
216
|
-
* @rtype (hash) => txs: [...Object]
|
|
217
|
-
* @return {Object[]} Transactions
|
|
218
|
-
*/
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Get key block
|
|
222
|
-
* @function getKeyBlock
|
|
223
|
-
* @instance
|
|
224
|
-
* @abstract
|
|
225
|
-
* @category async
|
|
226
|
-
* @rtype (hashOrHeight) => keyBlock: Object
|
|
227
|
-
* @return {Object} Key Block
|
|
228
|
-
*/
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Get micro block header
|
|
232
|
-
* @function getMicroBlockHeader
|
|
233
|
-
* @instance
|
|
234
|
-
* @abstract
|
|
235
|
-
* @category async
|
|
236
|
-
* @rtype (hash) => header: Object
|
|
237
|
-
* @return {Object} Micro block header
|
|
238
|
-
*/
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Get account by account public key
|
|
242
|
-
* @function getAccount
|
|
243
|
-
* @instance
|
|
244
|
-
* @abstract
|
|
245
|
-
* @category async
|
|
246
|
-
* @rtype (address, { hash, height }) => account: Object
|
|
247
|
-
* @param {String} address - Account public key
|
|
248
|
-
* @param {Object} [options={}] - Options
|
|
249
|
-
* @param {Number} [options.height] - Get account on specific block by block height
|
|
250
|
-
* @param {String} [options.hash] - Get account on specific block by block hash
|
|
251
|
-
* @return {Object} Account
|
|
252
|
-
*/
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* Transaction dry-run
|
|
256
|
-
* @function txDryRun
|
|
257
|
-
* @instance
|
|
258
|
-
* @abstract
|
|
259
|
-
* @category async
|
|
260
|
-
* @rtype (tx, accountAddress, options) => result: Object
|
|
261
|
-
* @param {String} tx - transaction to execute
|
|
262
|
-
* @param {String} accountAddress - address that will be used to execute transaction
|
|
263
|
-
* @param {String|Number} [options.top] - hash of block on which to make dry-run
|
|
264
|
-
* @param {Boolean} [options.txEvents] - collect and return on-chain tx events that would result
|
|
265
|
-
* from the call
|
|
266
|
-
* @return {Object} Result
|
|
267
|
-
*/
|
|
268
|
-
|
|
269
|
-
export default Chain
|
package/src/chain/node.js
DELETED
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2018 aeternity developers
|
|
4
|
-
*
|
|
5
|
-
* Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
* purpose with or without fee is hereby granted, provided that the above
|
|
7
|
-
* copyright notice and this permission notice appear in all copies.
|
|
8
|
-
*
|
|
9
|
-
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
-
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
-
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
-
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
-
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
-
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
-
* PERFORMANCE OF THIS SOFTWARE.
|
|
16
|
-
*/
|
|
17
|
-
import Chain from './'
|
|
18
|
-
import { AE_AMOUNT_FORMATS, formatAmount } from '../utils/amount-formatter'
|
|
19
|
-
import verifyTransaction from '../tx/validator'
|
|
20
|
-
import NodePool from '../node-pool'
|
|
21
|
-
import { pause } from '../utils/other'
|
|
22
|
-
import { isNameValid, produceNameId, decode } from '../tx/builder/helpers'
|
|
23
|
-
import { DRY_RUN_ACCOUNT } from '../tx/builder/schema'
|
|
24
|
-
import {
|
|
25
|
-
AensPointerContextError,
|
|
26
|
-
DryRunError,
|
|
27
|
-
InvalidAensNameError,
|
|
28
|
-
InvalidTxError,
|
|
29
|
-
RequestTimedOutError,
|
|
30
|
-
TxTimedOutError,
|
|
31
|
-
TxNotInChainError,
|
|
32
|
-
ArgumentError
|
|
33
|
-
} from '../utils/errors'
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* ChainNode module
|
|
37
|
-
*
|
|
38
|
-
* This is the complement to {@link module:@aeternity/aepp-sdk/es/chain}.
|
|
39
|
-
* @module @aeternity/aepp-sdk/es/chain/node
|
|
40
|
-
* @export ChainNode
|
|
41
|
-
* @example import { ChainNode } from '@aeternity/aepp-sdk'
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
async function sendTransaction (tx, options = {}) {
|
|
45
|
-
const opt = { ...this.Ae.defaults, ...options }
|
|
46
|
-
if (opt.verify) {
|
|
47
|
-
const validation = await verifyTransaction(tx, this.selectedNode.instance)
|
|
48
|
-
if (validation.length) {
|
|
49
|
-
const message = 'Transaction verification errors: ' +
|
|
50
|
-
validation.map(v => v.message).join(', ')
|
|
51
|
-
throw Object.assign(new InvalidTxError(message), {
|
|
52
|
-
code: 'TX_VERIFICATION_ERROR',
|
|
53
|
-
validation,
|
|
54
|
-
transaction: tx
|
|
55
|
-
})
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
try {
|
|
60
|
-
const { txHash } = await this.api.postTransaction({ tx }, {
|
|
61
|
-
__queue: `tx-${await this.address?.(options).catch(() => '')}`
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
if (opt.waitMined) {
|
|
65
|
-
const txData = { ...await this.poll(txHash, options), rawTx: tx }
|
|
66
|
-
// wait for transaction confirmation
|
|
67
|
-
if (options.confirm) {
|
|
68
|
-
return { ...txData, confirmationHeight: await this.waitForTxConfirm(txHash, options) }
|
|
69
|
-
}
|
|
70
|
-
return txData
|
|
71
|
-
}
|
|
72
|
-
return { hash: txHash, rawTx: tx }
|
|
73
|
-
} catch (error) {
|
|
74
|
-
throw Object.assign(error, {
|
|
75
|
-
rawTx: tx,
|
|
76
|
-
verifyTx: () => verifyTransaction(tx, this.selectedNode.instance)
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
async function waitForTxConfirm (txHash, options = { confirm: 3 }) {
|
|
82
|
-
options.confirm = options.confirm === true ? 3 : options.confirm
|
|
83
|
-
const { blockHeight } = await this.api.getTransactionByHash(txHash)
|
|
84
|
-
const height = await this.awaitHeight(blockHeight + options.confirm, options)
|
|
85
|
-
const { blockHeight: newBlockHeight } = await this.api.getTransactionByHash(txHash)
|
|
86
|
-
switch (newBlockHeight) {
|
|
87
|
-
case -1:
|
|
88
|
-
throw new TxNotInChainError(txHash)
|
|
89
|
-
case blockHeight:
|
|
90
|
-
return height
|
|
91
|
-
default:
|
|
92
|
-
return waitForTxConfirm(txHash, options)
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
async function getAccount (address, { height, hash } = {}) {
|
|
97
|
-
if (height) return this.api.getAccountByPubkeyAndHeight(address, height)
|
|
98
|
-
if (hash) return this.api.getAccountByPubkeyAndHash(address, hash)
|
|
99
|
-
return this.api.getAccountByPubkey(address)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* @function
|
|
104
|
-
* @deprecated
|
|
105
|
-
*/
|
|
106
|
-
async function balance (address, { height, hash, format = AE_AMOUNT_FORMATS.AETTOS } = {}) {
|
|
107
|
-
const { balance } = await this.getAccount(address, { hash, height })
|
|
108
|
-
|
|
109
|
-
return formatAmount(balance, { targetDenomination: format }).toString()
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
async function getBalance (address, { height, hash, format = AE_AMOUNT_FORMATS.AETTOS } = {}) {
|
|
113
|
-
const { balance } = await this.getAccount(address, { hash, height }).catch(_ => ({ balance: 0 }))
|
|
114
|
-
|
|
115
|
-
return formatAmount(balance, { targetDenomination: format }).toString()
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* @deprecated use `sdk.api.getTransactionByHash/getTransactionInfoByHash` instead
|
|
120
|
-
*/
|
|
121
|
-
async function tx (hash, info = true) {
|
|
122
|
-
const tx = await this.api.getTransactionByHash(hash)
|
|
123
|
-
if (['ContractCreateTx', 'ContractCallTx', 'ChannelForceProgressTx'].includes(tx.tx.type) && info && tx.blockHeight !== -1) {
|
|
124
|
-
try {
|
|
125
|
-
return { ...tx, ...await this.getTxInfo(hash) }
|
|
126
|
-
} catch (e) {}
|
|
127
|
-
}
|
|
128
|
-
return tx
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
async function height () {
|
|
132
|
-
return (await this.api.getCurrentKeyBlockHeight()).height
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
async function awaitHeight (
|
|
136
|
-
height,
|
|
137
|
-
{ interval = this._getPollInterval('block'), attempts = 20 } = {}
|
|
138
|
-
) {
|
|
139
|
-
let currentHeight
|
|
140
|
-
for (let i = 0; i < attempts; i++) {
|
|
141
|
-
if (i) await pause(interval)
|
|
142
|
-
currentHeight = await this.height()
|
|
143
|
-
if (currentHeight >= height) return currentHeight
|
|
144
|
-
}
|
|
145
|
-
throw new RequestTimedOutError((attempts - 1) * interval, currentHeight, height)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
async function poll (th, { blocks = 10, interval = this._getPollInterval('microblock') } = {}) {
|
|
149
|
-
const max = await this.height() + blocks
|
|
150
|
-
do {
|
|
151
|
-
const tx = await this.api.getTransactionByHash(th)
|
|
152
|
-
if (tx.blockHeight !== -1) return tx
|
|
153
|
-
await pause(interval)
|
|
154
|
-
} while (await this.height() < max)
|
|
155
|
-
const status = this.api.getCheckTxInPool && (await this.api.getCheckTxInPool(th)).status
|
|
156
|
-
throw new TxTimedOutError(blocks, th, status)
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* @deprecated use `sdk.api.getTransactionInfoByHash` instead
|
|
161
|
-
*/
|
|
162
|
-
async function getTxInfo (hash) {
|
|
163
|
-
const result = await this.api.getTransactionInfoByHash(hash)
|
|
164
|
-
return result.callInfo || result
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
async function mempool () {
|
|
168
|
-
return this.api.getPendingTransactions()
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
async function getCurrentGeneration () {
|
|
172
|
-
return this.api.getCurrentGeneration()
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
async function getGeneration (hashOrHeight) {
|
|
176
|
-
if (typeof hashOrHeight === 'string') return this.api.getGenerationByHash(hashOrHeight)
|
|
177
|
-
if (typeof hashOrHeight === 'number') return this.api.getGenerationByHeight(hashOrHeight)
|
|
178
|
-
throw new ArgumentError('hashOrHeight', 'a string or number', hashOrHeight)
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
async function getMicroBlockTransactions (hash) {
|
|
182
|
-
return (await this.api.getMicroBlockTransactionsByHash(hash)).transactions
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
async function getKeyBlock (hashOrHeight) {
|
|
186
|
-
if (typeof hashOrHeight === 'string') return this.api.getKeyBlockByHash(hashOrHeight)
|
|
187
|
-
if (typeof hashOrHeight === 'number') return this.api.getKeyBlockByHeight(hashOrHeight)
|
|
188
|
-
throw new ArgumentError('hashOrHeight', 'a string or number', hashOrHeight)
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
async function getMicroBlockHeader (hash) {
|
|
192
|
-
return this.api.getMicroBlockHeaderByHash(hash)
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
async function txDryRunHandler (key) {
|
|
196
|
-
const rs = this._txDryRun[key]
|
|
197
|
-
delete this._txDryRun[key]
|
|
198
|
-
|
|
199
|
-
let dryRunRes
|
|
200
|
-
try {
|
|
201
|
-
dryRunRes = await this.api.protectedDryRunTxs({
|
|
202
|
-
top: rs[0].top,
|
|
203
|
-
txEvents: rs[0].txEvents,
|
|
204
|
-
txs: rs.map(req => ({ tx: req.tx })),
|
|
205
|
-
accounts: Array.from(new Set(rs.map(req => req.accountAddress)))
|
|
206
|
-
.map(pubKey => ({ pubKey, amount: DRY_RUN_ACCOUNT.amount }))
|
|
207
|
-
})
|
|
208
|
-
} catch (error) {
|
|
209
|
-
rs.forEach(({ reject }) => reject(error))
|
|
210
|
-
return
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
const { results, txEvents } = dryRunRes
|
|
214
|
-
results.forEach(({ result, reason, ...resultPayload }, idx) => {
|
|
215
|
-
const { resolve, reject, tx, options, accountAddress } = rs[idx]
|
|
216
|
-
if (result === 'ok') return resolve({ ...resultPayload, txEvents })
|
|
217
|
-
reject(Object.assign(
|
|
218
|
-
new DryRunError(reason), { tx, accountAddress, options }
|
|
219
|
-
))
|
|
220
|
-
})
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
async function txDryRun (tx, accountAddress, { top, txEvents, combine }) {
|
|
224
|
-
const key = combine ? [top, txEvents].join() : 'immediate'
|
|
225
|
-
this._txDryRun ??= {}
|
|
226
|
-
this._txDryRun[key] ??= []
|
|
227
|
-
return new Promise((resolve, reject) => {
|
|
228
|
-
this._txDryRun[key].push({ tx, accountAddress, top, txEvents, resolve, reject })
|
|
229
|
-
if (!combine) {
|
|
230
|
-
txDryRunHandler.call(this, key)
|
|
231
|
-
return
|
|
232
|
-
}
|
|
233
|
-
this._txDryRun[key].timeout ??= setTimeout(txDryRunHandler.bind(this, key))
|
|
234
|
-
})
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
async function getContractByteCode (contractId) {
|
|
238
|
-
return this.api.getContractCode(contractId)
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
async function getContract (contractId) {
|
|
242
|
-
return this.api.getContract(contractId)
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
async function getName (name) {
|
|
246
|
-
return this.api.getNameEntryByName(name)
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Resolve AENS name and return name hash
|
|
251
|
-
* @param {String} nameOrId
|
|
252
|
-
* @param {String} key in AENS pointers record
|
|
253
|
-
* @param {Object} [options]
|
|
254
|
-
* @param {Boolean} [options.verify] To ensure that name exist and have a corresponding pointer
|
|
255
|
-
* // TODO: avoid that to don't trust to current api gateway
|
|
256
|
-
* @param {Boolean} [options.resolveByNode] Enables pointer resolving using node
|
|
257
|
-
* @return {String} Address or AENS name hash
|
|
258
|
-
*/
|
|
259
|
-
async function resolveName (nameOrId, key, { verify, resolveByNode } = {}) {
|
|
260
|
-
if (!nameOrId || typeof nameOrId !== 'string') {
|
|
261
|
-
throw new InvalidAensNameError(`Name or address should be a string: ${nameOrId}`)
|
|
262
|
-
}
|
|
263
|
-
try {
|
|
264
|
-
decode(nameOrId)
|
|
265
|
-
return nameOrId
|
|
266
|
-
} catch (error) {}
|
|
267
|
-
if (isNameValid(nameOrId)) {
|
|
268
|
-
if (verify || resolveByNode) {
|
|
269
|
-
const name = await this.api.getNameEntryByName(nameOrId)
|
|
270
|
-
const pointer = name.pointers.find(pointer => pointer.key === key)
|
|
271
|
-
if (!pointer) {
|
|
272
|
-
throw new AensPointerContextError(`Name ${nameOrId} don't have pointers for ${key}`)
|
|
273
|
-
}
|
|
274
|
-
if (resolveByNode) return pointer.id
|
|
275
|
-
}
|
|
276
|
-
return produceNameId(nameOrId)
|
|
277
|
-
}
|
|
278
|
-
throw new InvalidAensNameError(`Invalid name or address: ${nameOrId}`)
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* ChainNode Stamp
|
|
283
|
-
*
|
|
284
|
-
* This is implementation of {@link module:@aeternity/aepp-sdk/es/chain--Chain}
|
|
285
|
-
* composed with {@link module:@aeternity/aepp-sdk/es/contract/node--ContractNodeAPI} and
|
|
286
|
-
* {@link module:@aeternity/aepp-sdk/es/oracle/node--OracleNodeAPI}
|
|
287
|
-
* @function
|
|
288
|
-
* @alias module:@aeternity/aepp-sdk/es/chain/node
|
|
289
|
-
* @rtype Stamp
|
|
290
|
-
* @param {Object} [options={}] - Initializer object
|
|
291
|
-
* @return {Object} ChainNode instance
|
|
292
|
-
* @example ChainNode({url: 'https://testnet.aeternity.io/'})
|
|
293
|
-
*/
|
|
294
|
-
const ChainNode = Chain.compose(NodePool, {
|
|
295
|
-
methods: {
|
|
296
|
-
sendTransaction,
|
|
297
|
-
balance,
|
|
298
|
-
getBalance,
|
|
299
|
-
getAccount,
|
|
300
|
-
tx,
|
|
301
|
-
height,
|
|
302
|
-
awaitHeight,
|
|
303
|
-
poll,
|
|
304
|
-
getTxInfo,
|
|
305
|
-
mempool,
|
|
306
|
-
getCurrentGeneration,
|
|
307
|
-
getGeneration,
|
|
308
|
-
getMicroBlockHeader,
|
|
309
|
-
getMicroBlockTransactions,
|
|
310
|
-
getKeyBlock,
|
|
311
|
-
txDryRun,
|
|
312
|
-
getContractByteCode,
|
|
313
|
-
getContract,
|
|
314
|
-
getName,
|
|
315
|
-
waitForTxConfirm,
|
|
316
|
-
resolveName
|
|
317
|
-
}
|
|
318
|
-
})
|
|
319
|
-
|
|
320
|
-
export default ChainNode
|