@bitgo-beta/statics 15.1.1-beta.182 → 15.1.1-beta.1821
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 +1130 -75
- package/dist/src/account.d.ts.map +1 -1
- package/dist/src/account.js +1780 -160
- 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 +1685 -0
- package/dist/src/avaxp.d.ts.map +1 -1
- package/dist/src/avaxp.js +9 -3
- package/dist/src/base.d.ts +2514 -53
- package/dist/src/base.d.ts.map +1 -1
- package/dist/src/base.js +2624 -63
- 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 +117 -0
- package/dist/src/coinFeatures.d.ts.map +1 -0
- package/dist/src/coinFeatures.js +766 -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 +22 -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 +130 -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 +52 -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 +212 -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 +216 -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 +22 -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 +2046 -0
- package/dist/src/coins/erc7984Tokens.d.ts +18 -0
- package/dist/src/coins/erc7984Tokens.d.ts.map +1 -0
- package/dist/src/coins/erc7984Tokens.js +32 -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/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 +1124 -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 +1857 -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 +201 -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 +492 -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 +451 -1695
- 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 +3 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +9 -2
- package/dist/src/flrp.d.ts +40 -0
- package/dist/src/flrp.d.ts.map +1 -0
- package/dist/src/flrp.js +68 -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 +41 -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 +16 -1
- package/dist/src/map.d.ts.map +1 -1
- package/dist/src/map.js +194 -34
- package/dist/src/networkFeatureMapForTokens.d.ts +17 -0
- package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
- package/dist/src/networkFeatureMapForTokens.js +75 -0
- package/dist/src/networks.d.ts +1947 -61
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +2392 -106
- 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 +687 -108
- package/dist/src/tokenConfig.d.ts.map +1 -1
- package/dist/src/tokenConfig.js +1085 -220
- package/dist/src/utxo.d.ts +3 -1
- package/dist/src/utxo.d.ts.map +1 -1
- package/dist/src/utxo.js +84 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -3
- package/.mocharc.js +0 -10
- package/.prettierignore +0 -2
- package/CHANGELOG.md +0 -1155
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lightningCoins = exports.LightningCoin = void 0;
|
|
4
|
+
exports.lightning = lightning;
|
|
5
|
+
const base_1 = require("./base");
|
|
6
|
+
const networks_1 = require("./networks");
|
|
7
|
+
class LightningCoin extends base_1.BaseCoin {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super({
|
|
10
|
+
...options,
|
|
11
|
+
kind: base_1.CoinKind.CRYPTO,
|
|
12
|
+
isToken: false,
|
|
13
|
+
decimalPlaces: 11,
|
|
14
|
+
});
|
|
15
|
+
this.network = options.network;
|
|
16
|
+
}
|
|
17
|
+
disallowedFeatures() {
|
|
18
|
+
return new Set([base_1.CoinFeature.ACCOUNT_MODEL]);
|
|
19
|
+
}
|
|
20
|
+
requiredFeatures() {
|
|
21
|
+
return new Set([base_1.CoinFeature.LIGHTNING_MODEL]);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.LightningCoin = LightningCoin;
|
|
25
|
+
LightningCoin.DEFAULT_FEATURES = [
|
|
26
|
+
base_1.CoinFeature.LIGHTNING_MODEL,
|
|
27
|
+
base_1.CoinFeature.CUSTODY,
|
|
28
|
+
base_1.CoinFeature.CUSTODY_BITGO_TRUST,
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Factory function for lightning coin instances.
|
|
32
|
+
*
|
|
33
|
+
* @param id uuid v4 of the coin
|
|
34
|
+
* @param name unique identifier of the coin
|
|
35
|
+
* @param fullName Complete human-readable name of the coin
|
|
36
|
+
* @param network Network object for this coin
|
|
37
|
+
* @param asset Asset which this coin represents. This is the same for both mainnet and testnet variants of a coin.
|
|
38
|
+
* @param features? Features of this coin. Defaults to the DEFAULT_FEATURES defined in `LightningCoin`
|
|
39
|
+
* @param prefix? Optional coin prefix. Defaults to empty string
|
|
40
|
+
* @param suffix? Optional coin suffix. Defaults to coin name.
|
|
41
|
+
* @param primaryKeyCurve The elliptic curve for this chain/token
|
|
42
|
+
*/
|
|
43
|
+
function lightning(id, name, fullName, network, asset, baseUnit, features = LightningCoin.DEFAULT_FEATURES, prefix = '', suffix = name.toUpperCase(),
|
|
44
|
+
/** All Lightnings BitGo supports are SECP256K1 **/
|
|
45
|
+
primaryKeyCurve = base_1.KeyCurve.Secp256k1) {
|
|
46
|
+
return Object.freeze(new LightningCoin({
|
|
47
|
+
id,
|
|
48
|
+
name,
|
|
49
|
+
fullName,
|
|
50
|
+
network,
|
|
51
|
+
prefix,
|
|
52
|
+
suffix,
|
|
53
|
+
features,
|
|
54
|
+
asset,
|
|
55
|
+
primaryKeyCurve,
|
|
56
|
+
baseUnit,
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
const LNBTC_FEATURES = [...LightningCoin.DEFAULT_FEATURES, base_1.CoinFeature.STAKING];
|
|
60
|
+
exports.lightningCoins = [
|
|
61
|
+
lightning('051aab40-efbc-4f58-9506-14cc95369e0a', 'lnbtc', 'Lightning Bitcoin', networks_1.Networks.main.lnbtc, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.LNBTC, LNBTC_FEATURES),
|
|
62
|
+
lightning('3cbabaa7-a063-4db3-b3a8-ea8cc38033e5', 'tlnbtc', 'Testnet Lightning Bitcoin', networks_1.Networks.test.lnbtc, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.LNBTC, LNBTC_FEATURES),
|
|
63
|
+
];
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpZ2h0bmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2REEsOEJBMkJDO0FBeEZELGlDQUE4RjtBQUM5Rix5Q0FBd0Q7QUFleEQsTUFBYSxhQUFjLFNBQVEsZUFBUTtJQVl6QyxZQUFZLE9BQW9DO1FBQzlDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxlQUFRLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O0FBN0JILHNDQThCQztBQTdCd0IsOEJBQWdCLEdBQUc7SUFDeEMsa0JBQVcsQ0FBQyxlQUFlO0lBQzNCLGtCQUFXLENBQUMsT0FBTztJQUNuQixrQkFBVyxDQUFDLG1CQUFtQjtDQUNoQyxDQUFDO0FBMkJKOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsRUFBVSxFQUNWLElBQVksRUFDWixRQUFnQixFQUNoQixPQUF5QixFQUN6QixLQUFzQixFQUN0QixRQUFrQixFQUNsQixXQUEwQixhQUFhLENBQUMsZ0JBQWdCLEVBQ3hELE1BQU0sR0FBRyxFQUFFLEVBQ1gsU0FBaUIsSUFBSSxDQUFDLFdBQVcsRUFBRTtBQUNuQyxtREFBbUQ7QUFDbkQsa0JBQTRCLGVBQVEsQ0FBQyxTQUFTO0lBRTlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsSUFBSSxhQUFhLENBQUM7UUFDaEIsRUFBRTtRQUNGLElBQUk7UUFDSixRQUFRO1FBQ1IsT0FBTztRQUNQLE1BQU07UUFDTixNQUFNO1FBQ04sUUFBUTtRQUNSLEtBQUs7UUFDTCxlQUFlO1FBQ2YsUUFBUTtLQUNULENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVuRSxRQUFBLGNBQWMsR0FBeUI7SUFDbEQsU0FBUyxDQUNQLHNDQUFzQyxFQUN0QyxPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLG1CQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFDbkIsc0JBQWUsQ0FBQyxHQUFHLEVBQ25CLGVBQVEsQ0FBQyxLQUFLLEVBQ2QsY0FBYyxDQUNmO0lBQ0QsU0FBUyxDQUNQLHNDQUFzQyxFQUN0QyxRQUFRLEVBQ1IsMkJBQTJCLEVBQzNCLG1CQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFDbkIsc0JBQWUsQ0FBQyxHQUFHLEVBQ25CLGVBQVEsQ0FBQyxLQUFLLEVBQ2QsY0FBYyxDQUNmO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luLCBCYXNlVW5pdCwgQ29pbkZlYXR1cmUsIENvaW5LaW5kLCBLZXlDdXJ2ZSwgVW5kZXJseWluZ0Fzc2V0IH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IExpZ2h0bmluZ05ldHdvcmssIE5ldHdvcmtzIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5cbmludGVyZmFjZSBMaWdodG5pbmdDb25zdHJ1Y3Rvck9wdGlvbnMge1xuICBpZDogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG5ldHdvcms6IExpZ2h0bmluZ05ldHdvcms7XG4gIGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdO1xuICBhc3NldDogVW5kZXJseWluZ0Fzc2V0O1xuICBiYXNlVW5pdDogQmFzZVVuaXQ7XG4gIHByZWZpeD86IHN0cmluZztcbiAgc3VmZml4Pzogc3RyaW5nO1xuICBwcmltYXJ5S2V5Q3VydmU6IEtleUN1cnZlO1xufVxuXG5leHBvcnQgY2xhc3MgTGlnaHRuaW5nQ29pbiBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZFQVRVUkVTID0gW1xuICAgIENvaW5GZWF0dXJlLkxJR0hUTklOR19NT0RFTCxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fVFJVU1QsXG4gIF07XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZmllbGRzIGZvciBsaWdodG5pbmcgY29pbnNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuZXR3b3JrOiBMaWdodG5pbmdOZXR3b3JrO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExpZ2h0bmluZ0NvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBraW5kOiBDb2luS2luZC5DUllQVE8sXG4gICAgICBpc1Rva2VuOiBmYWxzZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IDExLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uZXR3b3JrID0gb3B0aW9ucy5uZXR3b3JrO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc2FsbG93ZWRGZWF0dXJlcygpOiBTZXQ8Q29pbkZlYXR1cmU+IHtcbiAgICByZXR1cm4gbmV3IFNldChbQ29pbkZlYXR1cmUuQUNDT1VOVF9NT0RFTF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcXVpcmVkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW0NvaW5GZWF0dXJlLkxJR0hUTklOR19NT0RFTF0pO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiBmb3IgbGlnaHRuaW5nIGNvaW4gaW5zdGFuY2VzLlxuICpcbiAqIEBwYXJhbSBpZCB1dWlkIHY0IG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmFtZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29pblxuICogQHBhcmFtIGZ1bGxOYW1lIENvbXBsZXRlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBuZXR3b3JrIE5ldHdvcmsgb2JqZWN0IGZvciB0aGlzIGNvaW5cbiAqIEBwYXJhbSBhc3NldCBBc3NldCB3aGljaCB0aGlzIGNvaW4gcmVwcmVzZW50cy4gVGhpcyBpcyB0aGUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IHZhcmlhbnRzIG9mIGEgY29pbi5cbiAqIEBwYXJhbSBmZWF0dXJlcz8gRmVhdHVyZXMgb2YgdGhpcyBjb2luLiBEZWZhdWx0cyB0byB0aGUgREVGQVVMVF9GRUFUVVJFUyBkZWZpbmVkIGluIGBMaWdodG5pbmdDb2luYFxuICogQHBhcmFtIHByZWZpeD8gT3B0aW9uYWwgY29pbiBwcmVmaXguIERlZmF1bHRzIHRvIGVtcHR5IHN0cmluZ1xuICogQHBhcmFtIHN1ZmZpeD8gT3B0aW9uYWwgY29pbiBzdWZmaXguIERlZmF1bHRzIHRvIGNvaW4gbmFtZS5cbiAqIEBwYXJhbSBwcmltYXJ5S2V5Q3VydmUgVGhlIGVsbGlwdGljIGN1cnZlIGZvciB0aGlzIGNoYWluL3Rva2VuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaWdodG5pbmcoXG4gIGlkOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgZnVsbE5hbWU6IHN0cmluZyxcbiAgbmV0d29yazogTGlnaHRuaW5nTmV0d29yayxcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldCxcbiAgYmFzZVVuaXQ6IEJhc2VVbml0LFxuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXSA9IExpZ2h0bmluZ0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgcHJlZml4ID0gJycsXG4gIHN1ZmZpeDogc3RyaW5nID0gbmFtZS50b1VwcGVyQ2FzZSgpLFxuICAvKiogQWxsIExpZ2h0bmluZ3MgQml0R28gc3VwcG9ydHMgYXJlIFNFQ1AyNTZLMSAqKi9cbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZSA9IEtleUN1cnZlLlNlY3AyNTZrMVxuKSB7XG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBMaWdodG5pbmdDb2luKHtcbiAgICAgIGlkLFxuICAgICAgbmFtZSxcbiAgICAgIGZ1bGxOYW1lLFxuICAgICAgbmV0d29yayxcbiAgICAgIHByZWZpeCxcbiAgICAgIHN1ZmZpeCxcbiAgICAgIGZlYXR1cmVzLFxuICAgICAgYXNzZXQsXG4gICAgICBwcmltYXJ5S2V5Q3VydmUsXG4gICAgICBiYXNlVW5pdCxcbiAgICB9KVxuICApO1xufVxuXG5jb25zdCBMTkJUQ19GRUFUVVJFUyA9IFsuLi5MaWdodG5pbmdDb2luLkRFRkFVTFRfRkVBVFVSRVMsIENvaW5GZWF0dXJlLlNUQUtJTkddO1xuXG5leHBvcnQgY29uc3QgbGlnaHRuaW5nQ29pbnM6IFJlYWRvbmx5PEJhc2VDb2luPltdID0gW1xuICBsaWdodG5pbmcoXG4gICAgJzA1MWFhYjQwLWVmYmMtNGY1OC05NTA2LTE0Y2M5NTM2OWUwYScsXG4gICAgJ2xuYnRjJyxcbiAgICAnTGlnaHRuaW5nIEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLm1haW4ubG5idGMsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5MTkJUQyxcbiAgICBMTkJUQ19GRUFUVVJFU1xuICApLFxuICBsaWdodG5pbmcoXG4gICAgJzNjYmFiYWE3LWEwNjMtNGRiMy1iM2E4LWVhOGNjMzgwMzNlNScsXG4gICAgJ3RsbmJ0YycsXG4gICAgJ1Rlc3RuZXQgTGlnaHRuaW5nIEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QubG5idGMsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5MTkJUQyxcbiAgICBMTkJUQ19GRUFUVVJFU1xuICApLFxuXTtcbiJdfQ==
|
package/dist/src/map.d.ts
CHANGED
|
@@ -3,9 +3,24 @@ export declare class CoinMap {
|
|
|
3
3
|
private readonly _map;
|
|
4
4
|
private readonly _coinByIds;
|
|
5
5
|
private readonly _coinByAliases;
|
|
6
|
+
private readonly _coinByContractAddress;
|
|
7
|
+
private readonly _coinByNftCollectionID;
|
|
8
|
+
private _coinByChainId;
|
|
6
9
|
private constructor();
|
|
7
10
|
static fromCoins(coins: Readonly<BaseCoin>[]): CoinMap;
|
|
8
|
-
|
|
11
|
+
addCoin(coin: Readonly<BaseCoin>): void;
|
|
12
|
+
/**
|
|
13
|
+
* Replace a Base coin object completely from the CoinMap using its ID.
|
|
14
|
+
* @param {string} key key to search the old coin object
|
|
15
|
+
* @param {Readonly<BaseCoin>} coin new coin object
|
|
16
|
+
*/
|
|
17
|
+
replace(coin: Readonly<BaseCoin>): void;
|
|
18
|
+
/**
|
|
19
|
+
* Hardcoded mapping for backward compatibility.
|
|
20
|
+
*/
|
|
21
|
+
private static readonly LEGACY_CHAIN_ID_MAP;
|
|
22
|
+
private buildChainIdMap;
|
|
23
|
+
coinNameFromChainId(chainId: number): string | undefined;
|
|
9
24
|
/**
|
|
10
25
|
* Override `get` to throw if a coin is missing, instead of returning undefined.
|
|
11
26
|
* It will honor key equivalences in case given key is missing.
|
package/dist/src/map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKlC,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IAEpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IAGxE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyC;IAEhF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyC;IAEhF,OAAO,CAAC,cAAc,CAAoC;IAE1D,OAAO;IAIP,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO;IAQ/C,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI;IA0B9C;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI;IAmB9C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CA+FzC;IAEF,OAAO,CAAC,eAAe;IAkBhB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAY/D;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAepC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUzB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAQtE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC;IAQjG,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO;IAUnF,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI7E,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;CAG3E"}
|
package/dist/src/map.js
CHANGED
|
@@ -2,51 +2,104 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CoinMap = void 0;
|
|
4
4
|
const errors_1 = require("./errors");
|
|
5
|
+
const account_1 = require("./account");
|
|
5
6
|
class CoinMap {
|
|
6
7
|
constructor() {
|
|
7
8
|
this._map = new Map();
|
|
8
9
|
this._coinByIds = new Map();
|
|
9
10
|
// Holds key equivalences used during an asset name migration
|
|
10
11
|
this._coinByAliases = new Map();
|
|
12
|
+
// map of coin by address -> the key is the family:contractAddress
|
|
13
|
+
// the family is the where the coin is e.g l1 chains like eth, bsc etc. or l2 like arbeth, celo etc.
|
|
14
|
+
this._coinByContractAddress = new Map();
|
|
15
|
+
// map of coin by NFT collection ID -> the key is the (t)family:nftCollectionID
|
|
16
|
+
this._coinByNftCollectionID = new Map();
|
|
17
|
+
// Lazily initialized cache for chainId to coin name mapping (derived from network definitions)
|
|
18
|
+
this._coinByChainId = null;
|
|
11
19
|
// Do not instantiate
|
|
12
20
|
}
|
|
13
21
|
static fromCoins(coins) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
const coinMap = new CoinMap();
|
|
23
|
+
coins.forEach((coin) => {
|
|
24
|
+
coinMap.addCoin(coin);
|
|
25
|
+
});
|
|
26
|
+
return coinMap;
|
|
27
|
+
}
|
|
28
|
+
addCoin(coin) {
|
|
29
|
+
if (this._map.has(coin.name)) {
|
|
30
|
+
throw new errors_1.DuplicateCoinDefinitionError(coin.name);
|
|
31
|
+
}
|
|
32
|
+
if (this._coinByIds.has(coin.id)) {
|
|
33
|
+
throw new errors_1.DuplicateCoinIdDefinitionError(coin.id);
|
|
34
|
+
}
|
|
35
|
+
const alias = coin.alias;
|
|
36
|
+
if (alias && this._coinByAliases.has(alias)) {
|
|
37
|
+
throw new errors_1.DuplicateCoinDefinitionError(alias);
|
|
38
|
+
}
|
|
39
|
+
this._map.set(coin.name, coin);
|
|
40
|
+
this._coinByIds.set(coin.id, coin);
|
|
41
|
+
if (alias) {
|
|
42
|
+
this._coinByAliases.set(coin.alias, coin);
|
|
43
|
+
}
|
|
44
|
+
if (coin.isToken) {
|
|
45
|
+
if (coin instanceof account_1.ContractAddressDefinedToken) {
|
|
46
|
+
this._coinByContractAddress.set(`${coin.family}:${coin.contractAddress}`, coin);
|
|
47
|
+
}
|
|
48
|
+
else if (coin instanceof account_1.NFTCollectionIdDefinedToken) {
|
|
49
|
+
this._coinByNftCollectionID.set(`${coin.prefix}${coin.family}:${coin.nftCollectionId}`, coin);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Replace a Base coin object completely from the CoinMap using its ID.
|
|
55
|
+
* @param {string} key key to search the old coin object
|
|
56
|
+
* @param {Readonly<BaseCoin>} coin new coin object
|
|
57
|
+
*/
|
|
58
|
+
replace(coin) {
|
|
59
|
+
if (this.has(coin.id)) {
|
|
60
|
+
const oldCoin = this.get(coin.id);
|
|
61
|
+
this._map.delete(oldCoin.name);
|
|
62
|
+
this._coinByIds.delete(oldCoin.id);
|
|
63
|
+
if (oldCoin.alias) {
|
|
64
|
+
this._coinByAliases.delete(oldCoin.alias);
|
|
65
|
+
}
|
|
66
|
+
if (oldCoin.isToken) {
|
|
67
|
+
if (oldCoin instanceof account_1.ContractAddressDefinedToken) {
|
|
68
|
+
this._coinByContractAddress.delete(`${oldCoin.family}:${oldCoin.contractAddress}`);
|
|
69
|
+
}
|
|
70
|
+
else if (oldCoin instanceof account_1.NFTCollectionIdDefinedToken) {
|
|
71
|
+
this._coinByNftCollectionID.delete(`${oldCoin.prefix}${oldCoin.family}:${oldCoin.nftCollectionId}`);
|
|
72
|
+
}
|
|
17
73
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
74
|
+
}
|
|
75
|
+
this.addCoin(coin);
|
|
76
|
+
}
|
|
77
|
+
buildChainIdMap() {
|
|
78
|
+
const chainIdMap = new Map();
|
|
79
|
+
this._map.forEach((coin, coinName) => {
|
|
80
|
+
// Skip tokens - they share the same chainId as their parent chain
|
|
81
|
+
if (coin.isToken) {
|
|
82
|
+
return;
|
|
21
83
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (
|
|
26
|
-
|
|
84
|
+
const network = coin.network;
|
|
85
|
+
if ('chainId' in network && typeof network.chainId === 'number') {
|
|
86
|
+
const chainId = network.chainId;
|
|
87
|
+
if (!chainIdMap.has(chainId)) {
|
|
88
|
+
chainIdMap.set(chainId, coinName);
|
|
27
89
|
}
|
|
28
|
-
coinMap._coinByAliases.set(alias, coin);
|
|
29
90
|
}
|
|
30
|
-
|
|
31
|
-
|
|
91
|
+
});
|
|
92
|
+
return chainIdMap;
|
|
32
93
|
}
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
56: 'bsc',
|
|
43
|
-
97: 'tbsc',
|
|
44
|
-
42161: 'arbeth',
|
|
45
|
-
421614: 'tarbeth',
|
|
46
|
-
10: 'opeth',
|
|
47
|
-
11155420: 'topeth',
|
|
48
|
-
};
|
|
49
|
-
return ethLikeCoinFromChainId[chainId];
|
|
94
|
+
coinNameFromChainId(chainId) {
|
|
95
|
+
const coinName = CoinMap.LEGACY_CHAIN_ID_MAP[chainId];
|
|
96
|
+
if (coinName) {
|
|
97
|
+
return coinName;
|
|
98
|
+
}
|
|
99
|
+
if (this._coinByChainId === null) {
|
|
100
|
+
this._coinByChainId = this.buildChainIdMap();
|
|
101
|
+
}
|
|
102
|
+
return this._coinByChainId.get(chainId);
|
|
50
103
|
}
|
|
51
104
|
/**
|
|
52
105
|
* Override `get` to throw if a coin is missing, instead of returning undefined.
|
|
@@ -55,14 +108,22 @@ class CoinMap {
|
|
|
55
108
|
* @return {BaseCoin}
|
|
56
109
|
*/
|
|
57
110
|
get(key) {
|
|
58
|
-
const coin = this._map.get(key) ||
|
|
111
|
+
const coin = this._map.get(key) ||
|
|
112
|
+
this._coinByIds.get(key) ||
|
|
113
|
+
this._coinByAliases.get(key) ||
|
|
114
|
+
this._coinByContractAddress.get(key) ||
|
|
115
|
+
this._coinByNftCollectionID.get(key);
|
|
59
116
|
if (coin) {
|
|
60
117
|
return coin;
|
|
61
118
|
}
|
|
62
119
|
throw new errors_1.CoinNotDefinedError(key);
|
|
63
120
|
}
|
|
64
121
|
has(key) {
|
|
65
|
-
return this._map.has(key) ||
|
|
122
|
+
return (this._map.has(key) ||
|
|
123
|
+
this._coinByIds.has(key) ||
|
|
124
|
+
this._coinByAliases.has(key) ||
|
|
125
|
+
this._coinByContractAddress.has(key) ||
|
|
126
|
+
this._coinByNftCollectionID.has(key));
|
|
66
127
|
}
|
|
67
128
|
map(mapper) {
|
|
68
129
|
const mapResult = [];
|
|
@@ -95,4 +156,103 @@ class CoinMap {
|
|
|
95
156
|
}
|
|
96
157
|
}
|
|
97
158
|
exports.CoinMap = CoinMap;
|
|
98
|
-
|
|
159
|
+
/**
|
|
160
|
+
* Hardcoded mapping for backward compatibility.
|
|
161
|
+
*/
|
|
162
|
+
CoinMap.LEGACY_CHAIN_ID_MAP = {
|
|
163
|
+
1: 'eth',
|
|
164
|
+
42: 'teth',
|
|
165
|
+
5: 'gteth',
|
|
166
|
+
560048: 'hteth',
|
|
167
|
+
10001: 'ethw',
|
|
168
|
+
80002: 'tpolygon',
|
|
169
|
+
137: 'polygon',
|
|
170
|
+
56: 'bsc',
|
|
171
|
+
97: 'tbsc',
|
|
172
|
+
42161: 'arbeth',
|
|
173
|
+
421614: 'tarbeth',
|
|
174
|
+
10: 'opeth',
|
|
175
|
+
11155420: 'topeth',
|
|
176
|
+
1116: 'coredao',
|
|
177
|
+
1114: 'tcoredao',
|
|
178
|
+
248: 'oas',
|
|
179
|
+
9372: 'toas',
|
|
180
|
+
14: 'flr',
|
|
181
|
+
114: 'tflr',
|
|
182
|
+
19: 'sgb',
|
|
183
|
+
16: 'tsgb',
|
|
184
|
+
1111: 'wemix',
|
|
185
|
+
1112: 'twemix',
|
|
186
|
+
50: 'xdc',
|
|
187
|
+
51: 'txdc',
|
|
188
|
+
80094: 'bera',
|
|
189
|
+
80069: 'tbera',
|
|
190
|
+
42220: 'celo',
|
|
191
|
+
11142220: 'tcelo',
|
|
192
|
+
2222: 'kava',
|
|
193
|
+
2221: 'tkava',
|
|
194
|
+
43114: 'avaxc',
|
|
195
|
+
43113: 'tavaxc',
|
|
196
|
+
100: 'gno',
|
|
197
|
+
130: 'unieth',
|
|
198
|
+
1301: 'tunieth',
|
|
199
|
+
190415: 'hppeth',
|
|
200
|
+
181228: 'thppeth',
|
|
201
|
+
6985385: 'h',
|
|
202
|
+
7080969: 'th',
|
|
203
|
+
4663: 'hoodeth',
|
|
204
|
+
46630: 'thoodeth',
|
|
205
|
+
324: 'zketh',
|
|
206
|
+
8453: 'baseeth',
|
|
207
|
+
84532: 'tbaseeth',
|
|
208
|
+
143: 'mon',
|
|
209
|
+
10143: 'tmon',
|
|
210
|
+
480: 'world',
|
|
211
|
+
4801: 'tworld',
|
|
212
|
+
5031: 'somi',
|
|
213
|
+
50312: 'tstt',
|
|
214
|
+
1868: 'soneium',
|
|
215
|
+
1946: 'tsoneium',
|
|
216
|
+
33111: 'tapechain',
|
|
217
|
+
33139: 'apechain',
|
|
218
|
+
688689: 'tphrs',
|
|
219
|
+
102030: 'ctc',
|
|
220
|
+
102031: 'tctc',
|
|
221
|
+
998: 'thypeevm',
|
|
222
|
+
999: 'hypeevm',
|
|
223
|
+
16602: 'tog',
|
|
224
|
+
16661: 'og',
|
|
225
|
+
9746: 'txpl',
|
|
226
|
+
9745: 'xpl',
|
|
227
|
+
14601: 'tsonic',
|
|
228
|
+
146: 'sonic',
|
|
229
|
+
1328: 'tseievm',
|
|
230
|
+
1329: 'seievm',
|
|
231
|
+
1001: 'tkaia',
|
|
232
|
+
8217: 'kaia',
|
|
233
|
+
1270: 'tirys',
|
|
234
|
+
59141: 'tlineaeth',
|
|
235
|
+
59144: 'lineaeth',
|
|
236
|
+
1315: 'tip',
|
|
237
|
+
1514: 'ip',
|
|
238
|
+
545: 'tflow',
|
|
239
|
+
747: 'flow',
|
|
240
|
+
98867: 'tplume',
|
|
241
|
+
98866: 'plume',
|
|
242
|
+
6343: 'tmegaeth',
|
|
243
|
+
4326: 'megaeth',
|
|
244
|
+
295: 'hbarevm',
|
|
245
|
+
296: 'thbarevm',
|
|
246
|
+
196: 'okbxlayer',
|
|
247
|
+
1952: 'tokbxlayer',
|
|
248
|
+
5734951: 'jovayeth',
|
|
249
|
+
2019775: 'tjovayeth',
|
|
250
|
+
5042002: 'tarcusdc',
|
|
251
|
+
4217: 'tempo',
|
|
252
|
+
42431: 'ttempo',
|
|
253
|
+
5000: 'mantle',
|
|
254
|
+
5003: 'tmantle',
|
|
255
|
+
25363: 'fluenteth',
|
|
256
|
+
20994: 'tfluenteth',
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxQ0FBNkc7QUFDN0csdUNBQXFGO0FBR3JGLE1BQWEsT0FBTztJQWFsQjtRQVppQixTQUFJLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDN0MsZUFBVSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ3BFLDZEQUE2RDtRQUM1QyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ3hFLGtFQUFrRTtRQUNsRSxvR0FBb0c7UUFDbkYsMkJBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDaEYsK0VBQStFO1FBQzlELDJCQUFzQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ2hGLCtGQUErRjtRQUN2RixtQkFBYyxHQUErQixJQUFJLENBQUM7UUFHeEQscUJBQXFCO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQTJCO1FBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQXdCO1FBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLHFDQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxN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S0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsSUFBSTtJQUNYLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLEtBQUs7SUFDWCxLQUFLLEVBQUUsUUFBUTtJQUNmLEdBQUcsRUFBRSxPQUFPO0lBQ1osSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxXQUFXO0lBQ2xCLEtBQUssRUFBRSxVQUFVO0lBQ2pCLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLElBQUk7SUFDVixHQUFHLEVBQUUsT0FBTztJQUNaLEdBQUcsRUFBRSxNQUFNO0lBQ1gsS0FBSyxFQUFFLFFBQVE7SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxTQUFTO0lBQ2YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsVUFBVTtJQUNmLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLElBQUksRUFBRSxZQUFZO0lBQ2xCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLFFBQVE7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFlBQVk7Q0FDcEIsQUEvRjBDLENBK0Z6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IER1cGxpY2F0ZUNvaW5EZWZpbml0aW9uRXJyb3IsIENvaW5Ob3REZWZpbmVkRXJyb3IsIER1cGxpY2F0ZUNvaW5JZERlZmluaXRpb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IENvbnRyYWN0QWRkcmVzc0RlZmluZWRUb2tlbiwgTkZUQ29sbGVjdGlvbklkRGVmaW5lZFRva2VuIH0gZnJvbSAnLi9hY2NvdW50JztcbmltcG9ydCB7IEV0aGVyZXVtTmV0d29yayB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5leHBvcnQgY2xhc3MgQ29pbk1hcCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvaW5CeUlkcyA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIC8vIEhvbGRzIGtleSBlcXVpdmFsZW5jZXMgdXNlZCBkdXJpbmcgYW4gYXNzZXQgbmFtZSBtaWdyYXRpb25cbiAgcHJpdmF0ZSByZWFkb25seSBfY29pbkJ5QWxpYXNlcyA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIC8vIG1hcCBvZiBjb2luIGJ5IGFkZHJlc3MgLT4gdGhlIGtleSBpcyB0aGUgZmFtaWx5OmNvbnRyYWN0QWRkcmVzc1xuICAvLyB0aGUgZmFtaWx5IGlzIHRoZSB3aGVyZSB0aGUgY29pbiBpcyBlLmcgbDEgY2hhaW5zIGxpa2UgZXRoLCBic2MgZXRjLiBvciBsMiBsaWtlIGFyYmV0aCwgY2VsbyBldGMuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvaW5CeUNvbnRyYWN0QWRkcmVzcyA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIC8vIG1hcCBvZiBjb2luIGJ5IE5GVCBjb2xsZWN0aW9uIElEIC0+IHRoZSBrZXkgaXMgdGhlICh0KWZhbWlseTpuZnRDb2xsZWN0aW9uSURcbiAgcHJpdmF0ZSByZWFkb25seSBfY29pbkJ5TmZ0Q29sbGVjdGlvbklEID0gbmV3IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4oKTtcbiAgLy8gTGF6aWx5IGluaXRpYWxpemVkIGNhY2hlIGZvciBjaGFpbklkIHRvIGNvaW4gbmFtZSBtYXBwaW5nIChkZXJpdmVkIGZyb20gbmV0d29yayBkZWZpbml0aW9ucylcbiAgcHJpdmF0ZSBfY29pbkJ5Q2hhaW5JZDogTWFwPG51bWJlciwgc3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gRG8gbm90IGluc3RhbnRpYXRlXG4gIH1cblxuICBzdGF0aWMgZnJvbUNvaW5zKGNvaW5zOiBSZWFkb25seTxCYXNlQ29pbj5bXSk6IENvaW5NYXAge1xuICAgIGNvbnN0IGNvaW5NYXAgPSBuZXcgQ29pbk1hcCgpO1xuICAgIGNvaW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgICAgIGNvaW5NYXAuYWRkQ29pbihjb2luKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29pbk1hcDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb2luKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9tYXAuaGFzKGNvaW4ubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVDb2luRGVmaW5pdGlvbkVycm9yKGNvaW4ubmFtZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jb2luQnlJZHMuaGFzKGNvaW4uaWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRHVwbGljYXRlQ29pbklkRGVmaW5pdGlvbkVycm9yKGNvaW4uaWQpO1xuICAgIH1cbiAgICBjb25zdCBhbGlhcyA9IGNvaW4uYWxpYXM7XG4gICAgaWYgKGFsaWFzICYmIHRoaXMuX2NvaW5CeUFsaWFzZXMuaGFzKGFsaWFzKSkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZUNvaW5EZWZpbml0aW9uRXJyb3IoYWxpYXMpO1xuICAgIH1cbiAgICB0aGlzLl9tYXAuc2V0KGNvaW4ubmFtZSwgY29pbik7XG4gICAgdGhpcy5fY29pbkJ5SWRzLnNldChjb2luLmlkLCBjb2luKTtcbiAgICBpZiAoYWxpYXMpIHtcbiAgICAgIHRoaXMuX2NvaW5CeUFsaWFzZXMuc2V0KGNvaW4uYWxpYXMsIGNvaW4pO1xuICAgIH1cblxuICAgIGlmIChjb2luLmlzVG9rZW4pIHtcbiAgICAgIGlmIChjb2luIGluc3RhbmNlb2YgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuKSB7XG4gICAgICAgIHRoaXMuX2NvaW5CeUNvbnRyYWN0QWRkcmVzcy5zZXQoYCR7Y29pbi5mYW1pbHl9OiR7Y29pbi5jb250cmFjdEFkZHJlc3N9YCwgY29pbik7XG4gICAgICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBORlRDb2xsZWN0aW9uSWREZWZpbmVkVG9rZW4pIHtcbiAgICAgICAgdGhpcy5fY29pbkJ5TmZ0Q29sbGVjdGlvbklELnNldChgJHtjb2luLnByZWZpeH0ke2NvaW4uZmFtaWx5fToke2NvaW4ubmZ0Q29sbGVjdGlvbklkfWAsIGNvaW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIGEgQmFzZSBjb2luIG9iamVjdCBjb21wbGV0ZWx5IGZyb20gdGhlIENvaW5NYXAgdXNpbmcgaXRzIElELlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IGtleSB0byBzZWFyY2ggdGhlIG9sZCBjb2luIG9iamVjdFxuICAgKiBAcGFyYW0ge1JlYWRvbmx5PEJhc2VDb2luPn0gY29pbiBuZXcgY29pbiBvYmplY3RcbiAgICovXG4gIHB1YmxpYyByZXBsYWNlKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPik6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhcyhjb2luLmlkKSkge1xuICAgICAgY29uc3Qgb2xkQ29pbiA9IHRoaXMuZ2V0KGNvaW4uaWQpO1xuICAgICAgdGhpcy5fbWFwLmRlbGV0ZShvbGRDb2luLm5hbWUpO1xuICAgICAgdGhpcy5fY29pbkJ5SWRzLmRlbGV0ZShvbGRDb2luLmlkKTtcbiAgICAgIGlmIChvbGRDb2luLmFsaWFzKSB7XG4gICAgICAgIHRoaXMuX2NvaW5CeUFsaWFzZXMuZGVsZXRlKG9sZENvaW4uYWxpYXMpO1xuICAgICAgfVxuICAgICAgaWYgKG9sZENvaW4uaXNUb2tlbikge1xuICAgICAgICBpZiAob2xkQ29pbiBpbnN0YW5jZW9mIENvbnRyYWN0QWRkcmVzc0RlZmluZWRUb2tlbikge1xuICAgICAgICAgIHRoaXMuX2NvaW5CeUNvbnRyYWN0QWRkcmVzcy5kZWxldGUoYCR7b2xkQ29pbi5mYW1pbHl9OiR7b2xkQ29pbi5jb250cmFjdEFkZHJlc3N9YCk7XG4gICAgICAgIH0gZWxzZSBpZiAob2xkQ29pbiBpbnN0YW5jZW9mIE5GVENvbGxlY3Rpb25JZERlZmluZWRUb2tlbikge1xuICAgICAgICAgIHRoaXMuX2NvaW5CeU5mdENvbGxlY3Rpb25JRC5kZWxldGUoYCR7b2xkQ29pbi5wcmVmaXh9JHtvbGRDb2luLmZhbWlseX06JHtvbGRDb2luLm5mdENvbGxlY3Rpb25JZH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFkZENvaW4oY29pbik7XG4gIH1cblxuICAvKipcbiAgICogSGFyZGNvZGVkIG1hcHBpbmcgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMRUdBQ1lfQ0hBSU5fSURfTUFQOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xuICAgIDE6ICdldGgnLFxuICAgIDQyOiAndGV0aCcsXG4gICAgNTogJ2d0ZXRoJyxcbiAgICA1NjAwNDg6ICdodGV0aCcsXG4gICAgMTAwMDE6ICdldGh3JyxcbiAgICA4MDAwMjogJ3Rwb2x5Z29uJyxcbiAgICAxMzc6ICdwb2x5Z29uJyxcbiAgICA1NjogJ2JzYycsXG4gICAgOTc6ICd0YnNjJyxcbiAgICA0MjE2MTogJ2FyYmV0aCcsXG4gICAgNDIxNjE0OiAndGFyYmV0aCcsXG4gICAgMTA6ICdvcGV0aCcsXG4gICAgMTExNTU0MjA6ICd0b3BldGgnLFxuICAgIDExMTY6ICdjb3JlZGFvJyxcbiAgICAxMTE0OiAndGNvcmVkYW8nLFxuICAgIDI0ODogJ29hcycsXG4gICAgOTM3MjogJ3RvYXMnLFxuICAgIDE0OiAnZmxyJyxcbiAgICAxMTQ6ICd0ZmxyJyxcbiAgICAxOTogJ3NnYicsXG4gICAgMTY6ICd0c2diJyxcbiAgICAxMTExOiAnd2VtaXgnLFxuICAgIDExMTI6ICd0d2VtaXgnLFxuICAgIDUwOiAneGRjJyxcbiAgICA1MTogJ3R4ZGMnLFxuICAgIDgwMDk0OiAnYmVyYScsXG4gICAgODAwNjk6ICd0YmVyYScsXG4gICAgNDIyMjA6ICdjZWxvJyxcbiAgICAxMTE0MjIyMDogJ3RjZWxvJyxcbiAgICAyMjIyOiAna2F2YScsXG4gICAgMjIyMTogJ3RrYXZhJyxcbiAgICA0MzExNDogJ2F2YXhjJyxcbiAgICA0MzExMzogJ3RhdmF4YycsXG4gICAgMTAwOiAnZ25vJyxcbiAgICAxMzA6ICd1bmlldGgnLFxuICAgIDEzMDE6ICd0dW5pZXRoJyxcbiAgICAxOTA0MTU6ICdocHBldGgnLFxuICAgIDE4MTIyODogJ3RocHBldGgnLFxuICAgIDY5ODUzODU6ICdoJyxcbiAgICA3MDgwOTY5OiAndGgnLFxuICAgIDQ2NjM6ICdob29kZXRoJyxcbiAgICA0NjYzMDogJ3Rob29kZXRoJyxcbiAgICAzMjQ6ICd6a2V0aCcsXG4gICAgODQ1MzogJ2Jhc2VldGgnLFxuICAgIDg0NTMyOiAndGJhc2VldGgnLFxuICAgIDE0MzogJ21vbicsXG4gICAgMTAxNDM6ICd0bW9uJyxcbiAgICA0ODA6ICd3b3JsZCcsXG4gICAgNDgwMTogJ3R3b3JsZCcsXG4gICAgNTAzMTogJ3NvbWknLFxuICAgIDUwMzEyOiAndHN0dCcsXG4gICAgMTg2ODogJ3NvbmVpdW0nLFxuICAgIDE5NDY6ICd0c29uZWl1bScsXG4gICAgMzMxMTE6ICd0YXBlY2hhaW4nLFxuICAgIDMzMTM5OiAnYXBlY2hhaW4nLFxuICAgIDY4ODY4OTogJ3RwaHJzJyxcbiAgICAxMDIwMzA6ICdjdGMnLFxuICAgIDEwMjAzMTogJ3RjdGMnLFxuICAgIDk5ODogJ3RoeXBlZXZtJyxcbiAgICA5OTk6ICdoeXBlZXZtJyxcbiAgICAxNjYwMjogJ3RvZycsXG4gICAgMTY2NjE6ICdvZycsXG4gICAgOTc0NjogJ3R4cGwnLFxuICAgIDk3NDU6ICd4cGwnLFxuICAgIDE0NjAxOiAndHNvbmljJyxcbiAgICAxNDY6ICdzb25pYycsXG4gICAgMTMyODogJ3RzZWlldm0nLFxuICAgIDEzMjk6ICdzZWlldm0nLFxuICAgIDEwMDE6ICd0a2FpYScsXG4gICAgODIxNzogJ2thaWEnLFxuICAgIDEyNzA6ICd0aXJ5cycsXG4gICAgNTkxNDE6ICd0bGluZWFldGgnLFxuICAgIDU5MTQ0OiAnbGluZWFldGgnLFxuICAgIDEzMTU6ICd0aXAnLFxuICAgIDE1MTQ6ICdpcCcsXG4gICAgNTQ1OiAndGZsb3cnLFxuICAgIDc0NzogJ2Zsb3cnLFxuICAgIDk4ODY3OiAndHBsdW1lJyxcbiAgICA5ODg2NjogJ3BsdW1lJyxcbiAgICA2MzQzOiAndG1lZ2FldGgnLFxuICAgIDQzMjY6ICdtZWdhZXRoJyxcbiAgICAyOTU6ICdoYmFyZXZtJyxcbiAgICAyOTY6ICd0aGJhcmV2bScsXG4gICAgMTk2OiAnb2tieGxheWVyJyxcbiAgICAxOTUyOiAndG9rYnhsYXllcicsXG4gICAgNTczNDk1MTogJ2pvdmF5ZXRoJyxcbiAgICAyMDE5Nzc1OiAndGpvdmF5ZXRoJyxcbiAgICA1MDQyMDAyOiAndGFyY3VzZGMnLFxuICAgIDQyMTc6ICd0ZW1wbycsXG4gICAgNDI0MzE6ICd0dGVtcG8nLFxuICAgIDUwMDA6ICdtYW50bGUnLFxuICAgIDUwMDM6ICd0bWFudGxlJyxcbiAgICAyNTM2MzogJ2ZsdWVudGV0aCcsXG4gICAgMjA5OTQ6ICd0Zmx1ZW50ZXRoJyxcbiAgfTtcblxuICBwcml2YXRlIGJ1aWxkQ2hhaW5JZE1hcCgpOiBNYXA8bnVtYmVyLCBzdHJpbmc+IHtcbiAgICBjb25zdCBjaGFpbklkTWFwID0gbmV3IE1hcDxudW1iZXIsIHN0cmluZz4oKTtcbiAgICB0aGlzLl9tYXAuZm9yRWFjaCgoY29pbiwgY29pbk5hbWUpID0+IHtcbiAgICAgIC8vIFNraXAgdG9rZW5zIC0gdGhleSBzaGFyZSB0aGUgc2FtZSBjaGFpbklkIGFzIHRoZWlyIHBhcmVudCBjaGFpblxuICAgICAgaWYgKGNvaW4uaXNUb2tlbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBuZXR3b3JrID0gY29pbi5uZXR3b3JrO1xuICAgICAgaWYgKCdjaGFpbklkJyBpbiBuZXR3b3JrICYmIHR5cGVvZiAobmV0d29yayBhcyBFdGhlcmV1bU5ldHdvcmspLmNoYWluSWQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNvbnN0IGNoYWluSWQgPSAobmV0d29yayBhcyBFdGhlcmV1bU5ldHdvcmspLmNoYWluSWQ7XG4gICAgICAgIGlmICghY2hhaW5JZE1hcC5oYXMoY2hhaW5JZCkpIHtcbiAgICAgICAgICBjaGFpbklkTWFwLnNldChjaGFpbklkLCBjb2luTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2hhaW5JZE1hcDtcbiAgfVxuXG4gIHB1YmxpYyBjb2luTmFtZUZyb21DaGFpbklkKGNoYWluSWQ6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY29pbk5hbWUgPSBDb2luTWFwLkxFR0FDWV9DSEFJTl9JRF9NQVBbY2hhaW5JZF07XG4gICAgaWYgKGNvaW5OYW1lKSB7XG4gICAgICByZXR1cm4gY29pbk5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvaW5CeUNoYWluSWQgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuX2NvaW5CeUNoYWluSWQgPSB0aGlzLmJ1aWxkQ2hhaW5JZE1hcCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29pbkJ5Q2hhaW5JZC5nZXQoY2hhaW5JZCk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgYGdldGAgdG8gdGhyb3cgaWYgYSBjb2luIGlzIG1pc3NpbmcsIGluc3RlYWQgb2YgcmV0dXJuaW5nIHVuZGVmaW5lZC5cbiAgICogSXQgd2lsbCBob25vciBrZXkgZXF1aXZhbGVuY2VzIGluIGNhc2UgZ2l2ZW4ga2V5IGlzIG1pc3NpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHJldHVybiB7QmFzZUNvaW59XG4gICAqL1xuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogUmVhZG9ubHk8QmFzZUNvaW4+IHtcbiAgICBjb25zdCBjb2luID1cbiAgICAgIHRoaXMuX21hcC5nZXQoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5SWRzLmdldChrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlBbGlhc2VzLmdldChrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlDb250cmFjdEFkZHJlc3MuZ2V0KGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeU5mdENvbGxlY3Rpb25JRC5nZXQoa2V5KTtcblxuICAgIGlmIChjb2luKSB7XG4gICAgICByZXR1cm4gY29pbjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQ29pbk5vdERlZmluZWRFcnJvcihrZXkpO1xuICB9XG5cbiAgcHVibGljIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl9tYXAuaGFzKGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeUlkcy5oYXMoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5QWxpYXNlcy5oYXMoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5Q29udHJhY3RBZGRyZXNzLmhhcyhrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlOZnRDb2xsZWN0aW9uSUQuaGFzKGtleSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1hcDxUPihtYXBwZXI6IChjb2luOiBSZWFkb25seTxCYXNlQ29pbj4sIGNvaW5OYW1lOiBzdHJpbmcpID0+IFQpOiBUW10ge1xuICAgIGNvbnN0IG1hcFJlc3VsdDogVFtdID0gW107XG4gICAgdGhpcy5fbWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIG1hcFJlc3VsdC5wdXNoKG1hcHBlcih2YWx1ZSwga2V5KSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG1hcFJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyByZWR1Y2U8VD4ocmVkdWNlcjogKGFjYzogVCwgY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+LCBjb2luTmFtZTogc3RyaW5nKSA9PiBULCBpbml0aWFsVmFsdWU6IFQpOiBUIHtcbiAgICBsZXQgYWNjID0gaW5pdGlhbFZhbHVlO1xuICAgIHRoaXMuX21hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBhY2MgPSByZWR1Y2VyKGFjYywgdmFsdWUsIGtleSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXIocHJlZGljYXRlOiAoY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+LCBjb2luTmFtZTogc3RyaW5nKSA9PiBib29sZWFuKTogQ29pbk1hcCB7XG4gICAgY29uc3QgZmlsdGVyUmVzdWx0OiBSZWFkb25seTxCYXNlQ29pbj5bXSA9IFtdO1xuICAgIHRoaXMuX21hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBrZXkpKSB7XG4gICAgICAgIGZpbHRlclJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gQ29pbk1hcC5mcm9tQ29pbnMoZmlsdGVyUmVzdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JFYWNoKGNhbGxiYWNrOiAoY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+LCBjb2luTmFtZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fbWFwLmZvckVhY2goY2FsbGJhY2spO1xuICB9XG5cbiAgcHVibGljIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8W3N0cmluZywgUmVhZG9ubHk8QmFzZUNvaW4+XT4ge1xuICAgIHJldHVybiB0aGlzLl9tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CoinFamily, CoinFeature } from './base';
|
|
2
|
+
/** Register default token features for a dynamically onboarded chain family. */
|
|
3
|
+
export declare function registerNetworkFeatures(family: string, features: CoinFeature[]): void;
|
|
4
|
+
/**
|
|
5
|
+
* Look up token features for a family.
|
|
6
|
+
* Checks static map first, then falls back to dynamic map.
|
|
7
|
+
* Returns undefined if the family is not registered in either map.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getNetworkFeatures(family: string): CoinFeature[] | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the final feature list for a token: the family's default token features
|
|
12
|
+
* plus `additionalFeatures`, minus `excludedFeatures`. Used by generated bot-token
|
|
13
|
+
* lists to apply the per-token diff returned by AMS (`features=false`).
|
|
14
|
+
*/
|
|
15
|
+
export declare function getTokenFeatures(family: string, additionalFeatures?: CoinFeature[], excludedFeatures?: CoinFeature[]): CoinFeature[];
|
|
16
|
+
export declare const networkFeatureMapForTokens: Partial<Record<CoinFamily, CoinFeature[]>>;
|
|
17
|
+
//# sourceMappingURL=networkFeatureMapForTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networkFeatureMapForTokens.d.ts","sourceRoot":"","sources":["../../src/networkFeatureMapForTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAgBjD,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAErF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,SAAS,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,kBAAkB,GAAE,WAAW,EAAO,EACtC,gBAAgB,GAAE,WAAW,EAAO,GACnC,WAAW,EAAE,CAIf;AAED,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAyCjF,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.networkFeatureMapForTokens = void 0;
|
|
4
|
+
exports.registerNetworkFeatures = registerNetworkFeatures;
|
|
5
|
+
exports.getNetworkFeatures = getNetworkFeatures;
|
|
6
|
+
exports.getTokenFeatures = getTokenFeatures;
|
|
7
|
+
const account_1 = require("./account");
|
|
8
|
+
const base_1 = require("./base");
|
|
9
|
+
const coinFeatures_1 = require("./coinFeatures");
|
|
10
|
+
const dynamicNetworkFeaturesMap = new Map();
|
|
11
|
+
/** Register default token features for a dynamically onboarded chain family. */
|
|
12
|
+
function registerNetworkFeatures(family, features) {
|
|
13
|
+
dynamicNetworkFeaturesMap.set(family, features);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Look up token features for a family.
|
|
17
|
+
* Checks static map first, then falls back to dynamic map.
|
|
18
|
+
* Returns undefined if the family is not registered in either map.
|
|
19
|
+
*/
|
|
20
|
+
function getNetworkFeatures(family) {
|
|
21
|
+
return exports.networkFeatureMapForTokens[family] ?? dynamicNetworkFeaturesMap.get(family);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the final feature list for a token: the family's default token features
|
|
25
|
+
* plus `additionalFeatures`, minus `excludedFeatures`. Used by generated bot-token
|
|
26
|
+
* lists to apply the per-token diff returned by AMS (`features=false`).
|
|
27
|
+
*/
|
|
28
|
+
function getTokenFeatures(family, additionalFeatures = [], excludedFeatures = []) {
|
|
29
|
+
const base = getNetworkFeatures(family) ?? [];
|
|
30
|
+
const excluded = new Set(excludedFeatures);
|
|
31
|
+
return [...new Set([...base, ...additionalFeatures])].filter((f) => !excluded.has(f));
|
|
32
|
+
}
|
|
33
|
+
exports.networkFeatureMapForTokens = {
|
|
34
|
+
algo: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
35
|
+
apt: coinFeatures_1.APT_FEATURES,
|
|
36
|
+
arbeth: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
|
|
37
|
+
avaxc: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
38
|
+
bera: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
|
|
39
|
+
bsc: coinFeatures_1.BSC_TOKEN_FEATURES,
|
|
40
|
+
celo: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
41
|
+
eth: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
42
|
+
eos: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
43
|
+
hbar: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
44
|
+
opeth: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
|
|
45
|
+
katanaeth: [
|
|
46
|
+
...coinFeatures_1.EVM_FEATURES,
|
|
47
|
+
base_1.CoinFeature.SHARED_EVM_SIGNING,
|
|
48
|
+
base_1.CoinFeature.SHARED_EVM_SDK,
|
|
49
|
+
base_1.CoinFeature.EVM_COMPATIBLE_IMS,
|
|
50
|
+
base_1.CoinFeature.EVM_COMPATIBLE_UI,
|
|
51
|
+
base_1.CoinFeature.EVM_COMPATIBLE_WP,
|
|
52
|
+
base_1.CoinFeature.SUPPORTS_ERC20,
|
|
53
|
+
],
|
|
54
|
+
polygon: coinFeatures_1.POLYGON_TOKEN_FEATURES,
|
|
55
|
+
scrolleth: [
|
|
56
|
+
...coinFeatures_1.EVM_FEATURES,
|
|
57
|
+
base_1.CoinFeature.SHARED_EVM_SIGNING,
|
|
58
|
+
base_1.CoinFeature.SHARED_EVM_SDK,
|
|
59
|
+
base_1.CoinFeature.EVM_COMPATIBLE_IMS,
|
|
60
|
+
base_1.CoinFeature.EVM_COMPATIBLE_UI,
|
|
61
|
+
base_1.CoinFeature.EVM_COMPATIBLE_WP,
|
|
62
|
+
base_1.CoinFeature.SUPPORTS_ERC20,
|
|
63
|
+
],
|
|
64
|
+
sol: coinFeatures_1.SOL_TOKEN_FEATURES,
|
|
65
|
+
stx: coinFeatures_1.STX_TOKEN_FEATURES,
|
|
66
|
+
sui: coinFeatures_1.SUI_TOKEN_FEATURES,
|
|
67
|
+
tao: coinFeatures_1.TAO_TOKEN_FEATURES,
|
|
68
|
+
polyx: coinFeatures_1.POLYX_TOKEN_FEATURES,
|
|
69
|
+
trx: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
70
|
+
xlm: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
71
|
+
xrp: account_1.AccountCoin.DEFAULT_FEATURES,
|
|
72
|
+
ofc: [],
|
|
73
|
+
ada: coinFeatures_1.ADA_TOKEN_FEATURES,
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0JBLDBEQUVDO0FBT0QsZ0RBRUM7QUFPRCw0Q0FRQztBQTVDRCx1Q0FBd0M7QUFDeEMsaUNBQWlEO0FBQ2pELGlEQVd3QjtBQUV4QixNQUFNLHlCQUF5QixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO0FBRW5FLGdGQUFnRjtBQUNoRixTQUFnQix1QkFBdUIsQ0FBQyxNQUFjLEVBQUUsUUFBdUI7SUFDN0UseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxrQ0FBMEIsQ0FBQyxNQUFvQixDQUFDLElBQUkseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQWMsRUFDZCxxQkFBb0MsRUFBRSxFQUN0QyxtQkFBa0MsRUFBRTtJQUVwQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQWMsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBYyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRyxDQUFDO0FBRVksUUFBQSwwQkFBMEIsR0FBK0M7SUFDcEYsSUFBSSxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2xDLEdBQUcsRUFBRSwyQkFBWTtJQUNqQixNQUFNLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDOUQsS0FBSyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ25DLElBQUksRUFBRSxDQUFDLEdBQUcscUJBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBVyxDQUFDLE9BQU8sQ0FBQztJQUM1RCxHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLElBQUksRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNsQyxHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLElBQUksRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNsQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDN0QsU0FBUyxFQUFFO1FBQ1QsR0FBRywyQkFBWTtRQUNmLGtCQUFXLENBQUMsa0JBQWtCO1FBQzlCLGtCQUFXLENBQUMsY0FBYztRQUMxQixrQkFBVyxDQUFDLGtCQUFrQjtRQUM5QixrQkFBVyxDQUFDLGlCQUFpQjtRQUM3QixrQkFBVyxDQUFDLGlCQUFpQjtRQUM3QixrQkFBVyxDQUFDLGNBQWM7S0FDM0I7SUFDRCxPQUFPLEVBQUUscUNBQXNCO0lBQy9CLFNBQVMsRUFBRTtRQUNULEdBQUcsMkJBQVk7UUFDZixrQkFBVyxDQUFDLGtCQUFrQjtRQUM5QixrQkFBVyxDQUFDLGNBQWM7UUFDMUIsa0JBQVcsQ0FBQyxrQkFBa0I7UUFDOUIsa0JBQVcsQ0FBQyxpQkFBaUI7UUFDN0Isa0JBQVcsQ0FBQyxpQkFBaUI7UUFDN0Isa0JBQVcsQ0FBQyxjQUFjO0tBQzNCO0lBQ0QsR0FBRyxFQUFFLGlDQUFrQjtJQUN2QixHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsR0FBRyxFQUFFLGlDQUFrQjtJQUN2QixLQUFLLEVBQUUsbUNBQW9CO0lBQzNCLEdBQUcsRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNqQyxHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLEdBQUcsRUFBRSxFQUFFO0lBQ1AsR0FBRyxFQUFFLGlDQUFrQjtDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3VudENvaW4gfSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgQ29pbkZhbWlseSwgQ29pbkZlYXR1cmUgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgQURBX1RPS0VOX0ZFQVRVUkVTLFxuICBBUFRfRkVBVFVSRVMsXG4gIEJTQ19UT0tFTl9GRUFUVVJFUyxcbiAgRVZNX0ZFQVRVUkVTLFxuICBQT0xZR09OX1RPS0VOX0ZFQVRVUkVTLFxuICBQT0xZWF9UT0tFTl9GRUFUVVJFUyxcbiAgU09MX1RPS0VOX0ZFQVRVUkVTLFxuICBTVFhfVE9LRU5fRkVBVFVSRVMsXG4gIFNVSV9UT0tFTl9GRUFUVVJFUyxcbiAgVEFPX1RPS0VOX0ZFQVRVUkVTLFxufSBmcm9tICcuL2NvaW5GZWF0dXJlcyc7XG5cbmNvbnN0IGR5bmFtaWNOZXR3b3JrRmVhdHVyZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgQ29pbkZlYXR1cmVbXT4oKTtcblxuLyoqIFJlZ2lzdGVyIGRlZmF1bHQgdG9rZW4gZmVhdHVyZXMgZm9yIGEgZHluYW1pY2FsbHkgb25ib2FyZGVkIGNoYWluIGZhbWlseS4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck5ldHdvcmtGZWF0dXJlcyhmYW1pbHk6IHN0cmluZywgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10pOiB2b2lkIHtcbiAgZHluYW1pY05ldHdvcmtGZWF0dXJlc01hcC5zZXQoZmFtaWx5LCBmZWF0dXJlcyk7XG59XG5cbi8qKlxuICogTG9vayB1cCB0b2tlbiBmZWF0dXJlcyBmb3IgYSBmYW1pbHkuXG4gKiBDaGVja3Mgc3RhdGljIG1hcCBmaXJzdCwgdGhlbiBmYWxscyBiYWNrIHRvIGR5bmFtaWMgbWFwLlxuICogUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGZhbWlseSBpcyBub3QgcmVnaXN0ZXJlZCBpbiBlaXRoZXIgbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya0ZlYXR1cmVzKGZhbWlseTogc3RyaW5nKTogQ29pbkZlYXR1cmVbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tmYW1pbHkgYXMgQ29pbkZhbWlseV0gPz8gZHluYW1pY05ldHdvcmtGZWF0dXJlc01hcC5nZXQoZmFtaWx5KTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmaW5hbCBmZWF0dXJlIGxpc3QgZm9yIGEgdG9rZW46IHRoZSBmYW1pbHkncyBkZWZhdWx0IHRva2VuIGZlYXR1cmVzXG4gKiBwbHVzIGBhZGRpdGlvbmFsRmVhdHVyZXNgLCBtaW51cyBgZXhjbHVkZWRGZWF0dXJlc2AuIFVzZWQgYnkgZ2VuZXJhdGVkIGJvdC10b2tlblxuICogbGlzdHMgdG8gYXBwbHkgdGhlIHBlci10b2tlbiBkaWZmIHJldHVybmVkIGJ5IEFNUyAoYGZlYXR1cmVzPWZhbHNlYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2tlbkZlYXR1cmVzKFxuICBmYW1pbHk6IHN0cmluZyxcbiAgYWRkaXRpb25hbEZlYXR1cmVzOiBDb2luRmVhdHVyZVtdID0gW10sXG4gIGV4Y2x1ZGVkRmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBbXVxuKTogQ29pbkZlYXR1cmVbXSB7XG4gIGNvbnN0IGJhc2UgPSBnZXROZXR3b3JrRmVhdHVyZXMoZmFtaWx5KSA/PyBbXTtcbiAgY29uc3QgZXhjbHVkZWQgPSBuZXcgU2V0PENvaW5GZWF0dXJlPihleGNsdWRlZEZlYXR1cmVzKTtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0PENvaW5GZWF0dXJlPihbLi4uYmFzZSwgLi4uYWRkaXRpb25hbEZlYXR1cmVzXSldLmZpbHRlcigoZikgPT4gIWV4Y2x1ZGVkLmhhcyhmKSk7XG59XG5cbmV4cG9ydCBjb25zdCBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VuczogUGFydGlhbDxSZWNvcmQ8Q29pbkZhbWlseSwgQ29pbkZlYXR1cmVbXT4+ID0ge1xuICBhbGdvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBhcHQ6IEFQVF9GRUFUVVJFUyxcbiAgYXJiZXRoOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGF2YXhjOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBiZXJhOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGJzYzogQlNDX1RPS0VOX0ZFQVRVUkVTLFxuICBjZWxvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBldGg6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIGVvczogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgaGJhcjogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgb3BldGg6IFsuLi5BY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5FSVAxNTU5XSxcbiAga2F0YW5hZXRoOiBbXG4gICAgLi4uRVZNX0ZFQVRVUkVTLFxuICAgIENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0lHTklORyxcbiAgICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESyxcbiAgICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9JTVMsXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfVUksXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfV1AsXG4gICAgQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjAsXG4gIF0sXG4gIHBvbHlnb246IFBPTFlHT05fVE9LRU5fRkVBVFVSRVMsXG4gIHNjcm9sbGV0aDogW1xuICAgIC4uLkVWTV9GRUFUVVJFUyxcbiAgICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NJR05JTkcsXG4gICAgQ29pbkZlYXR1cmUuU0hBUkVEX0VWTV9TREssXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfSU1TLFxuICAgIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX1VJLFxuICAgIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX1dQLFxuICAgIENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzIwLFxuICBdLFxuICBzb2w6IFNPTF9UT0tFTl9GRUFUVVJFUyxcbiAgc3R4OiBTVFhfVE9LRU5fRkVBVFVSRVMsXG4gIHN1aTogU1VJX1RPS0VOX0ZFQVRVUkVTLFxuICB0YW86IFRBT19UT0tFTl9GRUFUVVJFUyxcbiAgcG9seXg6IFBPTFlYX1RPS0VOX0ZFQVRVUkVTLFxuICB0cng6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHhsbTogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgeHJwOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBvZmM6IFtdLFxuICBhZGE6IEFEQV9UT0tFTl9GRUFUVVJFUyxcbn07XG4iXX0=
|