@bitgo-beta/statics 15.1.1-beta.211 → 15.1.1-beta.2111
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/dist/src/account.d.ts +1187 -73
- package/dist/src/account.d.ts.map +1 -1
- package/dist/src/account.js +1794 -161
- package/dist/src/ada.d.ts.map +1 -1
- package/dist/src/ada.js +7 -3
- package/dist/src/allCoinsAndTokens.d.ts +2 -0
- package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
- package/dist/src/allCoinsAndTokens.js +1907 -0
- package/dist/src/avaxp.d.ts.map +1 -1
- package/dist/src/avaxp.js +8 -3
- package/dist/src/base.d.ts +2960 -45
- package/dist/src/base.d.ts.map +1 -1
- package/dist/src/base.js +3085 -56
- package/dist/src/canton.d.ts +34 -0
- package/dist/src/canton.d.ts.map +1 -0
- package/dist/src/canton.js +51 -0
- package/dist/src/coinFeatures.d.ts +134 -0
- package/dist/src/coinFeatures.d.ts.map +1 -0
- package/dist/src/coinFeatures.js +817 -0
- package/dist/src/coins/adaTokens.d.ts +2 -0
- package/dist/src/coins/adaTokens.d.ts.map +1 -0
- package/dist/src/coins/adaTokens.js +27 -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 +133 -0
- package/dist/src/coins/botOfcTokens.d.ts +3 -0
- package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
- package/dist/src/coins/botOfcTokens.js +309 -0
- package/dist/src/coins/botTokens.d.ts +3 -0
- package/dist/src/coins/botTokens.d.ts.map +1 -0
- package/dist/src/coins/botTokens.js +966 -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 +421 -0
- package/dist/src/coins/cantonTokens.d.ts +2 -0
- package/dist/src/coins/cantonTokens.d.ts.map +1 -0
- package/dist/src/coins/cantonTokens.js +134 -0
- package/dist/src/coins/cosmosTokens.d.ts +2 -0
- package/dist/src/coins/cosmosTokens.d.ts.map +1 -0
- package/dist/src/coins/cosmosTokens.js +14 -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 +2086 -0
- package/dist/src/coins/erc7984Tokens.d.ts +17 -0
- package/dist/src/coins/erc7984Tokens.d.ts.map +1 -0
- package/dist/src/coins/erc7984Tokens.js +40 -0
- package/dist/src/coins/generateERC20.d.ts +36 -0
- package/dist/src/coins/generateERC20.d.ts.map +1 -0
- package/dist/src/coins/generateERC20.js +46 -0
- package/dist/src/coins/hoodethTokens.d.ts +2 -0
- package/dist/src/coins/hoodethTokens.d.ts.map +1 -0
- package/dist/src/coins/hoodethTokens.js +318 -0
- package/dist/src/coins/jettonTokens.d.ts +2 -0
- package/dist/src/coins/jettonTokens.d.ts.map +1 -0
- package/dist/src/coins/jettonTokens.js +19 -0
- package/dist/src/coins/nep141Tokens.d.ts +2 -0
- package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
- package/dist/src/coins/nep141Tokens.js +18 -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 +1500 -0
- package/dist/src/coins/ofcErc20Coins.d.ts +4 -0
- package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
- package/dist/src/coins/ofcErc20Coins.js +1902 -0
- package/dist/src/coins/ofcHoodethTokens.d.ts +2 -0
- package/dist/src/coins/ofcHoodethTokens.d.ts.map +1 -0
- package/dist/src/coins/ofcHoodethTokens.js +316 -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 +218 -0
- package/dist/src/coins/polyxTokens.d.ts +2 -0
- package/dist/src/coins/polyxTokens.d.ts.map +1 -0
- package/dist/src/coins/polyxTokens.js +22 -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 +25 -0
- package/dist/src/coins/solTokens.d.ts +3 -0
- package/dist/src/coins/solTokens.d.ts.map +1 -0
- package/dist/src/coins/solTokens.js +538 -0
- package/dist/src/coins/vetTokens.d.ts +2 -0
- package/dist/src/coins/vetTokens.d.ts.map +1 -0
- package/dist/src/coins/vetTokens.js +11 -0
- package/dist/src/coins.d.ts +22 -1
- package/dist/src/coins.d.ts.map +1 -1
- package/dist/src/coins.js +477 -2059
- 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/errors.d.ts +9 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +23 -2
- package/dist/src/flrp.d.ts +40 -0
- package/dist/src/flrp.d.ts.map +1 -0
- package/dist/src/flrp.js +66 -0
- package/dist/src/hypeevm.d.ts +28 -0
- package/dist/src/hypeevm.d.ts.map +1 -0
- package/dist/src/hypeevm.js +60 -0
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +49 -3
- package/dist/src/kaspa.d.ts +34 -0
- package/dist/src/kaspa.d.ts.map +1 -0
- package/dist/src/kaspa.js +63 -0
- package/dist/src/lightning.d.ts +43 -0
- package/dist/src/lightning.d.ts.map +1 -0
- package/dist/src/lightning.js +64 -0
- package/dist/src/map.d.ts +34 -1
- package/dist/src/map.d.ts.map +1 -1
- package/dist/src/map.js +251 -35
- package/dist/src/networkFeatureMapForTokens.d.ts +30 -0
- package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
- package/dist/src/networkFeatureMapForTokens.js +91 -0
- package/dist/src/networks.d.ts +2081 -68
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +2554 -104
- package/dist/src/ofc.d.ts +695 -3
- package/dist/src/ofc.d.ts.map +1 -1
- package/dist/src/ofc.js +1653 -28
- package/dist/src/tokenConfig.d.ts +717 -114
- package/dist/src/tokenConfig.d.ts.map +1 -1
- package/dist/src/tokenConfig.js +1132 -233
- package/dist/src/utxo.d.ts +6 -2
- package/dist/src/utxo.d.ts.map +1 -1
- package/dist/src/utxo.js +132 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -3
- package/.mocharc.js +0 -10
- package/.prettierignore +0 -2
- package/CHANGELOG.md +0 -1504
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.networkFeatureMapForTokens = exports.EVM_TOKEN_FEATURES_NON_EIP1559 = exports.EVM_TOKEN_FEATURES = void 0;
|
|
4
|
+
exports.registerNetworkFeatures = registerNetworkFeatures;
|
|
5
|
+
exports.registerErc20Families = registerErc20Families;
|
|
6
|
+
exports.getNetworkFeatures = getNetworkFeatures;
|
|
7
|
+
exports.getTokenFeatures = getTokenFeatures;
|
|
8
|
+
const account_1 = require("./account");
|
|
9
|
+
const base_1 = require("./base");
|
|
10
|
+
const coinFeatures_1 = require("./coinFeatures");
|
|
11
|
+
const dynamicNetworkFeaturesMap = new Map();
|
|
12
|
+
/** Register default token features for a dynamically onboarded chain family. */
|
|
13
|
+
function registerNetworkFeatures(family, features) {
|
|
14
|
+
dynamicNetworkFeaturesMap.set(family, features);
|
|
15
|
+
}
|
|
16
|
+
/** Default token feature set shared by "plain" EVM-compatible chain families (no bespoke features). */
|
|
17
|
+
exports.EVM_TOKEN_FEATURES = [
|
|
18
|
+
...coinFeatures_1.EVM_FEATURES,
|
|
19
|
+
base_1.CoinFeature.SHARED_EVM_SIGNING,
|
|
20
|
+
base_1.CoinFeature.SHARED_EVM_SDK,
|
|
21
|
+
base_1.CoinFeature.EVM_COMPATIBLE_IMS,
|
|
22
|
+
base_1.CoinFeature.EVM_COMPATIBLE_UI,
|
|
23
|
+
base_1.CoinFeature.EVM_COMPATIBLE_WP,
|
|
24
|
+
base_1.CoinFeature.SUPPORTS_ERC20,
|
|
25
|
+
];
|
|
26
|
+
/** Same as EVM_TOKEN_FEATURES, minus EIP1559, for EVM-compatible families that don't support it (e.g. xdc). */
|
|
27
|
+
exports.EVM_TOKEN_FEATURES_NON_EIP1559 = exports.EVM_TOKEN_FEATURES.filter((feature) => feature !== base_1.CoinFeature.EIP1559);
|
|
28
|
+
/**
|
|
29
|
+
* Populate networkFeatureMapForTokens for every family whose base coin carries
|
|
30
|
+
* CoinFeature.SUPPORTS_ERC20 and isn't already explicitly listed below, using EVM_TOKEN_FEATURES
|
|
31
|
+
* (or its non-EIP1559 variant, mirroring the base coin's own EIP1559 support). Called once from
|
|
32
|
+
* coins.ts (which has access to the full coin map) so this module doesn't need to import it
|
|
33
|
+
* directly (that would create a circular import: coins.ts -> networkFeatureMapForTokens.ts ->
|
|
34
|
+
* allCoinsAndTokens.ts -> coins/botTokens.ts -> networkFeatureMapForTokens.ts).
|
|
35
|
+
*/
|
|
36
|
+
function registerErc20Families(families) {
|
|
37
|
+
for (const [family, supportsEip1559] of families) {
|
|
38
|
+
if (!(family in exports.networkFeatureMapForTokens)) {
|
|
39
|
+
exports.networkFeatureMapForTokens[family] = supportsEip1559
|
|
40
|
+
? exports.EVM_TOKEN_FEATURES
|
|
41
|
+
: exports.EVM_TOKEN_FEATURES_NON_EIP1559;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Look up token features for a family.
|
|
47
|
+
* Checks the static map first (including entries backfilled by registerErc20Families), then the
|
|
48
|
+
* dynamic map. Returns undefined if the family isn't recognized by either.
|
|
49
|
+
*/
|
|
50
|
+
function getNetworkFeatures(family) {
|
|
51
|
+
return exports.networkFeatureMapForTokens[family] ?? dynamicNetworkFeaturesMap.get(family);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolve the final feature list for a token: the family's default token features
|
|
55
|
+
* plus `additionalFeatures`, minus `excludedFeatures`. Used by generated bot-token
|
|
56
|
+
* lists to apply the per-token diff returned by AMS (`features=false`).
|
|
57
|
+
*/
|
|
58
|
+
function getTokenFeatures(family, additionalFeatures = [], excludedFeatures = []) {
|
|
59
|
+
const base = getNetworkFeatures(family) ?? [];
|
|
60
|
+
const excluded = new Set(excludedFeatures);
|
|
61
|
+
return [...new Set([...base, ...additionalFeatures])].filter((f) => !excluded.has(f));
|
|
62
|
+
}
|
|
63
|
+
exports.networkFeatureMapForTokens = {
|
|
64
|
+
algo: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
65
|
+
apt: coinFeatures_1.APT_FEATURES,
|
|
66
|
+
arbeth: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
|
|
67
|
+
avaxc: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
68
|
+
bera: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
|
|
69
|
+
bsc: coinFeatures_1.BSC_TOKEN_FEATURES,
|
|
70
|
+
canton: coinFeatures_1.CANTON_TOKEN_FEATURES,
|
|
71
|
+
celo: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
72
|
+
eth: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
73
|
+
eos: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
74
|
+
gasevm: exports.EVM_TOKEN_FEATURES,
|
|
75
|
+
hbar: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
76
|
+
opeth: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
|
|
77
|
+
katanaeth: exports.EVM_TOKEN_FEATURES,
|
|
78
|
+
polygon: coinFeatures_1.POLYGON_TOKEN_FEATURES,
|
|
79
|
+
scrolleth: exports.EVM_TOKEN_FEATURES,
|
|
80
|
+
sol: coinFeatures_1.SOL_TOKEN_FEATURES,
|
|
81
|
+
stx: coinFeatures_1.STX_TOKEN_FEATURES,
|
|
82
|
+
sui: coinFeatures_1.SUI_TOKEN_FEATURES,
|
|
83
|
+
tao: coinFeatures_1.TAO_TOKEN_FEATURES,
|
|
84
|
+
polyx: coinFeatures_1.POLYX_TOKEN_FEATURES,
|
|
85
|
+
trx: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
86
|
+
xlm: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
87
|
+
xrp: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
88
|
+
ofc: [],
|
|
89
|
+
ada: coinFeatures_1.ADA_TOKEN_FEATURES,
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbUJBLDBEQUVDO0FBMEJELHNEQVFDO0FBT0QsZ0RBRUM7QUFPRCw0Q0FRQztBQS9FRCx1Q0FBd0M7QUFDeEMsaUNBQWlEO0FBQ2pELGlEQVl3QjtBQUV4QixNQUFNLHlCQUF5QixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO0FBRW5FLGdGQUFnRjtBQUNoRixTQUFnQix1QkFBdUIsQ0FBQyxNQUFjLEVBQUUsUUFBdUI7SUFDN0UseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsdUdBQXVHO0FBQzFGLFFBQUEsa0JBQWtCLEdBQWtCO0lBQy9DLEdBQUcsMkJBQVk7SUFDZixrQkFBVyxDQUFDLGtCQUFrQjtJQUM5QixrQkFBVyxDQUFDLGNBQWM7SUFDMUIsa0JBQVcsQ0FBQyxrQkFBa0I7SUFDOUIsa0JBQVcsQ0FBQyxpQkFBaUI7SUFDN0Isa0JBQVcsQ0FBQyxpQkFBaUI7SUFDN0Isa0JBQVcsQ0FBQyxjQUFjO0NBQzNCLENBQUM7QUFFRiwrR0FBK0c7QUFDbEcsUUFBQSw4QkFBOEIsR0FBa0IsMEJBQWtCLENBQUMsTUFBTSxDQUNwRixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLGtCQUFXLENBQUMsT0FBTyxDQUM3QyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLFFBQThEO0lBQ2xHLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksa0NBQTBCLENBQUMsRUFBRSxDQUFDO1lBQzVDLGtDQUEwQixDQUFDLE1BQW9CLENBQUMsR0FBRyxlQUFlO2dCQUNoRSxDQUFDLENBQUMsMEJBQWtCO2dCQUNwQixDQUFDLENBQUMsc0NBQThCLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxrQ0FBMEIsQ0FBQyxNQUFvQixDQUFDLElBQUkseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQWMsRUFDZCxxQkFBb0MsRUFBRSxFQUN0QyxtQkFBa0MsRUFBRTtJQUVwQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQWMsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBYyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRyxDQUFDO0FBRVksUUFBQSwwQkFBMEIsR0FBK0M7SUFDcEYsSUFBSSxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2xDLEdBQUcsRUFBRSwyQkFBWTtJQUNqQixNQUFNLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDOUQsS0FBSyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ25DLElBQUksRUFBRSxDQUFDLEdBQUcscUJBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBVyxDQUFDLE9BQU8sQ0FBQztJQUM1RCxHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLE1BQU0sRUFBRSxvQ0FBcUI7SUFDN0IsSUFBSSxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2xDLEdBQUcsRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNqQyxHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsTUFBTSxFQUFFLDBCQUFrQjtJQUMxQixJQUFJLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDbEMsS0FBSyxFQUFFLENBQUMsR0FBRyxxQkFBVyxDQUFDLGdCQUFnQixFQUFFLGtCQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdELFNBQVMsRUFBRSwwQkFBa0I7SUFDN0IsT0FBTyxFQUFFLHFDQUFzQjtJQUMvQixTQUFTLEVBQUUsMEJBQWtCO0lBQzdCLEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsR0FBRyxFQUFFLGlDQUFrQjtJQUN2QixHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsS0FBSyxFQUFFLG1DQUFvQjtJQUMzQixHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLEdBQUcsRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNqQyxHQUFHLEVBQUUsRUFBRTtJQUNQLEdBQUcsRUFBRSxpQ0FBa0I7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY291bnRDb2luIH0gZnJvbSAnLi9hY2NvdW50JztcbmltcG9ydCB7IENvaW5GYW1pbHksIENvaW5GZWF0dXJlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7XG4gIEFEQV9UT0tFTl9GRUFUVVJFUyxcbiAgQVBUX0ZFQVRVUkVTLFxuICBCU0NfVE9LRU5fRkVBVFVSRVMsXG4gIENBTlRPTl9UT0tFTl9GRUFUVVJFUyxcbiAgRVZNX0ZFQVRVUkVTLFxuICBQT0xZR09OX1RPS0VOX0ZFQVRVUkVTLFxuICBQT0xZWF9UT0tFTl9GRUFUVVJFUyxcbiAgU09MX1RPS0VOX0ZFQVRVUkVTLFxuICBTVFhfVE9LRU5fRkVBVFVSRVMsXG4gIFNVSV9UT0tFTl9GRUFUVVJFUyxcbiAgVEFPX1RPS0VOX0ZFQVRVUkVTLFxufSBmcm9tICcuL2NvaW5GZWF0dXJlcyc7XG5cbmNvbnN0IGR5bmFtaWNOZXR3b3JrRmVhdHVyZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgQ29pbkZlYXR1cmVbXT4oKTtcblxuLyoqIFJlZ2lzdGVyIGRlZmF1bHQgdG9rZW4gZmVhdHVyZXMgZm9yIGEgZHluYW1pY2FsbHkgb25ib2FyZGVkIGNoYWluIGZhbWlseS4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck5ldHdvcmtGZWF0dXJlcyhmYW1pbHk6IHN0cmluZywgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10pOiB2b2lkIHtcbiAgZHluYW1pY05ldHdvcmtGZWF0dXJlc01hcC5zZXQoZmFtaWx5LCBmZWF0dXJlcyk7XG59XG5cbi8qKiBEZWZhdWx0IHRva2VuIGZlYXR1cmUgc2V0IHNoYXJlZCBieSBcInBsYWluXCIgRVZNLWNvbXBhdGlibGUgY2hhaW4gZmFtaWxpZXMgKG5vIGJlc3Bva2UgZmVhdHVyZXMpLiAqL1xuZXhwb3J0IGNvbnN0IEVWTV9UT0tFTl9GRUFUVVJFUzogQ29pbkZlYXR1cmVbXSA9IFtcbiAgLi4uRVZNX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NJR05JTkcsXG4gIENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0RLLFxuICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9JTVMsXG4gIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX1VJLFxuICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9XUCxcbiAgQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjAsXG5dO1xuXG4vKiogU2FtZSBhcyBFVk1fVE9LRU5fRkVBVFVSRVMsIG1pbnVzIEVJUDE1NTksIGZvciBFVk0tY29tcGF0aWJsZSBmYW1pbGllcyB0aGF0IGRvbid0IHN1cHBvcnQgaXQgKGUuZy4geGRjKS4gKi9cbmV4cG9ydCBjb25zdCBFVk1fVE9LRU5fRkVBVFVSRVNfTk9OX0VJUDE1NTk6IENvaW5GZWF0dXJlW10gPSBFVk1fVE9LRU5fRkVBVFVSRVMuZmlsdGVyKFxuICAoZmVhdHVyZSkgPT4gZmVhdHVyZSAhPT0gQ29pbkZlYXR1cmUuRUlQMTU1OVxuKTtcblxuLyoqXG4gKiBQb3B1bGF0ZSBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VucyBmb3IgZXZlcnkgZmFtaWx5IHdob3NlIGJhc2UgY29pbiBjYXJyaWVzXG4gKiBDb2luRmVhdHVyZS5TVVBQT1JUU19FUkMyMCBhbmQgaXNuJ3QgYWxyZWFkeSBleHBsaWNpdGx5IGxpc3RlZCBiZWxvdywgdXNpbmcgRVZNX1RPS0VOX0ZFQVRVUkVTXG4gKiAob3IgaXRzIG5vbi1FSVAxNTU5IHZhcmlhbnQsIG1pcnJvcmluZyB0aGUgYmFzZSBjb2luJ3Mgb3duIEVJUDE1NTkgc3VwcG9ydCkuIENhbGxlZCBvbmNlIGZyb21cbiAqIGNvaW5zLnRzICh3aGljaCBoYXMgYWNjZXNzIHRvIHRoZSBmdWxsIGNvaW4gbWFwKSBzbyB0aGlzIG1vZHVsZSBkb2Vzbid0IG5lZWQgdG8gaW1wb3J0IGl0XG4gKiBkaXJlY3RseSAodGhhdCB3b3VsZCBjcmVhdGUgYSBjaXJjdWxhciBpbXBvcnQ6IGNvaW5zLnRzIC0+IG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zLnRzIC0+XG4gKiBhbGxDb2luc0FuZFRva2Vucy50cyAtPiBjb2lucy9ib3RUb2tlbnMudHMgLT4gbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMudHMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJFcmMyMEZhbWlsaWVzKGZhbWlsaWVzOiBJdGVyYWJsZTxbZmFtaWx5OiBzdHJpbmcsIHN1cHBvcnRzRWlwMTU1OTogYm9vbGVhbl0+KTogdm9pZCB7XG4gIGZvciAoY29uc3QgW2ZhbWlseSwgc3VwcG9ydHNFaXAxNTU5XSBvZiBmYW1pbGllcykge1xuICAgIGlmICghKGZhbWlseSBpbiBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VucykpIHtcbiAgICAgIG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW2ZhbWlseSBhcyBDb2luRmFtaWx5XSA9IHN1cHBvcnRzRWlwMTU1OVxuICAgICAgICA/IEVWTV9UT0tFTl9GRUFUVVJFU1xuICAgICAgICA6IEVWTV9UT0tFTl9GRUFUVVJFU19OT05fRUlQMTU1OTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBMb29rIHVwIHRva2VuIGZlYXR1cmVzIGZvciBhIGZhbWlseS5cbiAqIENoZWNrcyB0aGUgc3RhdGljIG1hcCBmaXJzdCAoaW5jbHVkaW5nIGVudHJpZXMgYmFja2ZpbGxlZCBieSByZWdpc3RlckVyYzIwRmFtaWxpZXMpLCB0aGVuIHRoZVxuICogZHluYW1pYyBtYXAuIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBmYW1pbHkgaXNuJ3QgcmVjb2duaXplZCBieSBlaXRoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrRmVhdHVyZXMoZmFtaWx5OiBzdHJpbmcpOiBDb2luRmVhdHVyZVtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW2ZhbWlseSBhcyBDb2luRmFtaWx5XSA/PyBkeW5hbWljTmV0d29ya0ZlYXR1cmVzTWFwLmdldChmYW1pbHkpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIGZpbmFsIGZlYXR1cmUgbGlzdCBmb3IgYSB0b2tlbjogdGhlIGZhbWlseSdzIGRlZmF1bHQgdG9rZW4gZmVhdHVyZXNcbiAqIHBsdXMgYGFkZGl0aW9uYWxGZWF0dXJlc2AsIG1pbnVzIGBleGNsdWRlZEZlYXR1cmVzYC4gVXNlZCBieSBnZW5lcmF0ZWQgYm90LXRva2VuXG4gKiBsaXN0cyB0byBhcHBseSB0aGUgcGVyLXRva2VuIGRpZmYgcmV0dXJuZWQgYnkgQU1TIChgZmVhdHVyZXM9ZmFsc2VgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuRmVhdHVyZXMoXG4gIGZhbWlseTogc3RyaW5nLFxuICBhZGRpdGlvbmFsRmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBbXSxcbiAgZXhjbHVkZWRGZWF0dXJlczogQ29pbkZlYXR1cmVbXSA9IFtdXG4pOiBDb2luRmVhdHVyZVtdIHtcbiAgY29uc3QgYmFzZSA9IGdldE5ldHdvcmtGZWF0dXJlcyhmYW1pbHkpID8/IFtdO1xuICBjb25zdCBleGNsdWRlZCA9IG5ldyBTZXQ8Q29pbkZlYXR1cmU+KGV4Y2x1ZGVkRmVhdHVyZXMpO1xuICByZXR1cm4gWy4uLm5ldyBTZXQ8Q29pbkZlYXR1cmU+KFsuLi5iYXNlLCAuLi5hZGRpdGlvbmFsRmVhdHVyZXNdKV0uZmlsdGVyKChmKSA9PiAhZXhjbHVkZWQuaGFzKGYpKTtcbn1cblxuZXhwb3J0IGNvbnN0IG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zOiBQYXJ0aWFsPFJlY29yZDxDb2luRmFtaWx5LCBDb2luRmVhdHVyZVtdPj4gPSB7XG4gIGFsZ286IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIGFwdDogQVBUX0ZFQVRVUkVTLFxuICBhcmJldGg6IFsuLi5BY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5FSVAxNTU5XSxcbiAgYXZheGM6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIGJlcmE6IFsuLi5BY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5FSVAxNTU5XSxcbiAgYnNjOiBCU0NfVE9LRU5fRkVBVFVSRVMsXG4gIGNhbnRvbjogQ0FOVE9OX1RPS0VOX0ZFQVRVUkVTLFxuICBjZWxvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBldGg6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIGVvczogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgZ2FzZXZtOiBFVk1fVE9LRU5fRkVBVFVSRVMsXG4gIGhiYXI6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIG9wZXRoOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGthdGFuYWV0aDogRVZNX1RPS0VOX0ZFQVRVUkVTLFxuICBwb2x5Z29uOiBQT0xZR09OX1RPS0VOX0ZFQVRVUkVTLFxuICBzY3JvbGxldGg6IEVWTV9UT0tFTl9GRUFUVVJFUyxcbiAgc29sOiBTT0xfVE9LRU5fRkVBVFVSRVMsXG4gIHN0eDogU1RYX1RPS0VOX0ZFQVRVUkVTLFxuICBzdWk6IFNVSV9UT0tFTl9GRUFUVVJFUyxcbiAgdGFvOiBUQU9fVE9LRU5fRkVBVFVSRVMsXG4gIHBvbHl4OiBQT0xZWF9UT0tFTl9GRUFUVVJFUyxcbiAgdHJ4OiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICB4bG06IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHhycDogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgb2ZjOiBbXSxcbiAgYWRhOiBBREFfVE9LRU5fRkVBVFVSRVMsXG59O1xuIl19
|