@witnet/sdk 1.1.5 → 1.2.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.
Files changed (192) hide show
  1. package/.env_witnet +13 -1
  2. package/dist/package.json +31 -24
  3. package/dist/src/bin/helpers.d.ts +59 -49
  4. package/dist/src/bin/helpers.d.ts.map +1 -1
  5. package/dist/src/bin/helpers.js +228 -229
  6. package/dist/src/index.d.ts +3 -4
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +4 -47
  9. package/dist/src/lib/crypto/account.d.ts +3 -3
  10. package/dist/src/lib/crypto/account.d.ts.map +1 -1
  11. package/dist/src/lib/crypto/account.js +31 -25
  12. package/dist/src/lib/crypto/coinbase.d.ts +4 -4
  13. package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
  14. package/dist/src/lib/crypto/coinbase.js +8 -13
  15. package/dist/src/lib/crypto/index.d.ts +7 -7
  16. package/dist/src/lib/crypto/index.d.ts.map +1 -1
  17. package/dist/src/lib/crypto/index.js +7 -30
  18. package/dist/src/lib/crypto/interfaces.d.ts +5 -5
  19. package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
  20. package/dist/src/lib/crypto/interfaces.js +2 -3
  21. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +5 -5
  22. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
  23. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +98 -85
  24. package/dist/src/lib/crypto/payloads/StakePayload.d.ts +3 -4
  25. package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
  26. package/dist/src/lib/crypto/payloads/StakePayload.js +81 -71
  27. package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts +4 -5
  28. package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
  29. package/dist/src/lib/crypto/payloads/UnstakePayload.js +36 -43
  30. package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts +3 -4
  31. package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
  32. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +46 -48
  33. package/dist/src/lib/crypto/payloads.d.ts +5 -5
  34. package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
  35. package/dist/src/lib/crypto/payloads.js +44 -45
  36. package/dist/src/lib/crypto/signer.d.ts +3 -3
  37. package/dist/src/lib/crypto/signer.d.ts.map +1 -1
  38. package/dist/src/lib/crypto/signer.js +45 -88
  39. package/dist/src/lib/crypto/transmitters/DataRequests.d.ts +6 -6
  40. package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
  41. package/dist/src/lib/crypto/transmitters/DataRequests.js +6 -10
  42. package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts +5 -5
  43. package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
  44. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +7 -11
  45. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts +6 -7
  46. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
  47. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +9 -13
  48. package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts +5 -5
  49. package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
  50. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +6 -10
  51. package/dist/src/lib/crypto/transmitters.d.ts +6 -6
  52. package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
  53. package/dist/src/lib/crypto/transmitters.js +89 -76
  54. package/dist/src/lib/crypto/types.d.ts +1 -2
  55. package/dist/src/lib/crypto/types.d.ts.map +1 -1
  56. package/dist/src/lib/crypto/types.js +71 -67
  57. package/dist/src/lib/crypto/utils.d.ts +5 -5
  58. package/dist/src/lib/crypto/utils.d.ts.map +1 -1
  59. package/dist/src/lib/crypto/utils.js +48 -66
  60. package/dist/src/lib/crypto/wallet.d.ts +3 -3
  61. package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
  62. package/dist/src/lib/crypto/wallet.js +72 -89
  63. package/dist/src/lib/index.d.ts +5 -4
  64. package/dist/src/lib/index.d.ts.map +1 -1
  65. package/dist/src/lib/index.js +6 -44
  66. package/dist/src/lib/radon/ccdr/eth.d.ts +1 -1
  67. package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
  68. package/dist/src/lib/radon/ccdr/eth.js +95 -83
  69. package/dist/src/lib/radon/ccdr/index.d.ts +2 -2
  70. package/dist/src/lib/radon/ccdr/index.d.ts.map +1 -1
  71. package/dist/src/lib/radon/ccdr/index.js +3 -39
  72. package/dist/src/lib/radon/ccdr/wit.d.ts +2 -2
  73. package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
  74. package/dist/src/lib/radon/ccdr/wit.js +17 -19
  75. package/dist/src/lib/radon/filters.d.ts.map +1 -1
  76. package/dist/src/lib/radon/filters.js +23 -19
  77. package/dist/src/lib/radon/index.d.ts +10 -11
  78. package/dist/src/lib/radon/index.d.ts.map +1 -1
  79. package/dist/src/lib/radon/index.js +205 -187
  80. package/dist/src/lib/radon/reducers.d.ts +2 -2
  81. package/dist/src/lib/radon/reducers.d.ts.map +1 -1
  82. package/dist/src/lib/radon/reducers.js +48 -34
  83. package/dist/src/lib/radon/types.d.ts +2 -2
  84. package/dist/src/lib/radon/types.d.ts.map +1 -1
  85. package/dist/src/lib/radon/types.js +80 -110
  86. package/dist/src/lib/radon/utils.d.ts +3 -3
  87. package/dist/src/lib/radon/utils.d.ts.map +1 -1
  88. package/dist/src/lib/radon/utils.js +49 -52
  89. package/dist/src/lib/rest/kermit.d.ts +20 -0
  90. package/dist/src/lib/rest/kermit.d.ts.map +1 -0
  91. package/dist/src/lib/rest/kermit.js +68 -0
  92. package/dist/src/lib/rest/types.d.ts +5 -0
  93. package/dist/src/lib/rest/types.d.ts.map +1 -0
  94. package/dist/src/lib/rest/types.js +2 -0
  95. package/dist/src/lib/rpc/index.d.ts +2 -2
  96. package/dist/src/lib/rpc/index.d.ts.map +1 -1
  97. package/dist/src/lib/rpc/index.js +3 -19
  98. package/dist/src/lib/rpc/nodes.d.ts +13 -13
  99. package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
  100. package/dist/src/lib/rpc/nodes.js +69 -98
  101. package/dist/src/lib/rpc/provider.d.ts +4 -4
  102. package/dist/src/lib/rpc/provider.d.ts.map +1 -1
  103. package/dist/src/lib/rpc/provider.js +106 -122
  104. package/dist/src/lib/rpc/types.d.ts +2 -2
  105. package/dist/src/lib/rpc/types.d.ts.map +1 -1
  106. package/dist/src/lib/rpc/types.js +13 -16
  107. package/dist/src/lib/types.d.ts +5 -4
  108. package/dist/src/lib/types.d.ts.map +1 -1
  109. package/dist/src/lib/types.js +3 -9
  110. package/dist/src/lib/utils.d.ts +5 -5
  111. package/dist/src/lib/utils.d.ts.map +1 -1
  112. package/dist/src/lib/utils.js +40 -99
  113. package/dist/witnet/assets/index.cjs +6 -0
  114. package/dist/witnet/assets/index.d.cts +29 -0
  115. package/dist/witnet/assets/index.d.cts.map +1 -0
  116. package/dist/witnet/assets/modals/index.cjs +9 -0
  117. package/dist/witnet/assets/modals/index.d.cts +16 -0
  118. package/dist/witnet/assets/modals/index.d.cts.map +1 -0
  119. package/dist/witnet/assets/modals/web3/eth.cjs +23 -0
  120. package/dist/witnet/assets/modals/web3/eth.d.cts +4 -0
  121. package/dist/witnet/assets/modals/web3/eth.d.cts.map +1 -0
  122. package/dist/witnet/assets/modals/web3/ipfs.cjs +18 -0
  123. package/dist/witnet/assets/modals/web3/ipfs.d.cts +3 -0
  124. package/dist/witnet/assets/modals/web3/ipfs.d.cts.map +1 -0
  125. package/dist/witnet/assets/modals/web3/wit.cjs +24 -0
  126. package/dist/witnet/assets/modals/web3/wit.d.cts +3 -0
  127. package/dist/witnet/assets/modals/web3/wit.d.cts.map +1 -0
  128. package/dist/witnet/assets/requests.cjs +43 -0
  129. package/dist/witnet/assets/requests.d.cts +10 -0
  130. package/dist/witnet/assets/requests.d.cts.map +1 -0
  131. package/package.json +31 -24
  132. package/src/bin/bots/watcher.cjs +354 -0
  133. package/src/bin/cli/history.cjs +31 -0
  134. package/src/bin/cli/inspect.js +545 -471
  135. package/src/bin/cli/network.js +658 -557
  136. package/src/bin/cli/nodes.js +392 -332
  137. package/src/bin/cli/radon.js +1071 -844
  138. package/src/bin/cli/wallet.js +1317 -1074
  139. package/src/bin/helpers.js +969 -868
  140. package/src/bin/index.js +329 -0
  141. package/witnet/assets/_index.cjs +5 -0
  142. package/witnet/assets/_requests.cjs +25 -0
  143. package/witnet/assets/_sources.cjs +36 -0
  144. package/witnet/assets/_templates.cjs +36 -0
  145. package/witnet/assets/index.cjs +4 -0
  146. package/witnet/assets/modals/index.cjs +7 -0
  147. package/witnet/assets/modals/web3/eth.cjs +27 -0
  148. package/witnet/assets/modals/web3/ipfs.cjs +22 -0
  149. package/witnet/assets/modals/web3/wit.cjs +28 -0
  150. package/witnet/assets/requests.cjs +49 -0
  151. package/witnet/witnet copy.proto +457 -0
  152. package/witnet/witnet.proto +456 -0
  153. package/witnet/witnet_toolkit-1.6.7-x86_64-pc-windows-msvc.exe +0 -0
  154. package/witnet/witnet_toolkit-1.7.1-x86_64-pc-windows-msvc.exe +0 -0
  155. package/witnet/witnet_toolkit-2.0.0-rc.7-x86_64-pc-windows-msvc.exe +0 -0
  156. package/witnet/witnet_toolkit-2.0.2-x86_64-pc-windows-msvc.exe +0 -0
  157. package/witnet/witnet_toolkit-2.0.21-x86_64-pc-windows-msvc.exe +0 -0
  158. package/witnet/witnet_toolkit-2.0.7-x86_64-pc-windows-msvc.exe +0 -0
  159. package/witnet/witnet_toolkit-2.0.8-x86_64-pc-windows-msvc.exe +0 -0
  160. package/dist/witnet/assets/index.d.ts +0 -29
  161. package/dist/witnet/assets/index.d.ts.map +0 -1
  162. package/dist/witnet/assets/index.js +0 -6
  163. package/dist/witnet/assets/modals/index.d.ts +0 -16
  164. package/dist/witnet/assets/modals/index.d.ts.map +0 -1
  165. package/dist/witnet/assets/modals/index.js +0 -11
  166. package/dist/witnet/assets/modals/web3/eth.d.ts +0 -5
  167. package/dist/witnet/assets/modals/web3/eth.d.ts.map +0 -1
  168. package/dist/witnet/assets/modals/web3/eth.js +0 -26
  169. package/dist/witnet/assets/modals/web3/ipfs.d.ts +0 -4
  170. package/dist/witnet/assets/modals/web3/ipfs.d.ts.map +0 -1
  171. package/dist/witnet/assets/modals/web3/ipfs.js +0 -18
  172. package/dist/witnet/assets/modals/web3/wit.d.ts +0 -4
  173. package/dist/witnet/assets/modals/web3/wit.d.ts.map +0 -1
  174. package/dist/witnet/assets/modals/web3/wit.js +0 -17
  175. package/dist/witnet/assets/requests.d.ts +0 -11
  176. package/dist/witnet/assets/requests.d.ts.map +0 -1
  177. package/dist/witnet/assets/requests.js +0 -43
  178. package/src/bin/cli/history.js +0 -31
  179. package/src/bin/postinstall.js +0 -9
  180. package/src/bin/toolkit.js +0 -290
  181. package/witnet/assets/_index.js +0 -8
  182. package/witnet/assets/_requests.js +0 -25
  183. package/witnet/assets/_sources.js +0 -36
  184. package/witnet/assets/_templates.js +0 -36
  185. package/witnet/assets/index.js +0 -4
  186. package/witnet/assets/modals/index.js +0 -9
  187. package/witnet/assets/modals/web3/eth.js +0 -29
  188. package/witnet/assets/modals/web3/ipfs.js +0 -22
  189. package/witnet/assets/modals/web3/wit.js +0 -21
  190. package/witnet/assets/requests.js +0 -49
  191. /package/witnet/assets/modals/web3/{btc.js → btc.cjs} +0 -0
  192. /package/witnet/assets/modals/web3/{sol.js → sol.cjs} +0 -0
@@ -1,24 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseXprv = exports.BigMath = exports.Signature = exports.RecoverableSignature = exports.PublicKeyHash = exports.PublicKey = exports.bech32 = void 0;
4
- exports.decipherXprv = decipherXprv;
5
- exports.ecdsaVerify = ecdsaVerify;
6
- exports.selectUtxos = selectUtxos;
7
- exports.sha256 = sha256;
8
- exports.totalCoins = totalCoins;
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 = (DEPTH_LENGTH
34
- + ((Math.pow(256, DEPTH_LENGTH) - 1) * KEY_PATH_LENGTH)
35
- + CHAIN_CODE_LENGTH
36
- + KEY_LENGTH);
37
- const getExpectedDataLength = (depth) => (DEPTH_LENGTH
38
- + depth * KEY_PATH_LENGTH
39
- + CHAIN_CODE_LENGTH
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(bech32_1.bech32.fromWords(words)).buffer;
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 = (0, crypto_1.pbkdf2Sync)(passwd, Buffer.from(salt), 10000, 32, 'sha256');
51
- const decipher = (0, crypto_1.createDecipheriv)("aes-256-cbc", key, Buffer.from(iv));
52
- let decrypted = decipher.update(Buffer.from(data), undefined, 'utf-8');
53
- decrypted += decipher.final('utf-8');
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((0, utils_1.fromHexString)(signature), msg, (0, utils_1.fromHexString)(pubKey));
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 } = bech32_1.bech32.decode(slip32, BECH32_LIMIT);
62
- const bytes = bech32_1.bech32.fromWords(words);
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
- + `(expected: ${expectedLength}, was: ${bytes.length}`);
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((keyPathView.getUint32(i * KEY_PATH_LENGTH, false)));
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] = (chainCodeView.getUint8(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] = (privateKeyView.getUint8(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
- exports.parseXprv = parseXprv;
108
- function selectUtxos(specs) {
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 types_1.UtxoSelectionStrategy.BigFirst:
112
- case types_1.UtxoSelectionStrategy.SlimFit:
113
- specs.utxos = specs.utxos.sort((a, b) => (a.value > b.value) ? -1 : ((a.value < b.value) ? 1 : 0));
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 types_1.UtxoSelectionStrategy.Random:
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
- case types_1.UtxoSelectionStrategy.SmallFirst:
125
- specs.utxos = specs.utxos.sort((a, b) => (a.value < b.value) ? -1 : ((a.value > b.value) ? 1 : 0));
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 === types_1.UtxoSelectionStrategy.SlimFit) {
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 = (0, crypto_1.createHash)('sha256');
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 types_1.Coins.fromPedros(BigInt(balance.locked)
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":"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"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/wallet.ts"],"names":[],"mappings":"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"}