@bitgo-beta/statics 10.0.1-alpha.402 → 10.0.1-alpha.403

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/src/account.d.ts +1600 -0
  3. package/dist/src/account.d.ts.map +1 -0
  4. package/dist/src/account.js +2491 -0
  5. package/dist/src/ada.d.ts +35 -0
  6. package/dist/src/ada.d.ts.map +1 -0
  7. package/dist/src/ada.js +65 -0
  8. package/dist/src/allCoinsAndTokens.d.ts +2 -0
  9. package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
  10. package/dist/src/allCoinsAndTokens.js +830 -0
  11. package/dist/src/avaxp.d.ts +40 -0
  12. package/dist/src/avaxp.d.ts.map +1 -0
  13. package/dist/src/avaxp.js +65 -0
  14. package/dist/src/base.d.ts +3046 -0
  15. package/dist/src/base.d.ts.map +1 -0
  16. package/dist/src/base.js +3235 -0
  17. package/dist/src/coinFeatures.d.ts +106 -0
  18. package/dist/src/coinFeatures.d.ts.map +1 -0
  19. package/dist/src/coinFeatures.js +627 -0
  20. package/dist/src/coins/adaTokens.d.ts +2 -0
  21. package/dist/src/coins/adaTokens.d.ts.map +1 -0
  22. package/dist/src/coins/adaTokens.js +12 -0
  23. package/dist/src/coins/avaxTokens.d.ts +2 -0
  24. package/dist/src/coins/avaxTokens.d.ts.map +1 -0
  25. package/dist/src/coins/avaxTokens.js +124 -0
  26. package/dist/src/coins/botOfcTokens.d.ts +2 -0
  27. package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
  28. package/dist/src/coins/botOfcTokens.js +5 -0
  29. package/dist/src/coins/botTokens.d.ts +3 -0
  30. package/dist/src/coins/botTokens.d.ts.map +1 -0
  31. package/dist/src/coins/botTokens.js +43 -0
  32. package/dist/src/coins/bscTokens.d.ts +2 -0
  33. package/dist/src/coins/bscTokens.d.ts.map +1 -0
  34. package/dist/src/coins/bscTokens.js +176 -0
  35. package/dist/src/coins/cosmosTokens.d.ts +2 -0
  36. package/dist/src/coins/cosmosTokens.d.ts.map +1 -0
  37. package/dist/src/coins/cosmosTokens.js +12 -0
  38. package/dist/src/coins/erc20Coins.d.ts +2 -0
  39. package/dist/src/coins/erc20Coins.d.ts.map +1 -0
  40. package/dist/src/coins/erc20Coins.js +1743 -0
  41. package/dist/src/coins/jettonTokens.d.ts +2 -0
  42. package/dist/src/coins/jettonTokens.d.ts.map +1 -0
  43. package/dist/src/coins/jettonTokens.js +13 -0
  44. package/dist/src/coins/nep141Tokens.d.ts +2 -0
  45. package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
  46. package/dist/src/coins/nep141Tokens.js +14 -0
  47. package/dist/src/coins/ofcCoins.d.ts +2 -0
  48. package/dist/src/coins/ofcCoins.d.ts.map +1 -0
  49. package/dist/src/coins/ofcCoins.js +708 -0
  50. package/dist/src/coins/ofcErc20Coins.d.ts +3 -0
  51. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
  52. package/dist/src/coins/ofcErc20Coins.js +1539 -0
  53. package/dist/src/coins/polygonTokens.d.ts +2 -0
  54. package/dist/src/coins/polygonTokens.d.ts.map +1 -0
  55. package/dist/src/coins/polygonTokens.js +155 -0
  56. package/dist/src/coins/sip10Tokens.d.ts +2 -0
  57. package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
  58. package/dist/src/coins/sip10Tokens.js +25 -0
  59. package/dist/src/coins/solTokens.d.ts +3 -0
  60. package/dist/src/coins/solTokens.d.ts.map +1 -0
  61. package/dist/src/coins/solTokens.js +396 -0
  62. package/dist/src/coins/vetTokens.d.ts +2 -0
  63. package/dist/src/coins/vetTokens.d.ts.map +1 -0
  64. package/dist/src/coins/vetTokens.js +11 -0
  65. package/dist/src/coins.d.ts +14 -0
  66. package/dist/src/coins.d.ts.map +1 -0
  67. package/dist/src/coins.js +331 -0
  68. package/dist/src/constants.d.ts +3 -0
  69. package/dist/src/constants.d.ts.map +1 -0
  70. package/dist/src/constants.js +6 -0
  71. package/dist/src/errors.d.ts +37 -0
  72. package/dist/src/errors.d.ts.map +1 -0
  73. package/dist/src/errors.js +74 -0
  74. package/dist/src/flrp.d.ts +40 -0
  75. package/dist/src/flrp.d.ts.map +1 -0
  76. package/dist/src/flrp.js +65 -0
  77. package/dist/src/index.d.ts +12 -0
  78. package/dist/src/index.d.ts.map +1 -0
  79. package/dist/src/index.js +60 -0
  80. package/dist/src/lightning.d.ts +43 -0
  81. package/dist/src/lightning.d.ts.map +1 -0
  82. package/dist/src/lightning.js +60 -0
  83. package/dist/src/map.d.ts +32 -0
  84. package/dist/src/map.d.ts.map +1 -0
  85. package/dist/src/map.js +181 -0
  86. package/dist/src/networkFeatureMapForTokens.d.ts +3 -0
  87. package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
  88. package/dist/src/networkFeatureMapForTokens.js +31 -0
  89. package/dist/src/networks.d.ts +1952 -0
  90. package/dist/src/networks.d.ts.map +1 -0
  91. package/dist/src/networks.js +2429 -0
  92. package/dist/src/ofc.d.ts +727 -0
  93. package/dist/src/ofc.d.ts.map +1 -0
  94. package/dist/src/ofc.js +1617 -0
  95. package/dist/src/tokenConfig.d.ts +389 -0
  96. package/dist/src/tokenConfig.d.ts.map +1 -0
  97. package/dist/src/tokenConfig.js +1046 -0
  98. package/dist/src/utxo.d.ts +43 -0
  99. package/dist/src/utxo.d.ts.map +1 -0
  100. package/dist/src/utxo.js +141 -0
  101. package/dist/tsconfig.tsbuildinfo +1 -1
  102. package/package.json +2 -2
@@ -0,0 +1,2 @@
1
+ export declare const vetTokens: Readonly<import("../account").VetToken>[];
2
+ //# sourceMappingURL=vetTokens.d.ts.map
@@ -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,CAmPjF;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,331 @@
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
+ flow: account_1.erc20Token,
27
+ lineaeth: account_1.erc20Token,
28
+ seievm: account_1.erc20Token,
29
+ bsc: account_1.bscToken,
30
+ celo: account_1.celoToken,
31
+ cosmos: account_1.cosmosToken,
32
+ eth: account_1.erc20,
33
+ eos: account_1.eosToken,
34
+ hbar: account_1.hederaToken,
35
+ near: account_1.nep141Token,
36
+ opeth: account_1.opethErc20,
37
+ polygon: account_1.polygonErc20,
38
+ sol: account_1.solToken,
39
+ stx: account_1.sip10Token,
40
+ sui: account_1.suiToken,
41
+ tao: account_1.taoToken,
42
+ polyx: account_1.polyxToken,
43
+ trx: account_1.tronToken,
44
+ vet: account_1.vetToken,
45
+ xlm: account_1.stellarToken,
46
+ xrp: account_1.xrpToken,
47
+ ofc: ofc_1.ofcToken,
48
+ ada: account_1.adaToken,
49
+ ton: account_1.jettonToken,
50
+ };
51
+ //return the BaseCoin from default coin map if present
52
+ if (isCoinPresentInCoinMap({ ...token })) {
53
+ if (exports.coins.has(token.name)) {
54
+ return exports.coins.get(token.name);
55
+ }
56
+ if (exports.coins.has(token.id)) {
57
+ return exports.coins.get(token.id);
58
+ }
59
+ if (token.alias && exports.coins.has(token.alias)) {
60
+ return exports.coins.get(token.alias);
61
+ }
62
+ }
63
+ const family = token.family;
64
+ const initializer = initializerMap[family];
65
+ if (!initializer) {
66
+ return undefined;
67
+ }
68
+ const commonArgs = [
69
+ token.id,
70
+ token.name,
71
+ token.fullName,
72
+ token.decimalPlaces,
73
+ token.asset,
74
+ token.features,
75
+ token.prefix,
76
+ token.suffix,
77
+ token.network,
78
+ token.primaryKeyCurve,
79
+ ];
80
+ switch (family) {
81
+ case 'arbeth':
82
+ case 'avaxc':
83
+ case 'baseeth':
84
+ case 'bera':
85
+ case 'bsc':
86
+ case 'flow':
87
+ case 'lineaeth':
88
+ case 'seievm':
89
+ case 'celo':
90
+ case 'eth':
91
+ case 'opeth':
92
+ case 'polygon':
93
+ case 'trx':
94
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
95
+ token.contractAddress || token.tokenAddress, // contractAddress
96
+ ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
97
+ );
98
+ case 'apt':
99
+ const { initFunc, objectId } = getAptTokenInitializer(token);
100
+ return initFunc(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
101
+ objectId, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
102
+ );
103
+ case 'vet':
104
+ const { vetInitFunc, vetObjectId, isNFT } = getVetTokenInitializer(token);
105
+ if (isNFT) {
106
+ return vetInitFunc(...commonArgs.slice(0, 3), // id, name, fullName
107
+ vetObjectId, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
108
+ );
109
+ }
110
+ else {
111
+ return vetInitFunc(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
112
+ vetObjectId, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
113
+ );
114
+ }
115
+ case 'stx':
116
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
117
+ token.assetId, // assetId
118
+ ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
119
+ );
120
+ case 'algo':
121
+ return initializer(...commonArgs.slice(0, 2), // id, name
122
+ token.alias, // alias
123
+ ...commonArgs.slice(2) // fullName, decimal, asset, features, prefix, suffix, network, primaryKeyCurve
124
+ );
125
+ case 'eos':
126
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
127
+ token.contractName, // contractName
128
+ token.contractAddress, // contractAddress
129
+ ...commonArgs.slice(4, 8), // asset, features, prefix, suffix
130
+ token.symbol, // symbol
131
+ ...commonArgs.slice(8) // network, primaryKeyCurve
132
+ );
133
+ case 'hbar':
134
+ return initializer(...commonArgs.slice(0, 3), // id, name, fullName
135
+ token.network, // network
136
+ token.decimalPlaces, token.asset, token.contractAddress, // contractAddress
137
+ ...commonArgs.slice(5, 8), // features, prefix, suffix
138
+ token.primaryKeyCurve);
139
+ case 'sol':
140
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
141
+ token.tokenAddress, // tokenAddress
142
+ token.contractAddress, // contractAddress
143
+ token.asset, token.features, token.programId, ...commonArgs.slice(6) // prefix, suffix, network, primaryKeyCurve
144
+ );
145
+ case 'sui':
146
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
147
+ token.packageId, // packageId
148
+ token.module, // module
149
+ token.symbol, // symbol
150
+ token.contractAddress, // contractAddress
151
+ ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
152
+ );
153
+ case 'tao':
154
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
155
+ token.subnetId, // subnetId
156
+ ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
157
+ );
158
+ case 'polyx':
159
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
160
+ token.ticker, // ticker
161
+ token.assetId, // assetId
162
+ ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
163
+ );
164
+ case 'xlm':
165
+ return initializer(...commonArgs.slice(0, 5), // id, name, fullName, decimalPlaces, asset
166
+ token.domain, // domain
167
+ ...commonArgs.slice(5) // features, prefix, suffix, network, primaryKeyCurve
168
+ );
169
+ case 'xrp':
170
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
171
+ token.issuerAddress, // issuerAddress
172
+ token.currecnycode, // currencyCode
173
+ token.contractAddress, // contractAddress
174
+ token.domain, // domain
175
+ ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
176
+ );
177
+ case 'ofc':
178
+ return initializer(...commonArgs, // id, name, fullName, decimalPlaces, asset, prefix, suffix, network, primaryKeyCurve
179
+ token.baseUnit, // baseUnit
180
+ token.isToken, // isToken
181
+ token.kind, // kind
182
+ token.addressCoin // addressCoin
183
+ );
184
+ case 'asi':
185
+ case 'atom':
186
+ case 'baby':
187
+ case 'bld':
188
+ case 'coreum':
189
+ case 'cronos':
190
+ case 'hash':
191
+ case 'injective':
192
+ case 'initia':
193
+ case 'osmo':
194
+ case 'thor':
195
+ case 'sei':
196
+ case 'tia':
197
+ case 'zeta':
198
+ return initializer(...commonArgs.slice(0, 3), // id, name, fullName
199
+ token.denom, // denom
200
+ token.decimalPlaces, // decimalPlaces
201
+ token.network, // network
202
+ token.baseUnit, // baseUnit
203
+ ...commonArgs.slice(4, 8), // asset, features, prefix, suffix
204
+ token.primaryKeyCurve // primaryKeyCurve
205
+ );
206
+ case 'ada':
207
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
208
+ token.assetName, token.policyId, token.contractAddress, ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
209
+ );
210
+ case 'ton':
211
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
212
+ token.contractAddress, // contractAddress
213
+ ...commonArgs.slice(4) // asset, features, prefix, suffix, network, primaryKeyCurve
214
+ );
215
+ default:
216
+ return undefined;
217
+ }
218
+ }
219
+ function getAptTokenInitializer(token) {
220
+ if (token.assetId) {
221
+ // used for fungible-assets / legacy coins etc.
222
+ return {
223
+ initFunc: account_1.aptToken,
224
+ objectId: token.assetId,
225
+ };
226
+ }
227
+ // used for non-fungible token (NFT) collections
228
+ return {
229
+ initFunc: account_1.aptNFTCollection,
230
+ objectId: token.nftCollectionId,
231
+ };
232
+ }
233
+ function getVetTokenInitializer(token) {
234
+ if (token.nftCollectionId) {
235
+ return {
236
+ vetInitFunc: account_1.vetNFTCollection,
237
+ vetObjectId: token.nftCollectionId,
238
+ isNFT: true,
239
+ };
240
+ }
241
+ return {
242
+ vetInitFunc: account_1.vetToken,
243
+ vetObjectId: token.contractAddress,
244
+ isNFT: false,
245
+ };
246
+ }
247
+ function isCoinPresentInCoinMap({ name, id, alias }) {
248
+ return Boolean(exports.coins.has(name) || (id && exports.coins.has(id)) || (alias && exports.coins.has(alias)));
249
+ }
250
+ function createTokenMapUsingConfigDetails(tokenConfigMap) {
251
+ const BaseCoins = new Map();
252
+ const nftAndOtherTokens = new Set([
253
+ 'erc721:bsctoken',
254
+ 'terc721:bsctoken',
255
+ 'erc1155:bsctoken',
256
+ 'terc1155:bsctoken',
257
+ 'erc721:witch',
258
+ 'erc721:token',
259
+ 'erc1155:token',
260
+ 'nonstandard:token',
261
+ 'terc721:token',
262
+ 'terc1155:token',
263
+ 'tnonstandard:token',
264
+ 'terc721:bitgoerc721',
265
+ 'terc1155:bitgoerc1155',
266
+ 'terc721:hoodidj',
267
+ 'erc721:polygontoken',
268
+ 'erc1155:polygontoken',
269
+ 'terc721:polygontoken',
270
+ 'terc1155:polygontoken',
271
+ 'erc721:soneiumtoken',
272
+ 'erc1155:soneiumtoken',
273
+ 'terc721:soneiumtoken',
274
+ 'terc1155:soneiumtoken',
275
+ ]);
276
+ // Add all the coins from statics coin map first
277
+ exports.coins.forEach((coin, coinName) => {
278
+ BaseCoins.set(coinName, coin);
279
+ });
280
+ // add the tokens not present in the static coin map
281
+ for (const tokenConfigs of Object.values(tokenConfigMap)) {
282
+ const tokenConfig = tokenConfigs[0];
283
+ if (!isCoinPresentInCoinMap({ ...tokenConfig }) &&
284
+ tokenConfig.isToken &&
285
+ !nftAndOtherTokens.has(tokenConfig.name)) {
286
+ const token = createToken(tokenConfig);
287
+ if (token) {
288
+ BaseCoins.set(token.name, token);
289
+ }
290
+ }
291
+ }
292
+ return map_1.CoinMap.fromCoins(Array.from(BaseCoins.values()));
293
+ }
294
+ function createTokenMapUsingTrimmedConfigDetails(reducedTokenConfigMap) {
295
+ const amsTokenConfigMap = {};
296
+ const networkNameMap = new Map(Object.values(networks_1.Networks).flatMap((networkType) => Object.values(networkType).map((network) => [network.name, network])));
297
+ for (const tokenConfigs of Object.values(reducedTokenConfigMap)) {
298
+ const tokenConfig = tokenConfigs[0];
299
+ const network = networkNameMap.get(tokenConfig.network.name);
300
+ if (!isCoinPresentInCoinMap({ ...tokenConfig }) &&
301
+ network &&
302
+ tokenConfig.isToken &&
303
+ networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family]) {
304
+ const features = new Set([
305
+ ...(networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family] || []),
306
+ ...(tokenConfig.additionalFeatures || []),
307
+ ]);
308
+ tokenConfig.excludedFeatures?.forEach((feature) => features.delete(feature));
309
+ amsTokenConfigMap[tokenConfig.name] = [{ ...tokenConfig, features: Array.from(features), network }];
310
+ }
311
+ }
312
+ return createTokenMapUsingConfigDetails(amsTokenConfigMap);
313
+ }
314
+ function createTokenUsingTrimmedConfigDetails(tokenConfig) {
315
+ let fullTokenConfig;
316
+ const networkNameMap = new Map(Object.values(networks_1.Networks).flatMap((networkType) => Object.values(networkType).map((network) => [network.name, network])));
317
+ const network = networkNameMap.get(tokenConfig.network.name);
318
+ if (!isCoinPresentInCoinMap({ ...tokenConfig }) &&
319
+ network &&
320
+ tokenConfig.isToken &&
321
+ networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family]) {
322
+ const features = new Set([
323
+ ...(networkFeatureMapForTokens_1.networkFeatureMapForTokens[network.family] || []),
324
+ ...(tokenConfig.additionalFeatures || []),
325
+ ]);
326
+ tokenConfig.excludedFeatures?.forEach((feature) => features.delete(feature));
327
+ fullTokenConfig = { ...tokenConfig, features: Array.from(features), network };
328
+ return createToken(fullTokenConfig);
329
+ }
330
+ }
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMENBLGtDQW1QQztBQWlDRCx3REFFQztBQUVELDRFQWtEQztBQUVELDBGQTZCQztBQUVELG9GQXdCQztBQTdhRCx1Q0E2Qm1CO0FBQ25CLCtCQUFpQztBQUdqQywrQkFBZ0M7QUFDaEMseUNBQXNDO0FBQ3RDLDZFQUEwRTtBQUMxRSx5REFBc0U7QUFDdEUsK0NBQTRDO0FBQzVDLDJEQUF3RDtBQUUzQyxRQUFBLEtBQUssR0FBRyxhQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxxQ0FBaUIsRUFBRSxHQUFHLDZCQUFhLEVBQUUsR0FBRyw4QkFBYyxFQUFFLEdBQUcsbUJBQVEsQ0FBQyxDQUFDLENBQUM7QUFFakgsU0FBZ0IsV0FBVyxDQUFDLEtBQXFCO0lBQy9DLE1BQU0sY0FBYyxHQUE0QjtRQUM5QyxJQUFJLEVBQUUsbUJBQVM7UUFDZixHQUFHLEVBQUUsa0JBQVE7UUFDYixNQUFNLEVBQUUscUJBQVc7UUFDbkIsS0FBSyxFQUFFLG1CQUFTO1FBQ2hCLE9BQU8sRUFBRSxvQkFBVTtRQUNuQixJQUFJLEVBQUUsbUJBQVM7UUFDZixJQUFJLEVBQUUsb0JBQVU7UUFDaEIsUUFBUSxFQUFFLG9CQUFVO1FBQ3BCLE1BQU0sRUFBRSxvQkFBVTtRQUNsQixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUsbUJBQVM7UUFDZixNQUFNLEVBQUUscUJBQVc7UUFDbkIsR0FBRyxFQUFFLGVBQUs7UUFDVixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUscUJBQVc7UUFDakIsSUFBSSxFQUFFLHFCQUFXO1FBQ2pCLEtBQUssRUFBRSxvQkFBVTtRQUNqQixPQUFPLEVBQUUsc0JBQVk7UUFDckIsR0FBRyxFQUFFLGtCQUFRO1FBQ2IsR0FBRyxFQUFFLG9CQUFVO1FBQ2YsR0FBRyxFQUFFLGtCQUFRO1FBQ2Is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LENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUNyRSxDQUNGLENBQUM7SUFDRixNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsSUFDRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxPQUFPO1FBQ1AsV0FBVyxDQUFDLE9BQU87UUFDbkIsdURBQTBCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUMxQyxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDdkIsR0FBRyxDQUFDLHVEQUEwQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdFLGVBQWUsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBb0IsQ0FBQztRQUNoRyxPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFsZ29Ub2tlbixcbiAgYXB0TkZUQ29sbGVjdGlvbixcbiAgYXB0VG9rZW4sXG4gIGFyYmV0aEVyYzIwLFxuICBhdmF4RXJjMjAsXG4gIGJlcmFFcmMyMCxcbiAgYnNjVG9rZW4sXG4gIGNlbG9Ub2tlbixcbiAgY29zbW9zVG9rZW4sXG4gIGVvc1Rva2VuLFxuICBlcmMyMCxcbiAgaGVkZXJhVG9rZW4sXG4gIGpldHRvblRva2VuLFxuICBuZXAxNDFUb2tlbixcbiAgb3BldGhFcmMyMCxcbiAgcG9seWdvbkVyYzIwLFxuICBwb2x5eFRva2VuLFxuICBzaXAxMFRva2VuLFxuICBzb2xUb2tlbixcbiAgc3RlbGxhclRva2VuLFxuICBzdWlUb2tlbixcbiAgdGFvVG9rZW4sXG4gIHRyb25Ub2tlbixcbiAgdmV0TkZUQ29sbGVjdGlvbixcbiAgdmV0VG9rZW4sXG4gIHhycFRva2VuLFxuICBhZGFUb2tlbixcbiAgZXJjMjBUb2tlbixcbn0gZnJvbSAnLi9hY2NvdW50JztcbmltcG9ydCB7IG9mY1Rva2VuIH0gZnJvbSAnLi9vZmMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQW1zVG9rZW5Db25maWcsIFRyaW1tZWRBbXNUb2tlbkNvbmZpZyB9IGZyb20gJy4vdG9rZW5Db25maWcnO1xuaW1wb3J0IHsgQ29pbk1hcCB9IGZyb20gJy4vbWFwJztcbmltcG9ydCB7IE5ldHdvcmtzIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VucyB9IGZyb20gJy4vbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMnO1xuaW1wb3J0IHsgb2ZjRXJjMjBDb2lucywgdE9mY0VyYzIwQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0VyYzIwQ29pbnMnO1xuaW1wb3J0IHsgb2ZjQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0NvaW5zJztcbmltcG9ydCB7IGFsbENvaW5zQW5kVG9rZW5zIH0gZnJvbSAnLi9hbGxDb2luc0FuZFRva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBjb2lucyA9IENvaW5NYXAuZnJvbUNvaW5zKFsuLi5hbGxDb2luc0FuZFRva2VucywgLi4ub2ZjRXJjMjBDb2lucywgLi4udE9mY0VyYzIwQ29pbnMsIC4uLm9mY0NvaW5zXSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlbih0b2tlbjogQW1zVG9rZW5Db25maWcpOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBjb25zdCBpbml0aWFsaXplck1hcDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgYWxnbzogYWxnb1Rva2VuLFxuICAgIGFwdDogYXB0VG9rZW4sXG4gICAgYXJiZXRoOiBhcmJldGhFcmMyMCxcbiAgICBhdmF4YzogYXZheEVyYzIwLFxuICAgIGJhc2VldGg6IGVyYzIwVG9rZW4sXG4gICAgYmVyYTogYmVyYUVyYzIwLFxuICAgIGZsb3c6IGVyYzIwVG9rZW4sXG4gICAgbGluZWFldGg6IGVyYzIwVG9rZW4sXG4gICAgc2VpZXZtOiBlcmMyMFRva2VuLFxuICAgIGJzYzogYnNjVG9rZW4sXG4gICAgY2VsbzogY2Vsb1Rva2VuLFxuICAgIGNvc21vczogY29zbW9zVG9rZW4sXG4gICAgZXRoOiBlcmMyMCxcbiAgICBlb3M6IGVvc1Rva2VuLFxuICAgIGhiYXI6IGhlZGVyYVRva2VuLFxuICAgIG5lYXI6IG5lcDE0MVRva2VuLFxuICAgIG9wZXRoOiBvcGV0aEVyYzIwLFxuICAgIHBvbHlnb246IHBvbHlnb25FcmMyMCxcbiAgICBzb2w6IHNvbFRva2VuLFxuICAgIHN0eDogc2lwMTBUb2tlbixcbiAgICBzdWk6IHN1aVRva2VuLFxuICAgIHRhbzogdGFvVG9rZW4sXG4gICAgcG9seXg6IHBvbHl4VG9rZW4sXG4gICAgdHJ4OiB0cm9uVG9rZW4sXG4gICAgdmV0OiB2ZXRUb2tlbixcbiAgICB4bG06IHN0ZWxsYXJUb2tlbixcbiAgICB4cnA6IHhycFRva2VuLFxuICAgIG9mYzogb2ZjVG9rZW4sXG4gICAgYWRhOiBhZGFUb2tlbixcbiAgICB0b246IGpldHRvblRva2VuLFxuICB9O1xuXG4gIC8vcmV0dXJuIHRoZSBCYXNlQ29pbiBmcm9tIGRlZmF1bHQgY29pbiBtYXAgaWYgcHJlc2VudFxuICBpZiAoaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuIH0pKSB7XG4gICAgaWYgKGNvaW5zLmhhcyh0b2tlbi5uYW1lKSkge1xuICAgICAgcmV0dXJuIGNvaW5zLmdldCh0b2tlbi5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGNvaW5zLmhhcyh0b2tlbi5pZCkpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4uaWQpO1xuICAgIH1cbiAgICBpZiAodG9rZW4uYWxpYXMgJiYgY29pbnMuaGFzKHRva2VuLmFsaWFzKSkge1xuICAgICAgcmV0dXJuIGNvaW5zLmdldCh0b2tlbi5hbGlhcyk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGZhbWlseSA9IHRva2VuLmZhbWlseTtcbiAgY29uc3QgaW5pdGlhbGl6ZXIgPSBpbml0aWFsaXplck1hcFtmYW1pbHldIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPjtcbiAgaWYgKCFpbml0aWFsaXplcikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBjb21tb25BcmdzID0gW1xuICAgIHRva2VuLmlkLFxuICAgIHRva2VuLm5hbWUsXG4gICAgdG9rZW4uZnVsbE5hbWUsXG4gICAgdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICB0b2tlbi5hc3NldCxcbiAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICB0b2tlbi5wcmVmaXgsXG4gICAgdG9rZW4uc3VmZml4LFxuICAgIHRva2VuLm5ldHdvcmssXG4gICAgdG9rZW4ucHJpbWFyeUtleUN1cnZlLFxuICBdO1xuXG4gIHN3aXRjaCAoZmFtaWx5KSB7XG4gICAgY2FzZSAnYXJiZXRoJzpcbiAgICBjYXNlICdhdmF4Yyc6XG4gICAgY2FzZSAnYmFzZWV0aCc6XG4gICAgY2FzZSAnYmVyYSc6XG4gICAgY2FzZSAnYnNjJzpcbiAgICBjYXNlICdmbG93JzpcbiAgICBjYXNlICdsaW5lYWV0aCc6XG4gICAgY2FzZSAnc2VpZXZtJzpcbiAgICBjYXNlICdjZWxvJzpcbiAgICBjYXNlICdldGgnOlxuICAgIGNhc2UgJ29wZXRoJzpcbiAgICBjYXNlICdwb2x5Z29uJzpcbiAgICBjYXNlICd0cngnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnYXB0JzpcbiAgICAgIGNvbnN0IHsgaW5pdEZ1bmMsIG9iamVjdElkIH0gPSBnZXRBcHRUb2tlbkluaXRpYWxpemVyKHRva2VuKTtcbiAgICAgIHJldHVybiBpbml0RnVuYyhcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIG9iamVjdElkLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3ZldCc6XG4gICAgICBjb25zdCB7IHZldEluaXRGdW5jLCB2ZXRPYmplY3RJZCwgaXNORlQgfSA9IGdldFZldFRva2VuSW5pdGlhbGl6ZXIodG9rZW4pO1xuICAgICAgaWYgKGlzTkZUKSB7XG4gICAgICAgIHJldHVybiB2ZXRJbml0RnVuYyhcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgICB2ZXRPYmplY3RJZCxcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZldEluaXRGdW5jKFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICAgIHZldE9iamVjdElkLFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICBjYXNlICdzdHgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2FsZ28nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDIpLCAvLyBpZCwgbmFtZVxuICAgICAgICB0b2tlbi5hbGlhcywgLy8gYWxpYXNcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgyKSAvLyBmdWxsTmFtZSwgZGVjaW1hbCwgYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnZW9zJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0TmFtZSwgLy8gY29udHJhY3ROYW1lXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCwgOCksIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4uc3ltYm9sLCAvLyBzeW1ib2xcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg4KSAvLyBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdoYmFyJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgIHRva2VuLm5ldHdvcmssIC8vIG5ldHdvcmtcbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNSwgOCksIC8vIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdzb2wnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udG9rZW5BZGRyZXNzLCAvLyB0b2tlbkFkZHJlc3NcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmZlYXR1cmVzLFxuICAgICAgICB0b2tlbi5wcm9ncmFtSWQsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNikgLy8gcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3N1aSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5wYWNrYWdlSWQsIC8vIHBhY2thZ2VJZFxuICAgICAgICB0b2tlbi5tb2R1bGUsIC8vIG1vZHVsZVxuICAgICAgICB0b2tlbi5zeW1ib2wsIC8vIHN5bWJvbFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3Rhbyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5zdWJuZXRJZCwgLy8gc3VibmV0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAncG9seXgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udGlja2VyLCAvLyB0aWNrZXJcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hsbSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNSksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXRcbiAgICAgICAgdG9rZW4uZG9tYWluLCAvLyBkb21haW5cbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg1KSAvLyBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hycCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5pc3N1ZXJBZGRyZXNzLCAvLyBpc3N1ZXJBZGRyZXNzXG4gICAgICAgIHRva2VuLmN1cnJlY255Y29kZSwgLy8gY3VycmVuY3lDb2RlXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmRvbWFpbiwgLy8gZG9tYWluXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ29mYyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3MsIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXQsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgdG9rZW4uYmFzZVVuaXQsIC8vIGJhc2VVbml0XG4gICAgICAgIHRva2VuLmlzVG9rZW4sIC8vIGlzVG9rZW5cbiAgICAgICAgdG9rZW4ua2luZCwgLy8ga2luZFxuICAgICAgICB0b2tlbi5hZGRyZXNzQ29pbiAvLyBhZGRyZXNzQ29pblxuICAgICAgKTtcbiAgICBjYXNlICdhc2knOlxuICAgIGNhc2UgJ2F0b20nOlxuICAgIGNhc2UgJ2JhYnknOlxuICAgIGNhc2UgJ2JsZCc6XG4gICAgY2FzZSAnY29yZXVtJzpcbiAgICBjYXNlICdjcm9ub3MnOlxuICAgIGNhc2UgJ2hhc2gnOlxuICAgIGNhc2UgJ2luamVjdGl2ZSc6XG4gICAgY2FzZSAnaW5pdGlhJzpcbiAgICBjYXNlICdvc21vJzpcbiAgICBjYXNlICd0aG9yJzpcbiAgICBjYXNlICdzZWknOlxuICAgIGNhc2UgJ3RpYSc6XG4gICAgY2FzZSAnemV0YSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5kZW5vbSwgLy8gZGVub21cbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcywgLy8gZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLCAvLyBuZXR3b3JrXG4gICAgICAgIHRva2VuLmJhc2VVbml0LCAvLyBiYXNlVW5pdFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQsIDgpLCAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSAvLyBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAnYWRhJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmFzc2V0TmFtZSxcbiAgICAgICAgdG9rZW4ucG9saWN5SWQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAndG9uJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEFwdFRva2VuSW5pdGlhbGl6ZXIodG9rZW46IEFtc1Rva2VuQ29uZmlnKSB7XG4gIGlmICh0b2tlbi5hc3NldElkKSB7XG4gICAgLy8gdXNlZCBmb3IgZnVuZ2libGUtYXNzZXRzIC8gbGVnYWN5IGNvaW5zIGV0Yy5cbiAgICByZXR1cm4ge1xuICAgICAgaW5pdEZ1bmM6IGFwdFRva2VuIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICAgIG9iamVjdElkOiB0b2tlbi5hc3NldElkLFxuICAgIH07XG4gIH1cbiAgLy8gdXNlZCBmb3Igbm9uLWZ1bmdpYmxlIHRva2VuIChORlQpIGNvbGxlY3Rpb25zXG4gIHJldHVybiB7XG4gICAgaW5pdEZ1bmM6IGFwdE5GVENvbGxlY3Rpb24gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgIG9iamVjdElkOiB0b2tlbi5uZnRDb2xsZWN0aW9uSWQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFZldFRva2VuSW5pdGlhbGl6ZXIodG9rZW46IEFtc1Rva2VuQ29uZmlnKSB7XG4gIGlmICh0b2tlbi5uZnRDb2xsZWN0aW9uSWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmV0SW5pdEZ1bmM6IHZldE5GVENvbGxlY3Rpb24gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgICAgdmV0T2JqZWN0SWQ6IHRva2VuLm5mdENvbGxlY3Rpb25JZCxcbiAgICAgIGlzTkZUOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHZldEluaXRGdW5jOiB2ZXRUb2tlbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgdmV0T2JqZWN0SWQ6IHRva2VuLmNvbnRyYWN0QWRkcmVzcyxcbiAgICBpc05GVDogZmFsc2UsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgbmFtZSwgaWQsIGFsaWFzIH06IHsgbmFtZTogc3RyaW5nOyBpZD86IHN0cmluZzsgYWxpYXM/OiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihjb2lucy5oYXMobmFtZSkgfHwgKGlkICYmIGNvaW5zLmhhcyhpZCkpIHx8IChhbGlhcyAmJiBjb2lucy5oYXMoYWxpYXMpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlbk1hcFVzaW5nQ29uZmlnRGV0YWlscyh0b2tlbkNvbmZpZ01hcDogUmVjb3JkPHN0cmluZywgQW1zVG9rZW5Db25maWdbXT4pOiBDb2luTWFwIHtcbiAgY29uc3QgQmFzZUNvaW5zOiBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0IG5mdEFuZE90aGVyVG9rZW5zID0gbmV3IFNldChbXG4gICAgJ2VyYzcyMTpic2N0b2tlbicsXG4gICAgJ3RlcmM3MjE6YnNjdG9rZW4nLFxuICAgICdlcmMxMTU1OmJzY3Rva2VuJyxcbiAgICAndGVyYzExNTU6YnNjdG9rZW4nLFxuICAgICdlcmM3MjE6d2l0Y2gnLFxuICAgICdlcmM3MjE6dG9rZW4nLFxuICAgICdlcmMxMTU1OnRva2VuJyxcbiAgICAnbm9uc3RhbmRhcmQ6dG9rZW4nLFxuICAgICd0ZXJjNzIxOnRva2VuJyxcbiAgICAndGVyYzExNTU6dG9rZW4nLFxuICAgICd0bm9uc3RhbmRhcmQ6dG9rZW4nLFxuICAgICd0ZXJjNzIxOmJpdGdvZXJjNzIxJyxcbiAgICAndGVyYzExNTU6Yml0Z29lcmMxMTU1JyxcbiAgICAndGVyYzcyMTpob29kaWRqJyxcbiAgICAnZXJjNzIxOnBvbHlnb250b2tlbicsXG4gICAgJ2VyYzExNTU6cG9seWdvbnRva2VuJyxcbiAgICAndGVyYzcyMTpwb2x5Z29udG9rZW4nLFxuICAgICd0ZXJjMTE1NTpwb2x5Z29udG9rZW4nLFxuICAgICdlcmM3MjE6c29uZWl1bXRva2VuJyxcbiAgICAnZXJjMTE1NTpzb25laXVtdG9rZW4nLFxuICAgICd0ZXJjNzIxOnNvbmVpdW10b2tlbicsXG4gICAgJ3RlcmMxMTU1OnNvbmVpdW10b2tlbicsXG4gIF0pO1xuXG4gIC8vIEFkZCBhbGwgdGhlIGNvaW5zIGZyb20gc3RhdGljcyBjb2luIG1hcCBmaXJzdFxuICBjb2lucy5mb3JFYWNoKChjb2luLCBjb2luTmFtZSkgPT4ge1xuICAgIEJhc2VDb2lucy5zZXQoY29pbk5hbWUsIGNvaW4pO1xuICB9KTtcblxuICAvLyBhZGQgdGhlIHRva2VucyBub3QgcHJlc2VudCBpbiB0aGUgc3RhdGljIGNvaW4gbWFwXG4gIGZvciAoY29uc3QgdG9rZW5Db25maWdzIG9mIE9iamVjdC52YWx1ZXModG9rZW5Db25maWdNYXApKSB7XG4gICAgY29uc3QgdG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZ3NbMF07XG5cbiAgICBpZiAoXG4gICAgICAhaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pICYmXG4gICAgICB0b2tlbkNvbmZpZy5pc1Rva2VuICYmXG4gICAgICAhbmZ0QW5kT3RoZXJUb2tlbnMuaGFzKHRva2VuQ29uZmlnLm5hbWUpXG4gICAgKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGNyZWF0ZVRva2VuKHRva2VuQ29uZmlnKTtcbiAgICAgIGlmICh0b2tlbikge1xuICAgICAgICBCYXNlQ29pbnMuc2V0KHRva2VuLm5hbWUsIHRva2VuKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gQ29pbk1hcC5mcm9tQ29pbnMoQXJyYXkuZnJvbShCYXNlQ29pbnMudmFsdWVzKCkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuTWFwVXNpbmdUcmltbWVkQ29uZmlnRGV0YWlscyhcbiAgcmVkdWNlZFRva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT5cbik6IENvaW5NYXAge1xuICBjb25zdCBhbXNUb2tlbkNvbmZpZ01hcDogUmVjb3JkPHN0cmluZywgQW1zVG9rZW5Db25maWdbXT4gPSB7fTtcbiAgY29uc3QgbmV0d29ya05hbWVNYXAgPSBuZXcgTWFwKFxuICAgIE9iamVjdC52YWx1ZXMoTmV0d29ya3MpLmZsYXRNYXAoKG5ldHdvcmtUeXBlKSA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhuZXR3b3JrVHlwZSkubWFwKChuZXR3b3JrKSA9PiBbbmV0d29yay5uYW1lLCBuZXR3b3JrXSlcbiAgICApXG4gICk7XG5cbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyhyZWR1Y2VkVG9rZW5Db25maWdNYXApKSB7XG4gICAgY29uc3QgdG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZ3NbMF07XG4gICAgY29uc3QgbmV0d29yayA9IG5ldHdvcmtOYW1lTWFwLmdldCh0b2tlbkNvbmZpZy5uZXR3b3JrLm5hbWUpO1xuICAgIGlmIChcbiAgICAgICFpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgLi4udG9rZW5Db25maWcgfSkgJiZcbiAgICAgIG5ldHdvcmsgJiZcbiAgICAgIHRva2VuQ29uZmlnLmlzVG9rZW4gJiZcbiAgICAgIG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XVxuICAgICkge1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgLi4uKG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XSB8fCBbXSksXG4gICAgICAgIC4uLih0b2tlbkNvbmZpZy5hZGRpdGlvbmFsRmVhdHVyZXMgfHwgW10pLFxuICAgICAgXSk7XG4gICAgICB0b2tlbkNvbmZpZy5leGNsdWRlZEZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlKSA9PiBmZWF0dXJlcy5kZWxldGUoZmVhdHVyZSkpO1xuICAgICAgYW1zVG9rZW5Db25maWdNYXBbdG9rZW5Db25maWcubmFtZV0gPSBbeyAuLi50b2tlbkNvbmZpZywgZmVhdHVyZXM6IEFycmF5LmZyb20oZmVhdHVyZXMpLCBuZXR3b3JrIH1dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjcmVhdGVUb2tlbk1hcFVzaW5nQ29uZmlnRGV0YWlscyhhbXNUb2tlbkNvbmZpZ01hcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlblVzaW5nVHJpbW1lZENvbmZpZ0RldGFpbHMoXG4gIHRva2VuQ29uZmlnOiBUcmltbWVkQW1zVG9rZW5Db25maWdcbik6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGxldCBmdWxsVG9rZW5Db25maWc6IEFtc1Rva2VuQ29uZmlnIHwgdW5kZWZpbmVkO1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IG5ldyBNYXAoXG4gICAgT2JqZWN0LnZhbHVlcyhOZXR3b3JrcykuZmxhdE1hcCgobmV0d29ya1R5cGUpID0+XG4gICAgICBPYmplY3QudmFsdWVzKG5ldHdvcmtUeXBlKS5tYXAoKG5ldHdvcmspID0+IFtuZXR3b3JrLm5hbWUsIG5ldHdvcmtdKVxuICAgIClcbiAgKTtcbiAgY29uc3QgbmV0d29yayA9IG5ldHdvcmtOYW1lTWFwLmdldCh0b2tlbkNvbmZpZy5uZXR3b3JrLm5hbWUpO1xuICBpZiAoXG4gICAgIWlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSAmJlxuICAgIG5ldHdvcmsgJiZcbiAgICB0b2tlbkNvbmZpZy5pc1Rva2VuICYmXG4gICAgbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnNbbmV0d29yay5mYW1pbHldXG4gICkge1xuICAgIGNvbnN0IGZlYXR1cmVzID0gbmV3IFNldChbXG4gICAgICAuLi4obmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnNbbmV0d29yay5mYW1pbHldIHx8IFtdKSxcbiAgICAgIC4uLih0b2tlbkNvbmZpZy5hZGRpdGlvbmFsRmVhdHVyZXMgfHwgW10pLFxuICAgIF0pO1xuICAgIHRva2VuQ29uZmlnLmV4Y2x1ZGVkRmVhdHVyZXM/LmZvckVhY2goKGZlYXR1cmUpID0+IGZlYXR1cmVzLmRlbGV0ZShmZWF0dXJlKSk7XG4gICAgZnVsbFRva2VuQ29uZmlnID0geyAuLi50b2tlbkNvbmZpZywgZmVhdHVyZXM6IEFycmF5LmZyb20oZmVhdHVyZXMpLCBuZXR3b3JrIH0gYXMgQW1zVG9rZW5Db25maWc7XG4gICAgcmV0dXJuIGNyZWF0ZVRva2VuKGZ1bGxUb2tlbkNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export declare const DOMAIN_PATTERN: RegExp;
2
+ export declare const HEDERA_NODE_ACCCOUNT_ID = "0.0.3";
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -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"}