@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/es/AeSdkBase.mjs
ADDED
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
2
|
+
import * as chainMethods from "./chain.mjs";
|
|
3
|
+
import * as txMethods from "./tx/index.mjs";
|
|
4
|
+
import * as aensMethods from "./aens.mjs";
|
|
5
|
+
import * as spendMethods from "./spend.mjs";
|
|
6
|
+
import * as oracleMethods from "./oracle.mjs";
|
|
7
|
+
import * as contractMethods from "./contract/methods.mjs";
|
|
8
|
+
import * as contractGaMethods from "./contract/ga.mjs";
|
|
9
|
+
import { _buildTx } from "./tx/index.mjs";
|
|
10
|
+
import { mapObject } from "./utils/other.mjs";
|
|
11
|
+
import { getNetworkId } from "./Node.mjs";
|
|
12
|
+
import { AE_AMOUNT_FORMATS } from "./utils/amount-formatter.mjs";
|
|
13
|
+
import { AMOUNT } from "./tx/builder/schema.mjs";
|
|
14
|
+
import MemoryAccount from "./account/Memory.mjs";
|
|
15
|
+
import { isAccountBase } from "./account/Base.mjs";
|
|
16
|
+
import { CompilerError, DuplicateNodeError, NodeNotFoundError, NotImplementedError, TypeError } from "./utils/errors.mjs";
|
|
17
|
+
import Compiler from "./contract/Compiler.mjs";
|
|
18
|
+
|
|
19
|
+
function getValueOrErrorProxy(valueCb) {
|
|
20
|
+
try {
|
|
21
|
+
return valueCb();
|
|
22
|
+
} catch (error) {
|
|
23
|
+
return new Proxy({}, Object.fromEntries(['get', 'set', 'has'].map(name => [name, () => {
|
|
24
|
+
throw error;
|
|
25
|
+
}])));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Basic AeSdk class
|
|
30
|
+
*
|
|
31
|
+
* AeSdkBase objects are the composition of:
|
|
32
|
+
* - chain methods
|
|
33
|
+
* - tx methods
|
|
34
|
+
* - aens methods
|
|
35
|
+
* - spend methods
|
|
36
|
+
* - oracle methods
|
|
37
|
+
* - contract methods
|
|
38
|
+
* - contract ga methods
|
|
39
|
+
* Only by providing the joint functionality of them, most more advanced
|
|
40
|
+
* operations, i.e. the ones with actual use value on the chain, become
|
|
41
|
+
* available.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class AeSdkBase {
|
|
46
|
+
/**
|
|
47
|
+
* @param options - Options
|
|
48
|
+
* @param options.nodes - Array of nodes
|
|
49
|
+
* @param options.compilerUrl - Url for compiler API
|
|
50
|
+
* @param options.ignoreVersion - Don't check node or compiler version
|
|
51
|
+
*/
|
|
52
|
+
constructor() {
|
|
53
|
+
let {
|
|
54
|
+
nodes = [],
|
|
55
|
+
compilerUrl,
|
|
56
|
+
ignoreVersion = false,
|
|
57
|
+
...options
|
|
58
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
59
|
+
|
|
60
|
+
_defineProperty(this, "_options", {
|
|
61
|
+
denomination: AE_AMOUNT_FORMATS.AETTOS,
|
|
62
|
+
amount: AMOUNT
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
_defineProperty(this, "pool", new Map());
|
|
66
|
+
|
|
67
|
+
_defineProperty(this, "getNetworkId", getNetworkId);
|
|
68
|
+
|
|
69
|
+
Object.assign(this._options, options);
|
|
70
|
+
nodes.forEach((_ref, i) => {
|
|
71
|
+
let {
|
|
72
|
+
name,
|
|
73
|
+
instance
|
|
74
|
+
} = _ref;
|
|
75
|
+
return this.addNode(name, instance, i === 0);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
if (compilerUrl == null) {
|
|
79
|
+
this.compilerApi = getValueOrErrorProxy(() => {
|
|
80
|
+
throw new CompilerError('You can\'t use Compiler API. Compiler is not ready!');
|
|
81
|
+
});
|
|
82
|
+
} else this.setCompilerUrl(compilerUrl, {
|
|
83
|
+
ignoreVersion
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
setCompilerUrl(compilerUrl) {
|
|
88
|
+
let {
|
|
89
|
+
ignoreVersion = false
|
|
90
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
91
|
+
this.compilerApi = new Compiler(compilerUrl, {
|
|
92
|
+
ignoreVersion
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
get api() {
|
|
97
|
+
this.ensureNodeConnected();
|
|
98
|
+
return this.pool.get(this.selectedNodeName);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Add Node
|
|
102
|
+
* @param name - Node name
|
|
103
|
+
* @param node - Node instance
|
|
104
|
+
* @param select - Select this node as current
|
|
105
|
+
* @example
|
|
106
|
+
* ```js
|
|
107
|
+
* // add and select new node with name 'testNode'
|
|
108
|
+
* aeSdkBase.addNode('testNode', new Node({ url }), true)
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
addNode(name, node) {
|
|
114
|
+
let select = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
115
|
+
if (this.pool.has(name)) throw new DuplicateNodeError(name);
|
|
116
|
+
this.pool.set(name, node);
|
|
117
|
+
|
|
118
|
+
if (select || this.selectedNodeName == null) {
|
|
119
|
+
this.selectNode(name);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Select Node
|
|
124
|
+
* @param name - Node name
|
|
125
|
+
* @example
|
|
126
|
+
* nodePool.selectNode('testNode')
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
selectNode(name) {
|
|
131
|
+
if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`);
|
|
132
|
+
this.selectedNodeName = name;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get NetworkId of current Node
|
|
136
|
+
* @example
|
|
137
|
+
* nodePool.getNetworkId()
|
|
138
|
+
*/
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Check if you have selected node
|
|
143
|
+
* @example
|
|
144
|
+
* nodePool.isNodeConnected()
|
|
145
|
+
*/
|
|
146
|
+
isNodeConnected() {
|
|
147
|
+
return this.selectedNodeName != null;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
ensureNodeConnected() {
|
|
151
|
+
if (!this.isNodeConnected()) {
|
|
152
|
+
throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get information about node
|
|
157
|
+
* @example
|
|
158
|
+
* ```js
|
|
159
|
+
* nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
async getNodeInfo() {
|
|
165
|
+
this.ensureNodeConnected();
|
|
166
|
+
return {
|
|
167
|
+
name: this.selectedNodeName,
|
|
168
|
+
...(await this.api.getNodeInfo())
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get array of available nodes
|
|
173
|
+
* @example
|
|
174
|
+
* nodePool.getNodesInPool()
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
async getNodesInPool() {
|
|
179
|
+
return await Promise.all(Array.from(this.pool.entries()).map(async _ref2 => {
|
|
180
|
+
let [name, node] = _ref2;
|
|
181
|
+
return {
|
|
182
|
+
name,
|
|
183
|
+
...(await node.getNodeInfo())
|
|
184
|
+
};
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
addresses() {
|
|
189
|
+
return [];
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
async address() {
|
|
193
|
+
let {
|
|
194
|
+
onAccount
|
|
195
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
196
|
+
return await this._resolveAccount(onAccount).address();
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
async sign(data) {
|
|
200
|
+
let {
|
|
201
|
+
onAccount,
|
|
202
|
+
...options
|
|
203
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
204
|
+
return await this._resolveAccount(onAccount).sign(data, options);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
async signTransaction(tx) {
|
|
208
|
+
let {
|
|
209
|
+
onAccount,
|
|
210
|
+
...options
|
|
211
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
212
|
+
return await this._resolveAccount(onAccount).signTransaction(tx, { ...options,
|
|
213
|
+
networkId: await this.getNetworkId(options)
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
async signMessage(message) {
|
|
218
|
+
let {
|
|
219
|
+
onAccount,
|
|
220
|
+
...options
|
|
221
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
222
|
+
return await this._resolveAccount(onAccount).signMessage(message, options);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
async verifyMessage(message, signature) {
|
|
226
|
+
let {
|
|
227
|
+
onAccount,
|
|
228
|
+
...options
|
|
229
|
+
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
230
|
+
return await this._resolveAccount(onAccount).verifyMessage(message, signature, options);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Resolves an account
|
|
234
|
+
* @param account - ak-address, instance of AccountBase, or keypair
|
|
235
|
+
*/
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
_resolveAccount(account) {
|
|
239
|
+
switch (account !== null && typeof account) {
|
|
240
|
+
case 'string':
|
|
241
|
+
throw new NotImplementedError('Address in AccountResolver');
|
|
242
|
+
|
|
243
|
+
case 'object':
|
|
244
|
+
return isAccountBase(account) ? account : new MemoryAccount({
|
|
245
|
+
keypair: account
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
default:
|
|
249
|
+
throw new TypeError('Account should be an address (ak-prefixed string), ' + `keypair, or instance of AccountBase, got ${String(account)} instead`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async _getOptions() {
|
|
254
|
+
var _this$api;
|
|
255
|
+
|
|
256
|
+
return { ...this._options,
|
|
257
|
+
onNode: getValueOrErrorProxy(() => this.api),
|
|
258
|
+
onAccount: getValueOrErrorProxy(() => this._resolveAccount()),
|
|
259
|
+
onCompiler: getValueOrErrorProxy(() => this.compilerApi),
|
|
260
|
+
// TODO: remove networkId
|
|
261
|
+
networkId: (await ((_this$api = this.api) === null || _this$api === void 0 ? void 0 : _this$api.getStatus())).networkId
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
async buildTx(txType, options) {
|
|
266
|
+
// @ts-expect-error
|
|
267
|
+
return await _buildTx(txType, { ...(await this._getOptions()),
|
|
268
|
+
...options
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const {
|
|
275
|
+
_buildTx: _,
|
|
276
|
+
...txMethodsOther
|
|
277
|
+
} = txMethods;
|
|
278
|
+
const methods = { ...chainMethods,
|
|
279
|
+
...txMethodsOther,
|
|
280
|
+
...aensMethods,
|
|
281
|
+
...spendMethods,
|
|
282
|
+
...oracleMethods,
|
|
283
|
+
...contractMethods,
|
|
284
|
+
...contractGaMethods
|
|
285
|
+
};
|
|
286
|
+
Object.assign(AeSdkBase.prototype, mapObject(methods, _ref3 => {
|
|
287
|
+
let [name, handler] = _ref3;
|
|
288
|
+
return [name, async function () {
|
|
289
|
+
const instanceOptions = await this._getOptions();
|
|
290
|
+
|
|
291
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
292
|
+
args[_key] = arguments[_key];
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
const lastArg = args[args.length - 1];
|
|
296
|
+
|
|
297
|
+
if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {
|
|
298
|
+
Object.assign(lastArg, { ...instanceOptions,
|
|
299
|
+
...lastArg,
|
|
300
|
+
...(lastArg.onAccount != null && {
|
|
301
|
+
onAccount: this._resolveAccount(lastArg.onAccount)
|
|
302
|
+
})
|
|
303
|
+
});
|
|
304
|
+
} else args.push(instanceOptions);
|
|
305
|
+
|
|
306
|
+
return handler(...args);
|
|
307
|
+
}];
|
|
308
|
+
}));
|
|
309
|
+
export default AeSdkBase;
|
|
310
|
+
//# sourceMappingURL=AeSdkBase.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AeSdkBase.mjs","names":["chainMethods","txMethods","aensMethods","spendMethods","oracleMethods","contractMethods","contractGaMethods","_buildTx","mapObject","getNetworkId","AE_AMOUNT_FORMATS","AMOUNT","MemoryAccount","isAccountBase","CompilerError","DuplicateNodeError","NodeNotFoundError","NotImplementedError","TypeError","Compiler","getValueOrErrorProxy","valueCb","error","Proxy","Object","fromEntries","map","name","AeSdkBase","constructor","nodes","compilerUrl","ignoreVersion","options","denomination","AETTOS","amount","Map","assign","_options","forEach","i","instance","addNode","compilerApi","setCompilerUrl","api","ensureNodeConnected","pool","get","selectedNodeName","node","select","has","set","selectNode","isNodeConnected","getNodeInfo","getNodesInPool","Promise","all","Array","from","entries","addresses","address","onAccount","_resolveAccount","sign","data","signTransaction","tx","networkId","signMessage","message","verifyMessage","signature","account","keypair","String","_getOptions","onNode","onCompiler","getStatus","buildTx","txType","_","txMethodsOther","methods","prototype","handler","instanceOptions","args","lastArg","length","push"],"sources":["../src/AeSdkBase.ts"],"sourcesContent":["import * as chainMethods from './chain'\nimport * as txMethods from './tx'\nimport * as aensMethods from './aens'\nimport * as spendMethods from './spend'\nimport * as oracleMethods from './oracle'\nimport * as contractMethods from './contract/methods'\nimport * as contractGaMethods from './contract/ga'\nimport { _buildTx } from './tx'\nimport { mapObject } from './utils/other'\nimport Node, { getNetworkId } from './Node'\nimport { AE_AMOUNT_FORMATS } from './utils/amount-formatter'\nimport { AMOUNT, TX_TYPE } from './tx/builder/schema'\nimport MemoryAccount, { Keypair } from './account/Memory'\nimport AccountBase, { isAccountBase } from './account/Base'\nimport {\n CompilerError,\n DuplicateNodeError,\n NodeNotFoundError,\n NotImplementedError,\n TypeError\n} from './utils/errors'\nimport { EncodedData } from './utils/encoder'\nimport Compiler from './contract/Compiler'\n\nexport type Account = Keypair | AccountBase | any\n\ntype NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string }\n\nfunction getValueOrErrorProxy<Value extends object> (valueCb: () => Value): Value {\n try {\n return valueCb()\n } catch (error) {\n return new Proxy(\n {},\n Object.fromEntries(['get', 'set', 'has'].map(name => [name, () => { throw error }]))\n ) as Value\n }\n}\n\n/**\n * Basic AeSdk class\n *\n * AeSdkBase objects are the composition of:\n * - chain methods\n * - tx methods\n * - aens methods\n * - spend methods\n * - oracle methods\n * - contract methods\n * - contract ga methods\n * Only by providing the joint functionality of them, most more advanced\n * operations, i.e. the ones with actual use value on the chain, become\n * available.\n */\nclass AeSdkBase {\n _options: {\n denomination: AE_AMOUNT_FORMATS\n amount: number\n [key: string]: any\n } = { denomination: AE_AMOUNT_FORMATS.AETTOS, amount: AMOUNT }\n\n pool: Map<string, Node> = new Map()\n selectedNodeName?: string\n compilerApi: Compiler\n\n /**\n * @param options - Options\n * @param options.nodes - Array of nodes\n * @param options.compilerUrl - Url for compiler API\n * @param options.ignoreVersion - Don't check node or compiler version\n */\n constructor (\n { nodes = [], compilerUrl, ignoreVersion = false, ...options }:\n {\n nodes?: Array<{ name: string, instance: Node }>\n compilerUrl?: string\n ignoreVersion?: boolean\n [key: string]: any // TODO: consider combining all possible options instead\n } = {}\n ) {\n Object.assign(this._options, options)\n\n nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0))\n\n if (compilerUrl == null) {\n this.compilerApi = getValueOrErrorProxy(() => {\n throw new CompilerError('You can\\'t use Compiler API. Compiler is not ready!')\n })\n } else this.setCompilerUrl(compilerUrl, { ignoreVersion })\n }\n\n setCompilerUrl (\n compilerUrl: string, { ignoreVersion = false }: { ignoreVersion?: boolean } = {}\n ): void {\n this.compilerApi = new Compiler(compilerUrl, { ignoreVersion })\n }\n\n get api (): Node {\n this.ensureNodeConnected()\n return this.pool.get(this.selectedNodeName) as Node\n }\n\n /**\n * Add Node\n * @param name - Node name\n * @param node - Node instance\n * @param select - Select this node as current\n * @example\n * ```js\n * // add and select new node with name 'testNode'\n * aeSdkBase.addNode('testNode', new Node({ url }), true)\n * ```\n */\n addNode (name: string, node: Node, select = false): void {\n if (this.pool.has(name)) throw new DuplicateNodeError(name)\n\n this.pool.set(name, node)\n if (select || this.selectedNodeName == null) {\n this.selectNode(name)\n }\n }\n\n /**\n * Select Node\n * @param name - Node name\n * @example\n * nodePool.selectNode('testNode')\n */\n selectNode (name: string): void {\n if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`)\n this.selectedNodeName = name\n }\n\n /**\n * Get NetworkId of current Node\n * @example\n * nodePool.getNetworkId()\n */\n readonly getNetworkId = getNetworkId\n\n /**\n * Check if you have selected node\n * @example\n * nodePool.isNodeConnected()\n */\n isNodeConnected (): this is AeSdkBase & { selectedNodeName: string } {\n return this.selectedNodeName != null\n }\n\n protected ensureNodeConnected (): asserts this is AeSdkBase & { selectedNodeName: string } {\n if (!this.isNodeConnected()) {\n throw new NodeNotFoundError('You can\\'t use Node API. Node is not connected or not defined!')\n }\n }\n\n /**\n * Get information about node\n * @example\n * ```js\n * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }\n * ```\n */\n async getNodeInfo (): Promise<NodeInfo> {\n this.ensureNodeConnected()\n return {\n name: this.selectedNodeName,\n ...await this.api.getNodeInfo()\n }\n }\n\n /**\n * Get array of available nodes\n * @example\n * nodePool.getNodesInPool()\n */\n async getNodesInPool (): Promise<NodeInfo[]> {\n return await Promise.all(\n Array.from(this.pool.entries()).map(async ([name, node]) => ({\n name,\n ...await node.getNodeInfo()\n }))\n )\n }\n\n addresses (): Array<EncodedData<'ak'>> {\n return []\n }\n\n async address ({ onAccount }: { onAccount?: Account } = {}): Promise<EncodedData<'ak'>> {\n return await this._resolveAccount(onAccount).address()\n }\n\n async sign (\n data: string | Uint8Array, { onAccount, ...options }: { onAccount?: Account } = {}\n ): Promise<Uint8Array> {\n return await this._resolveAccount(onAccount).sign(data, options)\n }\n\n async signTransaction (\n tx: EncodedData<'tx'>,\n { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signTransaction']>[1] = {}\n ): Promise<EncodedData<'tx'>> {\n return await this._resolveAccount(onAccount)\n .signTransaction(tx, { ...options, networkId: await this.getNetworkId(options) })\n }\n\n async signMessage (\n message: string,\n { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signMessage']>[1] = {}\n ): Promise<string | Uint8Array> {\n return await this._resolveAccount(onAccount).signMessage(message, options)\n }\n\n async verifyMessage (\n message: string,\n signature: string | Uint8Array,\n { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['verifyMessage']>[2] = {}\n ): Promise<boolean> {\n return await this._resolveAccount(onAccount).verifyMessage(message, signature, options)\n }\n\n /**\n * Resolves an account\n * @param account - ak-address, instance of AccountBase, or keypair\n */\n _resolveAccount (account?: Account): AccountBase {\n switch (account !== null && typeof account) {\n case 'string':\n throw new NotImplementedError('Address in AccountResolver')\n case 'object':\n return isAccountBase(account) ? account : new MemoryAccount({ keypair: account })\n default:\n throw new TypeError(\n 'Account should be an address (ak-prefixed string), ' +\n `keypair, or instance of AccountBase, got ${String(account)} instead`)\n }\n }\n\n async _getOptions (\n ): Promise<{ onNode: Node, onAccount: AccountBase, onCompiler: Compiler, networkId: string }> {\n return {\n ...this._options,\n onNode: getValueOrErrorProxy(() => this.api),\n onAccount: getValueOrErrorProxy(() => this._resolveAccount()),\n onCompiler: getValueOrErrorProxy(() => this.compilerApi),\n // TODO: remove networkId\n networkId: (await this.api?.getStatus()).networkId\n }\n }\n\n async buildTx<TxType extends TX_TYPE> (\n txType: TxType,\n options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node }\n ): Promise<EncodedData<'tx'>> {\n // @ts-expect-error\n return await _buildTx<TxType>(txType, {\n ...await this._getOptions(),\n ...options\n })\n }\n}\n\nconst { _buildTx: _, ...txMethodsOther } = txMethods\n\nconst methods = {\n ...chainMethods,\n ...txMethodsOther,\n ...aensMethods,\n ...spendMethods,\n ...oracleMethods,\n ...contractMethods,\n ...contractGaMethods\n} as const\n\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T]\n\ntype OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T\n\ntype MakeOptional<Args extends any[]> = Args extends [infer Head, ...infer Tail]\n ? Tail extends []\n ? Head extends object\n ? OptionalIfNotRequired<[Omit<Head, 'onNode' | 'onCompiler' | 'onAccount'>\n & { onNode?: Node, onCompiler?: Compiler, onAccount?: AccountBase | EncodedData<'ak'> | Keypair }]>\n : [Head]\n : [Head, ...MakeOptional<Tail>]\n : never\n\ntype TransformMethods <Methods extends { [key: string]: Function }> =\n {\n [Name in keyof Methods]:\n Methods[Name] extends (...args: infer Args) => infer Ret\n ? (...args: MakeOptional<Args>) => Ret\n : never\n }\n\ninterface AeSdkBaseMethods extends TransformMethods<typeof methods> {}\n\nObject.assign(AeSdkBase.prototype, mapObject<Function, Function>(\n methods,\n ([name, handler]) => [\n name,\n async function (...args: any[]) {\n const instanceOptions = await this._getOptions()\n const lastArg = args[args.length - 1]\n if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {\n Object.assign(lastArg, {\n ...instanceOptions,\n ...lastArg,\n ...lastArg.onAccount != null && { onAccount: this._resolveAccount(lastArg.onAccount) }\n })\n } else args.push(instanceOptions)\n return handler(...args)\n }\n ]\n))\n\nexport default AeSdkBase as new (options: ConstructorParameters<typeof AeSdkBase>[0]) =>\nAeSdkBase & AeSdkBaseMethods\n"],"mappings":";OAAO,KAAKA,Y;OACL,KAAKC,S;OACL,KAAKC,W;OACL,KAAKC,Y;OACL,KAAKC,a;OACL,KAAKC,e;OACL,KAAKC,iB;SACHC,Q;SACAC,S;SACMC,Y;SACNC,iB;SACAC,M;OACFC,a;SACeC,a;SAEpBC,a,EACAC,kB,EACAC,iB,EACAC,mB,EACAC,S;OAGKC,Q;;AAMP,SAASC,oBAAT,CAAqDC,OAArD,EAAkF;EAChF,IAAI;IACF,OAAOA,OAAO,EAAd;EACD,CAFD,CAEE,OAAOC,KAAP,EAAc;IACd,OAAO,IAAIC,KAAJ,CACL,EADK,EAELC,MAAM,CAACC,WAAP,CAAmB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsBC,GAAtB,CAA0BC,IAAI,IAAI,CAACA,IAAD,EAAO,MAAM;MAAE,MAAML,KAAN;IAAa,CAA5B,CAAlC,CAAnB,CAFK,CAAP;EAID;AACF;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMM,SAAN,CAAgB;EAWd;AACF;AACA;AACA;AACA;AACA;EACEC,WAAW,GAQT;IAAA,IAPA;MAAEC,KAAK,GAAG,EAAV;MAAcC,WAAd;MAA2BC,aAAa,GAAG,KAA3C;MAAkD,GAAGC;IAArD,CAOA,uEADI,EACJ;;IAAA,kCApBE;MAAEC,YAAY,EAAExB,iBAAiB,CAACyB,MAAlC;MAA0CC,MAAM,EAAEzB;IAAlD,CAoBF;;IAAA,8BAlBwB,IAAI0B,GAAJ,EAkBxB;;IAAA,sCA2DsB5B,YA3DtB;;IACAe,MAAM,CAACc,MAAP,CAAc,KAAKC,QAAnB,EAA6BN,OAA7B;IAEAH,KAAK,CAACU,OAAN,CAAc,OAAqBC,CAArB;MAAA,IAAC;QAAEd,IAAF;QAAQe;MAAR,CAAD;MAAA,OAA2B,KAAKC,OAAL,CAAahB,IAAb,EAAmBe,QAAnB,EAA6BD,CAAC,KAAK,CAAnC,CAA3B;IAAA,CAAd;;IAEA,IAAIV,WAAW,IAAI,IAAnB,EAAyB;MACvB,KAAKa,WAAL,GAAmBxB,oBAAoB,CAAC,MAAM;QAC5C,MAAM,IAAIN,aAAJ,CAAkB,qDAAlB,CAAN;MACD,CAFsC,CAAvC;IAGD,CAJD,MAIO,KAAK+B,cAAL,CAAoBd,WAApB,EAAiC;MAAEC;IAAF,CAAjC;EACR;;EAEDa,cAAc,CACZd,WADY,EAEN;IAAA,IADe;MAAEC,aAAa,GAAG;IAAlB,CACf,uEADwE,EACxE;IACN,KAAKY,WAAL,GAAmB,IAAIzB,QAAJ,CAAaY,WAAb,EAA0B;MAAEC;IAAF,CAA1B,CAAnB;EACD;;EAEM,IAAHc,GAAG,GAAU;IACf,KAAKC,mBAAL;IACA,OAAO,KAAKC,IAAL,CAAUC,GAAV,CAAc,KAAKC,gBAAnB,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACEP,OAAO,CAAEhB,IAAF,EAAgBwB,IAAhB,EAAkD;IAAA,IAAtBC,MAAsB,uEAAb,KAAa;IACvD,IAAI,KAAKJ,IAAL,CAAUK,GAAV,CAAc1B,IAAd,CAAJ,EAAyB,MAAM,IAAIZ,kBAAJ,CAAuBY,IAAvB,CAAN;IAEzB,KAAKqB,IAAL,CAAUM,GAAV,CAAc3B,IAAd,EAAoBwB,IAApB;;IACA,IAAIC,MAAM,IAAI,KAAKF,gBAAL,IAAyB,IAAvC,EAA6C;MAC3C,KAAKK,UAAL,CAAgB5B,IAAhB;IACD;EACF;EAED;AACF;AACA;AACA;AACA;AACA;;;EACE4B,UAAU,CAAE5B,IAAF,EAAsB;IAC9B,IAAI,CAAC,KAAKqB,IAAL,CAAUK,GAAV,CAAc1B,IAAd,CAAL,EAA0B,MAAM,IAAIX,iBAAJ,CAAuB,kBAAiBW,IAAK,cAA7C,CAAN;IAC1B,KAAKuB,gBAAL,GAAwBvB,IAAxB;EACD;EAED;AACF;AACA;AACA;AACA;;;EAGE;AACF;AACA;AACA;AACA;EACE6B,eAAe,GAAsD;IACnE,OAAO,KAAKN,gBAAL,IAAyB,IAAhC;EACD;;EAESH,mBAAmB,GAA8D;IACzF,IAAI,CAAC,KAAKS,eAAL,EAAL,EAA6B;MAC3B,MAAM,IAAIxC,iBAAJ,CAAsB,gEAAtB,CAAN;IACD;EACF;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EACmB,MAAXyC,WAAW,GAAuB;IACtC,KAAKV,mBAAL;IACA,OAAO;MACLpB,IAAI,EAAE,KAAKuB,gBADN;MAEL,IAAG,MAAM,KAAKJ,GAAL,CAASW,WAAT,EAAT;IAFK,CAAP;EAID;EAED;AACF;AACA;AACA;AACA;;;EACsB,MAAdC,cAAc,GAAyB;IAC3C,OAAO,MAAMC,OAAO,CAACC,GAAR,CACXC,KAAK,CAACC,IAAN,CAAW,KAAKd,IAAL,CAAUe,OAAV,EAAX,EAAgCrC,GAAhC,CAAoC;MAAA,IAAO,CAACC,IAAD,EAAOwB,IAAP,CAAP;MAAA,OAAyB;QAC3DxB,IAD2D;QAE3D,IAAG,MAAMwB,IAAI,CAACM,WAAL,EAAT;MAF2D,CAAzB;IAAA,CAApC,CADW,CAAb;EAMD;;EAEDO,SAAS,GAA8B;IACrC,OAAO,EAAP;EACD;;EAEY,MAAPC,OAAO,GAA2E;IAAA,IAAzE;MAAEC;IAAF,CAAyE,uEAAhC,EAAgC;IACtF,OAAO,MAAM,KAAKC,eAAL,CAAqBD,SAArB,EAAgCD,OAAhC,EAAb;EACD;;EAES,MAAJG,IAAI,CACRC,IADQ,EAEa;IAAA,IADM;MAAEH,SAAF;MAAa,GAAGjC;IAAhB,CACN,uEAD2D,EAC3D;IACrB,OAAO,MAAM,KAAKkC,eAAL,CAAqBD,SAArB,EAAgCE,IAAhC,CAAqCC,IAArC,EAA2CpC,OAA3C,CAAb;EACD;;EAEoB,MAAfqC,eAAe,CACnBC,EADmB,EAGS;IAAA,IAD5B;MAAEL,SAAF;MAAa,GAAGjC;IAAhB,CAC4B,uEADyE,EACzE;IAC5B,OAAO,MAAM,KAAKkC,eAAL,CAAqBD,SAArB,EACVI,eADU,CACMC,EADN,EACU,EAAE,GAAGtC,OAAL;MAAcuC,SAAS,EAAE,MAAM,KAAK/D,YAAL,CAAkBwB,OAAlB;IAA/B,CADV,CAAb;EAED;;EAEgB,MAAXwC,WAAW,CACfC,OADe,EAGe;IAAA,IAD9B;MAAER,SAAF;MAAa,GAAGjC;IAAhB,CAC8B,uEADmE,EACnE;IAC9B,OAAO,MAAM,KAAKkC,eAAL,CAAqBD,SAArB,EAAgCO,WAAhC,CAA4CC,OAA5C,EAAqDzC,OAArD,CAAb;EACD;;EAEkB,MAAb0C,aAAa,CACjBD,OADiB,EAEjBE,SAFiB,EAIC;IAAA,IADlB;MAAEV,SAAF;MAAa,GAAGjC;IAAhB,CACkB,uEADiF,EACjF;IAClB,OAAO,MAAM,KAAKkC,eAAL,CAAqBD,SAArB,EAAgCS,aAAhC,CAA8CD,OAA9C,EAAuDE,SAAvD,EAAkE3C,OAAlE,CAAb;EACD;EAED;AACF;AACA;AACA;;;EACEkC,eAAe,CAAEU,OAAF,EAAkC;IAC/C,QAAQA,OAAO,KAAK,IAAZ,IAAoB,OAAOA,OAAnC;MACE,KAAK,QAAL;QACE,MAAM,IAAI5D,mBAAJ,CAAwB,4BAAxB,CAAN;;MACF,KAAK,QAAL;QACE,OAAOJ,aAAa,CAACgE,OAAD,CAAb,GAAyBA,OAAzB,GAAmC,IAAIjE,aAAJ,CAAkB;UAAEkE,OAAO,EAAED;QAAX,CAAlB,CAA1C;;MACF;QACE,MAAM,IAAI3D,SAAJ,CACJ,wDACC,4CAA2C6D,MAAM,CAACF,OAAD,CAAU,UAFxD,CAAN;IANJ;EAUD;;EAEgB,MAAXG,WAAW,GAC6E;IAAA;;IAC5F,OAAO,EACL,GAAG,KAAKzC,QADH;MAEL0C,MAAM,EAAE7D,oBAAoB,CAAC,MAAM,KAAK0B,GAAZ,CAFvB;MAGLoB,SAAS,EAAE9C,oBAAoB,CAAC,MAAM,KAAK+C,eAAL,EAAP,CAH1B;MAILe,UAAU,EAAE9D,oBAAoB,CAAC,MAAM,KAAKwB,WAAZ,CAJ3B;MAKL;MACA4B,SAAS,EAAE,CAAC,oBAAM,KAAK1B,GAAX,8CAAM,UAAUqC,SAAV,EAAN,CAAD,EAA8BX;IANpC,CAAP;EAQD;;EAEY,MAAPY,OAAO,CACXC,MADW,EAEXpD,OAFW,EAGiB;IAC5B;IACA,OAAO,MAAM1B,QAAQ,CAAS8E,MAAT,EAAiB,EACpC,IAAG,MAAM,KAAKL,WAAL,EAAT,CADoC;MAEpC,GAAG/C;IAFiC,CAAjB,CAArB;EAID;;AA7Ma;;AAgNhB,MAAM;EAAE1B,QAAQ,EAAE+E,CAAZ;EAAe,GAAGC;AAAlB,IAAqCtF,SAA3C;AAEA,MAAMuF,OAAO,GAAG,EACd,GAAGxF,YADW;EAEd,GAAGuF,cAFW;EAGd,GAAGrF,WAHW;EAId,GAAGC,YAJW;EAKd,GAAGC,aALW;EAMd,GAAGC,eANW;EAOd,GAAGC;AAPW,CAAhB;AAmCAkB,MAAM,CAACc,MAAP,CAAcV,SAAS,CAAC6D,SAAxB,EAAmCjF,SAAS,CAC1CgF,OAD0C,EAE1C;EAAA,IAAC,CAAC7D,IAAD,EAAO+D,OAAP,CAAD;EAAA,OAAqB,CACnB/D,IADmB,EAEnB,kBAAgC;IAC9B,MAAMgE,eAAe,GAAG,MAAM,KAAKX,WAAL,EAA9B;;IAD8B,kCAAbY,IAAa;MAAbA,IAAa;IAAA;;IAE9B,MAAMC,OAAO,GAAGD,IAAI,CAACA,IAAI,CAACE,MAAL,GAAc,CAAf,CAApB;;IACA,IAAID,OAAO,IAAI,IAAX,IAAmB,OAAOA,OAAP,KAAmB,QAAtC,IAAkDA,OAAO,CAAChE,WAAR,KAAwBL,MAA9E,EAAsF;MACpFA,MAAM,CAACc,MAAP,CAAcuD,OAAd,EAAuB,EACrB,GAAGF,eADkB;QAErB,GAAGE,OAFkB;QAGrB,IAAGA,OAAO,CAAC3B,SAAR,IAAqB,IAArB,IAA6B;UAAEA,SAAS,EAAE,KAAKC,eAAL,CAAqB0B,OAAO,CAAC3B,SAA7B;QAAb,CAAhC;MAHqB,CAAvB;IAKD,CAND,MAMO0B,IAAI,CAACG,IAAL,CAAUJ,eAAV;;IACP,OAAOD,OAAO,CAAC,GAAGE,IAAJ,CAAd;EACD,CAbkB,CAArB;AAAA,CAF0C,CAA5C;AAmBA,eAAehE,SAAf"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import AeSdk from './AeSdk';
|
|
2
|
+
import { Account } from './AeSdkBase';
|
|
3
|
+
import RpcClient from './aepp-wallet-communication/rpc/RpcClient';
|
|
4
|
+
import { METHODS, RPC_STATUS, WALLET_TYPE } from './aepp-wallet-communication/schema';
|
|
5
|
+
import AccountBase from './account/Base';
|
|
6
|
+
import BrowserConnection from './aepp-wallet-communication/connection/Browser';
|
|
7
|
+
import { Accounts, AeppApi, Network, WalletApi, WalletInfo } from './aepp-wallet-communication/rpc/types';
|
|
8
|
+
import { EncodedData } from './utils/encoder';
|
|
9
|
+
declare type RpcClientWallet = RpcClient<AeppApi, WalletApi>;
|
|
10
|
+
declare type OnConnection = (clientId: string, params: Omit<Parameters<WalletApi[METHODS.connect]>[0], 'version'>, origin: string) => void;
|
|
11
|
+
declare type OnSubscription = (clientId: string, params: Parameters<WalletApi[METHODS.subscribeAddress]>[0], origin: string) => void;
|
|
12
|
+
declare type OnSign = (clientId: string, params: Parameters<WalletApi[METHODS.sign]>[0], origin: string) => Promise<{
|
|
13
|
+
tx?: EncodedData<'tx'>;
|
|
14
|
+
onAccount?: Account;
|
|
15
|
+
} | undefined> | Promise<void>;
|
|
16
|
+
declare type OnDisconnect = (clientId: string, params: Parameters<WalletApi[METHODS.closeConnection]>[0]) => void;
|
|
17
|
+
declare type OnAskAccounts = (clientId: string, params: undefined, origin: string) => void;
|
|
18
|
+
declare type OnMessageSign = (clientId: string, params: Parameters<WalletApi[METHODS.signMessage]>[0], origin: string) => Promise<{
|
|
19
|
+
onAccount?: Account;
|
|
20
|
+
} | undefined> | Promise<void>;
|
|
21
|
+
interface RpcClientsInfo {
|
|
22
|
+
id: string;
|
|
23
|
+
status: RPC_STATUS;
|
|
24
|
+
connectNode: boolean;
|
|
25
|
+
addressSubscription: Set<'connected' | 'current'>;
|
|
26
|
+
rpc: RpcClientWallet;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Contain functionality for aepp interaction and managing multiple aepps
|
|
30
|
+
*/
|
|
31
|
+
export default class AeSdkWallet extends AeSdk {
|
|
32
|
+
id: string;
|
|
33
|
+
_type: WALLET_TYPE;
|
|
34
|
+
name: string;
|
|
35
|
+
_clients: Map<string, RpcClientsInfo>;
|
|
36
|
+
onConnection: OnConnection;
|
|
37
|
+
onSubscription: OnSubscription;
|
|
38
|
+
onSign: OnSign;
|
|
39
|
+
onDisconnect: OnDisconnect;
|
|
40
|
+
onAskAccounts: OnAskAccounts;
|
|
41
|
+
onMessageSign: OnMessageSign;
|
|
42
|
+
/**
|
|
43
|
+
* @param options - Options
|
|
44
|
+
* @param options.name - Wallet name
|
|
45
|
+
* @param options.id - Wallet id
|
|
46
|
+
* @param options.type - Wallet type
|
|
47
|
+
* @param options.onConnection - Call-back function for incoming AEPP connection
|
|
48
|
+
* @param options.onSubscription - Call-back function for incoming AEPP account subscription
|
|
49
|
+
* @param options.onSign - Call-back function for incoming AEPP sign request
|
|
50
|
+
* @param options.onAskAccounts - Call-back function for incoming AEPP get address request
|
|
51
|
+
* @param options.onMessageSign - Call-back function for incoming AEPP sign message request
|
|
52
|
+
* @param options.onDisconnect - Call-back function for disconnect event
|
|
53
|
+
*/
|
|
54
|
+
constructor({ name, id, type, onConnection, onSubscription, onSign, onDisconnect, onAskAccounts, onMessageSign, ...options }: {
|
|
55
|
+
id: string;
|
|
56
|
+
type: WALLET_TYPE;
|
|
57
|
+
name: string;
|
|
58
|
+
onConnection: OnConnection;
|
|
59
|
+
onSubscription: OnSubscription;
|
|
60
|
+
onSign: OnSign;
|
|
61
|
+
onDisconnect: OnDisconnect;
|
|
62
|
+
onAskAccounts: OnAskAccounts;
|
|
63
|
+
onMessageSign: OnMessageSign;
|
|
64
|
+
} & ConstructorParameters<typeof AeSdk>[0]);
|
|
65
|
+
_pushAccountsToApps(): void;
|
|
66
|
+
selectAccount(address: EncodedData<'ak'>): void;
|
|
67
|
+
addAccount(account: AccountBase, options?: Parameters<AeSdk['addAccount']>[1]): Promise<void>;
|
|
68
|
+
_getNode(): {
|
|
69
|
+
node: Network['node'];
|
|
70
|
+
};
|
|
71
|
+
selectNode(name: string): Promise<void>;
|
|
72
|
+
_getClient(clientId: string): RpcClientsInfo;
|
|
73
|
+
_isRpcClientSubscribed(clientId: string): boolean;
|
|
74
|
+
_isRpcClientConnected(clientId: string): boolean;
|
|
75
|
+
_disconnectRpcClient(clientId: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Remove specific RpcClient by ID
|
|
78
|
+
* @param id - Client ID
|
|
79
|
+
*/
|
|
80
|
+
removeRpcClient(id: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* Add new client by AEPP connection
|
|
83
|
+
* @param clientConnection - AEPP connection object
|
|
84
|
+
* @returns Client ID
|
|
85
|
+
*/
|
|
86
|
+
addRpcClient(clientConnection: BrowserConnection): string;
|
|
87
|
+
/**
|
|
88
|
+
* Send shareWalletInfo message to notify AEPP about wallet
|
|
89
|
+
* @param clientId - ID of RPC client send message to
|
|
90
|
+
*/
|
|
91
|
+
shareWalletInfo(clientId: string): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Get Wallet info object
|
|
94
|
+
* @returns Object with wallet information
|
|
95
|
+
*/
|
|
96
|
+
getWalletInfo(): Promise<WalletInfo>;
|
|
97
|
+
/**
|
|
98
|
+
* Get Wallet accounts
|
|
99
|
+
* @returns Object with accounts information (\{ connected: Object, current: Object \})
|
|
100
|
+
*/
|
|
101
|
+
getAccounts(): Accounts;
|
|
102
|
+
}
|
|
103
|
+
export {};
|