@witnet/sdk 1.1.5 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env_witnet +13 -1
- package/dist/package.json +41 -24
- package/dist/src/bin/helpers.d.ts +59 -49
- package/dist/src/bin/helpers.d.ts.map +1 -1
- package/dist/src/bin/helpers.js +228 -229
- package/dist/src/index.d.ts +3 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -47
- package/dist/src/lib/crypto/account.d.ts +3 -3
- package/dist/src/lib/crypto/account.d.ts.map +1 -1
- package/dist/src/lib/crypto/account.js +31 -25
- package/dist/src/lib/crypto/coinbase.d.ts +4 -4
- package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
- package/dist/src/lib/crypto/coinbase.js +8 -13
- package/dist/src/lib/crypto/index.d.ts +7 -7
- package/dist/src/lib/crypto/index.d.ts.map +1 -1
- package/dist/src/lib/crypto/index.js +7 -30
- package/dist/src/lib/crypto/interfaces.d.ts +5 -5
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
- package/dist/src/lib/crypto/interfaces.js +2 -3
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +5 -5
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +98 -85
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts +3 -4
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/StakePayload.js +81 -71
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts +4 -5
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +36 -43
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts +3 -4
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +46 -48
- package/dist/src/lib/crypto/payloads.d.ts +5 -5
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads.js +44 -45
- package/dist/src/lib/crypto/signer.d.ts +3 -3
- package/dist/src/lib/crypto/signer.d.ts.map +1 -1
- package/dist/src/lib/crypto/signer.js +45 -88
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts +6 -6
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +6 -10
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts +5 -5
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +7 -11
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts +6 -7
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +9 -13
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts +5 -5
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +6 -10
- package/dist/src/lib/crypto/transmitters.d.ts +6 -6
- package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters.js +89 -76
- package/dist/src/lib/crypto/types.d.ts +1 -2
- package/dist/src/lib/crypto/types.d.ts.map +1 -1
- package/dist/src/lib/crypto/types.js +71 -67
- package/dist/src/lib/crypto/utils.d.ts +5 -5
- package/dist/src/lib/crypto/utils.d.ts.map +1 -1
- package/dist/src/lib/crypto/utils.js +48 -66
- package/dist/src/lib/crypto/wallet.d.ts +3 -3
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
- package/dist/src/lib/crypto/wallet.js +72 -89
- package/dist/src/lib/index.d.ts +5 -4
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -44
- package/dist/src/lib/radon/ccdr/eth.d.ts +1 -1
- package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +95 -83
- package/dist/src/lib/radon/ccdr/index.d.ts +2 -2
- package/dist/src/lib/radon/ccdr/index.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/index.js +3 -39
- package/dist/src/lib/radon/ccdr/wit.d.ts +2 -2
- package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +17 -19
- package/dist/src/lib/radon/filters.d.ts.map +1 -1
- package/dist/src/lib/radon/filters.js +23 -19
- package/dist/src/lib/radon/index.d.ts +10 -11
- package/dist/src/lib/radon/index.d.ts.map +1 -1
- package/dist/src/lib/radon/index.js +205 -187
- package/dist/src/lib/radon/reducers.d.ts +2 -2
- package/dist/src/lib/radon/reducers.d.ts.map +1 -1
- package/dist/src/lib/radon/reducers.js +48 -34
- package/dist/src/lib/radon/types.d.ts +2 -2
- package/dist/src/lib/radon/types.d.ts.map +1 -1
- package/dist/src/lib/radon/types.js +80 -110
- package/dist/src/lib/radon/utils.d.ts +3 -3
- package/dist/src/lib/radon/utils.d.ts.map +1 -1
- package/dist/src/lib/radon/utils.js +49 -52
- package/dist/src/lib/rest/kermit.d.ts +20 -0
- package/dist/src/lib/rest/kermit.d.ts.map +1 -0
- package/dist/src/lib/rest/kermit.js +68 -0
- package/dist/src/lib/rest/types.d.ts +5 -0
- package/dist/src/lib/rest/types.d.ts.map +1 -0
- package/dist/src/lib/rest/types.js +2 -0
- package/dist/src/lib/rpc/index.d.ts +2 -2
- package/dist/src/lib/rpc/index.d.ts.map +1 -1
- package/dist/src/lib/rpc/index.js +3 -19
- package/dist/src/lib/rpc/nodes.d.ts +13 -13
- package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
- package/dist/src/lib/rpc/nodes.js +69 -98
- package/dist/src/lib/rpc/provider.d.ts +4 -4
- package/dist/src/lib/rpc/provider.d.ts.map +1 -1
- package/dist/src/lib/rpc/provider.js +106 -122
- package/dist/src/lib/rpc/types.d.ts +2 -2
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +13 -16
- package/dist/src/lib/types.d.ts +5 -4
- package/dist/src/lib/types.d.ts.map +1 -1
- package/dist/src/lib/types.js +3 -9
- package/dist/src/lib/utils.d.ts +5 -5
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +40 -99
- package/dist/witnet/assets/index.cjs +6 -0
- package/dist/witnet/assets/index.d.cts +29 -0
- package/dist/witnet/assets/index.d.cts.map +1 -0
- package/dist/witnet/assets/modals/index.cjs +9 -0
- package/dist/witnet/assets/modals/index.d.cts +16 -0
- package/dist/witnet/assets/modals/index.d.cts.map +1 -0
- package/dist/witnet/assets/modals/web3/eth.cjs +23 -0
- package/dist/witnet/assets/modals/web3/eth.d.cts +4 -0
- package/dist/witnet/assets/modals/web3/eth.d.cts.map +1 -0
- package/dist/witnet/assets/modals/web3/ipfs.cjs +18 -0
- package/dist/witnet/assets/modals/web3/ipfs.d.cts +3 -0
- package/dist/witnet/assets/modals/web3/ipfs.d.cts.map +1 -0
- package/dist/witnet/assets/modals/web3/wit.cjs +24 -0
- package/dist/witnet/assets/modals/web3/wit.d.cts +3 -0
- package/dist/witnet/assets/modals/web3/wit.d.cts.map +1 -0
- package/dist/witnet/assets/requests.cjs +43 -0
- package/dist/witnet/assets/requests.d.cts +10 -0
- package/dist/witnet/assets/requests.d.cts.map +1 -0
- package/package.json +41 -24
- package/src/bin/bots/watcher.cjs +354 -0
- package/src/bin/cli/history.cjs +31 -0
- package/src/bin/cli/inspect.js +545 -471
- package/src/bin/cli/network.js +658 -557
- package/src/bin/cli/nodes.js +392 -332
- package/src/bin/cli/radon.js +1071 -844
- package/src/bin/cli/wallet.js +1317 -1074
- package/src/bin/helpers.js +969 -868
- package/src/bin/index.js +329 -0
- package/witnet/assets/_index.cjs +5 -0
- package/witnet/assets/_requests.cjs +25 -0
- package/witnet/assets/_sources.cjs +36 -0
- package/witnet/assets/_templates.cjs +36 -0
- package/witnet/assets/index.cjs +4 -0
- package/witnet/assets/modals/index.cjs +7 -0
- package/witnet/assets/modals/web3/eth.cjs +27 -0
- package/witnet/assets/modals/web3/ipfs.cjs +22 -0
- package/witnet/assets/modals/web3/wit.cjs +28 -0
- package/witnet/assets/requests.cjs +49 -0
- package/witnet/witnet copy.proto +457 -0
- package/witnet/witnet.proto +456 -0
- package/witnet/witnet_toolkit-1.6.7-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-1.7.1-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.0-rc.7-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.2-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.21-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.7-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.8-x86_64-pc-windows-msvc.exe +0 -0
- package/dist/witnet/assets/index.d.ts +0 -29
- package/dist/witnet/assets/index.d.ts.map +0 -1
- package/dist/witnet/assets/index.js +0 -6
- package/dist/witnet/assets/modals/index.d.ts +0 -16
- package/dist/witnet/assets/modals/index.d.ts.map +0 -1
- package/dist/witnet/assets/modals/index.js +0 -11
- package/dist/witnet/assets/modals/web3/eth.d.ts +0 -5
- package/dist/witnet/assets/modals/web3/eth.d.ts.map +0 -1
- package/dist/witnet/assets/modals/web3/eth.js +0 -26
- package/dist/witnet/assets/modals/web3/ipfs.d.ts +0 -4
- package/dist/witnet/assets/modals/web3/ipfs.d.ts.map +0 -1
- package/dist/witnet/assets/modals/web3/ipfs.js +0 -18
- package/dist/witnet/assets/modals/web3/wit.d.ts +0 -4
- package/dist/witnet/assets/modals/web3/wit.d.ts.map +0 -1
- package/dist/witnet/assets/modals/web3/wit.js +0 -17
- package/dist/witnet/assets/requests.d.ts +0 -11
- package/dist/witnet/assets/requests.d.ts.map +0 -1
- package/dist/witnet/assets/requests.js +0 -43
- package/src/bin/cli/history.js +0 -31
- package/src/bin/postinstall.js +0 -9
- package/src/bin/toolkit.js +0 -290
- package/witnet/assets/_index.js +0 -8
- package/witnet/assets/_requests.js +0 -25
- package/witnet/assets/_sources.js +0 -36
- package/witnet/assets/_templates.js +0 -36
- package/witnet/assets/index.js +0 -4
- package/witnet/assets/modals/index.js +0 -9
- package/witnet/assets/modals/web3/eth.js +0 -29
- package/witnet/assets/modals/web3/ipfs.js +0 -22
- package/witnet/assets/modals/web3/wit.js +0 -21
- package/witnet/assets/requests.js +0 -49
- /package/witnet/assets/modals/web3/{btc.js → btc.cjs} +0 -0
- /package/witnet/assets/modals/web3/{sol.js → sol.cjs} +0 -0
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const secp256k1 = require("secp256k1");
|
|
10
|
-
const bech32_1 = require("bech32");
|
|
11
|
-
const crypto_1 = require("crypto");
|
|
12
|
-
const types_1 = require("./types");
|
|
13
|
-
const utils_1 = require("../utils");
|
|
14
|
-
var bech32_2 = require("bech32");
|
|
15
|
-
Object.defineProperty(exports, "bech32", { enumerable: true, get: function () { return bech32_2.bech32; } });
|
|
16
|
-
var types_2 = require("./types");
|
|
17
|
-
Object.defineProperty(exports, "PublicKey", { enumerable: true, get: function () { return types_2.PublicKey; } });
|
|
18
|
-
Object.defineProperty(exports, "PublicKeyHash", { enumerable: true, get: function () { return types_2.PublicKeyHash; } });
|
|
19
|
-
Object.defineProperty(exports, "RecoverableSignature", { enumerable: true, get: function () { return types_2.RecoverableSignature; } });
|
|
20
|
-
Object.defineProperty(exports, "Signature", { enumerable: true, get: function () { return types_2.Signature; } });
|
|
21
|
-
exports.BigMath = {
|
|
1
|
+
import { createDecipheriv, createHash, pbkdf2Sync } from "node:crypto";
|
|
2
|
+
import { bech32 } from "bech32";
|
|
3
|
+
import secp256k1 from "secp256k1";
|
|
4
|
+
import { fromHexString } from "../utils.js";
|
|
5
|
+
import { Coins, UtxoSelectionStrategy } from "./types.js";
|
|
6
|
+
export { bech32 } from "bech32";
|
|
7
|
+
export { PublicKey, PublicKeyHash, RecoverableSignature, Signature, } from "./types.js";
|
|
8
|
+
export const BigMath = {
|
|
22
9
|
max(value, ...values) {
|
|
23
10
|
for (const v of values)
|
|
24
11
|
if (v > value)
|
|
@@ -30,36 +17,33 @@ const CHAIN_CODE_LENGTH = 32;
|
|
|
30
17
|
const DEPTH_LENGTH = 1;
|
|
31
18
|
const KEY_LENGTH = 33;
|
|
32
19
|
const KEY_PATH_LENGTH = 4;
|
|
33
|
-
const BECH32_LIMIT =
|
|
34
|
-
|
|
35
|
-
+
|
|
36
|
-
|
|
37
|
-
const getExpectedDataLength = (depth) =>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
+ KEY_LENGTH);
|
|
41
|
-
function decipherXprv(slip32, passwd) {
|
|
42
|
-
const { prefix, words } = bech32_1.bech32.decode(slip32, BECH32_LIMIT);
|
|
20
|
+
const BECH32_LIMIT = DEPTH_LENGTH +
|
|
21
|
+
(256 ** DEPTH_LENGTH - 1) * KEY_PATH_LENGTH +
|
|
22
|
+
CHAIN_CODE_LENGTH +
|
|
23
|
+
KEY_LENGTH;
|
|
24
|
+
const getExpectedDataLength = (depth) => DEPTH_LENGTH + depth * KEY_PATH_LENGTH + CHAIN_CODE_LENGTH + KEY_LENGTH;
|
|
25
|
+
export function decipherXprv(slip32, passwd) {
|
|
26
|
+
const { prefix, words } = bech32.decode(slip32, BECH32_LIMIT);
|
|
43
27
|
if (prefix !== "xprv") {
|
|
44
28
|
throw Error(`Invalid XPRV header: "${prefix}" != "xprv"`);
|
|
45
29
|
}
|
|
46
|
-
const buffer = new Uint8Array(
|
|
30
|
+
const buffer = new Uint8Array(bech32.fromWords(words)).buffer;
|
|
47
31
|
const iv = buffer.slice(0, 16);
|
|
48
32
|
const salt = buffer.slice(16, 48);
|
|
49
33
|
const data = buffer.slice(48);
|
|
50
|
-
const key =
|
|
51
|
-
const decipher =
|
|
52
|
-
let decrypted = decipher.update(Buffer.from(data), undefined,
|
|
53
|
-
decrypted += decipher.final(
|
|
34
|
+
const key = pbkdf2Sync(passwd, Buffer.from(salt), 10000, 32, "sha256");
|
|
35
|
+
const decipher = createDecipheriv("aes-256-cbc", key, Buffer.from(iv));
|
|
36
|
+
let decrypted = decipher.update(Buffer.from(data), undefined, "utf-8");
|
|
37
|
+
decrypted += decipher.final("utf-8");
|
|
54
38
|
return decrypted;
|
|
55
39
|
}
|
|
56
|
-
function ecdsaVerify(msg, pubKey, signature) {
|
|
57
|
-
return secp256k1.ecdsaVerify(
|
|
40
|
+
export function ecdsaVerify(msg, pubKey, signature) {
|
|
41
|
+
return secp256k1.ecdsaVerify(fromHexString(signature), msg, fromHexString(pubKey));
|
|
58
42
|
}
|
|
59
|
-
const parseXprv = (slip32) => {
|
|
43
|
+
export const parseXprv = (slip32) => {
|
|
60
44
|
// decode slip32 string
|
|
61
|
-
const { prefix, words } =
|
|
62
|
-
const bytes =
|
|
45
|
+
const { prefix, words } = bech32.decode(slip32, BECH32_LIMIT);
|
|
46
|
+
const bytes = bech32.fromWords(words);
|
|
63
47
|
// check prefix
|
|
64
48
|
if (prefix !== "xprv") {
|
|
65
49
|
throw Error(`Invalid XPRV: bad header: "${prefix}" != "xprv"`);
|
|
@@ -71,28 +55,28 @@ const parseXprv = (slip32) => {
|
|
|
71
55
|
}
|
|
72
56
|
const expectedLength = getExpectedDataLength(depth);
|
|
73
57
|
if (bytes.length !== expectedLength) {
|
|
74
|
-
throw Error("Invalid XPRV: bad data length"
|
|
75
|
-
|
|
58
|
+
throw Error("Invalid XPRV: bad data length" +
|
|
59
|
+
`(expected: ${expectedLength}, was: ${bytes.length}`);
|
|
76
60
|
}
|
|
77
61
|
const buffer = new Uint8Array(bytes).buffer;
|
|
78
62
|
// extract key path (32-bit unsigned integers, big endian)
|
|
79
63
|
const keyPath = [];
|
|
80
64
|
const keyPathView = new DataView(buffer, DEPTH_LENGTH, depth * KEY_PATH_LENGTH);
|
|
81
65
|
for (let i = 0; i < depth; i++) {
|
|
82
|
-
keyPath.push(
|
|
66
|
+
keyPath.push(keyPathView.getUint32(i * KEY_PATH_LENGTH, false));
|
|
83
67
|
}
|
|
84
68
|
// extract chain code
|
|
85
69
|
const chainCode = new Uint8Array(CHAIN_CODE_LENGTH);
|
|
86
70
|
const chainCodeOffset = DEPTH_LENGTH + depth * KEY_PATH_LENGTH;
|
|
87
71
|
const chainCodeView = new DataView(buffer, chainCodeOffset, CHAIN_CODE_LENGTH);
|
|
88
72
|
for (let i = 0; i < chainCode.length; i++) {
|
|
89
|
-
chainCode[i] =
|
|
73
|
+
chainCode[i] = chainCodeView.getUint8(i);
|
|
90
74
|
}
|
|
91
75
|
// extract key bytes
|
|
92
76
|
const privateKey = new Uint8Array(KEY_LENGTH);
|
|
93
77
|
const privateKeyView = new DataView(buffer, chainCodeOffset + CHAIN_CODE_LENGTH);
|
|
94
78
|
for (let i = 0; i < privateKey.length; i++) {
|
|
95
|
-
privateKey[i] =
|
|
79
|
+
privateKey[i] = privateKeyView.getUint8(i);
|
|
96
80
|
}
|
|
97
81
|
// check if private or public key are valid
|
|
98
82
|
if (privateKey[0] !== 0 || !secp256k1.privateKeyVerify(privateKey.slice(1))) {
|
|
@@ -104,15 +88,14 @@ const parseXprv = (slip32) => {
|
|
|
104
88
|
privateKey: privateKey.slice(1),
|
|
105
89
|
};
|
|
106
90
|
};
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const strategy = specs.strategy || types_1.UtxoSelectionStrategy.SlimFit;
|
|
91
|
+
export function selectUtxos(specs) {
|
|
92
|
+
const strategy = specs.strategy || UtxoSelectionStrategy.SlimFit;
|
|
110
93
|
switch (strategy) {
|
|
111
|
-
case
|
|
112
|
-
case
|
|
113
|
-
specs.utxos = specs.utxos.sort((a, b) =>
|
|
94
|
+
case UtxoSelectionStrategy.BigFirst:
|
|
95
|
+
case UtxoSelectionStrategy.SlimFit:
|
|
96
|
+
specs.utxos = specs.utxos.sort((a, b) => a.value > b.value ? -1 : a.value < b.value ? 1 : 0);
|
|
114
97
|
break;
|
|
115
|
-
case
|
|
98
|
+
case UtxoSelectionStrategy.Random: {
|
|
116
99
|
const len = specs.utxos.length;
|
|
117
100
|
for (let i = 0; i < len; i++) {
|
|
118
101
|
const index = Math.floor(Math.random() * (len - i));
|
|
@@ -121,24 +104,25 @@ function selectUtxos(specs) {
|
|
|
121
104
|
specs.utxos[len - i - 1] = tmp;
|
|
122
105
|
}
|
|
123
106
|
break;
|
|
124
|
-
|
|
125
|
-
|
|
107
|
+
}
|
|
108
|
+
case UtxoSelectionStrategy.SmallFirst:
|
|
109
|
+
specs.utxos = specs.utxos.sort((a, b) => a.value < b.value ? -1 : a.value > b.value ? 1 : 0);
|
|
126
110
|
break;
|
|
127
111
|
}
|
|
128
112
|
// filter locked UTXOs:
|
|
129
113
|
const now = Math.floor(Date.now() / 1000);
|
|
130
|
-
specs.utxos = specs.utxos.filter(utxo => utxo.timelock <= now);
|
|
114
|
+
specs.utxos = specs.utxos.filter((utxo) => utxo.timelock <= now);
|
|
131
115
|
// if target value is specified, filter spare UTXOs
|
|
132
116
|
const pedros = specs?.value?.pedros;
|
|
133
117
|
if (pedros) {
|
|
134
|
-
if (strategy ===
|
|
135
|
-
const slimFitIndex = specs.utxos.findIndex(utxo => utxo.value <= pedros);
|
|
118
|
+
if (strategy === UtxoSelectionStrategy.SlimFit) {
|
|
119
|
+
const slimFitIndex = specs.utxos.findIndex((utxo) => utxo.value <= pedros);
|
|
136
120
|
if (slimFitIndex >= 1) {
|
|
137
121
|
return specs.utxos.slice(slimFitIndex - 1, slimFitIndex);
|
|
138
122
|
}
|
|
139
123
|
}
|
|
140
124
|
let covered = 0n;
|
|
141
|
-
return specs.utxos.filter(utxo => {
|
|
125
|
+
return specs.utxos.filter((utxo) => {
|
|
142
126
|
const filter = covered <= pedros;
|
|
143
127
|
covered += BigInt(utxo.value);
|
|
144
128
|
return filter;
|
|
@@ -148,14 +132,12 @@ function selectUtxos(specs) {
|
|
|
148
132
|
return specs.utxos;
|
|
149
133
|
}
|
|
150
134
|
}
|
|
151
|
-
function sha256(buffer) {
|
|
152
|
-
const hash =
|
|
135
|
+
export function sha256(buffer) {
|
|
136
|
+
const hash = createHash("sha256");
|
|
153
137
|
hash.update(buffer);
|
|
154
138
|
return hash.digest();
|
|
155
139
|
}
|
|
156
|
-
function totalCoins(balance) {
|
|
157
|
-
return
|
|
158
|
-
+ BigInt(balance.staked)
|
|
159
|
-
+ BigInt(balance.unlocked));
|
|
140
|
+
export function totalCoins(balance) {
|
|
141
|
+
return Coins.fromPedros(BigInt(balance.locked) + BigInt(balance.staked) + BigInt(balance.unlocked));
|
|
160
142
|
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1Q0Esb0NBY0M7QUFFRCxrQ0FXQztBQWdFRCxrQ0FpREM7QUFFRCx3QkFJQztBQUVELGdDQU1DO0FBak1ELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUV0QyxtQ0FBK0I7QUFDL0IsbUNBQWlFO0FBRWpFLG1DQUE0RDtBQUM1RCxvQ0FBd0M7QUFFeEMsaUNBQStCO0FBQXRCLGdHQUFBLE1BQU0sT0FBQTtBQUVmLGlDQUErRztBQUExRixrR0FBQSxTQUFTLE9BQUE7QUFBRSxzR0FBQSxhQUFhLE9BQUE7QUFBa0IsNkdBQUEsb0JBQW9CLE9BQUE7QUFBRSxrR0FBQSxTQUFTLE9BQUE7QUFFakYsUUFBQSxPQUFPLEdBQUc7SUFDbkIsR0FBRyxDQUFDLEtBQWEsRUFBRSxHQUFHLE1BQWdCO1FBQ2xDLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTTtZQUNsQixJQUFJLENBQUMsR0FBRyxLQUFLO2dCQUFFLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDcEIsT0FBTyxLQUFLLENBQUE7SUFDeEIsQ0FBQztDQUNKLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQTtBQUM1QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUE7QUFDdEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ3JCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQTtBQUV6QixNQUFNLFlBQVksR0FBRyxDQUNqQixZQUFZO01BQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQztNQUNyRCxpQkFBaUI7TUFDakIsVUFBVSxDQUNuQixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFD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QyxNQUFNLENBQUMsQ0FBQTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtBQUN4QixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLE9BQWdCO0lBQ3ZDLE9BQU8sYUFBSyxDQUFDLFVBQVUsQ0FDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7VUFDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7VUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDakMsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzZWNwMjU2azEgPSByZXF1aXJlKFwic2VjcDI1NmsxXCIpXHJcblxyXG5pbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInXHJcbmltcG9ydCB7IGNyZWF0ZURlY2lwaGVyaXYsIGNyZWF0ZUhhc2gsIHBia2RmMlN5bmMgfSBmcm9tICdjcnlwdG8nXHJcbmltcG9ydCB7IEJhbGFuY2UsIEhleFN0cmluZyB9IGZyb20gJy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBDb2lucywgVXR4bywgVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi90eXBlcydcclxuaW1wb3J0IHsgZnJvbUhleFN0cmluZyB9IGZyb20gJy4uL3V0aWxzJ1xyXG5cclxuZXhwb3J0IHsgYmVjaDMyIH0gZnJvbSAnYmVjaDMyJ1xyXG5cclxuZXhwb3J0IHsgUHJpdmF0ZUtleSwgUHVibGljS2V5LCBQdWJsaWNLZXlIYXNoLCBLZXllZFNpZ25hdHVyZSwgUmVjb3ZlcmFibGVTaWduYXR1cmUsIFNpZ25hdHVyZSB9IGZyb20gXCIuL3R5cGVzXCJcclxuXHJcbmV4cG9ydCBjb25zdCBCaWdNYXRoID0ge1xyXG4gICAgbWF4KHZhbHVlOiBiaWdpbnQsIC4uLnZhbHVlczogYmlnaW50W10pOiBiaWdpbnQge1xyXG4gICAgICAgIGZvciAoY29uc3QgdiBvZiB2YWx1ZXMpXHJcbiAgICAgICAgICAgIGlmICh2ID4gdmFsdWUpIHZhbHVlID0gdlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICB9LFxyXG59XHJcblxyXG5jb25zdCBDSEFJTl9DT0RFX0xFTkdUSCA9IDMyXHJcbmNvbnN0IERFUFRIX0xFTkdUSCA9IDFcclxuY29uc3QgS0VZX0xFTkdUSCA9IDMzXHJcbmNvbnN0IEtFWV9QQVRIX0xFTkdUSCA9IDRcclxuXHJcbmNvbnN0IEJFQ0gzMl9MSU1JVCA9IChcclxuICAgIERFUFRIX0xFTkdUSCBcclxuICAgICAgICArICgoTWF0aC5wb3coMjU2LCBERVBUSF9MRU5HVEgpIC0gMSkgKiBLRVlfUEFUSF9MRU5HVEgpIFxyXG4gICAgICAgICsgQ0hBSU5fQ09ERV9MRU5HVEggXHJcbiAgICAgICAgKyBLRVlfTEVOR1RIXHJcbik7XHJcblxyXG5jb25zdCBnZXRFeHBlY3RlZERhdGFMZW5ndGggPSAoZGVwdGg6IG51bWJlcikgPT4gKFxyXG4gICAgREVQVEhfTEVOR1RIXHJcbiAgICAgICAgKyBkZXB0aCAqIEtFWV9QQVRIX0xFTkdUSFxyXG4gICAgICAgICsgQ0hBSU5fQ09ERV9MRU5HVEhcclxuICAgICAgICArIEtFWV9MRU5HVEhcclxuKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWNpcGhlclhwcnYoc2xpcDMyOiBzdHJpbmcsIHBhc3N3ZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgcHJlZml4LCB3b3JkcyB9ID0gYmVjaDMyLmRlY29kZShzbGlwMzIsIEJFQ0gzMl9MSU1JVClcclxuICAgIGlmIChwcmVmaXggIT09IFwieHBydlwiKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgWFBSViBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKVxyXG4gICAgfVxyXG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcykpLmJ1ZmZlclxyXG4gICAgY29uc3QgaXYgPSBidWZmZXIuc2xpY2UoMCwgMTYpXHJcbiAgICBjb25zdCBzYWx0ID0gYnVmZmVyLnNsaWNlKDE2LCA0OClcclxuICAgIGNvbnN0IGRhdGEgPSBidWZmZXIuc2xpY2UoNDgpXHJcbiAgICBjb25zdCBrZXkgPSBwYmtkZjJTeW5jKHBhc3N3ZCwgQnVmZmVyLmZyb20oc2FsdCksIDEwMDAwLCAzMiwgJ3NoYTI1NicpICAgIFxyXG4gICAgY29uc3QgZGVjaXBoZXIgPSBjcmVhdGVEZWNpcGhlcml2KFwiYWVzLTI1Ni1jYmNcIiwga2V5LCBCdWZmZXIuZnJvbShpdikpXHJcbiAgICBsZXQgZGVjcnlwdGVkID0gZGVjaXBoZXIudXBkYXRlKEJ1ZmZlci5mcm9tKGRhdGEpLCB1bmRlZmluZWQsICd1dGYtOCcpXHJcbiAgICBkZWNyeXB0ZWQgKz0gZGVjaXBoZXIuZmluYWwoJ3V0Zi04JylcclxuICAgIHJldHVybiBkZWNyeXB0ZWRcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVjZHNhVmVyaWZ5KFxyXG4gICAgbXNnOiBCdWZmZXI8QXJyYXlCdWZmZXJMaWtlPiwgXHJcbiAgICBwdWJLZXk6IEhleFN0cmluZyxcclxuICAgIHNpZ25hdHVyZTogSGV4U3RyaW5nLCBcclxuKTogYm9vbGVhbiB7XHJcbiAgICBcclxuICAgIHJldHVybiBzZWNwMjU2azEuZWNkc2FWZXJpZnkoXHJcbiAgICAgICAgZnJvbUhleFN0cmluZyhzaWduYXR1cmUpLCBcclxuICAgICAgICBtc2csIFxyXG4gICAgICAgIGZyb21IZXhTdHJpbmcocHViS2V5KVxyXG4gICAgKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcGFyc2VYcHJ2ID0gKHNsaXAzMjogc3RyaW5nKToge1xyXG4gICAgY2hhaW5Db2RlOiBVaW50OEFycmF5LFxyXG4gICAga2V5UGF0aDogQXJyYXk8bnVtYmVyPixcclxuICAgIHByaXZhdGVLZXk6IFVpbnQ4QXJyYXksXHJcbn0gPT4ge1xyXG4gICAgLy8gZGVjb2RlIHNsaXAzMiBzdHJpbmdcclxuICAgIGNvbnN0IHsgcHJlZml4LCB3b3JkcyB9ID0gYmVjaDMyLmRlY29kZShzbGlwMzIsIEJFQ0gzMl9MSU1JVClcclxuICAgIGNvbnN0IGJ5dGVzID0gYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcylcclxuXHJcbiAgICAvLyBjaGVjayBwcmVmaXhcclxuICAgIGlmIChwcmVmaXggIT09IFwieHBydlwiKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgWFBSVjogYmFkIGhlYWRlcjogXCIke3ByZWZpeH1cIiAhPSBcInhwcnZcImApXHJcbiAgICB9XHJcblxyXG4gICAgLy8gY2hlY2sgZXhwZWN0ZWQgZGF0YSBsZW5ndGhcclxuICAgIGNvbnN0IGRlcHRoID0gYnl0ZXNbMF1cclxuICAgIGlmIChkZXB0aCAhPT0gMCkge1xyXG4gICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IG5vdCBhIG1hc3RlciBwcml2YXRlIGtleSAoZGVwdGg6ICR7ZGVwdGh9KWApXHJcbiAgICB9XHJcbiAgICBjb25zdCBleHBlY3RlZExlbmd0aCA9IGdldEV4cGVjdGVkRGF0YUxlbmd0aChkZXB0aClcclxuICAgIGlmIChieXRlcy5sZW5ndGggIT09IGV4cGVjdGVkTGVuZ3RoKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXHJcbiAgICAgICAgICAgIFwiSW52YWxpZCBYUFJWOiBiYWQgZGF0YSBsZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgKyBgKGV4cGVjdGVkOiAke2V4cGVjdGVkTGVuZ3RofSwgd2FzOiAke2J5dGVzLmxlbmd0aH1gXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpLmJ1ZmZlclxyXG5cclxuICAgIC8vIGV4dHJhY3Qga2V5IHBhdGggKDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VycywgYmlnIGVuZGlhbilcclxuICAgIGNvbnN0IGtleVBhdGg6IEFycmF5PG51bWJlcj4gPSBbXVxyXG4gICAgY29uc3Qga2V5UGF0aFZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLCBERVBUSF9MRU5HVEgsIGRlcHRoICogS0VZX1BBVEhfTEVOR1RIKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZXB0aDsgaSsrKSB7XHJcbiAgICAgICAga2V5UGF0aC5wdXNoKChrZXlQYXRoVmlldy5nZXRVaW50MzIoaSAqIEtFWV9QQVRIX0xFTkdUSCwgZmFsc2UpKSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBleHRyYWN0IGNoYWluIGNvZGVcclxuICAgIGNvbnN0IGNoYWluQ29kZTogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KENIQUlOX0NPREVfTEVOR1RIKVxyXG4gICAgY29uc3QgY2hhaW5Db2RlT2Zmc2V0ID0gREVQVEhfTEVOR1RIICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEhcclxuICAgIGNvbnN0IGNoYWluQ29kZVZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLCBjaGFpbkNvZGVPZmZzZXQsIENIQUlOX0NPREVfTEVOR1RIKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFpbkNvZGUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjaGFpbkNvZGVbaV0gPSAoY2hhaW5Db2RlVmlldy5nZXRVaW50OChpKSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBleHRyYWN0IGtleSBieXRlc1xyXG4gICAgY29uc3QgcHJpdmF0ZUtleTogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KEtFWV9MRU5HVEgpXHJcbiAgICBjb25zdCBwcml2YXRlS2V5VmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIsIGNoYWluQ29kZU9mZnNldCArIENIQUlOX0NPREVfTEVOR1RIKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcml2YXRlS2V5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgcHJpdmF0ZUtleVtpXSA9IChwcml2YXRlS2V5Vmlldy5nZXRVaW50OChpKSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBjaGVjayBpZiBwcml2YXRlIG9yIHB1YmxpYyBrZXkgYXJlIHZhbGlkXHJcbiAgICBpZiAocHJpdmF0ZUtleVswXSAhPT0gMCB8fCAhc2VjcDI1NmsxLnByaXZhdGVLZXlWZXJpZnkocHJpdmF0ZUtleS5zbGljZSgxKSkpIHtcclxuICAgICAgICB0aHJvdyBFcnJvcihgTWFsZm9ybWVkIHNsaXAzMjogbm90IGEgcHJpdmF0ZSBrZXlgKVxyXG4gICAgfSBcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNoYWluQ29kZSxcclxuICAgICAgICBrZXlQYXRoLFxyXG4gICAgICAgIHByaXZhdGVLZXk6IHByaXZhdGVLZXkuc2xpY2UoMSksXHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0VXR4b3Moc3BlY3M6IHsgXHJcbiAgICB1dHhvczogQXJyYXk8VXR4bz4sIFxyXG4gICAgdmFsdWU/OiBDb2lucywgXHJcbiAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSwgXHJcbn0pOiBBcnJheTxVdHhvPiB7XHJcbiAgICBjb25zdCBzdHJhdGVneSA9IHNwZWNzLnN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbGltRml0XHJcbiAgICBzd2l0Y2ggKHN0cmF0ZWd5KSB7XHJcbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuQmlnRmlyc3Q6XHJcbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDpcclxuICAgICAgICAgICAgc3BlY3MudXR4b3MgPSBzcGVjcy51dHhvcy5zb3J0KChhLCBiKSA9PiAoYS52YWx1ZSA+IGIudmFsdWUpID8gLTEgOiAoKGEudmFsdWUgPCBiLnZhbHVlKSA/IDEgOiAwKSlcclxuICAgICAgICAgICAgYnJlYWtcclxuXHJcbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuUmFuZG9tOlxyXG4gICAgICAgICAgICBjb25zdCBsZW4gPSBzcGVjcy51dHhvcy5sZW5ndGhcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkgKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGxlbiAtIGkpKVxyXG4gICAgICAgICAgICAgICAgY29uc3QgdG1wID0gc3BlY3MudXR4b3NbaW5kZXhdXHJcbiAgICAgICAgICAgICAgICBzcGVjcy51dHhvc1tpbmRleF0gPSBzcGVjcy51dHhvc1tsZW4gLSBpIC0gMV1cclxuICAgICAgICAgICAgICAgIHNwZWNzLnV0eG9zW2xlbiAtIGkgLSAxXSA9IHRtcFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrXHJcblxyXG4gICAgICAgIGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3Q6XHJcbiAgICAgICAgICAgIHNwZWNzLnV0eG9zID0gc3BlY3MudXR4b3Muc29ydCgoYSwgYikgPT4gKGEudmFsdWUgPCBiLnZhbHVlKSA/IC0xIDogKChhLnZhbHVlID4gYi52YWx1ZSkgPyAxIDogMCkpXHJcbiAgICAgICAgICAgIGJyZWFrXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIGZpbHRlciBsb2NrZWQgVVRYT3M6XHJcbiAgICBjb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKVxyXG4gICAgc3BlY3MudXR4b3MgPSBzcGVjcy51dHhvcy5maWx0ZXIodXR4byA9PiB1dHhvLnRpbWVsb2NrIDw9IG5vdylcclxuXHJcbiAgICAvLyBpZiB0YXJnZXQgdmFsdWUgaXMgc3BlY2lmaWVkLCBmaWx0ZXIgc3BhcmUgVVRYT3NcclxuICAgIGNvbnN0IHBlZHJvcyA9IHNwZWNzPy52YWx1ZT8ucGVkcm9zXHJcbiAgICBpZiAocGVkcm9zKSB7XHJcbiAgICAgICAgaWYgKHN0cmF0ZWd5ID09PSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdCkge1xyXG4gICAgICAgICAgICBjb25zdCBzbGltRml0SW5kZXggPSBzcGVjcy51dHhvcy5maW5kSW5kZXgodXR4byA9PiB1dHhvLnZhbHVlIDw9IHBlZHJvcylcclxuICAgICAgICAgICAgaWYgKHNsaW1GaXRJbmRleCA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3BlY3MudXR4b3Muc2xpY2Uoc2xpbUZpdEluZGV4IC0gMSwgc2xpbUZpdEluZGV4KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBjb3ZlcmVkOiBiaWdpbnQgPSAwbiBcclxuICAgICAgICByZXR1cm4gc3BlY3MudXR4b3MuZmlsdGVyKHV0eG8gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBjb3ZlcmVkIDw9IHBlZHJvc1xyXG4gICAgICAgICAgICBjb3ZlcmVkICs9IEJpZ0ludCh1dHhvLnZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyXHJcbiAgICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHNwZWNzLnV0eG9zXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzaGEyNTYoYnVmZmVyOiBhbnkpIHtcclxuICAgIGNvbnN0IGhhc2ggPSBjcmVhdGVIYXNoKCdzaGEyNTYnKVxyXG4gICAgaGFzaC51cGRhdGUoYnVmZmVyKVxyXG4gICAgcmV0dXJuIGhhc2guZGlnZXN0KClcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRvdGFsQ29pbnMoYmFsYW5jZTogQmFsYW5jZSk6IENvaW5zIHtcclxuICAgIHJldHVybiBDb2lucy5mcm9tUGVkcm9zKFxyXG4gICAgICAgIEJpZ0ludChiYWxhbmNlLmxvY2tlZClcclxuICAgICAgICAgICAgKyBCaWdJbnQoYmFsYW5jZS5zdGFrZWQpXHJcbiAgICAgICAgICAgICsgQmlnSW50KGJhbGFuY2UudW5sb2NrZWQpXHJcbiAgICApXHJcbn1cclxuXHJcbiJdfQ==
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQWEscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVoQyxPQUFPLEVBR04sU0FBUyxFQUNULGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsU0FBUyxHQUNULE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUN0QixHQUFHLENBQUMsS0FBYSxFQUFFLEdBQUcsTUFBZ0I7UUFDckMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSztnQkFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztDQUNELENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUUxQixNQUFNLFlBQVksR0FDakIsWUFBWTtJQUNaLENBQUMsR0FBRyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxlQUFlO0lBQzNDLGlCQUFpQjtJQUNqQixVQUFVLENBQUM7QUFFWixNQUFNLHFCQUFx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QUFNLFVBQVUsVUFBVSxDQUFDLE9BQWdCO0lBQzFDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQzFFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRGVjaXBoZXJpdiwgY3JlYXRlSGFzaCwgcGJrZGYyU3luYyB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xyXG5pbXBvcnQgeyBiZWNoMzIgfSBmcm9tIFwiYmVjaDMyXCI7XHJcbmltcG9ydCBzZWNwMjU2azEgZnJvbSBcInNlY3AyNTZrMVwiO1xyXG5pbXBvcnQgdHlwZSB7IEJhbGFuY2UsIEhleFN0cmluZyB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xyXG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XHJcbmltcG9ydCB7IENvaW5zLCB0eXBlIFV0eG8sIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XHJcblxyXG5leHBvcnQgeyBiZWNoMzIgfSBmcm9tIFwiYmVjaDMyXCI7XHJcblxyXG5leHBvcnQge1xyXG5cdEtleWVkU2lnbmF0dXJlLFxyXG5cdFByaXZhdGVLZXksXHJcblx0UHVibGljS2V5LFxyXG5cdFB1YmxpY0tleUhhc2gsXHJcblx0UmVjb3ZlcmFibGVTaWduYXR1cmUsXHJcblx0U2lnbmF0dXJlLFxyXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQmlnTWF0aCA9IHtcclxuXHRtYXgodmFsdWU6IGJpZ2ludCwgLi4udmFsdWVzOiBiaWdpbnRbXSk6IGJpZ2ludCB7XHJcblx0XHRmb3IgKGNvbnN0IHYgb2YgdmFsdWVzKSBpZiAodiA+IHZhbHVlKSB2YWx1ZSA9IHY7XHJcblx0XHRyZXR1cm4gdmFsdWU7XHJcblx0fSxcclxufTtcclxuXHJcbmNvbnN0IENIQUlOX0NPREVfTEVOR1RIID0gMzI7XHJcbmNvbnN0IERFUFRIX0xFTkdUSCA9IDE7XHJcbmNvbnN0IEtFWV9MRU5HVEggPSAzMztcclxuY29uc3QgS0VZX1BBVEhfTEVOR1RIID0gNDtcclxuXHJcbmNvbnN0IEJFQ0gzMl9MSU1JVCA9XHJcblx0REVQVEhfTEVOR1RIICtcclxuXHQoMjU2ICoqIERFUFRIX0xFTkdUSCAtIDEpICogS0VZX1BBVEhfTEVOR1RIICtcclxuXHRDSEFJTl9DT0RFX0xFTkdUSCArXHJcblx0S0VZX0xFTkdUSDtcclxuXHJcbmNvbnN0IGdldEV4cGVjdGVkRGF0YUxlbmd0aCA9IChkZXB0aDogbnVtYmVyKSA9PlxyXG5cdERFUFRIX0xFTkdUSCArIGRlcHRoICogS0VZX1BBVEhfTEVOR1RIICsgQ0hBSU5fQ09ERV9MRU5HVEggKyBLRVlfTEVOR1RIO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlY2lwaGVyWHBydihzbGlwMzI6IHN0cmluZywgcGFzc3dkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cdGNvbnN0IHsgcHJlZml4LCB3b3JkcyB9ID0gYmVjaDMyLmRlY29kZShzbGlwMzIsIEJFQ0gzMl9MSU1JVCk7XHJcblx0aWYgKHByZWZpeCAhPT0gXCJ4cHJ2XCIpIHtcclxuXHRcdHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlYgaGVhZGVyOiBcIiR7cHJlZml4fVwiICE9IFwieHBydlwiYCk7XHJcblx0fVxyXG5cdGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGJlY2gzMi5mcm9tV29yZHMod29yZHMpKS5idWZmZXI7XHJcblx0Y29uc3QgaXYgPSBidWZmZXIuc2xpY2UoMCwgMTYpO1xyXG5cdGNvbnN0IHNhbHQgPSBidWZmZXIuc2xpY2UoMTYsIDQ4KTtcclxuXHRjb25zdCBkYXRhID0gYnVmZmVyLnNsaWNlKDQ4KTtcclxuXHRjb25zdCBrZXkgPSBwYmtkZjJTeW5jKHBhc3N3ZCwgQnVmZmVyLmZyb20oc2FsdCksIDEwMDAwLCAzMiwgXCJzaGEyNTZcIik7XHJcblx0Y29uc3QgZGVjaXBoZXIgPSBjcmVhdGVEZWNpcGhlcml2KFwiYWVzLTI1Ni1jYmNcIiwga2V5LCBCdWZmZXIuZnJvbShpdikpO1xyXG5cdGxldCBkZWNyeXB0ZWQgPSBkZWNpcGhlci51cGRhdGUoQnVmZmVyLmZyb20oZGF0YSksIHVuZGVmaW5lZCwgXCJ1dGYtOFwiKTtcclxuXHRkZWNyeXB0ZWQgKz0gZGVjaXBoZXIuZmluYWwoXCJ1dGYtOFwiKTtcclxuXHRyZXR1cm4gZGVjcnlwdGVkO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZWNkc2FWZXJpZnkoXHJcblx0bXNnOiBCdWZmZXI8QXJyYXlCdWZmZXJMaWtlPixcclxuXHRwdWJLZXk6IEhleFN0cmluZyxcclxuXHRzaWduYXR1cmU6IEhleFN0cmluZyxcclxuKTogYm9vbGVhbiB7XHJcblx0cmV0dXJuIHNlY3AyNTZrMS5lY2RzYVZlcmlmeShcclxuXHRcdGZyb21IZXhTdHJpbmcoc2lnbmF0dXJlKSxcclxuXHRcdG1zZyxcclxuXHRcdGZyb21IZXhTdHJpbmcocHViS2V5KSxcclxuXHQpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcGFyc2VYcHJ2ID0gKFxyXG5cdHNsaXAzMjogc3RyaW5nLFxyXG4pOiB7XHJcblx0Y2hhaW5Db2RlOiBVaW50OEFycmF5O1xyXG5cdGtleVBhdGg6IEFycmF5PG51bWJlcj47XHJcblx0cHJpdmF0ZUtleTogVWludDhBcnJheTtcclxufSA9PiB7XHJcblx0Ly8gZGVjb2RlIHNsaXAzMiBzdHJpbmdcclxuXHRjb25zdCB7IHByZWZpeCwgd29yZHMgfSA9IGJlY2gzMi5kZWNvZGUoc2xpcDMyLCBCRUNIMzJfTElNSVQpO1xyXG5cdGNvbnN0IGJ5dGVzID0gYmVjaDMyLmZyb21Xb3Jkcyh3b3Jkcyk7XHJcblxyXG5cdC8vIGNoZWNrIHByZWZpeFxyXG5cdGlmIChwcmVmaXggIT09IFwieHBydlwiKSB7XHJcblx0XHR0aHJvdyBFcnJvcihgSW52YWxpZCBYUFJWOiBiYWQgaGVhZGVyOiBcIiR7cHJlZml4fVwiICE9IFwieHBydlwiYCk7XHJcblx0fVxyXG5cclxuXHQvLyBjaGVjayBleHBlY3RlZCBkYXRhIGxlbmd0aFxyXG5cdGNvbnN0IGRlcHRoID0gYnl0ZXNbMF07XHJcblx0aWYgKGRlcHRoICE9PSAwKSB7XHJcblx0XHR0aHJvdyBFcnJvcihgSW52YWxpZCBYUFJWOiBub3QgYSBtYXN0ZXIgcHJpdmF0ZSBrZXkgKGRlcHRoOiAke2RlcHRofSlgKTtcclxuXHR9XHJcblx0Y29uc3QgZXhwZWN0ZWRMZW5ndGggPSBnZXRFeHBlY3RlZERhdGFMZW5ndGgoZGVwdGgpO1xyXG5cdGlmIChieXRlcy5sZW5ndGggIT09IGV4cGVjdGVkTGVuZ3RoKSB7XHJcblx0XHR0aHJvdyBFcnJvcihcclxuXHRcdFx0XCJJbnZhbGlkIFhQUlY6IGJhZCBkYXRhIGxlbmd0aFwiICtcclxuXHRcdFx0XHRgKGV4cGVjdGVkOiAke2V4cGVjdGVkTGVuZ3RofSwgd2FzOiAke2J5dGVzLmxlbmd0aH1gLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Y29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpLmJ1ZmZlcjtcclxuXHJcblx0Ly8gZXh0cmFjdCBrZXkgcGF0aCAoMzItYml0IHVuc2lnbmVkIGludGVnZXJzLCBiaWcgZW5kaWFuKVxyXG5cdGNvbnN0IGtleVBhdGg6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuXHRjb25zdCBrZXlQYXRoVmlldyA9IG5ldyBEYXRhVmlldyhcclxuXHRcdGJ1ZmZlcixcclxuXHRcdERFUFRIX0xFTkdUSCxcclxuXHRcdGRlcHRoICogS0VZX1BBVEhfTEVOR1RILFxyXG5cdCk7XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBkZXB0aDsgaSsrKSB7XHJcblx0XHRrZXlQYXRoLnB1c2goa2V5UGF0aFZpZXcuZ2V0VWludDMyKGkgKiBLRVlfUEFUSF9MRU5HVEgsIGZhbHNlKSk7XHJcblx0fVxyXG5cclxuXHQvLyBleHRyYWN0IGNoYWluIGNvZGVcclxuXHRjb25zdCBjaGFpbkNvZGU6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShDSEFJTl9DT0RFX0xFTkdUSCk7XHJcblx0Y29uc3QgY2hhaW5Db2RlT2Zmc2V0ID0gREVQVEhfTEVOR1RIICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEg7XHJcblx0Y29uc3QgY2hhaW5Db2RlVmlldyA9IG5ldyBEYXRhVmlldyhcclxuXHRcdGJ1ZmZlcixcclxuXHRcdGNoYWluQ29kZU9mZnNldCxcclxuXHRcdENIQUlOX0NPREVfTEVOR1RILFxyXG5cdCk7XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFpbkNvZGUubGVuZ3RoOyBpKyspIHtcclxuXHRcdGNoYWluQ29kZVtpXSA9IGNoYWluQ29kZVZpZXcuZ2V0VWludDgoaSk7XHJcblx0fVxyXG5cclxuXHQvLyBleHRyYWN0IGtleSBieXRlc1xyXG5cdGNvbnN0IHByaXZhdGVLZXk6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShLRVlfTEVOR1RIKTtcclxuXHRjb25zdCBwcml2YXRlS2V5VmlldyA9IG5ldyBEYXRhVmlldyhcclxuXHRcdGJ1ZmZlcixcclxuXHRcdGNoYWluQ29kZU9mZnNldCArIENIQUlOX0NPREVfTEVOR1RILFxyXG5cdCk7XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBwcml2YXRlS2V5Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRwcml2YXRlS2V5W2ldID0gcHJpdmF0ZUtleVZpZXcuZ2V0VWludDgoaSk7XHJcblx0fVxyXG5cclxuXHQvLyBjaGVjayBpZiBwcml2YXRlIG9yIHB1YmxpYyBrZXkgYXJlIHZhbGlkXHJcblx0aWYgKHByaXZhdGVLZXlbMF0gIT09IDAgfHwgIXNlY3AyNTZrMS5wcml2YXRlS2V5VmVyaWZ5KHByaXZhdGVLZXkuc2xpY2UoMSkpKSB7XHJcblx0XHR0aHJvdyBFcnJvcihgTWFsZm9ybWVkIHNsaXAzMjogbm90IGEgcHJpdmF0ZSBrZXlgKTtcclxuXHR9XHJcblxyXG5cdHJldHVybiB7XHJcblx0XHRjaGFpbkNvZGUsXHJcblx0XHRrZXlQYXRoLFxyXG5cdFx0cHJpdmF0ZUtleTogcHJpdmF0ZUtleS5zbGljZSgxKSxcclxuXHR9O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdFV0eG9zKHNwZWNzOiB7XHJcblx0dXR4b3M6IEFycmF5PFV0eG8+O1xyXG5cdHZhbHVlPzogQ29pbnM7XHJcblx0c3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3k7XHJcbn0pOiBBcnJheTxVdHhvPiB7XHJcblx0Y29uc3Qgc3RyYXRlZ3kgPSBzcGVjcy5zdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDtcclxuXHRzd2l0Y2ggKHN0cmF0ZWd5KSB7XHJcblx0XHRjYXNlIFV0eG9TZWxlY3Rpb25TdHJhdGVneS5CaWdGaXJzdDpcclxuXHRcdGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNsaW1GaXQ6XHJcblx0XHRcdHNwZWNzLnV0eG9zID0gc3BlY3MudXR4b3Muc29ydCgoYSwgYikgPT5cclxuXHRcdFx0XHRhLnZhbHVlID4gYi52YWx1ZSA/IC0xIDogYS52YWx1ZSA8IGIudmFsdWUgPyAxIDogMCxcclxuXHRcdFx0KTtcclxuXHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0Y2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuUmFuZG9tOiB7XHJcblx0XHRcdGNvbnN0IGxlbiA9IHNwZWNzLnV0eG9zLmxlbmd0aDtcclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGxlbiAtIGkpKTtcclxuXHRcdFx0XHRjb25zdCB0bXAgPSBzcGVjcy51dHhvc1tpbmRleF07XHJcblx0XHRcdFx0c3BlY3MudXR4b3NbaW5kZXhdID0gc3BlY3MudXR4b3NbbGVuIC0gaSAtIDFdO1xyXG5cdFx0XHRcdHNwZWNzLnV0eG9zW2xlbiAtIGkgLSAxXSA9IHRtcDtcclxuXHRcdFx0fVxyXG5cdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHJcblx0XHRjYXNlIFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0OlxyXG5cdFx0XHRzcGVjcy51dHhvcyA9IHNwZWNzLnV0eG9zLnNvcnQoKGEsIGIpID0+XHJcblx0XHRcdFx0YS52YWx1ZSA8IGIudmFsdWUgPyAtMSA6IGEudmFsdWUgPiBiLnZhbHVlID8gMSA6IDAsXHJcblx0XHRcdCk7XHJcblx0XHRcdGJyZWFrO1xyXG5cdH1cclxuXHJcblx0Ly8gZmlsdGVyIGxvY2tlZCBVVFhPczpcclxuXHRjb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuXHRzcGVjcy51dHhvcyA9IHNwZWNzLnV0eG9zLmZpbHRlcigodXR4bykgPT4gdXR4by50aW1lbG9jayA8PSBub3cpO1xyXG5cclxuXHQvLyBpZiB0YXJnZXQgdmFsdWUgaXMgc3BlY2lmaWVkLCBmaWx0ZXIgc3BhcmUgVVRYT3NcclxuXHRjb25zdCBwZWRyb3MgPSBzcGVjcz8udmFsdWU/LnBlZHJvcztcclxuXHRpZiAocGVkcm9zKSB7XHJcblx0XHRpZiAoc3RyYXRlZ3kgPT09IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbGltRml0KSB7XHJcblx0XHRcdGNvbnN0IHNsaW1GaXRJbmRleCA9IHNwZWNzLnV0eG9zLmZpbmRJbmRleChcclxuXHRcdFx0XHQodXR4bykgPT4gdXR4by52YWx1ZSA8PSBwZWRyb3MsXHJcblx0XHRcdCk7XHJcblx0XHRcdGlmIChzbGltRml0SW5kZXggPj0gMSkge1xyXG5cdFx0XHRcdHJldHVybiBzcGVjcy51dHhvcy5zbGljZShzbGltRml0SW5kZXggLSAxLCBzbGltRml0SW5kZXgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRsZXQgY292ZXJlZDogYmlnaW50ID0gMG47XHJcblx0XHRyZXR1cm4gc3BlY3MudXR4b3MuZmlsdGVyKCh1dHhvKSA9PiB7XHJcblx0XHRcdGNvbnN0IGZpbHRlciA9IGNvdmVyZWQgPD0gcGVkcm9zO1xyXG5cdFx0XHRjb3ZlcmVkICs9IEJpZ0ludCh1dHhvLnZhbHVlKTtcclxuXHRcdFx0cmV0dXJuIGZpbHRlcjtcclxuXHRcdH0pO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRyZXR1cm4gc3BlY3MudXR4b3M7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2hhMjU2KGJ1ZmZlcjogYW55KSB7XHJcblx0Y29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIik7XHJcblx0aGFzaC51cGRhdGUoYnVmZmVyKTtcclxuXHRyZXR1cm4gaGFzaC5kaWdlc3QoKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRvdGFsQ29pbnMoYmFsYW5jZTogQmFsYW5jZSk6IENvaW5zIHtcclxuXHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyhcclxuXHRcdEJpZ0ludChiYWxhbmNlLmxvY2tlZCkgKyBCaWdJbnQoYmFsYW5jZS5zdGFrZWQpICsgQmlnSW50KGJhbGFuY2UudW5sb2NrZWQpLFxyXG5cdCk7XHJcbn1cclxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Balance, HexString, Network, QueryStakesOrder, StakeEntry } from "../types";
|
|
2
|
-
import { IAccount, IBIP32, ICoinbase, IJsonRpcProvider, ISigner, IWallet } from "./interfaces";
|
|
3
|
-
import { Coins, PublicKey, PublicKeyHashString, Utxo, UtxoCacheInfo, UtxoSelectionStrategy } from "./types";
|
|
1
|
+
import { type Balance, type HexString, type Network, type QueryStakesOrder, type StakeEntry } from "../types.js";
|
|
2
|
+
import type { IAccount, IBIP32, ICoinbase, IJsonRpcProvider, ISigner, IWallet } from "./interfaces.js";
|
|
3
|
+
import { type Coins, type PublicKey, type PublicKeyHashString, type Utxo, type UtxoCacheInfo, UtxoSelectionStrategy } from "./types.js";
|
|
4
4
|
export declare class Wallet implements IWallet {
|
|
5
5
|
protected root: IBIP32;
|
|
6
6
|
protected _accounts: Array<IAccount>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/wallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/wallet.ts"],"names":[],"mappings":"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"}
|