@bitgo-beta/statics 15.1.1-beta.77 → 15.1.1-beta.770
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/.mocharc.js +1 -1
- package/CHANGELOG.md +2650 -0
- package/dist/src/account.d.ts +353 -21
- package/dist/src/account.d.ts.map +1 -1
- package/dist/src/account.js +585 -76
- package/dist/src/ada.d.ts.map +1 -1
- package/dist/src/ada.js +7 -3
- package/dist/src/avaxp.d.ts.map +1 -1
- package/dist/src/avaxp.js +6 -3
- package/dist/src/base.d.ts +1250 -38
- package/dist/src/base.d.ts.map +1 -1
- package/dist/src/base.js +1294 -49
- package/dist/src/coinFeatures.d.ts +78 -0
- package/dist/src/coinFeatures.d.ts.map +1 -0
- package/dist/src/coinFeatures.js +445 -0
- package/dist/src/coins/avaxTokens.d.ts +2 -0
- package/dist/src/coins/avaxTokens.d.ts.map +1 -0
- package/dist/src/coins/avaxTokens.js +93 -0
- package/dist/src/coins/bscTokens.d.ts +2 -0
- package/dist/src/coins/bscTokens.d.ts.map +1 -0
- package/dist/src/coins/bscTokens.js +136 -0
- package/dist/src/coins/erc20Coins.d.ts +2 -0
- package/dist/src/coins/erc20Coins.d.ts.map +1 -0
- package/dist/src/coins/erc20Coins.js +1347 -0
- package/dist/src/coins/ofcCoins.d.ts +2 -0
- package/dist/src/coins/ofcCoins.d.ts.map +1 -0
- package/dist/src/coins/ofcCoins.js +258 -0
- package/dist/src/coins/ofcErc20Coins.d.ts +3 -0
- package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
- package/dist/src/coins/ofcErc20Coins.js +1275 -0
- package/dist/src/coins/polygonTokens.d.ts +2 -0
- package/dist/src/coins/polygonTokens.d.ts.map +1 -0
- package/dist/src/coins/polygonTokens.js +135 -0
- package/dist/src/coins/sip10Tokens.d.ts +2 -0
- package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
- package/dist/src/coins/sip10Tokens.js +13 -0
- package/dist/src/coins/solTokens.d.ts +2 -0
- package/dist/src/coins/solTokens.d.ts.map +1 -0
- package/dist/src/coins/solTokens.js +328 -0
- package/dist/src/coins.d.ts +0 -1
- package/dist/src/coins.d.ts.map +1 -1
- package/dist/src/coins.js +348 -1505
- package/dist/src/constants.d.ts +1 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +3 -2
- package/dist/src/gatekeep.d.ts +2 -0
- package/dist/src/gatekeep.d.ts.map +1 -0
- package/dist/src/gatekeep.js +1794 -0
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +16 -3
- package/dist/src/lightning.d.ts +43 -0
- package/dist/src/lightning.d.ts.map +1 -0
- package/dist/src/lightning.js +60 -0
- package/dist/src/map.d.ts +2 -0
- package/dist/src/map.d.ts.map +1 -1
- package/dist/src/map.js +46 -3
- package/dist/src/networks.d.ts +498 -1
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +665 -44
- package/dist/src/ofc.d.ts +279 -0
- package/dist/src/ofc.d.ts.map +1 -1
- package/dist/src/ofc.js +583 -14
- package/dist/src/tokenConfig.d.ts +78 -13
- package/dist/src/tokenConfig.d.ts.map +1 -1
- package/dist/src/tokenConfig.js +155 -7
- package/dist/src/utxo.d.ts +3 -1
- package/dist/src/utxo.d.ts.map +1 -1
- package/dist/src/utxo.js +77 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -10,32 +10,53 @@ export interface BaseNetworkConfig extends BaseTokenConfig {
|
|
|
10
10
|
export interface BaseContractAddressConfig extends BaseNetworkConfig {
|
|
11
11
|
tokenContractAddress: string;
|
|
12
12
|
}
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export
|
|
13
|
+
export type AvaxcTokenConfig = BaseContractAddressConfig;
|
|
14
|
+
export type CeloTokenConfig = BaseContractAddressConfig;
|
|
15
|
+
export type EthLikeTokenConfig = BaseContractAddressConfig;
|
|
16
|
+
export type EosTokenConfig = BaseContractAddressConfig & {
|
|
17
|
+
contractName: string;
|
|
18
|
+
contractAddress: string;
|
|
19
|
+
};
|
|
20
|
+
export type Erc20TokenConfig = BaseContractAddressConfig;
|
|
21
|
+
export type TrxTokenConfig = BaseContractAddressConfig;
|
|
22
|
+
export type StellarTokenConfig = BaseNetworkConfig;
|
|
23
|
+
export type SolTokenConfig = BaseNetworkConfig & {
|
|
21
24
|
tokenAddress: string;
|
|
25
|
+
contractAddress: string;
|
|
22
26
|
};
|
|
23
|
-
export
|
|
27
|
+
export type AdaTokenConfig = BaseNetworkConfig & {
|
|
24
28
|
policyId: string;
|
|
25
29
|
assetName: string;
|
|
26
30
|
};
|
|
27
|
-
export
|
|
31
|
+
export type AlgoTokenConfig = BaseNetworkConfig & {
|
|
28
32
|
alias?: string;
|
|
29
33
|
};
|
|
30
|
-
export
|
|
34
|
+
export type OfcTokenConfig = BaseTokenConfig & {
|
|
31
35
|
backingCoin: string;
|
|
32
36
|
isFiat: boolean;
|
|
33
37
|
};
|
|
34
|
-
export
|
|
35
|
-
|
|
38
|
+
export type HbarTokenConfig = BaseNetworkConfig & {
|
|
39
|
+
nodeAccountId: string;
|
|
40
|
+
tokenId: string;
|
|
41
|
+
contractAddress: string;
|
|
42
|
+
};
|
|
43
|
+
export type XrpTokenConfig = BaseNetworkConfig & {
|
|
36
44
|
issuerAddress: string;
|
|
37
45
|
currencyCode: string;
|
|
38
46
|
domain?: string;
|
|
47
|
+
contractAddress: string;
|
|
48
|
+
};
|
|
49
|
+
export type SuiTokenConfig = BaseNetworkConfig & {
|
|
50
|
+
packageId: string;
|
|
51
|
+
module: string;
|
|
52
|
+
symbol: string;
|
|
53
|
+
contractAddress: string;
|
|
54
|
+
};
|
|
55
|
+
export type AptTokenConfig = BaseNetworkConfig & {
|
|
56
|
+
assetId: string;
|
|
57
|
+
};
|
|
58
|
+
export type Sip10TokenConfig = BaseNetworkConfig & {
|
|
59
|
+
assetId: string;
|
|
39
60
|
};
|
|
40
61
|
export interface Tokens {
|
|
41
62
|
bitcoin: {
|
|
@@ -66,6 +87,12 @@ export interface Tokens {
|
|
|
66
87
|
bsc: {
|
|
67
88
|
tokens: EthLikeTokenConfig[];
|
|
68
89
|
};
|
|
90
|
+
arbeth: {
|
|
91
|
+
tokens: EthLikeTokenConfig[];
|
|
92
|
+
};
|
|
93
|
+
opeth: {
|
|
94
|
+
tokens: EthLikeTokenConfig[];
|
|
95
|
+
};
|
|
69
96
|
sol: {
|
|
70
97
|
tokens: SolTokenConfig[];
|
|
71
98
|
};
|
|
@@ -81,6 +108,21 @@ export interface Tokens {
|
|
|
81
108
|
xrp: {
|
|
82
109
|
tokens: XrpTokenConfig[];
|
|
83
110
|
};
|
|
111
|
+
zketh: {
|
|
112
|
+
tokens: EthLikeTokenConfig[];
|
|
113
|
+
};
|
|
114
|
+
sui: {
|
|
115
|
+
tokens: SuiTokenConfig[];
|
|
116
|
+
};
|
|
117
|
+
bera: {
|
|
118
|
+
tokens: EthLikeTokenConfig[];
|
|
119
|
+
};
|
|
120
|
+
apt: {
|
|
121
|
+
tokens: AptTokenConfig[];
|
|
122
|
+
};
|
|
123
|
+
stx: {
|
|
124
|
+
tokens: Sip10TokenConfig[];
|
|
125
|
+
};
|
|
84
126
|
};
|
|
85
127
|
testnet: {
|
|
86
128
|
eth: {
|
|
@@ -110,6 +152,12 @@ export interface Tokens {
|
|
|
110
152
|
polygon: {
|
|
111
153
|
tokens: EthLikeTokenConfig[];
|
|
112
154
|
};
|
|
155
|
+
arbeth: {
|
|
156
|
+
tokens: EthLikeTokenConfig[];
|
|
157
|
+
};
|
|
158
|
+
opeth: {
|
|
159
|
+
tokens: EthLikeTokenConfig[];
|
|
160
|
+
};
|
|
113
161
|
sol: {
|
|
114
162
|
tokens: SolTokenConfig[];
|
|
115
163
|
};
|
|
@@ -125,6 +173,21 @@ export interface Tokens {
|
|
|
125
173
|
xrp: {
|
|
126
174
|
tokens: XrpTokenConfig[];
|
|
127
175
|
};
|
|
176
|
+
zketh: {
|
|
177
|
+
tokens: EthLikeTokenConfig[];
|
|
178
|
+
};
|
|
179
|
+
sui: {
|
|
180
|
+
tokens: SuiTokenConfig[];
|
|
181
|
+
};
|
|
182
|
+
bera: {
|
|
183
|
+
tokens: EthLikeTokenConfig[];
|
|
184
|
+
};
|
|
185
|
+
apt: {
|
|
186
|
+
tokens: AptTokenConfig[];
|
|
187
|
+
};
|
|
188
|
+
stx: {
|
|
189
|
+
tokens: Sip10TokenConfig[];
|
|
190
|
+
};
|
|
128
191
|
};
|
|
129
192
|
}
|
|
130
193
|
export declare const ethGasConfigs: {
|
|
@@ -135,6 +198,8 @@ export declare const ethGasConfigs: {
|
|
|
135
198
|
defaultGasLimitTokenSend: number;
|
|
136
199
|
minimumGasLimit: number;
|
|
137
200
|
maximumGasLimit: number;
|
|
201
|
+
newEthLikeCoinsMinGasLimit: number;
|
|
202
|
+
opethGasL1Fees: number;
|
|
138
203
|
};
|
|
139
204
|
export declare const formattedAlgoTokens: AlgoTokenConfig[];
|
|
140
205
|
export declare const tokens: Tokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenConfig.d.ts","sourceRoot":"","sources":["../../src/tokenConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenConfig.d.ts","sourceRoot":"","sources":["../../src/tokenConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/src/tokenConfig.js
CHANGED
|
@@ -20,6 +20,9 @@ const formattedErc20Tokens = coins_1.coins.reduce((acc, coin) => {
|
|
|
20
20
|
case networks_1.Networks.test.goerli:
|
|
21
21
|
baseCoin = 'gteth';
|
|
22
22
|
break;
|
|
23
|
+
case networks_1.Networks.test.holesky:
|
|
24
|
+
baseCoin = 'hteth';
|
|
25
|
+
break;
|
|
23
26
|
default:
|
|
24
27
|
throw new Error(`Erc20 token ${coin.name} has an unsupported network`);
|
|
25
28
|
}
|
|
@@ -35,13 +38,15 @@ const formattedErc20Tokens = coins_1.coins.reduce((acc, coin) => {
|
|
|
35
38
|
return acc;
|
|
36
39
|
}, []);
|
|
37
40
|
exports.ethGasConfigs = {
|
|
38
|
-
minimumGasPrice: 1000000000,
|
|
39
|
-
defaultGasPrice: 20000000000,
|
|
40
|
-
maximumGasPrice: 2500000000000,
|
|
41
|
-
defaultGasLimit: 500000,
|
|
42
|
-
defaultGasLimitTokenSend: 1000000,
|
|
43
|
-
minimumGasLimit: 30000,
|
|
41
|
+
minimumGasPrice: 1000000000, // minimum gas price a user can provide (1 Gwei)
|
|
42
|
+
defaultGasPrice: 20000000000, // default gas price if estimation fails (20 Gwei)
|
|
43
|
+
maximumGasPrice: 2500000000000, // minimum gas price a user can provide (2500 Gwei)
|
|
44
|
+
defaultGasLimit: 500000, // Default gas limit we set for contract send
|
|
45
|
+
defaultGasLimitTokenSend: 1000000, // Default gas limit we set for token send
|
|
46
|
+
minimumGasLimit: 30000, // minimum gas limit a user can set for a send
|
|
44
47
|
maximumGasLimit: 20000000, // Customers cannot set gas limits beyond this amount
|
|
48
|
+
newEthLikeCoinsMinGasLimit: 400000, // minimum gas limit a user can set for a send for eth like coins like arbitrum, optimism, etc
|
|
49
|
+
opethGasL1Fees: 1000000000000000, // Buffer for opeth L1 gas fees
|
|
45
50
|
};
|
|
46
51
|
// Get the list of Stellar tokens from statics and format it properly
|
|
47
52
|
const formattedStellarTokens = coins_1.coins.reduce((acc, coin) => {
|
|
@@ -105,6 +110,8 @@ const formattedEosTokens = coins_1.coins.reduce((acc, coin) => {
|
|
|
105
110
|
name: coin.fullName,
|
|
106
111
|
tokenContractAddress: coin.contractName.toString().toLowerCase(),
|
|
107
112
|
decimalPlaces: coin.decimalPlaces,
|
|
113
|
+
contractName: coin.contractName,
|
|
114
|
+
contractAddress: coin.contractAddress,
|
|
108
115
|
});
|
|
109
116
|
}
|
|
110
117
|
return acc;
|
|
@@ -136,6 +143,58 @@ const formattedPolygonTokens = coins_1.coins.reduce((acc, coin) => {
|
|
|
136
143
|
}
|
|
137
144
|
return acc;
|
|
138
145
|
}, []);
|
|
146
|
+
const formattedArbethTokens = coins_1.coins.reduce((acc, coin) => {
|
|
147
|
+
if (coin instanceof account_1.ArbethERC20Token) {
|
|
148
|
+
acc.push({
|
|
149
|
+
type: coin.name,
|
|
150
|
+
coin: coin.network.type === networks_1.NetworkType.MAINNET ? 'arbeth' : 'tarbeth',
|
|
151
|
+
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
152
|
+
name: coin.fullName,
|
|
153
|
+
tokenContractAddress: coin.contractAddress.toString().toLowerCase(),
|
|
154
|
+
decimalPlaces: coin.decimalPlaces,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return acc;
|
|
158
|
+
}, []);
|
|
159
|
+
const formattedOpethTokens = coins_1.coins.reduce((acc, coin) => {
|
|
160
|
+
if (coin instanceof account_1.OpethERC20Token) {
|
|
161
|
+
acc.push({
|
|
162
|
+
type: coin.name,
|
|
163
|
+
coin: coin.network.type === networks_1.NetworkType.MAINNET ? 'opeth' : 'topeth',
|
|
164
|
+
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
165
|
+
name: coin.fullName,
|
|
166
|
+
tokenContractAddress: coin.contractAddress.toString().toLowerCase(),
|
|
167
|
+
decimalPlaces: coin.decimalPlaces,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return acc;
|
|
171
|
+
}, []);
|
|
172
|
+
const formattedZkethTokens = coins_1.coins.reduce((acc, coin) => {
|
|
173
|
+
if (coin instanceof account_1.ZkethERC20Token) {
|
|
174
|
+
acc.push({
|
|
175
|
+
type: coin.name,
|
|
176
|
+
coin: coin.network.type === networks_1.NetworkType.MAINNET ? 'zketh' : 'tzketh',
|
|
177
|
+
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
178
|
+
name: coin.fullName,
|
|
179
|
+
tokenContractAddress: coin.contractAddress.toString().toLowerCase(),
|
|
180
|
+
decimalPlaces: coin.decimalPlaces,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
return acc;
|
|
184
|
+
}, []);
|
|
185
|
+
const formattedBeraTokens = coins_1.coins.reduce((acc, coin) => {
|
|
186
|
+
if (coin instanceof account_1.BeraERC20Token) {
|
|
187
|
+
acc.push({
|
|
188
|
+
type: coin.name,
|
|
189
|
+
coin: coin.network.type === networks_1.NetworkType.MAINNET ? 'bera' : 'tbera',
|
|
190
|
+
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
191
|
+
name: coin.fullName,
|
|
192
|
+
tokenContractAddress: coin.contractAddress.toString().toLowerCase(),
|
|
193
|
+
decimalPlaces: coin.decimalPlaces,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return acc;
|
|
197
|
+
}, []);
|
|
139
198
|
const formattedSolTokens = coins_1.coins.reduce((acc, coin) => {
|
|
140
199
|
if (coin instanceof account_1.SolCoin) {
|
|
141
200
|
acc.push({
|
|
@@ -145,6 +204,7 @@ const formattedSolTokens = coins_1.coins.reduce((acc, coin) => {
|
|
|
145
204
|
name: coin.fullName,
|
|
146
205
|
tokenAddress: coin.tokenAddress,
|
|
147
206
|
decimalPlaces: coin.decimalPlaces,
|
|
207
|
+
contractAddress: coin.contractAddress,
|
|
148
208
|
});
|
|
149
209
|
}
|
|
150
210
|
return acc;
|
|
@@ -170,6 +230,9 @@ const formattedHbarTokens = coins_1.coins.reduce((acc, coin) => {
|
|
|
170
230
|
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
171
231
|
name: coin.fullName,
|
|
172
232
|
decimalPlaces: coin.decimalPlaces,
|
|
233
|
+
nodeAccountId: coin.nodeAccountId,
|
|
234
|
+
tokenId: coin.tokenId,
|
|
235
|
+
contractAddress: coin.contractAddress,
|
|
173
236
|
});
|
|
174
237
|
}
|
|
175
238
|
return acc;
|
|
@@ -212,6 +275,49 @@ const formattedXrpTokens = coins_1.coins.reduce((acc, coin) => {
|
|
|
212
275
|
issuerAddress: coin.issuerAddress,
|
|
213
276
|
currencyCode: coin.currencyCode,
|
|
214
277
|
domain: coin.domain,
|
|
278
|
+
contractAddress: coin.contractAddress,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
return acc;
|
|
282
|
+
}, []);
|
|
283
|
+
const formattedSuiTokens = coins_1.coins.reduce((acc, coin) => {
|
|
284
|
+
if (coin instanceof account_1.SuiCoin) {
|
|
285
|
+
acc.push({
|
|
286
|
+
type: coin.name,
|
|
287
|
+
coin: coin.network.type === networks_1.NetworkType.MAINNET ? 'sui' : 'tsui',
|
|
288
|
+
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
289
|
+
name: coin.fullName,
|
|
290
|
+
decimalPlaces: coin.decimalPlaces,
|
|
291
|
+
packageId: coin.packageId,
|
|
292
|
+
module: coin.module,
|
|
293
|
+
symbol: coin.symbol,
|
|
294
|
+
contractAddress: coin.contractAddress,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
return acc;
|
|
298
|
+
}, []);
|
|
299
|
+
const formattedAptTokens = coins_1.coins.reduce((acc, coin) => {
|
|
300
|
+
if (coin instanceof account_1.AptCoin) {
|
|
301
|
+
acc.push({
|
|
302
|
+
type: coin.name,
|
|
303
|
+
coin: coin.network.type === networks_1.NetworkType.MAINNET ? 'apt' : 'tapt',
|
|
304
|
+
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
305
|
+
name: coin.fullName,
|
|
306
|
+
assetId: coin.assetId,
|
|
307
|
+
decimalPlaces: coin.decimalPlaces,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
return acc;
|
|
311
|
+
}, []);
|
|
312
|
+
const formattedSip10Tokens = coins_1.coins.reduce((acc, coin) => {
|
|
313
|
+
if (coin instanceof account_1.Sip10Token) {
|
|
314
|
+
acc.push({
|
|
315
|
+
type: coin.name,
|
|
316
|
+
coin: coin.network.type === networks_1.NetworkType.MAINNET ? 'stx' : 'tstx',
|
|
317
|
+
network: coin.network.type === networks_1.NetworkType.MAINNET ? 'Mainnet' : 'Testnet',
|
|
318
|
+
name: coin.fullName,
|
|
319
|
+
assetId: coin.assetId,
|
|
320
|
+
decimalPlaces: coin.decimalPlaces,
|
|
215
321
|
});
|
|
216
322
|
}
|
|
217
323
|
return acc;
|
|
@@ -246,6 +352,15 @@ exports.tokens = {
|
|
|
246
352
|
polygon: {
|
|
247
353
|
tokens: formattedPolygonTokens.filter((token) => token.network === 'Mainnet'),
|
|
248
354
|
},
|
|
355
|
+
arbeth: {
|
|
356
|
+
tokens: formattedArbethTokens.filter((token) => token.network === 'Mainnet'),
|
|
357
|
+
},
|
|
358
|
+
opeth: {
|
|
359
|
+
tokens: formattedOpethTokens.filter((token) => token.network === 'Mainnet'),
|
|
360
|
+
},
|
|
361
|
+
zketh: {
|
|
362
|
+
tokens: formattedZkethTokens.filter((token) => token.network === 'Mainnet'),
|
|
363
|
+
},
|
|
249
364
|
sol: {
|
|
250
365
|
tokens: formattedSolTokens.filter((token) => token.network === 'Mainnet'),
|
|
251
366
|
},
|
|
@@ -261,6 +376,18 @@ exports.tokens = {
|
|
|
261
376
|
xrp: {
|
|
262
377
|
tokens: formattedXrpTokens.filter((token) => token.network === 'Mainnet'),
|
|
263
378
|
},
|
|
379
|
+
sui: {
|
|
380
|
+
tokens: formattedSuiTokens.filter((token) => token.network === 'Mainnet'),
|
|
381
|
+
},
|
|
382
|
+
bera: {
|
|
383
|
+
tokens: formattedBeraTokens.filter((token) => token.network === 'Mainnet'),
|
|
384
|
+
},
|
|
385
|
+
apt: {
|
|
386
|
+
tokens: formattedAptTokens.filter((token) => token.network === 'Mainnet'),
|
|
387
|
+
},
|
|
388
|
+
stx: {
|
|
389
|
+
tokens: formattedSip10Tokens.filter((token) => token.network === 'Mainnet'),
|
|
390
|
+
},
|
|
264
391
|
},
|
|
265
392
|
// network name for test environments
|
|
266
393
|
testnet: {
|
|
@@ -291,6 +418,15 @@ exports.tokens = {
|
|
|
291
418
|
polygon: {
|
|
292
419
|
tokens: formattedPolygonTokens.filter((token) => token.network === 'Testnet'),
|
|
293
420
|
},
|
|
421
|
+
arbeth: {
|
|
422
|
+
tokens: formattedArbethTokens.filter((token) => token.network === 'Testnet'),
|
|
423
|
+
},
|
|
424
|
+
opeth: {
|
|
425
|
+
tokens: formattedOpethTokens.filter((token) => token.network === 'Testnet'),
|
|
426
|
+
},
|
|
427
|
+
zketh: {
|
|
428
|
+
tokens: formattedZkethTokens.filter((token) => token.network === 'Testnet'),
|
|
429
|
+
},
|
|
294
430
|
sol: {
|
|
295
431
|
tokens: formattedSolTokens.filter((token) => token.network === 'Testnet'),
|
|
296
432
|
},
|
|
@@ -306,6 +442,18 @@ exports.tokens = {
|
|
|
306
442
|
xrp: {
|
|
307
443
|
tokens: formattedXrpTokens.filter((token) => token.network === 'Testnet'),
|
|
308
444
|
},
|
|
445
|
+
sui: {
|
|
446
|
+
tokens: formattedSuiTokens.filter((token) => token.network === 'Testnet'),
|
|
447
|
+
},
|
|
448
|
+
bera: {
|
|
449
|
+
tokens: formattedBeraTokens.filter((token) => token.network === 'Testnet'),
|
|
450
|
+
},
|
|
451
|
+
apt: {
|
|
452
|
+
tokens: formattedAptTokens.filter((token) => token.network === 'Testnet'),
|
|
453
|
+
},
|
|
454
|
+
stx: {
|
|
455
|
+
tokens: formattedSip10Tokens.filter((token) => token.network === 'Testnet'),
|
|
456
|
+
},
|
|
309
457
|
},
|
|
310
458
|
};
|
|
311
459
|
/**
|
|
@@ -333,4 +481,4 @@ exports.mainnetTokens = { ...mainnetErc20Tokens, ...mainnetStellarTokens };
|
|
|
333
481
|
const testnetErc20Tokens = verifyTokens(exports.tokens.testnet.eth.tokens);
|
|
334
482
|
const testnetStellarTokens = verifyTokens(exports.tokens.testnet.xlm.tokens);
|
|
335
483
|
exports.testnetTokens = { ...testnetErc20Tokens, ...testnetStellarTokens };
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Db25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW5Db25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBZ0JtQjtBQUNuQixpQ0FBOEM7QUFDOUMsbUNBQWdDO0FBQ2hDLHlDQUFtRDtBQUNuRCwrQkFBZ0M7QUE4SWhDLG9FQUFvRTtBQUNwRSxNQUFNLG9CQUFvQixHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF1QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQzFFLElBQUksSUFBSSxZQUFZLG1CQUFTLEVBQUU7UUFDN0IsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNwQixLQUFLLG1CQUFRLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ3pCLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLG1CQUFRLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQ3RCLFFBQVEsR0FBRyxNQUFNLENBQUM7Z0JBQ2xCLE1BQU07WUFDUixLQUFLLG1CQUFRLENBQUMsSUFBSSxDQUFDLE1BQU07Z0JBQ3ZCLFFBQVEsR0FBRyxPQUFPLENBQUM7Z0JBQ25CLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksNkJBQTZCLENBQUMsQ0FBQztTQUMxRTtRQUVELEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFD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LFFBQUEsYUFBYSxHQUFHLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFcmMyMENvaW4sXG4gIFN0ZWxsYXJDb2luLFxuICBDZWxvQ29pbixcbiAgRW9zQ29pbixcbiAgQXZheEVSQzIwVG9rZW4sXG4gIEFsZ29Db2luLFxuICBTb2xDb2luLFxuICBIZWRlcmFUb2tlbixcbiAgUG9seWdvbkVSQzIwVG9rZW4sXG4gIEJzY0NvaW4sXG4gIEFkYUNvaW4sXG4gIEVyYzcyMUNvaW4sXG4gIEVyYzExNTVDb2luLFxuICBUcm9uRXJjMjBDb2luLFxuICBYcnBDb2luLFxufSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgQ29pbkZhbWlseSwgQ29pbktpbmQgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICcuL2NvaW5zJztcbmltcG9ydCB7IE5ldHdvcmtzLCBOZXR3b3JrVHlwZSB9IGZyb20gJy4vbmV0d29ya3MnO1xuaW1wb3J0IHsgT2ZjQ29pbiB9IGZyb20gJy4vb2ZjJztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlVG9rZW5Db25maWcge1xuICBjb2luOiBzdHJpbmc7XG4gIGRlY2ltYWxQbGFjZXM6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU5ldHdvcmtDb25maWcgZXh0ZW5kcyBCYXNlVG9rZW5Db25maWcge1xuICBuZXR3b3JrOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZyBleHRlbmRzIEJhc2VOZXR3b3JrQ29uZmlnIHtcbiAgdG9rZW5Db250cmFjdEFkZHJlc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQXZheGNUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBDZWxvVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgRXRoTGlrZVRva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIEVvc1Rva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIEVyYzIwVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgVHJ4VG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgU3RlbGxhclRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWc7XG5cbmV4cG9ydCB0eXBlIFNvbFRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIHRva2VuQWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQWRhVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgcG9saWN5SWQ6IHN0cmluZztcbiAgYXNzZXROYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBbGdvVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgYWxpYXM/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBPZmNUb2tlbkNvbmZpZyA9IEJhc2VUb2tlbkNvbmZpZyAmIHtcbiAgYmFja2luZ0NvaW46IHN0cmluZztcbiAgaXNGaWF0OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgSGJhclRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWc7XG5cbmV4cG9ydCB0eXBlIFhycFRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIGlzc3VlckFkZHJlc3M6IHN0cmluZztcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gIGRvbWFpbj86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5zIHtcbiAgYml0Y29pbjoge1xuICAgIGV0aDoge1xuICAgICAgdG9rZW5zOiBFcmMyMFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB4bG06IHtcbiAgICAgIHRva2VuczogU3RlbGxhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhbGdvOiB7XG4gICAgICB0b2tlbnM6IEFsZ29Ub2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgb2ZjOiB7XG4gICAgICB0b2tlbnM6IE9mY1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBjZWxvOiB7XG4gICAgICB0b2tlbnM6IENlbG9Ub2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgZW9zOiB7XG4gICAgICB0b2tlbnM6IEVvc1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhdmF4Yzoge1xuICAgICAgdG9rZW5zOiBBdmF4Y1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBwb2x5Z29uOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYnNjOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc29sOiB7XG4gICAgICB0b2tlbnM6IFNvbFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBoYmFyOiB7XG4gICAgICB0b2tlbnM6IEhiYXJUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYWRhOiB7XG4gICAgICB0b2tlbnM6IEFkYVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB0cng6IHtcbiAgICAgIHRva2VuczogVHJ4VG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhycDoge1xuICAgICAgdG9rZW5zOiBYcnBUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gIH07XG4gIHRlc3RuZXQ6IHtcbiAgICBldGg6IHtcbiAgICAgIHRva2VuczogRXJjMjBUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgeGxtOiB7XG4gICAgICB0b2tlbnM6IFN0ZWxsYXJUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYWxnbzoge1xuICAgICAgdG9rZW5zOiBBbGdvVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIG9mYzoge1xuICAgICAgdG9rZW5zOiBPZmNUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgY2Vsbzoge1xuICAgICAgdG9rZW5zOiBDZWxvVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGJzYzoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGVvczoge1xuICAgICAgdG9rZW5zOiBFb3NUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXZheGM6IHtcbiAgICAgIHRva2VuczogQXZheGNUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgcG9seWdvbjoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHNvbDoge1xuICAgICAgdG9rZW5zOiBTb2xUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgaGJhcjoge1xuICAgICAgdG9rZW5zOiBIYmFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFkYToge1xuICAgICAgdG9rZW5zOiBBZGFUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgdHJ4OiB7XG4gICAgICB0b2tlbnM6IFRyeFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB4cnA6IHtcbiAgICAgIHRva2VuczogWHJwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICB9O1xufVxuXG4vLyBHZXQgdGhlIGxpc3Qgb2YgRVJDLTIwIHRva2VucyBmcm9tIHN0YXRpY3MgYW5kIGZvcm1hdCBpdCBwcm9wZXJseVxuY29uc3QgZm9ybWF0dGVkRXJjMjBUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRXJjMjBUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgRXJjMjBDb2luKSB7XG4gICAgbGV0IGJhc2VDb2luOiBzdHJpbmc7XG4gICAgc3dpdGNoIChjb2luLm5ldHdvcmspIHtcbiAgICAgIGNhc2UgTmV0d29ya3MubWFpbi5ldGhlcmV1bTpcbiAgICAgICAgYmFzZUNvaW4gPSAnZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5ldHdvcmtzLnRlc3Qua292YW46XG4gICAgICAgIGJhc2VDb2luID0gJ3RldGgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTmV0d29ya3MudGVzdC5nb2VybGk6XG4gICAgICAgIGJhc2VDb2luID0gJ2d0ZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVyYzIwIHRva2VuICR7Y29pbi5uYW1lfSBoYXMgYW4gdW5zdXBwb3J0ZWQgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGJhc2VDb2luLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgZXRoR2FzQ29uZmlncyA9IHtcbiAgbWluaW11bUdhc1ByaWNlOiAxMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDEgR3dlaSlcbiAgZGVmYXVsdEdhc1ByaWNlOiAyMDAwMDAwMDAwMCwgLy8gZGVmYXVsdCBnYXMgcHJpY2UgaWYgZXN0aW1hdGlvbiBmYWlscyAoMjAgR3dlaSlcbiAgbWF4aW11bUdhc1ByaWNlOiAyNTAwMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDI1MDAgR3dlaSlcbiAgZGVmYXVsdEdhc0xpbWl0OiA1MDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgY29udHJhY3Qgc2VuZFxuICBkZWZhdWx0R2FzTGltaXRUb2tlblNlbmQ6IDEwMDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgdG9rZW4gc2VuZFxuICBtaW5pbXVtR2FzTGltaXQ6IDMwMDAwLCAvLyBtaW5pbXVtIGdhcyBsaW1pdCBhIHVzZXIgY2FuIHNldCBmb3IgYSBzZW5kXG4gIG1heGltdW1HYXNMaW1pdDogMjAwMDAwMDAsIC8vIEN1c3RvbWVycyBjYW5ub3Qgc2V0IGdhcyBsaW1pdHMgYmV5b25kIHRoaXMgYW1vdW50XG59O1xuLy8gR2V0IHRoZSBsaXN0IG9mIFN0ZWxsYXIgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBmb3JtYXR0ZWRTdGVsbGFyVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IFN0ZWxsYXJUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgU3RlbGxhckNvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICd4bG0nIDogJ3R4bG0nLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbi8vIEdldCB0aGUgbGlzdCBvZiBPRkMgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBmb3JtYXR0ZWRPZmNDb2lucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBPZmNUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgT2ZjQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46ICdvZmMnLFxuICAgICAgYmFja2luZ0NvaW46IGNvaW4uYXNzZXQsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgICAgaXNGaWF0OiBjb2luLmtpbmQgPT09IENvaW5LaW5kLkZJQVQsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkQ2Vsb1Rva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBDZWxvVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIENlbG9Db2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnY2VsbycgOiAndGNlbG8nLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRCc2NUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBCc2NDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYnNjJyA6ICd0YnNjJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkRW9zVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IEVvc1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBFb3NDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnZW9zJyA6ICd0ZW9zJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0TmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkQXZheENUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQXZheGNUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgQXZheEVSQzIwVG9rZW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhdmF4YycgOiAndGF2YXhjJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkUG9seWdvblRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoXG4gICAgY29pbiBpbnN0YW5jZW9mIFBvbHlnb25FUkMyMFRva2VuIHx8XG4gICAgKChjb2luIGluc3RhbmNlb2YgRXJjNzIxQ29pbiB8fCBjb2luIGluc3RhbmNlb2YgRXJjMTE1NUNvaW4pICYmIGNvaW4uZmFtaWx5ID09PSBDb2luRmFtaWx5LlBPTFlHT04pXG4gICkge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3BvbHlnb24nIDogJ3Rwb2x5Z29uJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkU29sVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IFNvbFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBTb2xDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnc29sJyA6ICd0c29sJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQWRkcmVzczogY29pbi50b2tlbkFkZHJlc3MsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdHRlZEFsZ29Ub2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQWxnb1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBBbGdvQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2FsZ28nIDogJ3RhbGdvJyxcbiAgICAgIGFsaWFzOiBjb2luLmFsaWFzLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZEhiYXJUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogSGJhclRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2hiYXInIDogJ3RoYmFyJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRBZGFUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQWRhVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEFkYUNvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhZGEnIDogJ3RhZGEnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgcG9saWN5SWQ6IGNvaW4ucG9saWN5SWQsXG4gICAgICBhc3NldE5hbWU6IGNvaW4uYXNzZXROYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZFRyeFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBUcnhUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgVHJvbkVyYzIwQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3RyeCcgOiAndHRyeCcsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZFhycFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBYcnBUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgWHJwQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3hycCcgOiAndHhycCcsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgICBpc3N1ZXJBZGRyZXNzOiBjb2luLmlzc3VlckFkZHJlc3MsXG4gICAgICBjdXJyZW5jeUNvZGU6IGNvaW4uY3VycmVuY3lDb2RlLFxuICAgICAgZG9tYWluOiBjb2luLmRvbWFpbixcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgdG9rZW5zOiBUb2tlbnMgPSB7XG4gIC8vIG5ldHdvcmsgbmFtZSBmb3IgcHJvZHVjdGlvbiBlbnZpcm9ubWVudHNcbiAgYml0Y29pbjoge1xuICAgIGV0aDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRFcmMyMFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgeGxtOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFN0ZWxsYXJUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQWxnb1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgb2ZjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZE9mY0NvaW5zLmZpbHRlcigodG9rZW4pID0+IGNvaW5zLmdldCh0b2tlbi50eXBlKS5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQpLFxuICAgIH0sXG4gICAgY2Vsbzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRDZWxvVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQnNjVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkRW9zVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBhdmF4Yzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBdmF4Q1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgcG9seWdvbjoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRQb2x5Z29uVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkU29sVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBoYmFyOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEhiYXJUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGFkYToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBZGFUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIHRyeDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRUcnhUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIHhycDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRYcnBUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICB9LFxuICAvLyBuZXR3b3JrIG5hbWUgZm9yIHRlc3QgZW52aXJvbm1lbnRzXG4gIHRlc3RuZXQ6IHtcbiAgICBldGg6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkRXJjMjBUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRTdGVsbGFyVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBhbGdvOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFsZ29Ub2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIG9mYzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRPZmNDb2lucy5maWx0ZXIoKHRva2VuKSA9PiBjb2lucy5nZXQodG9rZW4udHlwZSkubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5URVNUTkVUKSxcbiAgICB9LFxuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQ2Vsb1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYnNjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEJzY1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgZW9zOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEVvc1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYXZheGM6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQXZheENUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkUG9seWdvblRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgc29sOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFNvbFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgaGJhcjoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRIYmFyVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQWRhVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICB0cng6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkVHJ4VG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICB4cnA6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkWHJwVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgfSxcbn07XG5cbi8qKlxuICogVmVyaWZ5IG1haW5uZXQgb3IgdGVzdG5ldCB0b2tlbnNcbiAqIEBwYXJhbSB0b2tlbnNcbiAqL1xuY29uc3QgdmVyaWZ5VG9rZW5zID0gZnVuY3Rpb24gKHRva2VuczogQmFzZVRva2VuQ29uZmlnW10pIHtcbiAgY29uc3QgdmVyaWZpZWRUb2tlbnM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gIHRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuICAgIGlmICh2ZXJpZmllZFRva2Vuc1t0b2tlbi50eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0b2tlbiA6ICcgKyB0b2tlbi50eXBlICsgJyBkdXBsaWNhdGVkLicpO1xuICAgIH1cbiAgICB2ZXJpZmllZFRva2Vuc1t0b2tlbi50eXBlXSA9IHRydWU7XG5cbiAgICBpZiAoXG4gICAgICAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZykudG9rZW5Db250cmFjdEFkZHJlc3MgJiZcbiAgICAgICh0b2tlbiBhcyBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnKS50b2tlbkNvbnRyYWN0QWRkcmVzcyAhPT1cbiAgICAgICAgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpLnRva2VuQ29udHJhY3RBZGRyZXNzLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3Rva2VuIGNvbnRyYWN0OiAnICsgdG9rZW4udHlwZSArICcgaXMgbm90IGFsbCBsb3dlciBjYXNlOiAnICsgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZlcmlmaWVkVG9rZW5zO1xufTtcblxuY29uc3QgbWFpbm5ldEVyYzIwVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy5iaXRjb2luLmV0aC50b2tlbnMpO1xuY29uc3QgbWFpbm5ldFN0ZWxsYXJUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLmJpdGNvaW4ueGxtLnRva2Vucyk7XG5leHBvcnQgY29uc3QgbWFpbm5ldFRva2VucyA9IHsgLi4ubWFpbm5ldEVyYzIwVG9rZW5zLCAuLi5tYWlubmV0U3RlbGxhclRva2VucyB9O1xuXG5jb25zdCB0ZXN0bmV0RXJjMjBUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLnRlc3RuZXQuZXRoLnRva2Vucyk7XG5jb25zdCB0ZXN0bmV0U3RlbGxhclRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMudGVzdG5ldC54bG0udG9rZW5zKTtcbmV4cG9ydCBjb25zdCB0ZXN0bmV0VG9rZW5zID0geyAuLi50ZXN0bmV0RXJjMjBUb2tlbnMsIC4uLnRlc3RuZXRTdGVsbGFyVG9rZW5zIH07XG4iXX0=
|
|
484
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Db25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW5Db25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBdUJtQjtBQUNuQixpQ0FBOEM7QUFDOUMsbUNBQWdDO0FBQ2hDLHlDQUFtRDtBQUNuRCwrQkFBZ0M7QUFnTmhDLG9FQUFvRTtBQUNwRSxNQUFNLG9CQUFvQixHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF1QixFQUFFLElBQUksRUFBRSxFQUFFO0lBQzFFLElBQUksSUFBSSxZQUFZLG1CQUFTLEVBQUUsQ0FBQztRQUM5QixJQUFJLFFBQWdCLENBQUM7UUFDckIsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRO2dCQUN6QixRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUN0QixRQUFRLEdBQUcsTUFBTSxDQUFDO2dCQUNsQixNQUFNO1lBQ1IsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxNQUFNO2dCQUN2QixRQUFRLEdBQUcsT0FBTyxDQUFDO2dCQUNuQixNQUFNO1lBQ1IsS0FBSyxtQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUN4QixRQUFRLEdBQUcsT0FBTyxDQUFDO2dCQUNuQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLDZCQUE2QixDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FB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biAgQXJiZXRoRVJDMjBUb2tlbixcbiAgQXZheEVSQzIwVG9rZW4sXG4gIEJlcmFFUkMyMFRva2VuLFxuICBCc2NDb2luLFxuICBDZWxvQ29pbixcbiAgRW9zQ29pbixcbiAgRXJjMTE1NUNvaW4sXG4gIEVyYzIwQ29pbixcbiAgRXJjNzIxQ29pbixcbiAgSGVkZXJhVG9rZW4sXG4gIE9wZXRoRVJDMjBUb2tlbixcbiAgUG9seWdvbkVSQzIwVG9rZW4sXG4gIFNpcDEwVG9rZW4sXG4gIFNvbENvaW4sXG4gIFN0ZWxsYXJDb2luLFxuICBTdWlDb2luLFxuICBUcm9uRXJjMjBDb2luLFxuICBYcnBDb2luLFxuICBaa2V0aEVSQzIwVG9rZW4sXG59IGZyb20gJy4vYWNjb3VudCc7XG5pbXBvcnQgeyBDb2luRmFtaWx5LCBDb2luS2luZCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJy4vY29pbnMnO1xuaW1wb3J0IHsgTmV0d29ya3MsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBPZmNDb2luIH0gZnJvbSAnLi9vZmMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VUb2tlbkNvbmZpZyB7XG4gIGNvaW46IHN0cmluZztcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlTmV0d29ya0NvbmZpZyBleHRlbmRzIEJhc2VUb2tlbkNvbmZpZyB7XG4gIG5ldHdvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnIGV4dGVuZHMgQmFzZU5ldHdvcmtDb25maWcge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBdmF4Y1Rva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIENlbG9Ub2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBFdGhMaWtlVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgRW9zVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnICYge1xuICBjb250cmFjdE5hbWU6IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRXJjMjBUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBUcnhUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBTdGVsbGFyVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZztcblxuZXhwb3J0IHR5cGUgU29sVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgdG9rZW5BZGRyZXNzOiBzdHJpbmc7XG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQWRhVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgcG9saWN5SWQ6IHN0cmluZztcbiAgYXNzZXROYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBbGdvVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgYWxpYXM/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBPZmNUb2tlbkNvbmZpZyA9IEJhc2VUb2tlbkNvbmZpZyAmIHtcbiAgYmFja2luZ0NvaW46IHN0cmluZztcbiAgaXNGaWF0OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgSGJhclRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIG5vZGVBY2NvdW50SWQ6IHN0cmluZztcbiAgdG9rZW5JZDogc3RyaW5nO1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFhycFRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIGlzc3VlckFkZHJlc3M6IHN0cmluZztcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gIGRvbWFpbj86IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTdWlUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBwYWNrYWdlSWQ6IHN0cmluZztcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIHN5bWJvbDogc3RyaW5nO1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFwdFRva2VuQ29uZmlnID0gQmFzZU5ldHdvcmtDb25maWcgJiB7XG4gIGFzc2V0SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNpcDEwVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgYXNzZXRJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbnMge1xuICBiaXRjb2luOiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IEVyYzIwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBTdGVsbGFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogQWxnb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogT2ZjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogQ2Vsb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogRW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IEF2YXhjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhcmJldGg6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvcGV0aDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHNvbDoge1xuICAgICAgdG9rZW5zOiBTb2xUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgaGJhcjoge1xuICAgICAgdG9rZW5zOiBIYmFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFkYToge1xuICAgICAgdG9rZW5zOiBBZGFUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgdHJ4OiB7XG4gICAgICB0b2tlbnM6IFRyeFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB4cnA6IHtcbiAgICAgIHRva2VuczogWHJwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHprZXRoOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc3VpOiB7XG4gICAgICB0b2tlbnM6IFN1aVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBiZXJhOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXB0OiB7XG4gICAgICB0b2tlbnM6IEFwdFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzdHg6IHtcbiAgICAgIHRva2VuczogU2lwMTBUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gIH07XG4gIHRlc3RuZXQ6IHtcbiAgICBldGg6IHtcbiAgICAgIHRva2VuczogRXJjMjBUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgeGxtOiB7XG4gICAgICB0b2tlbnM6IFN0ZWxsYXJUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYWxnbzoge1xuICAgICAgdG9rZW5zOiBBbGdvVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIG9mYzoge1xuICAgICAgdG9rZW5zOiBPZmNUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgY2Vsbzoge1xuICAgICAgdG9rZW5zOiBDZWxvVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGJzYzoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGVvczoge1xuICAgICAgdG9rZW5zOiBFb3NUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYXZheGM6IHtcbiAgICAgIHRva2VuczogQXZheGNUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgcG9seWdvbjoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFyYmV0aDoge1xuICAgICAgdG9rZW5zOiBFdGhMaWtlVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIG9wZXRoOiB7XG4gICAgICB0b2tlbnM6IEV0aExpa2VUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgc29sOiB7XG4gICAgICB0b2tlbnM6IFNvbFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBoYmFyOiB7XG4gICAgICB0b2tlbnM6IEhiYXJUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgYWRhOiB7XG4gICAgICB0b2tlbnM6IEFkYVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICB0cng6IHtcbiAgICAgIHRva2VuczogVHJ4VG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhycDoge1xuICAgICAgdG9rZW5zOiBYcnBUb2tlbkNvbmZpZ1tdO1xuICAgIH07XG4gICAgemtldGg6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzdWk6IHtcbiAgICAgIHRva2VuczogU3VpVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGJlcmE6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhcHQ6IHtcbiAgICAgIHRva2VuczogQXB0VG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHN0eDoge1xuICAgICAgdG9rZW5zOiBTaXAxMFRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgfTtcbn1cblxuLy8gR2V0IHRoZSBsaXN0IG9mIEVSQy0yMCB0b2tlbnMgZnJvbSBzdGF0aWNzIGFuZCBmb3JtYXQgaXQgcHJvcGVybHlcbmNvbnN0IGZvcm1hdHRlZEVyYzIwVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IEVyYzIwVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEVyYzIwQ29pbikge1xuICAgIGxldCBiYXNlQ29pbjogc3RyaW5nO1xuICAgIHN3aXRjaCAoY29pbi5uZXR3b3JrKSB7XG4gICAgICBjYXNlIE5ldHdvcmtzLm1haW4uZXRoZXJldW06XG4gICAgICAgIGJhc2VDb2luID0gJ2V0aCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOZXR3b3Jrcy50ZXN0LmtvdmFuOlxuICAgICAgICBiYXNlQ29pbiA9ICd0ZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5ldHdvcmtzLnRlc3QuZ29lcmxpOlxuICAgICAgICBiYXNlQ29pbiA9ICdndGV0aCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOZXR3b3Jrcy50ZXN0LmhvbGVza3k6XG4gICAgICAgIGJhc2VDb2luID0gJ2h0ZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVyYzIwIHRva2VuICR7Y29pbi5uYW1lfSBoYXMgYW4gdW5zdXBwb3J0ZWQgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGJhc2VDb2luLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgZXRoR2FzQ29uZmlncyA9IHtcbiAgbWluaW11bUdhc1ByaWNlOiAxMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDEgR3dlaSlcbiAgZGVmYXVsdEdhc1ByaWNlOiAyMDAwMDAwMDAwMCwgLy8gZGVmYXVsdCBnYXMgcHJpY2UgaWYgZXN0aW1hdGlvbiBmYWlscyAoMjAgR3dlaSlcbiAgbWF4aW11bUdhc1ByaWNlOiAyNTAwMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDI1MDAgR3dlaSlcbiAgZGVmYXVsdEdhc0xpbWl0OiA1MDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgY29udHJhY3Qgc2VuZFxuICBkZWZhdWx0R2FzTGltaXRUb2tlblNlbmQ6IDEwMDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgdG9rZW4gc2VuZFxuICBtaW5pbXVtR2FzTGltaXQ6IDMwMDAwLCAvLyBtaW5pbXVtIGdhcyBsaW1pdCBhIHVzZXIgY2FuIHNldCBmb3IgYSBzZW5kXG4gIG1heGltdW1HYXNMaW1pdDogMjAwMDAwMDAsIC8vIEN1c3RvbWVycyBjYW5ub3Qgc2V0IGdhcyBsaW1pdHMgYmV5b25kIHRoaXMgYW1vdW50XG4gIG5ld0V0aExpa2VDb2luc01pbkdhc0xpbWl0OiA0MDAwMDAsIC8vIG1pbmltdW0gZ2FzIGxpbWl0IGEgdXNlciBjYW4gc2V0IGZvciBhIHNlbmQgZm9yIGV0aCBsaWtlIGNvaW5zIGxpa2UgYXJiaXRydW0sIG9wdGltaXNtLCBldGNcbiAgb3BldGhHYXNMMUZlZXM6IDEwMDAwMDAwMDAwMDAwMDAsIC8vIEJ1ZmZlciBmb3Igb3BldGggTDEgZ2FzIGZlZXNcbn07XG4vLyBHZXQgdGhlIGxpc3Qgb2YgU3RlbGxhciB0b2tlbnMgZnJvbSBzdGF0aWNzIGFuZCBmb3JtYXQgaXQgcHJvcGVybHlcbmNvbnN0IGZvcm1hdHRlZFN0ZWxsYXJUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogU3RlbGxhclRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBTdGVsbGFyQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3hsbScgOiAndHhsbScsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuLy8gR2V0IHRoZSBsaXN0IG9mIE9GQyB0b2tlbnMgZnJvbSBzdGF0aWNzIGFuZCBmb3JtYXQgaXQgcHJvcGVybHlcbmNvbnN0IGZvcm1hdHRlZE9mY0NvaW5zID0gY29pbnMucmVkdWNlKChhY2M6IE9mY1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBPZmNDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogJ29mYycsXG4gICAgICBiYWNraW5nQ29pbjogY29pbi5hc3NldCxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgICBpc0ZpYXQ6IGNvaW4ua2luZCA9PT0gQ29pbktpbmQuRklBVCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRDZWxvVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IENlbG9Ub2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgQ2Vsb0NvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdjZWxvJyA6ICd0Y2VsbycsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZEJzY1Rva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEJzY0NvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdic2MnIDogJ3Ric2MnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRFb3NUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRW9zVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEVvc0NvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdlb3MnIDogJ3Rlb3MnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3ROYW1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgIGNvbnRyYWN0TmFtZTogY29pbi5jb250cmFjdE5hbWUsXG4gICAgICBjb250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZEF2YXhDVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IEF2YXhjVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEF2YXhFUkMyMFRva2VuKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYXZheGMnIDogJ3RhdmF4YycsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZFBvbHlnb25Ub2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKFxuICAgIGNvaW4gaW5zdGFuY2VvZiBQb2x5Z29uRVJDMjBUb2tlbiB8fFxuICAgICgoY29pbiBpbnN0YW5jZW9mIEVyYzcyMUNvaW4gfHwgY29pbiBpbnN0YW5jZW9mIEVyYzExNTVDb2luKSAmJiBjb2luLmZhbWlseSA9PT0gQ29pbkZhbWlseS5QT0xZR09OKVxuICApIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdwb2x5Z29uJyA6ICd0cG9seWdvbicsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZEFyYmV0aFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEFyYmV0aEVSQzIwVG9rZW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhcmJldGgnIDogJ3RhcmJldGgnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRPcGV0aFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIE9wZXRoRVJDMjBUb2tlbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ29wZXRoJyA6ICd0b3BldGgnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRaa2V0aFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIFprZXRoRVJDMjBUb2tlbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3prZXRoJyA6ICd0emtldGgnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRCZXJhVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IEV0aExpa2VUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgQmVyYUVSQzIwVG9rZW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdiZXJhJyA6ICd0YmVyYScsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZFNvbFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBTb2xUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgU29sQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3NvbCcgOiAndHNvbCcsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICB0b2tlbkFkZHJlc3M6IGNvaW4udG9rZW5BZGRyZXNzLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgICAgY29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0dGVkQWxnb1Rva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBBbGdvVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEFsZ29Db2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYWxnbycgOiAndGFsZ28nLFxuICAgICAgYWxpYXM6IGNvaW4uYWxpYXMsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkSGJhclRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBIYmFyVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEhlZGVyYVRva2VuKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnaGJhcicgOiAndGhiYXInLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgICAgbm9kZUFjY291bnRJZDogY29pbi5ub2RlQWNjb3VudElkLFxuICAgICAgdG9rZW5JZDogY29pbi50b2tlbklkLFxuICAgICAgY29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRBZGFUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQWRhVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEFkYUNvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhZGEnIDogJ3RhZGEnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgcG9saWN5SWQ6IGNvaW4ucG9saWN5SWQsXG4gICAgICBhc3NldE5hbWU6IGNvaW4uYXNzZXROYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZFRyeFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBUcnhUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgVHJvbkVyYzIwQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3RyeCcgOiAndHRyeCcsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZFhycFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBYcnBUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgWHJwQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3hycCcgOiAndHhycCcsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgICBpc3N1ZXJBZGRyZXNzOiBjb2luLmlzc3VlckFkZHJlc3MsXG4gICAgICBjdXJyZW5jeUNvZGU6IGNvaW4uY3VycmVuY3lDb2RlLFxuICAgICAgZG9tYWluOiBjb2luLmRvbWFpbixcbiAgICAgIGNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkU3VpVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IFN1aVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBTdWlDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnc3VpJyA6ICd0c3VpJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgIHBhY2thZ2VJZDogY29pbi5wYWNrYWdlSWQsXG4gICAgICBtb2R1bGU6IGNvaW4ubW9kdWxlLFxuICAgICAgc3ltYm9sOiBjb2luLnN5bWJvbCxcbiAgICAgIGNvbnRyYWN0QWRkcmVzczogY29pbi5jb250cmFjdEFkZHJlc3MsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkQXB0VG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IEFwdFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBBcHRDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYXB0JyA6ICd0YXB0JyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIGFzc2V0SWQ6IGNvaW4uYXNzZXRJZCxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRTaXAxMFRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBTaXAxMFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBTaXAxMFRva2VuKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnc3R4JyA6ICd0c3R4JyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIGFzc2V0SWQ6IGNvaW4uYXNzZXRJZCxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgdG9rZW5zOiBUb2tlbnMgPSB7XG4gIC8vIG5ldHdvcmsgbmFtZSBmb3IgcHJvZHVjdGlvbiBlbnZpcm9ubWVudHNcbiAgYml0Y29pbjoge1xuICAgIGV0aDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRFcmMyMFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgeGxtOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFN0ZWxsYXJUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQWxnb1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgb2ZjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZE9mY0NvaW5zLmZpbHRlcigodG9rZW4pID0+IGNvaW5zLmdldCh0b2tlbi50eXBlKS5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQpLFxuICAgIH0sXG4gICAgY2Vsbzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRDZWxvVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQnNjVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkRW9zVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBhdmF4Yzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBdmF4Q1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgcG9seWdvbjoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRQb2x5Z29uVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBhcmJldGg6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQXJiZXRoVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBvcGV0aDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRPcGV0aFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgemtldGg6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkWmtldGhUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIHNvbDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRTb2xUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkSGJhclRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgYWRhOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFkYVRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgdHJ4OiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFRyeFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgeHJwOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFhycFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgc3VpOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFN1aVRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgYmVyYToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRCZXJhVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBhcHQ6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQXB0VG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBzdHg6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkU2lwMTBUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICB9LFxuICAvLyBuZXR3b3JrIG5hbWUgZm9yIHRlc3QgZW52aXJvbm1lbnRzXG4gIHRlc3RuZXQ6IHtcbiAgICBldGg6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkRXJjMjBUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRTdGVsbGFyVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBhbGdvOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFsZ29Ub2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIG9mYzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRPZmNDb2lucy5maWx0ZXIoKHRva2VuKSA9PiBjb2lucy5nZXQodG9rZW4udHlwZSkubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5URVNUTkVUKSxcbiAgICB9LFxuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQ2Vsb1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYnNjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEJzY1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgZW9zOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEVvc1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYXZheGM6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQXZheENUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkUG9seWdvblRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYXJiZXRoOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFyYmV0aFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgb3BldGg6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkT3BldGhUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHprZXRoOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFprZXRoVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkU29sVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBoYmFyOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEhiYXJUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGFkYToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBZGFUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHRyeDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRUcnhUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHhycDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRYcnBUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHN1aToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRTdWlUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGJlcmE6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQmVyYVRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYXB0OiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFwdFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgc3R4OiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFNpcDEwVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgfSxcbn07XG5cbi8qKlxuICogVmVyaWZ5IG1haW5uZXQgb3IgdGVzdG5ldCB0b2tlbnNcbiAqIEBwYXJhbSB0b2tlbnNcbiAqL1xuY29uc3QgdmVyaWZ5VG9rZW5zID0gZnVuY3Rpb24gKHRva2VuczogQmFzZVRva2VuQ29uZmlnW10pIHtcbiAgY29uc3QgdmVyaWZpZWRUb2tlbnM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gIHRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuICAgIGlmICh2ZXJpZmllZFRva2Vuc1t0b2tlbi50eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0b2tlbiA6ICcgKyB0b2tlbi50eXBlICsgJyBkdXBsaWNhdGVkLicpO1xuICAgIH1cbiAgICB2ZXJpZmllZFRva2Vuc1t0b2tlbi50eXBlXSA9IHRydWU7XG5cbiAgICBpZiAoXG4gICAgICAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZykudG9rZW5Db250cmFjdEFkZHJlc3MgJiZcbiAgICAgICh0b2tlbiBhcyBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnKS50b2tlbkNvbnRyYWN0QWRkcmVzcyAhPT1cbiAgICAgICAgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpLnRva2VuQ29udHJhY3RBZGRyZXNzLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3Rva2VuIGNvbnRyYWN0OiAnICsgdG9rZW4udHlwZSArICcgaXMgbm90IGFsbCBsb3dlciBjYXNlOiAnICsgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZlcmlmaWVkVG9rZW5zO1xufTtcblxuY29uc3QgbWFpbm5ldEVyYzIwVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy5iaXRjb2luLmV0aC50b2tlbnMpO1xuY29uc3QgbWFpbm5ldFN0ZWxsYXJUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLmJpdGNvaW4ueGxtLnRva2Vucyk7XG5leHBvcnQgY29uc3QgbWFpbm5ldFRva2VucyA9IHsgLi4ubWFpbm5ldEVyYzIwVG9rZW5zLCAuLi5tYWlubmV0U3RlbGxhclRva2VucyB9O1xuXG5jb25zdCB0ZXN0bmV0RXJjMjBUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLnRlc3RuZXQuZXRoLnRva2Vucyk7XG5jb25zdCB0ZXN0bmV0U3RlbGxhclRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMudGVzdG5ldC54bG0udG9rZW5zKTtcbmV4cG9ydCBjb25zdCB0ZXN0bmV0VG9rZW5zID0geyAuLi50ZXN0bmV0RXJjMjBUb2tlbnMsIC4uLnRlc3RuZXRTdGVsbGFyVG9rZW5zIH07XG4iXX0=
|
package/dist/src/utxo.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseCoin, BaseUnit, CoinFeature, KeyCurve, UnderlyingAsset } from './base';
|
|
2
2
|
import { UtxoNetwork } from './networks';
|
|
3
|
-
|
|
3
|
+
interface UtxoConstructorOptions {
|
|
4
4
|
id: string;
|
|
5
5
|
fullName: string;
|
|
6
6
|
name: string;
|
|
@@ -38,4 +38,6 @@ export declare class UtxoCoin extends BaseCoin {
|
|
|
38
38
|
export declare function utxo(id: string, name: string, fullName: string, network: UtxoNetwork, asset: UnderlyingAsset, baseUnit: BaseUnit, features?: CoinFeature[], prefix?: string, suffix?: string,
|
|
39
39
|
/** All UTXOs BitGo supports are SECP256K1 **/
|
|
40
40
|
primaryKeyCurve?: KeyCurve): Readonly<UtxoCoin>;
|
|
41
|
+
export declare const utxoCoins: Readonly<BaseCoin>[];
|
|
42
|
+
export {};
|
|
41
43
|
//# sourceMappingURL=utxo.d.ts.map
|
package/dist/src/utxo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,
|
|
1
|
+
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAY,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnD,UAAU,sBAAsB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACpC,gBAAuB,gBAAgB,gBASrC;IAEF;;OAEG;IACH,SAAgB,OAAO,EAAE,WAAW,CAAC;gBAEzB,OAAO,EAAE,sBAAsB;IAW3C,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,WAAW,EAA8B,EACnD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B;AACnC,8CAA8C;AAC9C,eAAe,GAAE,QAA6B,sBAgB/C;AAiDD,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EA4LzC,CAAC"}
|