@bitgo-beta/statics 0.0.0-semantic-release-managed
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 +10 -0
- package/.prettierignore +2 -0
- package/CHANGELOG.md +3870 -0
- package/LICENSE +191 -0
- package/README.md +124 -0
- package/dist/src/account.d.ts +1600 -0
- package/dist/src/account.d.ts.map +1 -0
- package/dist/src/account.js +2491 -0
- package/dist/src/ada.d.ts +35 -0
- package/dist/src/ada.d.ts.map +1 -0
- package/dist/src/ada.js +65 -0
- package/dist/src/allCoinsAndTokens.d.ts +2 -0
- package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
- package/dist/src/allCoinsAndTokens.js +796 -0
- package/dist/src/avaxp.d.ts +40 -0
- package/dist/src/avaxp.d.ts.map +1 -0
- package/dist/src/avaxp.js +65 -0
- package/dist/src/base.d.ts +3022 -0
- package/dist/src/base.d.ts.map +1 -0
- package/dist/src/base.js +3208 -0
- package/dist/src/coinFeatures.d.ts +103 -0
- package/dist/src/coinFeatures.d.ts.map +1 -0
- package/dist/src/coinFeatures.js +621 -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 +12 -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 +123 -0
- package/dist/src/coins/botOfcTokens.d.ts +2 -0
- package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
- package/dist/src/coins/botOfcTokens.js +5 -0
- package/dist/src/coins/botTokens.d.ts +2 -0
- package/dist/src/coins/botTokens.d.ts.map +1 -0
- package/dist/src/coins/botTokens.js +5 -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 +175 -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 +12 -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 +1743 -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 +13 -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 +14 -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 +700 -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 +1539 -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 +155 -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 +394 -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 +14 -0
- package/dist/src/coins.d.ts.map +1 -0
- package/dist/src/coins.js +325 -0
- package/dist/src/constants.d.ts +3 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +6 -0
- package/dist/src/errors.d.ts +37 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +74 -0
- package/dist/src/flrp.d.ts +40 -0
- package/dist/src/flrp.d.ts.map +1 -0
- package/dist/src/flrp.js +65 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +60 -0
- 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 +32 -0
- package/dist/src/map.d.ts.map +1 -0
- package/dist/src/map.js +181 -0
- package/dist/src/networkFeatureMapForTokens.d.ts +3 -0
- package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
- package/dist/src/networkFeatureMapForTokens.js +31 -0
- package/dist/src/networks.d.ts +1952 -0
- package/dist/src/networks.d.ts.map +1 -0
- package/dist/src/networks.js +2429 -0
- package/dist/src/ofc.d.ts +727 -0
- package/dist/src/ofc.d.ts.map +1 -0
- package/dist/src/ofc.js +1617 -0
- package/dist/src/tokenConfig.d.ts +365 -0
- package/dist/src/tokenConfig.d.ts.map +1 -0
- package/dist/src/tokenConfig.js +955 -0
- package/dist/src/utxo.d.ts +43 -0
- package/dist/src/utxo.d.ts.map +1 -0
- package/dist/src/utxo.js +141 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vetTokens.d.ts","sourceRoot":"","sources":["../../../src/coins/vetTokens.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,2CAmBrB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.vetTokens = void 0;
|
|
4
|
+
const account_1 = require("../account");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
const coinFeatures_1 = require("../coinFeatures");
|
|
7
|
+
exports.vetTokens = [
|
|
8
|
+
(0, account_1.vetToken)('09717591-d7be-46d3-9fe0-b638e274028f', 'vet:vtho', 'VeThor', 18, '0x0000000000000000000000000000456e65726779', base_1.UnderlyingAsset['vet:vtho'], coinFeatures_1.VET_TOKEN_FEATURES),
|
|
9
|
+
(0, account_1.tvetToken)('27dd32d2-7311-4552-9beb-c57f76d09205', 'tvet:vtho', 'Testnet VeThor', 18, '0x0000000000000000000000000000456e65726779', base_1.UnderlyingAsset['tvet:vtho'], coinFeatures_1.VET_TOKEN_FEATURES),
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmV0VG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvaW5zL3ZldFRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBaUQ7QUFDakQsa0NBQTBDO0FBQzFDLGtEQUFxRDtBQUV4QyxRQUFBLFNBQVMsR0FBRztJQUN2QixJQUFBLGtCQUFRLEVBQ04sc0NBQXNDLEVBQ3RDLFVBQVUsRUFDVixRQUFRLEVBQ1IsRUFBRSxFQUNGLDRDQUE0QyxFQUM1QyxzQkFBZSxDQUFDLFVBQVUsQ0FBQyxFQUMzQixpQ0FBa0IsQ0FDbkI7SUFDRCxJQUFBLG1CQUFTLEVBQ1Asc0NBQXNDLEVBQ3RDLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsRUFBRSxFQUNGLDRDQUE0QyxFQUM1QyxzQkFBZSxDQUFDLFdBQVcsQ0FBQyxFQUM1QixpQ0FBa0IsQ0FDbkI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHZldFRva2VuLCB2ZXRUb2tlbiB9IGZyb20gJy4uL2FjY291bnQnO1xuaW1wb3J0IHsgVW5kZXJseWluZ0Fzc2V0IH0gZnJvbSAnLi4vYmFzZSc7XG5pbXBvcnQgeyBWRVRfVE9LRU5fRkVBVFVSRVMgfSBmcm9tICcuLi9jb2luRmVhdHVyZXMnO1xuXG5leHBvcnQgY29uc3QgdmV0VG9rZW5zID0gW1xuICB2ZXRUb2tlbihcbiAgICAnMDk3MTc1OTEtZDdiZS00NmQzLTlmZTAtYjYzOGUyNzQwMjhmJyxcbiAgICAndmV0OnZ0aG8nLFxuICAgICdWZVRob3InLFxuICAgIDE4LFxuICAgICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTZlNjU3MjY3NzknLFxuICAgIFVuZGVybHlpbmdBc3NldFsndmV0OnZ0aG8nXSxcbiAgICBWRVRfVE9LRU5fRkVBVFVSRVNcbiAgKSxcbiAgdHZldFRva2VuKFxuICAgICcyN2RkMzJkMi03MzExLTQ1NTItOWJlYi1jNTdmNzZkMDkyMDUnLFxuICAgICd0dmV0OnZ0aG8nLFxuICAgICdUZXN0bmV0IFZlVGhvcicsXG4gICAgMTgsXG4gICAgJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OScsXG4gICAgVW5kZXJseWluZ0Fzc2V0Wyd0dmV0OnZ0aG8nXSxcbiAgICBWRVRfVE9LRU5fRkVBVFVSRVNcbiAgKSxcbl07XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseCoin } from './base';
|
|
2
|
+
import { AmsTokenConfig, TrimmedAmsTokenConfig } from './tokenConfig';
|
|
3
|
+
import { CoinMap } from './map';
|
|
4
|
+
export declare const coins: CoinMap;
|
|
5
|
+
export declare function createToken(token: AmsTokenConfig): Readonly<BaseCoin> | undefined;
|
|
6
|
+
export declare function isCoinPresentInCoinMap({ name, id, alias }: {
|
|
7
|
+
name: string;
|
|
8
|
+
id?: string;
|
|
9
|
+
alias?: string;
|
|
10
|
+
}): boolean;
|
|
11
|
+
export declare function createTokenMapUsingConfigDetails(tokenConfigMap: Record<string, AmsTokenConfig[]>): CoinMap;
|
|
12
|
+
export declare function createTokenMapUsingTrimmedConfigDetails(reducedTokenConfigMap: Record<string, TrimmedAmsTokenConfig[]>): CoinMap;
|
|
13
|
+
export declare function createTokenUsingTrimmedConfigDetails(tokenConfig: TrimmedAmsTokenConfig): Readonly<BaseCoin> | undefined;
|
|
14
|
+
//# sourceMappingURL=coins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coins.d.ts","sourceRoot":"","sources":["../../src/coins.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAOhC,eAAO,MAAM,KAAK,SAA8F,CAAC;AAEjH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CA6OjF;AAiCD,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAElH;AAED,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,OAAO,CAkD1G;AAED,wBAAgB,uCAAuC,CACrD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,GAC7D,OAAO,CA2BT;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qBAAqB,GACjC,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAsBhC"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.coins = void 0;
|
|
4
|
+
exports.createToken = createToken;
|
|
5
|
+
exports.isCoinPresentInCoinMap = isCoinPresentInCoinMap;
|
|
6
|
+
exports.createTokenMapUsingConfigDetails = createTokenMapUsingConfigDetails;
|
|
7
|
+
exports.createTokenMapUsingTrimmedConfigDetails = createTokenMapUsingTrimmedConfigDetails;
|
|
8
|
+
exports.createTokenUsingTrimmedConfigDetails = createTokenUsingTrimmedConfigDetails;
|
|
9
|
+
const account_1 = require("./account");
|
|
10
|
+
const ofc_1 = require("./ofc");
|
|
11
|
+
const map_1 = require("./map");
|
|
12
|
+
const networks_1 = require("./networks");
|
|
13
|
+
const networkFeatureMapForTokens_1 = require("./networkFeatureMapForTokens");
|
|
14
|
+
const ofcErc20Coins_1 = require("./coins/ofcErc20Coins");
|
|
15
|
+
const ofcCoins_1 = require("./coins/ofcCoins");
|
|
16
|
+
const allCoinsAndTokens_1 = require("./allCoinsAndTokens");
|
|
17
|
+
exports.coins = map_1.CoinMap.fromCoins([...allCoinsAndTokens_1.allCoinsAndTokens, ...ofcErc20Coins_1.ofcErc20Coins, ...ofcErc20Coins_1.tOfcErc20Coins, ...ofcCoins_1.ofcCoins]);
|
|
18
|
+
function createToken(token) {
|
|
19
|
+
const initializerMap = {
|
|
20
|
+
algo: account_1.algoToken,
|
|
21
|
+
apt: account_1.aptToken,
|
|
22
|
+
arbeth: account_1.arbethErc20,
|
|
23
|
+
avaxc: account_1.avaxErc20,
|
|
24
|
+
baseeth: account_1.erc20Token,
|
|
25
|
+
bera: account_1.beraErc20,
|
|
26
|
+
bsc: account_1.bscToken,
|
|
27
|
+
celo: account_1.celoToken,
|
|
28
|
+
cosmos: account_1.cosmosToken,
|
|
29
|
+
eth: account_1.erc20,
|
|
30
|
+
eos: account_1.eosToken,
|
|
31
|
+
hbar: account_1.hederaToken,
|
|
32
|
+
near: account_1.nep141Token,
|
|
33
|
+
opeth: account_1.opethErc20,
|
|
34
|
+
polygon: account_1.polygonErc20,
|
|
35
|
+
sol: account_1.solToken,
|
|
36
|
+
stx: account_1.sip10Token,
|
|
37
|
+
sui: account_1.suiToken,
|
|
38
|
+
tao: account_1.taoToken,
|
|
39
|
+
polyx: account_1.polyxToken,
|
|
40
|
+
trx: account_1.tronToken,
|
|
41
|
+
vet: account_1.vetToken,
|
|
42
|
+
xlm: account_1.stellarToken,
|
|
43
|
+
xrp: account_1.xrpToken,
|
|
44
|
+
ofc: ofc_1.ofcToken,
|
|
45
|
+
ada: account_1.adaToken,
|
|
46
|
+
ton: account_1.jettonToken,
|
|
47
|
+
};
|
|
48
|
+
//return the BaseCoin from default coin map if present
|
|
49
|
+
if (isCoinPresentInCoinMap({ ...token })) {
|
|
50
|
+
if (exports.coins.has(token.name)) {
|
|
51
|
+
return exports.coins.get(token.name);
|
|
52
|
+
}
|
|
53
|
+
if (exports.coins.has(token.id)) {
|
|
54
|
+
return exports.coins.get(token.id);
|
|
55
|
+
}
|
|
56
|
+
if (token.alias && exports.coins.has(token.alias)) {
|
|
57
|
+
return exports.coins.get(token.alias);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const family = token.family;
|
|
61
|
+
const initializer = initializerMap[family];
|
|
62
|
+
if (!initializer) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const commonArgs = [
|
|
66
|
+
token.id,
|
|
67
|
+
token.name,
|
|
68
|
+
token.fullName,
|
|
69
|
+
token.decimalPlaces,
|
|
70
|
+
token.asset,
|
|
71
|
+
token.features,
|
|
72
|
+
token.prefix,
|
|
73
|
+
token.suffix,
|
|
74
|
+
token.network,
|
|
75
|
+
token.primaryKeyCurve,
|
|
76
|
+
];
|
|
77
|
+
switch (family) {
|
|
78
|
+
case 'arbeth':
|
|
79
|
+
case 'avaxc':
|
|
80
|
+
case 'baseeth':
|
|
81
|
+
case 'bera':
|
|
82
|
+
case 'bsc':
|
|
83
|
+
case 'celo':
|
|
84
|
+
case 'eth':
|
|
85
|
+
case 'opeth':
|
|
86
|
+
case 'polygon':
|
|
87
|
+
case 'trx':
|
|
88
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
89
|
+
token.contractAddress || token.tokenAddress, // contractAddress
|
|
90
|
+
...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
91
|
+
);
|
|
92
|
+
case 'apt':
|
|
93
|
+
const { initFunc, objectId } = getAptTokenInitializer(token);
|
|
94
|
+
return initFunc(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
95
|
+
objectId, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
96
|
+
);
|
|
97
|
+
case 'vet':
|
|
98
|
+
const { vetInitFunc, vetObjectId, isNFT } = getVetTokenInitializer(token);
|
|
99
|
+
if (isNFT) {
|
|
100
|
+
return vetInitFunc(...commonArgs.slice(0, 3), // id, name, fullName
|
|
101
|
+
vetObjectId, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return vetInitFunc(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
106
|
+
vetObjectId, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
case 'stx':
|
|
110
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
111
|
+
token.assetId, // assetId
|
|
112
|
+
...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
113
|
+
);
|
|
114
|
+
case 'algo':
|
|
115
|
+
return initializer(...commonArgs.slice(0, 2), // id, name
|
|
116
|
+
token.alias, // alias
|
|
117
|
+
...commonArgs.slice(2) // fullName, decimal, asset, features, prefix, suffix, network, primaryKeyCurve
|
|
118
|
+
);
|
|
119
|
+
case 'eos':
|
|
120
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
121
|
+
token.contractName, // contractName
|
|
122
|
+
token.contractAddress, // contractAddress
|
|
123
|
+
...commonArgs.slice(4, 8), // asset, features, prefix, suffix
|
|
124
|
+
token.symbol, // symbol
|
|
125
|
+
...commonArgs.slice(8) // network, primaryKeyCurve
|
|
126
|
+
);
|
|
127
|
+
case 'hbar':
|
|
128
|
+
return initializer(...commonArgs.slice(0, 3), // id, name, fullName
|
|
129
|
+
token.network, // network
|
|
130
|
+
token.decimalPlaces, token.asset, token.contractAddress, // contractAddress
|
|
131
|
+
...commonArgs.slice(5, 8), // features, prefix, suffix
|
|
132
|
+
token.primaryKeyCurve);
|
|
133
|
+
case 'sol':
|
|
134
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
135
|
+
token.tokenAddress, // tokenAddress
|
|
136
|
+
token.contractAddress, // contractAddress
|
|
137
|
+
token.asset, token.features, token.programId, ...commonArgs.slice(6) // prefix, suffix, network, primaryKeyCurve
|
|
138
|
+
);
|
|
139
|
+
case 'sui':
|
|
140
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
141
|
+
token.packageId, // packageId
|
|
142
|
+
token.module, // module
|
|
143
|
+
token.symbol, // symbol
|
|
144
|
+
token.contractAddress, // contractAddress
|
|
145
|
+
...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
146
|
+
);
|
|
147
|
+
case 'tao':
|
|
148
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
149
|
+
token.subnetId, // subnetId
|
|
150
|
+
...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
151
|
+
);
|
|
152
|
+
case 'polyx':
|
|
153
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
154
|
+
token.ticker, // ticker
|
|
155
|
+
token.assetId, // assetId
|
|
156
|
+
...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
157
|
+
);
|
|
158
|
+
case 'xlm':
|
|
159
|
+
return initializer(...commonArgs.slice(0, 5), // id, name, fullName, decimalPlaces, asset
|
|
160
|
+
token.domain, // domain
|
|
161
|
+
...commonArgs.slice(5) // features, prefix, suffix, network, primaryKeyCurve
|
|
162
|
+
);
|
|
163
|
+
case 'xrp':
|
|
164
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
165
|
+
token.issuerAddress, // issuerAddress
|
|
166
|
+
token.currecnycode, // currencyCode
|
|
167
|
+
token.contractAddress, // contractAddress
|
|
168
|
+
token.domain, // domain
|
|
169
|
+
...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
170
|
+
);
|
|
171
|
+
case 'ofc':
|
|
172
|
+
return initializer(...commonArgs, // id, name, fullName, decimalPlaces, asset, prefix, suffix, network, primaryKeyCurve
|
|
173
|
+
token.baseUnit, // baseUnit
|
|
174
|
+
token.isToken, // isToken
|
|
175
|
+
token.kind, // kind
|
|
176
|
+
token.addressCoin // addressCoin
|
|
177
|
+
);
|
|
178
|
+
case 'asi':
|
|
179
|
+
case 'atom':
|
|
180
|
+
case 'baby':
|
|
181
|
+
case 'bld':
|
|
182
|
+
case 'coreum':
|
|
183
|
+
case 'cronos':
|
|
184
|
+
case 'hash':
|
|
185
|
+
case 'injective':
|
|
186
|
+
case 'initia':
|
|
187
|
+
case 'osmo':
|
|
188
|
+
case 'thor':
|
|
189
|
+
case 'sei':
|
|
190
|
+
case 'tia':
|
|
191
|
+
case 'zeta':
|
|
192
|
+
return initializer(...commonArgs.slice(0, 3), // id, name, fullName
|
|
193
|
+
token.denom, // denom
|
|
194
|
+
token.decimalPlaces, // decimalPlaces
|
|
195
|
+
token.network, // network
|
|
196
|
+
token.baseUnit, // baseUnit
|
|
197
|
+
...commonArgs.slice(4, 8), // asset, features, prefix, suffix
|
|
198
|
+
token.primaryKeyCurve // primaryKeyCurve
|
|
199
|
+
);
|
|
200
|
+
case 'ada':
|
|
201
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
202
|
+
token.assetName, token.policyId, token.contractAddress, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
203
|
+
);
|
|
204
|
+
case 'ton':
|
|
205
|
+
return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
|
|
206
|
+
token.contractAddress, // contractAddress
|
|
207
|
+
...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
|
|
208
|
+
);
|
|
209
|
+
default:
|
|
210
|
+
return undefined;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function getAptTokenInitializer(token) {
|
|
214
|
+
if (token.assetId) {
|
|
215
|
+
// used for fungible-assets / legacy coins etc.
|
|
216
|
+
return {
|
|
217
|
+
initFunc: account_1.aptToken,
|
|
218
|
+
objectId: token.assetId,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
// used for non-fungible token (NFT) collections
|
|
222
|
+
return {
|
|
223
|
+
initFunc: account_1.aptNFTCollection,
|
|
224
|
+
objectId: token.nftCollectionId,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function getVetTokenInitializer(token) {
|
|
228
|
+
if (token.nftCollectionId) {
|
|
229
|
+
return {
|
|
230
|
+
vetInitFunc: account_1.vetNFTCollection,
|
|
231
|
+
vetObjectId: token.nftCollectionId,
|
|
232
|
+
isNFT: true,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
vetInitFunc: account_1.vetToken,
|
|
237
|
+
vetObjectId: token.contractAddress,
|
|
238
|
+
isNFT: false,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
function isCoinPresentInCoinMap({ name, id, alias }) {
|
|
242
|
+
return Boolean(exports.coins.has(name) || (id && exports.coins.has(id)) || (alias && exports.coins.has(alias)));
|
|
243
|
+
}
|
|
244
|
+
function createTokenMapUsingConfigDetails(tokenConfigMap) {
|
|
245
|
+
const BaseCoins = new Map();
|
|
246
|
+
const nftAndOtherTokens = new Set([
|
|
247
|
+
'erc721:bsctoken',
|
|
248
|
+
'terc721:bsctoken',
|
|
249
|
+
'erc1155:bsctoken',
|
|
250
|
+
'terc1155:bsctoken',
|
|
251
|
+
'erc721:witch',
|
|
252
|
+
'erc721:token',
|
|
253
|
+
'erc1155:token',
|
|
254
|
+
'nonstandard:token',
|
|
255
|
+
'terc721:token',
|
|
256
|
+
'terc1155:token',
|
|
257
|
+
'tnonstandard:token',
|
|
258
|
+
'terc721:bitgoerc721',
|
|
259
|
+
'terc1155:bitgoerc1155',
|
|
260
|
+
'terc721:hoodidj',
|
|
261
|
+
'erc721:polygontoken',
|
|
262
|
+
'erc1155:polygontoken',
|
|
263
|
+
'terc721:polygontoken',
|
|
264
|
+
'terc1155:polygontoken',
|
|
265
|
+
'erc721:soneiumtoken',
|
|
266
|
+
'erc1155:soneiumtoken',
|
|
267
|
+
'terc721:soneiumtoken',
|
|
268
|
+
'terc1155:soneiumtoken',
|
|
269
|
+
]);
|
|
270
|
+
// Add all the coins from statics coin map first
|
|
271
|
+
exports.coins.forEach((coin, coinName) => {
|
|
272
|
+
BaseCoins.set(coinName, coin);
|
|
273
|
+
});
|
|
274
|
+
// add the tokens not present in the static coin map
|
|
275
|
+
for (const tokenConfigs of Object.values(tokenConfigMap)) {
|
|
276
|
+
const tokenConfig = tokenConfigs[0];
|
|
277
|
+
if (!isCoinPresentInCoinMap({ ...tokenConfig }) &&
|
|
278
|
+
tokenConfig.isToken &&
|
|
279
|
+
!nftAndOtherTokens.has(tokenConfig.name)) {
|
|
280
|
+
const token = createToken(tokenConfig);
|
|
281
|
+
if (token) {
|
|
282
|
+
BaseCoins.set(token.name, token);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return map_1.CoinMap.fromCoins(Array.from(BaseCoins.values()));
|
|
287
|
+
}
|
|
288
|
+
function createTokenMapUsingTrimmedConfigDetails(reducedTokenConfigMap) {
|
|
289
|
+
const amsTokenConfigMap = {};
|
|
290
|
+
const networkNameMap = new Map(Object.values(networks_1.Networks).flatMap((networkType) => Object.values(networkType).map((network) => [network.name, network])));
|
|
291
|
+
for (const tokenConfigs of Object.values(reducedTokenConfigMap)) {
|
|
292
|
+
const tokenConfig = tokenConfigs[0];
|
|
293
|
+
const network = networkNameMap.get(tokenConfig.network.name);
|
|
294
|
+
if (!isCoinPresentInCoinMap({ ...tokenConfig }) &&
|
|
295
|
+
network &&
|
|
296
|
+
tokenConfig.isToken &&
|
|
297
|
+
networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family]) {
|
|
298
|
+
const features = new Set([
|
|
299
|
+
...(networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family] || []),
|
|
300
|
+
...(tokenConfig.additionalFeatures || []),
|
|
301
|
+
]);
|
|
302
|
+
tokenConfig.excludedFeatures?.forEach((feature) => features.delete(feature));
|
|
303
|
+
amsTokenConfigMap[tokenConfig.name] = [{ ...tokenConfig, features: Array.from(features), network }];
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return createTokenMapUsingConfigDetails(amsTokenConfigMap);
|
|
307
|
+
}
|
|
308
|
+
function createTokenUsingTrimmedConfigDetails(tokenConfig) {
|
|
309
|
+
let fullTokenConfig;
|
|
310
|
+
const networkNameMap = new Map(Object.values(networks_1.Networks).flatMap((networkType) => Object.values(networkType).map((network) => [network.name, network])));
|
|
311
|
+
const network = networkNameMap.get(tokenConfig.network.name);
|
|
312
|
+
if (!isCoinPresentInCoinMap({ ...tokenConfig }) &&
|
|
313
|
+
network &&
|
|
314
|
+
tokenConfig.isToken &&
|
|
315
|
+
networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family]) {
|
|
316
|
+
const features = new Set([
|
|
317
|
+
...(networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family] || []),
|
|
318
|
+
...(tokenConfig.additionalFeatures || []),
|
|
319
|
+
]);
|
|
320
|
+
tokenConfig.excludedFeatures?.forEach((feature) => features.delete(feature));
|
|
321
|
+
fullTokenConfig = { ...tokenConfig, features: Array.from(features), network };
|
|
322
|
+
return createToken(fullTokenConfig);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMENBLGtDQTZPQztBQWlDRCx3REFFQztBQUVELDRFQWtEQztBQUVELDBGQTZCQztBQUVELG9GQXdCQztBQXZhRCx1Q0E2Qm1CO0FBQ25CLCtCQUFpQztBQUdqQywrQkFBZ0M7QUFDaEMseUNBQXNDO0FBQ3RDLDZFQUEwRTtBQUMxRSx5REFBc0U7QUFDdEUsK0NBQTRDO0FBQzVDLDJEQUF3RDtBQUUzQyxRQUFBLEtBQUssR0FBRyxhQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxxQ0FBaUIsRUFBRSxHQUFHLDZCQUFhLEVBQUUsR0FBRyw4QkFBYyxFQUFFLEdBQUcsbUJBQVEsQ0FBQyxDQUFDLENBQUM7QUFFakgsU0FBZ0IsV0FBVyxDQUFDLEtBQXFCO0lBQy9DLE1BQU0sY0FBYyxHQUE0QjtRQUM5QyxJQUFJLEVBQUUsbUJBQVM7UUFDZixHQUFHLEVBQUUsa0JBQVE7UUFDYixNQUFNLEVBQUUscUJBQVc7UUFDbkIsS0FBSyxFQUFFLG1CQUFTO1FBQ2hCLE9BQU8sRUFBRSxvQkFBVTtRQUNuQixJQUFJLEVBQUUsbUJBQVM7UUFDZixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUsbUJBQVM7UUFDZixNQUFNLEVBQUUscUJBQVc7UUFDbkIsR0FBRyxFQUFFLGVBQUs7UUFDVixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUscUJBQVc7UUFDakIsSUFBSSxFQUFFLHFCQUFXO1FBQ2pCLEtBQUssRUFBRSxvQkFBVTtRQUNqQixPQUFPLEVBQUUsc0JBQVk7UUFDckIsR0FBRyxFQUFFLGtCQUFRO1FBQ2IsR0FBRyxFQUFFLG9CQUFVO1FBQ2YsR0FBRyxFQUFFLGtCQUFRO1FBQ2IsR0FBRyxFQUFFLGtCQUFRO1FBQ2IsS0FBSyxFQUFFLG9CQUFVO1FBQ2pCLEdBQUcsRUFBRSxtQkFBUztRQUNkLEdB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Q0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxJQUNFLENBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzNDLE9BQU87UUFDUCxXQUFXLENBQUMsT0FBTztRQUNuQix1REFBMEIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQzFDLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQztZQUN2QixHQUFHLENBQUMsdURBQTBCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyRCxHQUFHLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztTQUMxQyxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDN0UsZUFBZSxHQUFHLEVBQUUsR0FBRyxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFvQixDQUFDO1FBQ2hHLE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWxnb1Rva2VuLFxuICBhcHRORlRDb2xsZWN0aW9uLFxuICBhcHRUb2tlbixcbiAgYXJiZXRoRXJjMjAsXG4gIGF2YXhFcmMyMCxcbiAgYmVyYUVyYzIwLFxuICBic2NUb2tlbixcbiAgY2Vsb1Rva2VuLFxuICBjb3Ntb3NUb2tlbixcbiAgZW9zVG9rZW4sXG4gIGVyYzIwLFxuICBoZWRlcmFUb2tlbixcbiAgamV0dG9uVG9rZW4sXG4gIG5lcDE0MVRva2VuLFxuICBvcGV0aEVyYzIwLFxuICBwb2x5Z29uRXJjMjAsXG4gIHBvbHl4VG9rZW4sXG4gIHNpcDEwVG9rZW4sXG4gIHNvbFRva2VuLFxuICBzdGVsbGFyVG9rZW4sXG4gIHN1aVRva2VuLFxuICB0YW9Ub2tlbixcbiAgdHJvblRva2VuLFxuICB2ZXRORlRDb2xsZWN0aW9uLFxuICB2ZXRUb2tlbixcbiAgeHJwVG9rZW4sXG4gIGFkYVRva2VuLFxuICBlcmMyMFRva2VuLFxufSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgb2ZjVG9rZW4gfSBmcm9tICcuL29mYyc7XG5pbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBBbXNUb2tlbkNvbmZpZywgVHJpbW1lZEFtc1Rva2VuQ29uZmlnIH0gZnJvbSAnLi90b2tlbkNvbmZpZyc7XG5pbXBvcnQgeyBDb2luTWFwIH0gZnJvbSAnLi9tYXAnO1xuaW1wb3J0IHsgTmV0d29ya3MgfSBmcm9tICcuL25ldHdvcmtzJztcbmltcG9ydCB7IG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zIH0gZnJvbSAnLi9uZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vucyc7XG5pbXBvcnQgeyBvZmNFcmMyMENvaW5zLCB0T2ZjRXJjMjBDb2lucyB9IGZyb20gJy4vY29pbnMvb2ZjRXJjMjBDb2lucyc7XG5pbXBvcnQgeyBvZmNDb2lucyB9IGZyb20gJy4vY29pbnMvb2ZjQ29pbnMnO1xuaW1wb3J0IHsgYWxsQ29pbnNBbmRUb2tlbnMgfSBmcm9tICcuL2FsbENvaW5zQW5kVG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IGNvaW5zID0gQ29pbk1hcC5mcm9tQ29pbnMoWy4uLmFsbENvaW5zQW5kVG9rZW5zLCAuLi5vZmNFcmMyMENvaW5zLCAuLi50T2ZjRXJjMjBDb2lucywgLi4ub2ZjQ29pbnNdKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuKHRva2VuOiBBbXNUb2tlbkNvbmZpZyk6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGluaXRpYWxpemVyTWFwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBhbGdvOiBhbGdvVG9rZW4sXG4gICAgYXB0OiBhcHRUb2tlbixcbiAgICBhcmJldGg6IGFyYmV0aEVyYzIwLFxuICAgIGF2YXhjOiBhdmF4RXJjMjAsXG4gICAgYmFzZWV0aDogZXJjMjBUb2tlbixcbiAgICBiZXJhOiBiZXJhRXJjMjAsXG4gICAgYnNjOiBic2NUb2tlbixcbiAgICBjZWxvOiBjZWxvVG9rZW4sXG4gICAgY29zbW9zOiBjb3Ntb3NUb2tlbixcbiAgICBldGg6IGVyYzIwLFxuICAgIGVvczogZW9zVG9rZW4sXG4gICAgaGJhcjogaGVkZXJhVG9rZW4sXG4gICAgbmVhcjogbmVwMTQxVG9rZW4sXG4gICAgb3BldGg6IG9wZXRoRXJjMjAsXG4gICAgcG9seWdvbjogcG9seWdvbkVyYzIwLFxuICAgIHNvbDogc29sVG9rZW4sXG4gICAgc3R4OiBzaXAxMFRva2VuLFxuICAgIHN1aTogc3VpVG9rZW4sXG4gICAgdGFvOiB0YW9Ub2tlbixcbiAgICBwb2x5eDogcG9seXhUb2tlbixcbiAgICB0cng6IHRyb25Ub2tlbixcbiAgICB2ZXQ6IHZldFRva2VuLFxuICAgIHhsbTogc3RlbGxhclRva2VuLFxuICAgIHhycDogeHJwVG9rZW4sXG4gICAgb2ZjOiBvZmNUb2tlbixcbiAgICBhZGE6IGFkYVRva2VuLFxuICAgIHRvbjogamV0dG9uVG9rZW4sXG4gIH07XG5cbiAgLy9yZXR1cm4gdGhlIEJhc2VDb2luIGZyb20gZGVmYXVsdCBjb2luIG1hcCBpZiBwcmVzZW50XG4gIGlmIChpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgLi4udG9rZW4gfSkpIHtcbiAgICBpZiAoY29pbnMuaGFzKHRva2VuLm5hbWUpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLm5hbWUpO1xuICAgIH1cbiAgICBpZiAoY29pbnMuaGFzKHRva2VuLmlkKSkge1xuICAgICAgcmV0dXJuIGNvaW5zLmdldCh0b2tlbi5pZCk7XG4gICAgfVxuICAgIGlmICh0b2tlbi5hbGlhcyAmJiBjb2lucy5oYXModG9rZW4uYWxpYXMpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLmFsaWFzKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgZmFtaWx5ID0gdG9rZW4uZmFtaWx5O1xuICBjb25zdCBpbml0aWFsaXplciA9IGluaXRpYWxpemVyTWFwW2ZhbWlseV0gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+O1xuICBpZiAoIWluaXRpYWxpemVyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGNvbW1vbkFyZ3MgPSBbXG4gICAgdG9rZW4uaWQsXG4gICAgdG9rZW4ubmFtZSxcbiAgICB0b2tlbi5mdWxsTmFtZSxcbiAgICB0b2tlbi5kZWNpbWFsUGxhY2VzLFxuICAgIHRva2VuLmFzc2V0LFxuICAgIHRva2VuLmZlYXR1cmVzLFxuICAgIHRva2VuLnByZWZpeCxcbiAgICB0b2tlbi5zdWZmaXgsXG4gICAgdG9rZW4ubmV0d29yayxcbiAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmUsXG4gIF07XG5cbiAgc3dpdGNoIChmYW1pbHkpIHtcbiAgICBjYXNlICdhcmJldGgnOlxuICAgIGNhc2UgJ2F2YXhjJzpcbiAgICBjYXNlICdiYXNlZXRoJzpcbiAgICBjYXNlICdiZXJhJzpcbiAgICBjYXNlICdic2MnOlxuICAgIGNhc2UgJ2NlbG8nOlxuICAgIGNhc2UgJ2V0aCc6XG4gICAgY2FzZSAnb3BldGgnOlxuICAgIGNhc2UgJ3BvbHlnb24nOlxuICAgIGNhc2UgJ3RyeCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MgfHwgdG9rZW4udG9rZW5BZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdhcHQnOlxuICAgICAgY29uc3QgeyBpbml0RnVuYywgb2JqZWN0SWQgfSA9IGdldEFwdFRva2VuSW5pdGlhbGl6ZXIodG9rZW4pO1xuICAgICAgcmV0dXJuIGluaXRGdW5jKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgb2JqZWN0SWQsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAndmV0JzpcbiAgICAgIGNvbnN0IHsgdmV0SW5pdEZ1bmMsIHZldE9iamVjdElkLCBpc05GVCB9ID0gZ2V0VmV0VG9rZW5Jbml0aWFsaXplcih0b2tlbik7XG4gICAgICBpZiAoaXNORlQpIHtcbiAgICAgICAgcmV0dXJuIHZldEluaXRGdW5jKFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICAgIHZldE9iamVjdElkLFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmV0SW5pdEZ1bmMoXG4gICAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgICAgdmV0T2JqZWN0SWQsXG4gICAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ3N0eCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5hc3NldElkLCAvLyBhc3NldElkXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnYWxnbyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMiksIC8vIGlkLCBuYW1lXG4gICAgICAgIHRva2VuLmFsaWFzLCAvLyBhbGlhc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDIpIC8vIGZ1bGxOYW1lLCBkZWNpbWFsLCBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdlb3MnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3ROYW1lLCAvLyBjb250cmFjdE5hbWVcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0LCA4KSwgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5zeW1ib2wsIC8vIHN5bWJvbFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDgpIC8vIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2hiYXInOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgdG9rZW4ubmV0d29yaywgLy8gbmV0d29ya1xuICAgICAgICB0b2tlbi5kZWNpbWFsUGxhY2VzLFxuICAgICAgICB0b2tlbi5hc3NldCxcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg1LCA4KSwgLy8gZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3NvbCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi50b2tlbkFkZHJlc3MsIC8vIHRva2VuQWRkcmVzc1xuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5hc3NldCxcbiAgICAgICAgdG9rZW4uZmVhdHVyZXMsXG4gICAgICAgIHRva2VuLnByb2dyYW1JZCxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg2KSAvLyBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnc3VpJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLnBhY2thZ2VJZCwgLy8gcGFja2FnZUlkXG4gICAgICAgIHRva2VuLm1vZHVsZSwgLy8gbW9kdWxlXG4gICAgICAgIHRva2VuLnN5bWJvbCwgLy8gc3ltYm9sXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAndGFvJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLnN1Ym5ldElkLCAvLyBzdWJuZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdwb2x5eCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi50aWNrZXIsIC8vIHRpY2tlclxuICAgICAgICB0b2tlbi5hc3NldElkLCAvLyBhc3NldElkXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAneGxtJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA1KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzLCBhc3NldFxuICAgICAgICB0b2tlbi5kb21haW4sIC8vIGRvbWFpblxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDUpIC8vIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAneHJwJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmlzc3VlckFkZHJlc3MsIC8vIGlzc3VlckFkZHJlc3NcbiAgICAgICAgdG9rZW4uY3VycmVjbnljb2RlLCAvLyBjdXJyZW5jeUNvZGVcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgdG9rZW4uZG9tYWluLCAvLyBkb21haW5cbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAnb2ZjJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncywgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzLCBhc3NldCwgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICB0b2tlbi5iYXNlVW5pdCwgLy8gYmFzZVVuaXRcbiAgICAgICAgdG9rZW4uaXNUb2tlbiwgLy8gaXNUb2tlblxuICAgICAgICB0b2tlbi5raW5kLCAvLyBraW5kXG4gICAgICAgIHRva2VuLmFkZHJlc3NDb2luIC8vIGFkZHJlc3NDb2luXG4gICAgICApO1xuICAgIGNhc2UgJ2FzaSc6XG4gICAgY2FzZSAnYXRvbSc6XG4gICAgY2FzZSAnYmFieSc6XG4gICAgY2FzZSAnYmxkJzpcbiAgICBjYXNlICdjb3JldW0nOlxuICAgIGNhc2UgJ2Nyb25vcyc6XG4gICAgY2FzZSAnaGFzaCc6XG4gICAgY2FzZSAnaW5qZWN0aXZlJzpcbiAgICBjYXNlICdpbml0aWEnOlxuICAgIGNhc2UgJ29zbW8nOlxuICAgIGNhc2UgJ3Rob3InOlxuICAgIGNhc2UgJ3NlaSc6XG4gICAgY2FzZSAndGlhJzpcbiAgICBjYXNlICd6ZXRhJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgIHRva2VuLmRlbm9tLCAvLyBkZW5vbVxuICAgICAgICB0b2tlbi5kZWNpbWFsUGxhY2VzLCAvLyBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLm5ldHdvcmssIC8vIG5ldHdvcmtcbiAgICAgICAgdG9rZW4uYmFzZVVuaXQsIC8vIGJhc2VVbml0XG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCwgOCksIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4ucHJpbWFyeUtleUN1cnZlIC8vIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdhZGEnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uYXNzZXROYW1lLFxuICAgICAgICB0b2tlbi5wb2xpY3lJZCxcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICd0b24nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QXB0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLmFzc2V0SWQpIHtcbiAgICAvLyB1c2VkIGZvciBmdW5naWJsZS1hc3NldHMgLyBsZWdhY3kgY29pbnMgZXRjLlxuICAgIHJldHVybiB7XG4gICAgICBpbml0RnVuYzogYXB0VG9rZW4gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgICAgb2JqZWN0SWQ6IHRva2VuLmFzc2V0SWQsXG4gICAgfTtcbiAgfVxuICAvLyB1c2VkIGZvciBub24tZnVuZ2libGUgdG9rZW4gKE5GVCkgY29sbGVjdGlvbnNcbiAgcmV0dXJuIHtcbiAgICBpbml0RnVuYzogYXB0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgb2JqZWN0SWQ6IHRva2VuLm5mdENvbGxlY3Rpb25JZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VmV0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLm5mdENvbGxlY3Rpb25JZCkge1xuICAgIHJldHVybiB7XG4gICAgICB2ZXRJbml0RnVuYzogdmV0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgICB2ZXRPYmplY3RJZDogdG9rZW4ubmZ0Q29sbGVjdGlvbklkLFxuICAgICAgaXNORlQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmV0SW5pdEZ1bmM6IHZldFRva2VuIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICB2ZXRPYmplY3RJZDogdG9rZW4uY29udHJhY3RBZGRyZXNzLFxuICAgIGlzTkZUOiBmYWxzZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyBuYW1lLCBpZCwgYWxpYXMgfTogeyBuYW1lOiBzdHJpbmc7IGlkPzogc3RyaW5nOyBhbGlhcz86IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKGNvaW5zLmhhcyhuYW1lKSB8fCAoaWQgJiYgY29pbnMuaGFzKGlkKSkgfHwgKGFsaWFzICYmIGNvaW5zLmhhcyhhbGlhcykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuTWFwVXNpbmdDb25maWdEZXRhaWxzKHRva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPik6IENvaW5NYXAge1xuICBjb25zdCBCYXNlQ29pbnM6IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3QgbmZ0QW5kT3RoZXJUb2tlbnMgPSBuZXcgU2V0KFtcbiAgICAnZXJjNzIxOmJzY3Rva2VuJyxcbiAgICAndGVyYzcyMTpic2N0b2tlbicsXG4gICAgJ2VyYzExNTU6YnNjdG9rZW4nLFxuICAgICd0ZXJjMTE1NTpic2N0b2tlbicsXG4gICAgJ2VyYzcyMTp3aXRjaCcsXG4gICAgJ2VyYzcyMTp0b2tlbicsXG4gICAgJ2VyYzExNTU6dG9rZW4nLFxuICAgICdub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6dG9rZW4nLFxuICAgICd0ZXJjMTE1NTp0b2tlbicsXG4gICAgJ3Rub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6Yml0Z29lcmM3MjEnLFxuICAgICd0ZXJjMTE1NTpiaXRnb2VyYzExNTUnLFxuICAgICd0ZXJjNzIxOmhvb2RpZGonLFxuICAgICdlcmM3MjE6cG9seWdvbnRva2VuJyxcbiAgICAnZXJjMTE1NTpwb2x5Z29udG9rZW4nLFxuICAgICd0ZXJjNzIxOnBvbHlnb250b2tlbicsXG4gICAgJ3RlcmMxMTU1OnBvbHlnb250b2tlbicsXG4gICAgJ2VyYzcyMTpzb25laXVtdG9rZW4nLFxuICAgICdlcmMxMTU1OnNvbmVpdW10b2tlbicsXG4gICAgJ3RlcmM3MjE6c29uZWl1bXRva2VuJyxcbiAgICAndGVyYzExNTU6c29uZWl1bXRva2VuJyxcbiAgXSk7XG5cbiAgLy8gQWRkIGFsbCB0aGUgY29pbnMgZnJvbSBzdGF0aWNzIGNvaW4gbWFwIGZpcnN0XG4gIGNvaW5zLmZvckVhY2goKGNvaW4sIGNvaW5OYW1lKSA9PiB7XG4gICAgQmFzZUNvaW5zLnNldChjb2luTmFtZSwgY29pbik7XG4gIH0pO1xuXG4gIC8vIGFkZCB0aGUgdG9rZW5zIG5vdCBwcmVzZW50IGluIHRoZSBzdGF0aWMgY29pbiBtYXBcbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyh0b2tlbkNvbmZpZ01hcCkpIHtcbiAgICBjb25zdCB0b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnc1swXTtcblxuICAgIGlmIChcbiAgICAgICFpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgLi4udG9rZW5Db25maWcgfSkgJiZcbiAgICAgIHRva2VuQ29uZmlnLmlzVG9rZW4gJiZcbiAgICAgICFuZnRBbmRPdGhlclRva2Vucy5oYXModG9rZW5Db25maWcubmFtZSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHRva2VuID0gY3JlYXRlVG9rZW4odG9rZW5Db25maWcpO1xuICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgIEJhc2VDb2lucy5zZXQodG9rZW4ubmFtZSwgdG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBDb2luTWFwLmZyb21Db2lucyhBcnJheS5mcm9tKEJhc2VDb2lucy52YWx1ZXMoKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICByZWR1Y2VkVG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIFRyaW1tZWRBbXNUb2tlbkNvbmZpZ1tdPlxuKTogQ29pbk1hcCB7XG4gIGNvbnN0IGFtc1Rva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPiA9IHt9O1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IG5ldyBNYXAoXG4gICAgT2JqZWN0LnZhbHVlcyhOZXR3b3JrcykuZmxhdE1hcCgobmV0d29ya1R5cGUpID0+XG4gICAgICBPYmplY3QudmFsdWVzKG5ldHdvcmtUeXBlKS5tYXAoKG5ldHdvcmspID0+IFtuZXR3b3JrLm5hbWUsIG5ldHdvcmtdKVxuICAgIClcbiAgKTtcblxuICBmb3IgKGNvbnN0IHRva2VuQ29uZmlncyBvZiBPYmplY3QudmFsdWVzKHJlZHVjZWRUb2tlbkNvbmZpZ01hcCkpIHtcbiAgICBjb25zdCB0b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnc1swXTtcbiAgICBjb25zdCBuZXR3b3JrID0gbmV0d29ya05hbWVNYXAuZ2V0KHRva2VuQ29uZmlnLm5ldHdvcmsubmFtZSk7XG4gICAgaWYgKFxuICAgICAgIWlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSAmJlxuICAgICAgbmV0d29yayAmJlxuICAgICAgdG9rZW5Db25maWcuaXNUb2tlbiAmJlxuICAgICAgbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnNbbmV0d29yay5mYW1pbHldXG4gICAgKSB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IG5ldyBTZXQoW1xuICAgICAgICAuLi4obmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnNbbmV0d29yay5mYW1pbHldIHx8IFtdKSxcbiAgICAgICAgLi4uKHRva2VuQ29uZmlnLmFkZGl0aW9uYWxGZWF0dXJlcyB8fCBbXSksXG4gICAgICBdKTtcbiAgICAgIHRva2VuQ29uZmlnLmV4Y2x1ZGVkRmVhdHVyZXM/LmZvckVhY2goKGZlYXR1cmUpID0+IGZlYXR1cmVzLmRlbGV0ZShmZWF0dXJlKSk7XG4gICAgICBhbXNUb2tlbkNvbmZpZ01hcFt0b2tlbkNvbmZpZy5uYW1lXSA9IFt7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogQXJyYXkuZnJvbShmZWF0dXJlcyksIG5ldHdvcmsgfV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZVRva2VuTWFwVXNpbmdDb25maWdEZXRhaWxzKGFtc1Rva2VuQ29uZmlnTWFwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuVXNpbmdUcmltbWVkQ29uZmlnRGV0YWlscyhcbiAgdG9rZW5Db25maWc6IFRyaW1tZWRBbXNUb2tlbkNvbmZpZ1xuKTogUmVhZG9ubHk8QmFzZUNvaW4+IHwgdW5kZWZpbmVkIHtcbiAgbGV0IGZ1bGxUb2tlbkNvbmZpZzogQW1zVG9rZW5Db25maWcgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IG5ldHdvcmtOYW1lTWFwID0gbmV3IE1hcChcbiAgICBPYmplY3QudmFsdWVzKE5ldHdvcmtzKS5mbGF0TWFwKChuZXR3b3JrVHlwZSkgPT5cbiAgICAgIE9iamVjdC52YWx1ZXMobmV0d29ya1R5cGUpLm1hcCgobmV0d29yaykgPT4gW25ldHdvcmsubmFtZSwgbmV0d29ya10pXG4gICAgKVxuICApO1xuICBjb25zdCBuZXR3b3JrID0gbmV0d29ya05hbWVNYXAuZ2V0KHRva2VuQ29uZmlnLm5ldHdvcmsubmFtZSk7XG4gIGlmIChcbiAgICAhaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pICYmXG4gICAgbmV0d29yayAmJlxuICAgIHRva2VuQ29uZmlnLmlzVG9rZW4gJiZcbiAgICBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV1cbiAgKSB7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0KFtcbiAgICAgIC4uLihuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV0gfHwgW10pLFxuICAgICAgLi4uKHRva2VuQ29uZmlnLmFkZGl0aW9uYWxGZWF0dXJlcyB8fCBbXSksXG4gICAgXSk7XG4gICAgdG9rZW5Db25maWcuZXhjbHVkZWRGZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZSkgPT4gZmVhdHVyZXMuZGVsZXRlKGZlYXR1cmUpKTtcbiAgICBmdWxsVG9rZW5Db25maWcgPSB7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogQXJyYXkuZnJvbShmZWF0dXJlcyksIG5ldHdvcmsgfSBhcyBBbXNUb2tlbkNvbmZpZztcbiAgICByZXR1cm4gY3JlYXRlVG9rZW4oZnVsbFRva2VuQ29uZmlnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QAAiF,CAAC;AAE7G,eAAO,MAAM,uBAAuB,UAAU,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HEDERA_NODE_ACCCOUNT_ID = exports.DOMAIN_PATTERN = void 0;
|
|
4
|
+
exports.DOMAIN_PATTERN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/;
|
|
5
|
+
exports.HEDERA_NODE_ACCCOUNT_ID = '0.0.3';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGNBQWMsR0FBRyw4RUFBOEUsQ0FBQztBQUVoRyxRQUFBLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBET01BSU5fUEFUVEVSTiA9IC9eKD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16MC05XVthLXowLTktXXswLDYxfVthLXowLTldJC87XG5cbmV4cG9ydCBjb25zdCBIRURFUkFfTk9ERV9BQ0NDT1VOVF9JRCA9ICcwLjAuMyc7XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Each subclass needs the explicit Object.setPrototypeOf() so that instanceof will work correctly.
|
|
3
|
+
* See https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
|
4
|
+
*/
|
|
5
|
+
import { CoinFeature } from './base';
|
|
6
|
+
declare class BitGoStaticsError extends Error {
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class CoinNotDefinedError extends BitGoStaticsError {
|
|
10
|
+
constructor(coinName: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class DuplicateCoinDefinitionError extends BitGoStaticsError {
|
|
13
|
+
constructor(coinName: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class DuplicateCoinIdDefinitionError extends BitGoStaticsError {
|
|
16
|
+
constructor(id: string);
|
|
17
|
+
}
|
|
18
|
+
export declare class DisallowedCoinFeatureError extends BitGoStaticsError {
|
|
19
|
+
constructor(coinName: string, feature: CoinFeature);
|
|
20
|
+
}
|
|
21
|
+
export declare class MissingRequiredCoinFeatureError extends BitGoStaticsError {
|
|
22
|
+
constructor(coinName: string, missingFeatures: CoinFeature[]);
|
|
23
|
+
}
|
|
24
|
+
export declare class InvalidIdError extends BitGoStaticsError {
|
|
25
|
+
constructor(coinName: string, id: string);
|
|
26
|
+
}
|
|
27
|
+
export declare class InvalidContractAddressError extends BitGoStaticsError {
|
|
28
|
+
constructor(coinName: string, contractAddress: string);
|
|
29
|
+
}
|
|
30
|
+
export declare class InvalidDomainError extends BitGoStaticsError {
|
|
31
|
+
constructor(coinName: string, domain: string);
|
|
32
|
+
}
|
|
33
|
+
export declare class ConflictingCoinFeaturesError extends BitGoStaticsError {
|
|
34
|
+
constructor(coinName: string, conflictingFeatures: CoinFeature[]);
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,cAAM,iBAAkB,SAAQ,KAAK;gBAChB,OAAO,EAAE,MAAM;CAKnC;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;gBACrC,QAAQ,EAAE,MAAM;CAIpC;AAED,qBAAa,4BAA6B,SAAQ,iBAAiB;gBAC9C,QAAQ,EAAE,MAAM;CAIpC;AAED,qBAAa,8BAA+B,SAAQ,iBAAiB;gBAChD,EAAE,EAAE,MAAM;CAI9B;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB;gBAC5C,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;CAI1D;AAED,qBAAa,+BAAgC,SAAQ,iBAAiB;gBACjD,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE;CAIpE;AAED,qBAAa,cAAe,SAAQ,iBAAiB;gBAChC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;CAIhD;AAED,qBAAa,2BAA4B,SAAQ,iBAAiB;gBAC7C,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;CAI7D;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;gBACpC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAIpD;AAED,qBAAa,4BAA6B,SAAQ,iBAAiB;gBAC9C,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE;CAMxE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConflictingCoinFeaturesError = exports.InvalidDomainError = exports.InvalidContractAddressError = exports.InvalidIdError = exports.MissingRequiredCoinFeatureError = exports.DisallowedCoinFeatureError = exports.DuplicateCoinIdDefinitionError = exports.DuplicateCoinDefinitionError = exports.CoinNotDefinedError = void 0;
|
|
4
|
+
class BitGoStaticsError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.stack = new Error(message).stack;
|
|
8
|
+
Object.setPrototypeOf(this, BitGoStaticsError.prototype);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
class CoinNotDefinedError extends BitGoStaticsError {
|
|
12
|
+
constructor(coinName) {
|
|
13
|
+
super(`coin '${coinName}' is not defined`);
|
|
14
|
+
Object.setPrototypeOf(this, CoinNotDefinedError.prototype);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.CoinNotDefinedError = CoinNotDefinedError;
|
|
18
|
+
class DuplicateCoinDefinitionError extends BitGoStaticsError {
|
|
19
|
+
constructor(coinName) {
|
|
20
|
+
super(`coin '${coinName}' is already defined`);
|
|
21
|
+
Object.setPrototypeOf(this, DuplicateCoinDefinitionError.prototype);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.DuplicateCoinDefinitionError = DuplicateCoinDefinitionError;
|
|
25
|
+
class DuplicateCoinIdDefinitionError extends BitGoStaticsError {
|
|
26
|
+
constructor(id) {
|
|
27
|
+
super(`coin with id '${id}' is already defined`);
|
|
28
|
+
Object.setPrototypeOf(this, DuplicateCoinIdDefinitionError.prototype);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.DuplicateCoinIdDefinitionError = DuplicateCoinIdDefinitionError;
|
|
32
|
+
class DisallowedCoinFeatureError extends BitGoStaticsError {
|
|
33
|
+
constructor(coinName, feature) {
|
|
34
|
+
super(`coin feature '${feature}' is disallowed for coin ${coinName}.`);
|
|
35
|
+
Object.setPrototypeOf(this, DisallowedCoinFeatureError.prototype);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.DisallowedCoinFeatureError = DisallowedCoinFeatureError;
|
|
39
|
+
class MissingRequiredCoinFeatureError extends BitGoStaticsError {
|
|
40
|
+
constructor(coinName, missingFeatures) {
|
|
41
|
+
super(`Required coin feature(s) '${missingFeatures.join(', ')}' were not found for coin ${coinName}.`);
|
|
42
|
+
Object.setPrototypeOf(this, MissingRequiredCoinFeatureError.prototype);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.MissingRequiredCoinFeatureError = MissingRequiredCoinFeatureError;
|
|
46
|
+
class InvalidIdError extends BitGoStaticsError {
|
|
47
|
+
constructor(coinName, id) {
|
|
48
|
+
super(`invalid uuid '${id}' for coin '${coinName}'`);
|
|
49
|
+
Object.setPrototypeOf(this, InvalidIdError.prototype);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.InvalidIdError = InvalidIdError;
|
|
53
|
+
class InvalidContractAddressError extends BitGoStaticsError {
|
|
54
|
+
constructor(coinName, contractAddress) {
|
|
55
|
+
super(`invalid contract address '${contractAddress}' for coin '${coinName}'`);
|
|
56
|
+
Object.setPrototypeOf(this, InvalidContractAddressError.prototype);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.InvalidContractAddressError = InvalidContractAddressError;
|
|
60
|
+
class InvalidDomainError extends BitGoStaticsError {
|
|
61
|
+
constructor(coinName, domain) {
|
|
62
|
+
super(`invalid domain '${domain}' for coin '${coinName}'`);
|
|
63
|
+
Object.setPrototypeOf(this, InvalidDomainError.prototype);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.InvalidDomainError = InvalidDomainError;
|
|
67
|
+
class ConflictingCoinFeaturesError extends BitGoStaticsError {
|
|
68
|
+
constructor(coinName, conflictingFeatures) {
|
|
69
|
+
super(`coin feature(s) for coin '${coinName}' cannot be both required and disallowed: ${conflictingFeatures.join(', ')}`);
|
|
70
|
+
Object.setPrototypeOf(this, ConflictingCoinFeaturesError.prototype);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.ConflictingCoinFeaturesError = ConflictingCoinFeaturesError;
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxNQUFNLGlCQUFrQixTQUFRLEtBQUs7SUFDbkMsWUFBbUIsT0FBZTtRQUNoQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUFFRCxNQUFhLG1CQUFvQixTQUFRLGlCQUFpQjtJQUN4RCxZQUFtQixRQUFnQjtRQUNqQyxLQUFLLENBQUMsU0FBUyxRQUFRLGtCQUFrQixDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGO0FBTEQsa0RBS0M7QUFFRCxNQUFhLDRCQUE2QixTQUFRLGlCQUFpQjtJQUNqRSxZQUFtQixRQUFnQjtRQUNqQyxLQUFLLENBQUMsU0FBUyxRQUFRLHNCQUFzQixDQUFDLENBQUM7UUFDL0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGO0FBTEQsb0VBS0M7QUFFRCxNQUFhLDhCQUErQixTQUFRLGlCQUFpQjtJQUNuRSxZQUFtQixFQUFVO1FBQzNCLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQUxELHdFQUtDO0FBRUQsTUFBYSwwQkFBMkIsU0FBUSxpQkFBaUI7SUFDL0QsWUFBbUIsUUFBZ0IsRUFBRSxPQUFvQjtRQUN2RCxLQUFLLENBQUMsaUJBQWlCLE9BQU8sNEJBQTRCLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGO0FBTEQsZ0VBS0M7QUFFRCxNQUFhLCtCQUFnQyxTQUFRLGlCQUFpQjtJQUNwRSxZQUFtQixRQUFnQixFQUFFLGVBQThCO1FBQ2pFLEtBQUssQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDdkcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsK0JBQStCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNGO0FBTEQsMEVBS0M7QUFFRCxNQUFhLGNBQWUsU0FBUSxpQkFBaUI7SUFDbkQsWUFBbUIsUUFBZ0IsRUFBRSxFQUFVO1FBQzdDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQUxELHdDQUtDO0FBRUQsTUFBYSwyQkFBNEIsU0FBUSxpQkFBaUI7SUFDaEUsWUFBbUIsUUFBZ0IsRUFBRSxlQUF1QjtRQUMxRCxLQUFLLENBQUMsNkJBQTZCLGVBQWUsZUFBZSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRjtBQUxELGtFQUtDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxpQkFBaUI7SUFDdkQsWUFBbUIsUUFBZ0IsRUFBRSxNQUFjO1FBQ2pELEtBQUssQ0FBQyxtQkFBbUIsTUFBTSxlQUFlLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBTEQsZ0RBS0M7QUFFRCxNQUFhLDRCQUE2QixTQUFRLGlCQUFpQjtJQUNqRSxZQUFtQixRQUFnQixFQUFFLG1CQUFrQztRQUNyRSxLQUFLLENBQ0gsNkJBQTZCLFFBQVEsNkNBQTZDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNuSCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGO0FBUEQsb0VBT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVhY2ggc3ViY2xhc3MgbmVlZHMgdGhlIGV4cGxpY2l0IE9iamVjdC5zZXRQcm90b3R5cGVPZigpIHNvIHRoYXQgaW5zdGFuY2VvZiB3aWxsIHdvcmsgY29ycmVjdGx5LlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC13aWtpL2Jsb2IvbWFzdGVyL0JyZWFraW5nLUNoYW5nZXMubWQjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gKi9cbmltcG9ydCB7IENvaW5GZWF0dXJlIH0gZnJvbSAnLi9iYXNlJztcblxuY2xhc3MgQml0R29TdGF0aWNzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKG1lc3NhZ2UpLnN0YWNrO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBCaXRHb1N0YXRpY3NFcnJvci5wcm90b3R5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2luTm90RGVmaW5lZEVycm9yIGV4dGVuZHMgQml0R29TdGF0aWNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29pbk5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKGBjb2luICcke2NvaW5OYW1lfScgaXMgbm90IGRlZmluZWRgKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ29pbk5vdERlZmluZWRFcnJvci5wcm90b3R5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEdXBsaWNhdGVDb2luRGVmaW5pdGlvbkVycm9yIGV4dGVuZHMgQml0R29TdGF0aWNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29pbk5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKGBjb2luICcke2NvaW5OYW1lfScgaXMgYWxyZWFkeSBkZWZpbmVkYCk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIER1cGxpY2F0ZUNvaW5EZWZpbml0aW9uRXJyb3IucHJvdG90eXBlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHVwbGljYXRlQ29pbklkRGVmaW5pdGlvbkVycm9yIGV4dGVuZHMgQml0R29TdGF0aWNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IoaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKGBjb2luIHdpdGggaWQgJyR7aWR9JyBpcyBhbHJlYWR5IGRlZmluZWRgKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRHVwbGljYXRlQ29pbklkRGVmaW5pdGlvbkVycm9yLnByb3RvdHlwZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERpc2FsbG93ZWRDb2luRmVhdHVyZUVycm9yIGV4dGVuZHMgQml0R29TdGF0aWNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29pbk5hbWU6IHN0cmluZywgZmVhdHVyZTogQ29pbkZlYXR1cmUpIHtcbiAgICBzdXBlcihgY29pbiBmZWF0dXJlICcke2ZlYXR1cmV9JyBpcyBkaXNhbGxvd2VkIGZvciBjb2luICR7Y29pbk5hbWV9LmApO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEaXNhbGxvd2VkQ29pbkZlYXR1cmVFcnJvci5wcm90b3R5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nUmVxdWlyZWRDb2luRmVhdHVyZUVycm9yIGV4dGVuZHMgQml0R29TdGF0aWNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29pbk5hbWU6IHN0cmluZywgbWlzc2luZ0ZlYXR1cmVzOiBDb2luRmVhdHVyZVtdKSB7XG4gICAgc3VwZXIoYFJlcXVpcmVkIGNvaW4gZmVhdHVyZShzKSAnJHttaXNzaW5nRmVhdHVyZXMuam9pbignLCAnKX0nIHdlcmUgbm90IGZvdW5kIGZvciBjb2luICR7Y29pbk5hbWV9LmApO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBNaXNzaW5nUmVxdWlyZWRDb2luRmVhdHVyZUVycm9yLnByb3RvdHlwZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRJZEVycm9yIGV4dGVuZHMgQml0R29TdGF0aWNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29pbk5hbWU6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKGBpbnZhbGlkIHV1aWQgJyR7aWR9JyBmb3IgY29pbiAnJHtjb2luTmFtZX0nYCk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRJZEVycm9yLnByb3RvdHlwZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRDb250cmFjdEFkZHJlc3NFcnJvciBleHRlbmRzIEJpdEdvU3RhdGljc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvaW5OYW1lOiBzdHJpbmcsIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nKSB7XG4gICAgc3VwZXIoYGludmFsaWQgY29udHJhY3QgYWRkcmVzcyAnJHtjb250cmFjdEFkZHJlc3N9JyBmb3IgY29pbiAnJHtjb2luTmFtZX0nYCk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRDb250cmFjdEFkZHJlc3NFcnJvci5wcm90b3R5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkRG9tYWluRXJyb3IgZXh0ZW5kcyBCaXRHb1N0YXRpY3NFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb2luTmFtZTogc3RyaW5nLCBkb21haW46IHN0cmluZykge1xuICAgIHN1cGVyKGBpbnZhbGlkIGRvbWFpbiAnJHtkb21haW59JyBmb3IgY29pbiAnJHtjb2luTmFtZX0nYCk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWREb21haW5FcnJvci5wcm90b3R5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb25mbGljdGluZ0NvaW5GZWF0dXJlc0Vycm9yIGV4dGVuZHMgQml0R29TdGF0aWNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29pbk5hbWU6IHN0cmluZywgY29uZmxpY3RpbmdGZWF0dXJlczogQ29pbkZlYXR1cmVbXSkge1xuICAgIHN1cGVyKFxuICAgICAgYGNvaW4gZmVhdHVyZShzKSBmb3IgY29pbiAnJHtjb2luTmFtZX0nIGNhbm5vdCBiZSBib3RoIHJlcXVpcmVkIGFuZCBkaXNhbGxvd2VkOiAke2NvbmZsaWN0aW5nRmVhdHVyZXMuam9pbignLCAnKX1gXG4gICAgKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ29uZmxpY3RpbmdDb2luRmVhdHVyZXNFcnJvci5wcm90b3R5cGUpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BaseCoin, CoinFeature, KeyCurve, UnderlyingAsset } from './base';
|
|
2
|
+
import { FlareP } from './networks';
|
|
3
|
+
export interface FLRPConstructorOptions {
|
|
4
|
+
id: string;
|
|
5
|
+
fullName: string;
|
|
6
|
+
name: string;
|
|
7
|
+
network: FlareP;
|
|
8
|
+
features: CoinFeature[];
|
|
9
|
+
asset: UnderlyingAsset;
|
|
10
|
+
prefix?: string;
|
|
11
|
+
suffix?: string;
|
|
12
|
+
primaryKeyCurve: KeyCurve;
|
|
13
|
+
}
|
|
14
|
+
export declare class FLRPCoin extends BaseCoin {
|
|
15
|
+
static readonly DEFAULT_FEATURES: CoinFeature[];
|
|
16
|
+
/**
|
|
17
|
+
* Additional fields for utxo coins
|
|
18
|
+
*/
|
|
19
|
+
readonly network: FlareP;
|
|
20
|
+
constructor(options: FLRPConstructorOptions);
|
|
21
|
+
protected disallowedFeatures(): Set<CoinFeature>;
|
|
22
|
+
protected requiredFeatures(): Set<CoinFeature>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Factory function for utxo coin instances.
|
|
26
|
+
*
|
|
27
|
+
* @param id uuid v4
|
|
28
|
+
* @param name unique identifier of the coin
|
|
29
|
+
* @param fullName Complete human-readable name of the coin
|
|
30
|
+
* @param network Network object for this coin
|
|
31
|
+
* @param asset Asset which this coin represents. This is the same for both mainnet and testnet variants of a coin.
|
|
32
|
+
* @param features? Features of this coin. Defaults to the DEFAULT_FEATURES defined in `UtxoCoin`
|
|
33
|
+
* @param prefix? Optional coin prefix. Defaults to empty string
|
|
34
|
+
* @param suffix? Optional coin suffix. Defaults to coin name.
|
|
35
|
+
* @param primaryKeyCurve The elliptic curve for this chain/token
|
|
36
|
+
*/
|
|
37
|
+
export declare function flrp(id: string, name: string, fullName: string, network: FlareP, asset: UnderlyingAsset, features?: CoinFeature[], prefix?: string, suffix?: string,
|
|
38
|
+
/** All UTXOs BitGo supports are SECP256K1 **/
|
|
39
|
+
primaryKeyCurve?: KeyCurve): Readonly<FLRPCoin>;
|
|
40
|
+
//# sourceMappingURL=flrp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flrp.d.ts","sourceRoot":"","sources":["../../src/flrp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,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,gBAWrC;IAEF;;OAEG;IACH,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAEpB,OAAO,EAAE,sBAAsB;IAY3C,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,MAAM,EACf,KAAK,EAAE,eAAe,EACtB,QAAQ,GAAE,WAAW,EAA8B,EACnD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B;AACnC,8CAA8C;AAC9C,eAAe,GAAE,QAA6B,sBAe/C"}
|