@bitgo-beta/statics 10.0.1-alpha.506 → 10.0.1-alpha.508

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 (54) hide show
  1. package/dist/src/account.d.ts +35 -1
  2. package/dist/src/account.d.ts.map +1 -1
  3. package/dist/src/account.js +63 -2
  4. package/dist/src/allCoinsAndTokens.d.ts.map +1 -1
  5. package/dist/src/allCoinsAndTokens.js +55 -3
  6. package/dist/src/base.d.ts +52 -5
  7. package/dist/src/base.d.ts.map +1 -1
  8. package/dist/src/base.js +55 -5
  9. package/dist/src/coinFeatures.d.ts +13 -12
  10. package/dist/src/coinFeatures.d.ts.map +1 -1
  11. package/dist/src/coinFeatures.js +8 -4
  12. package/dist/src/coins/botOfcTokens.d.ts.map +1 -1
  13. package/dist/src/coins/botOfcTokens.js +12 -69
  14. package/dist/src/coins/botTokens.d.ts.map +1 -1
  15. package/dist/src/coins/botTokens.js +166 -69
  16. package/dist/src/coins/cantonTokens.d.ts.map +1 -1
  17. package/dist/src/coins/cantonTokens.js +4 -1
  18. package/dist/src/coins/erc20Coins.js +4 -4
  19. package/dist/src/coins/erc7984Tokens.d.ts +4 -2
  20. package/dist/src/coins/erc7984Tokens.d.ts.map +1 -1
  21. package/dist/src/coins/erc7984Tokens.js +10 -11
  22. package/dist/src/coins/nep141Tokens.d.ts.map +1 -1
  23. package/dist/src/coins/nep141Tokens.js +2 -1
  24. package/dist/src/coins/ofcCoins.d.ts.map +1 -1
  25. package/dist/src/coins/ofcCoins.js +12 -2
  26. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -1
  27. package/dist/src/coins/ofcErc20Coins.js +41 -4
  28. package/dist/src/coins/solTokens.d.ts.map +1 -1
  29. package/dist/src/coins/solTokens.js +4 -2
  30. package/dist/src/coins.d.ts.map +1 -1
  31. package/dist/src/coins.js +13 -4
  32. package/dist/src/errors.d.ts +6 -0
  33. package/dist/src/errors.d.ts.map +1 -1
  34. package/dist/src/errors.js +16 -2
  35. package/dist/src/index.d.ts +2 -2
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +6 -2
  38. package/dist/src/kaspa.d.ts +11 -12
  39. package/dist/src/kaspa.d.ts.map +1 -1
  40. package/dist/src/kaspa.js +1 -1
  41. package/dist/src/map.d.ts +2 -0
  42. package/dist/src/map.d.ts.map +1 -1
  43. package/dist/src/map.js +25 -9
  44. package/dist/src/networkFeatureMapForTokens.d.ts +6 -0
  45. package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -1
  46. package/dist/src/networkFeatureMapForTokens.js +21 -1
  47. package/dist/src/networks.d.ts +51 -0
  48. package/dist/src/networks.d.ts.map +1 -1
  49. package/dist/src/networks.js +57 -1
  50. package/dist/src/tokenConfig.d.ts +10 -1
  51. package/dist/src/tokenConfig.d.ts.map +1 -1
  52. package/dist/src/tokenConfig.js +22 -1
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +2 -2
package/dist/src/map.js CHANGED
@@ -9,15 +9,21 @@ class CoinMap {
9
9
  this._coinByIds = new Map();
10
10
  // Holds key equivalences used during an asset name migration
11
11
  this._coinByAliases = new Map();
12
- // map of coin by address -> the key is the family:contractAddress
12
+ // map of coin by address -> the key is the family:networkType:contractAddress
13
13
  // the family is the where the coin is e.g l1 chains like eth, bsc etc. or l2 like arbeth, celo etc.
14
14
  this._coinByContractAddress = new Map();
15
- // map of coin by NFT collection ID -> the key is the (t)family:nftCollectionID
15
+ // map of coin by NFT collection ID -> the key is the (t)family:networkType:nftCollectionID
16
16
  this._coinByNftCollectionID = new Map();
17
17
  // Lazily initialized cache for chainId to coin name mapping (derived from network definitions)
18
18
  this._coinByChainId = null;
19
19
  // Do not instantiate
20
20
  }
21
+ static contractAddressKey(coin) {
22
+ return `${coin.family}:${coin.network.type}:${coin.contractAddress}`;
23
+ }
24
+ static nftCollectionIdKey(coin) {
25
+ return `${coin.prefix}${coin.family}:${coin.network.type}:${coin.nftCollectionId}`;
26
+ }
21
27
  static fromCoins(coins) {
22
28
  const coinMap = new CoinMap();
23
29
  coins.forEach((coin) => {
@@ -43,10 +49,20 @@ class CoinMap {
43
49
  }
44
50
  if (coin.isToken) {
45
51
  if (coin instanceof account_1.ContractAddressDefinedToken) {
46
- this._coinByContractAddress.set(`${coin.family}:${coin.contractAddress}`, coin);
52
+ const contractAddressKey = CoinMap.contractAddressKey(coin);
53
+ const existingByContractAddress = this._coinByContractAddress.get(contractAddressKey);
54
+ if (existingByContractAddress) {
55
+ throw new errors_1.DuplicateContractAddressDefinitionError(contractAddressKey, existingByContractAddress.name);
56
+ }
57
+ this._coinByContractAddress.set(contractAddressKey, coin);
47
58
  }
48
59
  else if (coin instanceof account_1.NFTCollectionIdDefinedToken) {
49
- this._coinByNftCollectionID.set(`${coin.prefix}${coin.family}:${coin.nftCollectionId}`, coin);
60
+ const nftCollectionKey = CoinMap.nftCollectionIdKey(coin);
61
+ const existingByNftCollectionId = this._coinByNftCollectionID.get(nftCollectionKey);
62
+ if (existingByNftCollectionId) {
63
+ throw new errors_1.DuplicateNftCollectionIdDefinitionError(nftCollectionKey, existingByNftCollectionId.name);
64
+ }
65
+ this._coinByNftCollectionID.set(nftCollectionKey, coin);
50
66
  }
51
67
  }
52
68
  }
@@ -65,10 +81,10 @@ class CoinMap {
65
81
  }
66
82
  if (oldCoin.isToken) {
67
83
  if (oldCoin instanceof account_1.ContractAddressDefinedToken) {
68
- this._coinByContractAddress.delete(`${oldCoin.family}:${oldCoin.contractAddress}`);
84
+ this._coinByContractAddress.delete(CoinMap.contractAddressKey(oldCoin));
69
85
  }
70
86
  else if (oldCoin instanceof account_1.NFTCollectionIdDefinedToken) {
71
- this._coinByNftCollectionID.delete(`${oldCoin.prefix}${oldCoin.family}:${oldCoin.nftCollectionId}`);
87
+ this._coinByNftCollectionID.delete(CoinMap.nftCollectionIdKey(oldCoin));
72
88
  }
73
89
  }
74
90
  }
@@ -191,8 +207,8 @@ CoinMap.LEGACY_CHAIN_ID_MAP = {
191
207
  11142220: 'tcelo',
192
208
  2222: 'kava',
193
209
  2221: 'tkava',
194
- 43114: 'avax',
195
- 43113: 'tavax',
210
+ 43114: 'avaxc',
211
+ 43113: 'tavaxc',
196
212
  100: 'gno',
197
213
  130: 'unieth',
198
214
  1301: 'tunieth',
@@ -255,4 +271,4 @@ CoinMap.LEGACY_CHAIN_ID_MAP = {
255
271
  25363: 'fluenteth',
256
272
  20994: 'tfluenteth',
257
273
  };
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxQ0FBNkc7QUFDN0csdUNBQXFGO0FBR3JGLE1BQWEsT0FBTztJQWFsQjtRQVppQixTQUFJLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDN0MsZUFBVSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ3BFLDZEQUE2RDtRQUM1QyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ3hFLGtFQUFrRTtRQUNsRSxvR0FBb0c7UUFDbkYsMkJBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDaEYsK0VBQStFO1FBQzlELDJCQUFzQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ2hGLCtGQUErRjtRQUN2RixtQkFBYyxHQUErQixJQUFJLENBQUM7UUFHeEQscUJBQXFCO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQTJCO1FBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQXdCO1FBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLHFDQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxN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S0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsSUFBSTtJQUNYLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLEtBQUs7SUFDWCxLQUFLLEVBQUUsUUFBUTtJQUNmLEdBQUcsRUFBRSxPQUFPO0lBQ1osSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxXQUFXO0lBQ2xCLEtBQUssRUFBRSxVQUFVO0lBQ2pCLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLElBQUk7SUFDVixHQUFHLEVBQUUsT0FBTztJQUNaLEdBQUcsRUFBRSxNQUFNO0lBQ1gsS0FBSyxFQUFFLFFBQVE7SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxTQUFTO0lBQ2YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsVUFBVTtJQUNmLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLElBQUksRUFBRSxZQUFZO0lBQ2xCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLFFBQVE7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFlBQVk7Q0FDcEIsQUEvRjBDLENBK0Z6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IER1cGxpY2F0ZUNvaW5EZWZpbml0aW9uRXJyb3IsIENvaW5Ob3REZWZpbmVkRXJyb3IsIER1cGxpY2F0ZUNvaW5JZERlZmluaXRpb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IENvbnRyYWN0QWRkcmVzc0RlZmluZWRUb2tlbiwgTkZUQ29sbGVjdGlvbklkRGVmaW5lZFRva2VuIH0gZnJvbSAnLi9hY2NvdW50JztcbmltcG9ydCB7IEV0aGVyZXVtTmV0d29yayB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5leHBvcnQgY2xhc3MgQ29pbk1hcCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvaW5CeUlkcyA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIC8vIEhvbGRzIGtleSBlcXVpdmFsZW5jZXMgdXNlZCBkdXJpbmcgYW4gYXNzZXQgbmFtZSBtaWdyYXRpb25cbiAgcHJpdmF0ZSByZWFkb25seSBfY29pbkJ5QWxpYXNlcyA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIC8vIG1hcCBvZiBjb2luIGJ5IGFkZHJlc3MgLT4gdGhlIGtleSBpcyB0aGUgZmFtaWx5OmNvbnRyYWN0QWRkcmVzc1xuICAvLyB0aGUgZmFtaWx5IGlzIHRoZSB3aGVyZSB0aGUgY29pbiBpcyBlLmcgbDEgY2hhaW5zIGxpa2UgZXRoLCBic2MgZXRjLiBvciBsMiBsaWtlIGFyYmV0aCwgY2VsbyBldGMuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvaW5CeUNvbnRyYWN0QWRkcmVzcyA9IG5ldyBNYXA8c3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj4+KCk7XG4gIC8vIG1hcCBvZiBjb2luIGJ5IE5GVCBjb2xsZWN0aW9uIElEIC0+IHRoZSBrZXkgaXMgdGhlICh0KWZhbWlseTpuZnRDb2xsZWN0aW9uSURcbiAgcHJpdmF0ZSByZWFkb25seSBfY29pbkJ5TmZ0Q29sbGVjdGlvbklEID0gbmV3IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4oKTtcbiAgLy8gTGF6aWx5IGluaXRpYWxpemVkIGNhY2hlIGZvciBjaGFpbklkIHRvIGNvaW4gbmFtZSBtYXBwaW5nIChkZXJpdmVkIGZyb20gbmV0d29yayBkZWZpbml0aW9ucylcbiAgcHJpdmF0ZSBfY29pbkJ5Q2hhaW5JZDogTWFwPG51bWJlciwgc3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gRG8gbm90IGluc3RhbnRpYXRlXG4gIH1cblxuICBzdGF0aWMgZnJvbUNvaW5zKGNvaW5zOiBSZWFkb25seTxCYXNlQ29pbj5bXSk6IENvaW5NYXAge1xuICAgIGNvbnN0IGNvaW5NYXAgPSBuZXcgQ29pbk1hcCgpO1xuICAgIGNvaW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgICAgIGNvaW5NYXAuYWRkQ29pbihjb2luKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29pbk1hcDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb2luKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9tYXAuaGFzKGNvaW4ubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVDb2luRGVmaW5pdGlvbkVycm9yKGNvaW4ubmFtZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jb2luQnlJZHMuaGFzKGNvaW4uaWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRHVwbGljYXRlQ29pbklkRGVmaW5pdGlvbkVycm9yKGNvaW4uaWQpO1xuICAgIH1cbiAgICBjb25zdCBhbGlhcyA9IGNvaW4uYWxpYXM7XG4gICAgaWYgKGFsaWFzICYmIHRoaXMuX2NvaW5CeUFsaWFzZXMuaGFzKGFsaWFzKSkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZUNvaW5EZWZpbml0aW9uRXJyb3IoYWxpYXMpO1xuICAgIH1cbiAgICB0aGlzLl9tYXAuc2V0KGNvaW4ubmFtZSwgY29pbik7XG4gICAgdGhpcy5fY29pbkJ5SWRzLnNldChjb2luLmlkLCBjb2luKTtcbiAgICBpZiAoYWxpYXMpIHtcbiAgICAgIHRoaXMuX2NvaW5CeUFsaWFzZXMuc2V0KGNvaW4uYWxpYXMsIGNvaW4pO1xuICAgIH1cblxuICAgIGlmIChjb2luLmlzVG9rZW4pIHtcbiAgICAgIGlmIChjb2luIGluc3RhbmNlb2YgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuKSB7XG4gICAgICAgIHRoaXMuX2NvaW5CeUNvbnRyYWN0QWRkcmVzcy5zZXQoYCR7Y29pbi5mYW1pbHl9OiR7Y29pbi5jb250cmFjdEFkZHJlc3N9YCwgY29pbik7XG4gICAgICB9IGVsc2UgaWYgKGNvaW4gaW5zdGFuY2VvZiBORlRDb2xsZWN0aW9uSWREZWZpbmVkVG9rZW4pIHtcbiAgICAgICAgdGhpcy5fY29pbkJ5TmZ0Q29sbGVjdGlvbklELnNldChgJHtjb2luLnByZWZpeH0ke2NvaW4uZmFtaWx5fToke2NvaW4ubmZ0Q29sbGVjdGlvbklkfWAsIGNvaW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIGEgQmFzZSBjb2luIG9iamVjdCBjb21wbGV0ZWx5IGZyb20gdGhlIENvaW5NYXAgdXNpbmcgaXRzIElELlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IGtleSB0byBzZWFyY2ggdGhlIG9sZCBjb2luIG9iamVjdFxuICAgKiBAcGFyYW0ge1JlYWRvbmx5PEJhc2VDb2luPn0gY29pbiBuZXcgY29pbiBvYmplY3RcbiAgICovXG4gIHB1YmxpYyByZXBsYWNlKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPik6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhcyhjb2luLmlkKSkge1xuICAgICAgY29uc3Qgb2xkQ29pbiA9IHRoaXMuZ2V0KGNvaW4uaWQpO1xuICAgICAgdGhpcy5fbWFwLmRlbGV0ZShvbGRDb2luLm5hbWUpO1xuICAgICAgdGhpcy5fY29pbkJ5SWRzLmRlbGV0ZShvbGRDb2luLmlkKTtcbiAgICAgIGlmIChvbGRDb2luLmFsaWFzKSB7XG4gICAgICAgIHRoaXMuX2NvaW5CeUFsaWFzZXMuZGVsZXRlKG9sZENvaW4uYWxpYXMpO1xuICAgICAgfVxuICAgICAgaWYgKG9sZENvaW4uaXNUb2tlbikge1xuICAgICAgICBpZiAob2xkQ29pbiBpbnN0YW5jZW9mIENvbnRyYWN0QWRkcmVzc0RlZmluZWRUb2tlbikge1xuICAgICAgICAgIHRoaXMuX2NvaW5CeUNvbnRyYWN0QWRkcmVzcy5kZWxldGUoYCR7b2xkQ29pbi5mYW1pbHl9OiR7b2xkQ29pbi5jb250cmFjdEFkZHJlc3N9YCk7XG4gICAgICAgIH0gZWxzZSBpZiAob2xkQ29pbiBpbnN0YW5jZW9mIE5GVENvbGxlY3Rpb25JZERlZmluZWRUb2tlbikge1xuICAgICAgICAgIHRoaXMuX2NvaW5CeU5mdENvbGxlY3Rpb25JRC5kZWxldGUoYCR7b2xkQ29pbi5wcmVmaXh9JHtvbGRDb2luLmZhbWlseX06JHtvbGRDb2luLm5mdENvbGxlY3Rpb25JZH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFkZENvaW4oY29pbik7XG4gIH1cblxuICAvKipcbiAgICogSGFyZGNvZGVkIG1hcHBpbmcgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMRUdBQ1lfQ0hBSU5fSURfTUFQOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xuICAgIDE6ICdldGgnLFxuICAgIDQyOiAndGV0aCcsXG4gICAgNTogJ2d0ZXRoJyxcbiAgICA1NjAwNDg6ICdodGV0aCcsXG4gICAgMTAwMDE6ICdldGh3JyxcbiAgICA4MDAwMjogJ3Rwb2x5Z29uJyxcbiAgICAxMzc6ICdwb2x5Z29uJyxcbiAgICA1NjogJ2JzYycsXG4gICAgOTc6ICd0YnNjJyxcbiAgICA0MjE2MTogJ2FyYmV0aCcsXG4gICAgNDIxNjE0OiAndGFyYmV0aCcsXG4gICAgMTA6ICdvcGV0aCcsXG4gICAgMTExNTU0MjA6ICd0b3BldGgnLFxuICAgIDExMTY6ICdjb3JlZGFvJyxcbiAgICAxMTE0OiAndGNvcmVkYW8nLFxuICAgIDI0ODogJ29hcycsXG4gICAgOTM3MjogJ3RvYXMnLFxuICAgIDE0OiAnZmxyJyxcbiAgICAxMTQ6ICd0ZmxyJyxcbiAgICAxOTogJ3NnYicsXG4gICAgMTY6ICd0c2diJyxcbiAgICAxMTExOiAnd2VtaXgnLFxuICAgIDExMTI6ICd0d2VtaXgnLFxuICAgIDUwOiAneGRjJyxcbiAgICA1MTogJ3R4ZGMnLFxuICAgIDgwMDk0OiAnYmVyYScsXG4gICAgODAwNjk6ICd0YmVyYScsXG4gICAgNDIyMjA6ICdjZWxvJyxcbiAgICAxMTE0MjIyMDogJ3RjZWxvJyxcbiAgICAyMjIyOiAna2F2YScsXG4gICAgMjIyMTogJ3RrYXZhJyxcbiAgICA0MzExNDogJ2F2YXgnLFxuICAgIDQzMTEzOiAndGF2YXgnLFxuICAgIDEwMDogJ2dubycsXG4gICAgMTMwOiAndW5pZXRoJyxcbiAgICAxMzAxOiAndHVuaWV0aCcsXG4gICAgMTkwNDE1OiAnaHBwZXRoJyxcbiAgICAxODEyMjg6ICd0aHBwZXRoJyxcbiAgICA2OTg1Mzg1OiAnaCcsXG4gICAgNzA4MDk2OTogJ3RoJyxcbiAgICA0NjYzOiAnaG9vZGV0aCcsXG4gICAgNDY2MzA6ICd0aG9vZGV0aCcsXG4gICAgMzI0OiAnemtldGgnLFxuICAgIDg0NTM6ICdiYXNlZXRoJyxcbiAgICA4NDUzMjogJ3RiYXNlZXRoJyxcbiAgICAxNDM6ICdtb24nLFxuICAgIDEwMTQzOiAndG1vbicsXG4gICAgNDgwOiAnd29ybGQnLFxuICAgIDQ4MDE6ICd0d29ybGQnLFxuICAgIDUwMzE6ICdzb21pJyxcbiAgICA1MDMxMjogJ3RzdHQnLFxuICAgIDE4Njg6ICdzb25laXVtJyxcbiAgICAxOTQ2OiAndHNvbmVpdW0nLFxuICAgIDMzMTExOiAndGFwZWNoYWluJyxcbiAgICAzMzEzOTogJ2FwZWNoYWluJyxcbiAgICA2ODg2ODk6ICd0cGhycycsXG4gICAgMTAyMDMwOiAnY3RjJyxcbiAgICAxMDIwMzE6ICd0Y3RjJyxcbiAgICA5OTg6ICd0aHlwZWV2bScsXG4gICAgOTk5OiAnaHlwZWV2bScsXG4gICAgMTY2MDI6ICd0b2cnLFxuICAgIDE2NjYxOiAnb2cnLFxuICAgIDk3NDY6ICd0eHBsJyxcbiAgICA5NzQ1OiAneHBsJyxcbiAgICAxNDYwMTogJ3Rzb25pYycsXG4gICAgMTQ2OiAnc29uaWMnLFxuICAgIDEzMjg6ICd0c2VpZXZtJyxcbiAgICAxMzI5OiAnc2VpZXZtJyxcbiAgICAxMDAxOiAndGthaWEnLFxuICAgIDgyMTc6ICdrYWlhJyxcbiAgICAxMjcwOiAndGlyeXMnLFxuICAgIDU5MTQxOiAndGxpbmVhZXRoJyxcbiAgICA1OTE0NDogJ2xpbmVhZXRoJyxcbiAgICAxMzE1OiAndGlwJyxcbiAgICAxNTE0OiAnaXAnLFxuICAgIDU0NTogJ3RmbG93JyxcbiAgICA3NDc6ICdmbG93JyxcbiAgICA5ODg2NzogJ3RwbHVtZScsXG4gICAgOTg4NjY6ICdwbHVtZScsXG4gICAgNjM0MzogJ3RtZWdhZXRoJyxcbiAgICA0MzI2OiAnbWVnYWV0aCcsXG4gICAgMjk1OiAnaGJhcmV2bScsXG4gICAgMjk2OiAndGhiYXJldm0nLFxuICAgIDE5NjogJ29rYnhsYXllcicsXG4gICAgMTk1MjogJ3Rva2J4bGF5ZXInLFxuICAgIDU3MzQ5NTE6ICdqb3ZheWV0aCcsXG4gICAgMjAxOTc3NTogJ3Rqb3ZheWV0aCcsXG4gICAgNTA0MjAwMjogJ3RhcmN1c2RjJyxcbiAgICA0MjE3OiAndGVtcG8nLFxuICAgIDQyNDMxOiAndHRlbXBvJyxcbiAgICA1MDAwOiAnbWFudGxlJyxcbiAgICA1MDAzOiAndG1hbnRsZScsXG4gICAgMjUzNjM6ICdmbHVlbnRldGgnLFxuICAgIDIwOTk0OiAndGZsdWVudGV0aCcsXG4gIH07XG5cbiAgcHJpdmF0ZSBidWlsZENoYWluSWRNYXAoKTogTWFwPG51bWJlciwgc3RyaW5nPiB7XG4gICAgY29uc3QgY2hhaW5JZE1hcCA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG4gICAgdGhpcy5fbWFwLmZvckVhY2goKGNvaW4sIGNvaW5OYW1lKSA9PiB7XG4gICAgICAvLyBTa2lwIHRva2VucyAtIHRoZXkgc2hhcmUgdGhlIHNhbWUgY2hhaW5JZCBhcyB0aGVpciBwYXJlbnQgY2hhaW5cbiAgICAgIGlmIChjb2luLmlzVG9rZW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV0d29yayA9IGNvaW4ubmV0d29yaztcbiAgICAgIGlmICgnY2hhaW5JZCcgaW4gbmV0d29yayAmJiB0eXBlb2YgKG5ldHdvcmsgYXMgRXRoZXJldW1OZXR3b3JrKS5jaGFpbklkID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBjaGFpbklkID0gKG5ldHdvcmsgYXMgRXRoZXJldW1OZXR3b3JrKS5jaGFpbklkO1xuICAgICAgICBpZiAoIWNoYWluSWRNYXAuaGFzKGNoYWluSWQpKSB7XG4gICAgICAgICAgY2hhaW5JZE1hcC5zZXQoY2hhaW5JZCwgY29pbk5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNoYWluSWRNYXA7XG4gIH1cblxuICBwdWJsaWMgY29pbk5hbWVGcm9tQ2hhaW5JZChjaGFpbklkOiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvaW5OYW1lID0gQ29pbk1hcC5MRUdBQ1lfQ0hBSU5fSURfTUFQW2NoYWluSWRdO1xuICAgIGlmIChjb2luTmFtZSkge1xuICAgICAgcmV0dXJuIGNvaW5OYW1lO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb2luQnlDaGFpbklkID09PSBudWxsKSB7XG4gICAgICB0aGlzLl9jb2luQnlDaGFpbklkID0gdGhpcy5idWlsZENoYWluSWRNYXAoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NvaW5CeUNoYWluSWQuZ2V0KGNoYWluSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIGBnZXRgIHRvIHRocm93IGlmIGEgY29pbiBpcyBtaXNzaW5nLCBpbnN0ZWFkIG9mIHJldHVybmluZyB1bmRlZmluZWQuXG4gICAqIEl0IHdpbGwgaG9ub3Iga2V5IGVxdWl2YWxlbmNlcyBpbiBjYXNlIGdpdmVuIGtleSBpcyBtaXNzaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm4ge0Jhc2VDb2lufVxuICAgKi9cbiAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IFJlYWRvbmx5PEJhc2VDb2luPiB7XG4gICAgY29uc3QgY29pbiA9XG4gICAgICB0aGlzLl9tYXAuZ2V0KGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeUlkcy5nZXQoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5QWxpYXNlcy5nZXQoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5Q29udHJhY3RBZGRyZXNzLmdldChrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlOZnRDb2xsZWN0aW9uSUQuZ2V0KGtleSk7XG5cbiAgICBpZiAoY29pbikge1xuICAgICAgcmV0dXJuIGNvaW47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IENvaW5Ob3REZWZpbmVkRXJyb3Ioa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fbWFwLmhhcyhrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlJZHMuaGFzKGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeUFsaWFzZXMuaGFzKGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeUNvbnRyYWN0QWRkcmVzcy5oYXMoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5TmZ0Q29sbGVjdGlvbklELmhhcyhrZXkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXA8VD4obWFwcGVyOiAoY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+LCBjb2luTmFtZTogc3RyaW5nKSA9PiBUKTogVFtdIHtcbiAgICBjb25zdCBtYXBSZXN1bHQ6IFRbXSA9IFtdO1xuICAgIHRoaXMuX21hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBtYXBSZXN1bHQucHVzaChtYXBwZXIodmFsdWUsIGtleSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBtYXBSZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgcmVkdWNlPFQ+KHJlZHVjZXI6IChhY2M6IFQsIGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPiwgY29pbk5hbWU6IHN0cmluZykgPT4gVCwgaW5pdGlhbFZhbHVlOiBUKTogVCB7XG4gICAgbGV0IGFjYyA9IGluaXRpYWxWYWx1ZTtcbiAgICB0aGlzLl9tYXAuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgYWNjID0gcmVkdWNlcihhY2MsIHZhbHVlLCBrZXkpO1xuICAgIH0pO1xuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPiwgY29pbk5hbWU6IHN0cmluZykgPT4gYm9vbGVhbik6IENvaW5NYXAge1xuICAgIGNvbnN0IGZpbHRlclJlc3VsdDogUmVhZG9ubHk8QmFzZUNvaW4+W10gPSBbXTtcbiAgICB0aGlzLl9tYXAuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwga2V5KSkge1xuICAgICAgICBmaWx0ZXJSZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIENvaW5NYXAuZnJvbUNvaW5zKGZpbHRlclJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgZm9yRWFjaChjYWxsYmFjazogKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPiwgY29pbk5hbWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX21hcC5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPFtzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPl0+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgfVxufVxuIl19
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxQ0FNa0I7QUFDbEIsdUNBQXFGO0FBR3JGLE1BQWEsT0FBTztJQWFsQjtRQVppQixTQUFJLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDN0MsZUFBVSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ3BFLDZEQUE2RDtRQUM1QyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ3hFLDhFQUE4RTtRQUM5RSxvR0FBb0c7UUFDbkYsMkJBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDaEYsMkZBQTJGO1FBQzFFLDJCQUFzQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ2hGLCtGQUErRjtRQUN2RixtQkFBYyxHQUErQixJQUFJLENBQUM7UUFHeEQscUJBQXFCO0lBQ3ZCLENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBaUM7UUFDakUsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBaUM7UUFDakUsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckYsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBMkI7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMs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QUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsSUFBSTtJQUNWLEdBQUcsRUFBRSxPQUFPO0lBQ1osR0FBRyxFQUFFLE1BQU07SUFDWCxLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLFVBQVU7SUFDaEIsSUFBSSxFQUFFLFNBQVM7SUFDZixHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxVQUFVO0lBQ2YsR0FBRyxFQUFFLFdBQVc7SUFDaEIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsSUFBSSxFQUFFLE9BQU87SUFDYixLQUFLLEVBQUUsUUFBUTtJQUNmLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsV0FBVztJQUNsQixLQUFLLEVBQUUsWUFBWTtDQUNwQixBQS9GMEMsQ0ErRnpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgRHVwbGljYXRlQ29pbkRlZmluaXRpb25FcnJvcixcbiAgQ29pbk5vdERlZmluZWRFcnJvcixcbiAgRHVwbGljYXRlQ29pbklkRGVmaW5pdGlvbkVycm9yLFxuICBEdXBsaWNhdGVDb250cmFjdEFkZHJlc3NEZWZpbml0aW9uRXJyb3IsXG4gIER1cGxpY2F0ZU5mdENvbGxlY3Rpb25JZERlZmluaXRpb25FcnJvcixcbn0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuLCBORlRDb2xsZWN0aW9uSWREZWZpbmVkVG9rZW4gfSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgRXRoZXJldW1OZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5cbmV4cG9ydCBjbGFzcyBDb2luTWFwIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwID0gbmV3IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29pbkJ5SWRzID0gbmV3IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4oKTtcbiAgLy8gSG9sZHMga2V5IGVxdWl2YWxlbmNlcyB1c2VkIGR1cmluZyBhbiBhc3NldCBuYW1lIG1pZ3JhdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb2luQnlBbGlhc2VzID0gbmV3IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4oKTtcbiAgLy8gbWFwIG9mIGNvaW4gYnkgYWRkcmVzcyAtPiB0aGUga2V5IGlzIHRoZSBmYW1pbHk6bmV0d29ya1R5cGU6Y29udHJhY3RBZGRyZXNzXG4gIC8vIHRoZSBmYW1pbHkgaXMgdGhlIHdoZXJlIHRoZSBjb2luIGlzIGUuZyBsMSBjaGFpbnMgbGlrZSBldGgsIGJzYyBldGMuIG9yIGwyIGxpa2UgYXJiZXRoLCBjZWxvIGV0Yy5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29pbkJ5Q29udHJhY3RBZGRyZXNzID0gbmV3IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4oKTtcbiAgLy8gbWFwIG9mIGNvaW4gYnkgTkZUIGNvbGxlY3Rpb24gSUQgLT4gdGhlIGtleSBpcyB0aGUgKHQpZmFtaWx5Om5ldHdvcmtUeXBlOm5mdENvbGxlY3Rpb25JRFxuICBwcml2YXRlIHJlYWRvbmx5IF9jb2luQnlOZnRDb2xsZWN0aW9uSUQgPSBuZXcgTWFwPHN0cmluZywgUmVhZG9ubHk8QmFzZUNvaW4+PigpO1xuICAvLyBMYXppbHkgaW5pdGlhbGl6ZWQgY2FjaGUgZm9yIGNoYWluSWQgdG8gY29pbiBuYW1lIG1hcHBpbmcgKGRlcml2ZWQgZnJvbSBuZXR3b3JrIGRlZmluaXRpb25zKVxuICBwcml2YXRlIF9jb2luQnlDaGFpbklkOiBNYXA8bnVtYmVyLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBEbyBub3QgaW5zdGFudGlhdGVcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbnRyYWN0QWRkcmVzc0tleShjb2luOiBDb250cmFjdEFkZHJlc3NEZWZpbmVkVG9rZW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtjb2luLmZhbWlseX06JHtjb2luLm5ldHdvcmsudHlwZX06JHtjb2luLmNvbnRyYWN0QWRkcmVzc31gO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbmZ0Q29sbGVjdGlvbklkS2V5KGNvaW46IE5GVENvbGxlY3Rpb25JZERlZmluZWRUb2tlbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2NvaW4ucHJlZml4fSR7Y29pbi5mYW1pbHl9OiR7Y29pbi5uZXR3b3JrLnR5cGV9OiR7Y29pbi5uZnRDb2xsZWN0aW9uSWR9YDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29pbnMoY29pbnM6IFJlYWRvbmx5PEJhc2VDb2luPltdKTogQ29pbk1hcCB7XG4gICAgY29uc3QgY29pbk1hcCA9IG5ldyBDb2luTWFwKCk7XG4gICAgY29pbnMuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgICAgY29pbk1hcC5hZGRDb2luKGNvaW4pO1xuICAgIH0pO1xuICAgIHJldHVybiBjb2luTWFwO1xuICB9XG5cbiAgcHVibGljIGFkZENvaW4oY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX21hcC5oYXMoY29pbi5uYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZUNvaW5EZWZpbml0aW9uRXJyb3IoY29pbi5uYW1lKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NvaW5CeUlkcy5oYXMoY29pbi5pZCkpIHtcbiAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVDb2luSWREZWZpbml0aW9uRXJyb3IoY29pbi5pZCk7XG4gICAgfVxuICAgIGNvbnN0IGFsaWFzID0gY29pbi5hbGlhcztcbiAgICBpZiAoYWxpYXMgJiYgdGhpcy5fY29pbkJ5QWxpYXNlcy5oYXMoYWxpYXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRHVwbGljYXRlQ29pbkRlZmluaXRpb25FcnJvcihhbGlhcyk7XG4gICAgfVxuICAgIHRoaXMuX21hcC5zZXQoY29pbi5uYW1lLCBjb2luKTtcbiAgICB0aGlzLl9jb2luQnlJZHMuc2V0KGNvaW4uaWQsIGNvaW4pO1xuICAgIGlmIChhbGlhcykge1xuICAgICAgdGhpcy5fY29pbkJ5QWxpYXNlcy5zZXQoY29pbi5hbGlhcywgY29pbik7XG4gICAgfVxuXG4gICAgaWYgKGNvaW4uaXNUb2tlbikge1xuICAgICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBDb250cmFjdEFkZHJlc3NEZWZpbmVkVG9rZW4pIHtcbiAgICAgICAgY29uc3QgY29udHJhY3RBZGRyZXNzS2V5ID0gQ29pbk1hcC5jb250cmFjdEFkZHJlc3NLZXkoY29pbik7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nQnlDb250cmFjdEFkZHJlc3MgPSB0aGlzLl9jb2luQnlDb250cmFjdEFkZHJlc3MuZ2V0KGNvbnRyYWN0QWRkcmVzc0tleSk7XG4gICAgICAgIGlmIChleGlzdGluZ0J5Q29udHJhY3RBZGRyZXNzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZUNvbnRyYWN0QWRkcmVzc0RlZmluaXRpb25FcnJvcihjb250cmFjdEFkZHJlc3NLZXksIGV4aXN0aW5nQnlDb250cmFjdEFkZHJlc3MubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29pbkJ5Q29udHJhY3RBZGRyZXNzLnNldChjb250cmFjdEFkZHJlc3NLZXksIGNvaW4pO1xuICAgICAgfSBlbHNlIGlmIChjb2luIGluc3RhbmNlb2YgTkZUQ29sbGVjdGlvbklkRGVmaW5lZFRva2VuKSB7XG4gICAgICAgIGNvbnN0IG5mdENvbGxlY3Rpb25LZXkgPSBDb2luTWFwLm5mdENvbGxlY3Rpb25JZEtleShjb2luKTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdCeU5mdENvbGxlY3Rpb25JZCA9IHRoaXMuX2NvaW5CeU5mdENvbGxlY3Rpb25JRC5nZXQobmZ0Q29sbGVjdGlvbktleSk7XG4gICAgICAgIGlmIChleGlzdGluZ0J5TmZ0Q29sbGVjdGlvbklkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZU5mdENvbGxlY3Rpb25JZERlZmluaXRpb25FcnJvcihuZnRDb2xsZWN0aW9uS2V5LCBleGlzdGluZ0J5TmZ0Q29sbGVjdGlvbklkLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvaW5CeU5mdENvbGxlY3Rpb25JRC5zZXQobmZ0Q29sbGVjdGlvbktleSwgY29pbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgYSBCYXNlIGNvaW4gb2JqZWN0IGNvbXBsZXRlbHkgZnJvbSB0aGUgQ29pbk1hcCB1c2luZyBpdHMgSUQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkga2V5IHRvIHNlYXJjaCB0aGUgb2xkIGNvaW4gb2JqZWN0XG4gICAqIEBwYXJhbSB7UmVhZG9ubHk8QmFzZUNvaW4+fSBjb2luIG5ldyBjb2luIG9iamVjdFxuICAgKi9cbiAgcHVibGljIHJlcGxhY2UoY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzKGNvaW4uaWQpKSB7XG4gICAgICBjb25zdCBvbGRDb2luID0gdGhpcy5nZXQoY29pbi5pZCk7XG4gICAgICB0aGlzLl9tYXAuZGVsZXRlKG9sZENvaW4ubmFtZSk7XG4gICAgICB0aGlzLl9jb2luQnlJZHMuZGVsZXRlKG9sZENvaW4uaWQpO1xuICAgICAgaWYgKG9sZENvaW4uYWxpYXMpIHtcbiAgICAgICAgdGhpcy5fY29pbkJ5QWxpYXNlcy5kZWxldGUob2xkQ29pbi5hbGlhcyk7XG4gICAgICB9XG4gICAgICBpZiAob2xkQ29pbi5pc1Rva2VuKSB7XG4gICAgICAgIGlmIChvbGRDb2luIGluc3RhbmNlb2YgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuKSB7XG4gICAgICAgICAgdGhpcy5fY29pbkJ5Q29udHJhY3RBZGRyZXNzLmRlbGV0ZShDb2luTWFwLmNvbnRyYWN0QWRkcmVzc0tleShvbGRDb2luKSk7XG4gICAgICAgIH0gZWxzZSBpZiAob2xkQ29pbiBpbnN0YW5jZW9mIE5GVENvbGxlY3Rpb25JZERlZmluZWRUb2tlbikge1xuICAgICAgICAgIHRoaXMuX2NvaW5CeU5mdENvbGxlY3Rpb25JRC5kZWxldGUoQ29pbk1hcC5uZnRDb2xsZWN0aW9uSWRLZXkob2xkQ29pbikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWRkQ29pbihjb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYXJkY29kZWQgbWFwcGluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IExFR0FDWV9DSEFJTl9JRF9NQVA6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7XG4gICAgMTogJ2V0aCcsXG4gICAgNDI6ICd0ZXRoJyxcbiAgICA1OiAnZ3RldGgnLFxuICAgIDU2MDA0ODogJ2h0ZXRoJyxcbiAgICAxMDAwMTogJ2V0aHcnLFxuICAgIDgwMDAyOiAndHBvbHlnb24nLFxuICAgIDEzNzogJ3BvbHlnb24nLFxuICAgIDU2OiAnYnNjJyxcbiAgICA5NzogJ3Ric2MnLFxuICAgIDQyMTYxOiAnYXJiZXRoJyxcbiAgICA0MjE2MTQ6ICd0YXJiZXRoJyxcbiAgICAxMDogJ29wZXRoJyxcbiAgICAxMTE1NTQyMDogJ3RvcGV0aCcsXG4gICAgMTExNjogJ2NvcmVkYW8nLFxuICAgIDExMTQ6ICd0Y29yZWRhbycsXG4gICAgMjQ4OiAnb2FzJyxcbiAgICA5MzcyOiAndG9hcycsXG4gICAgMTQ6ICdmbHInLFxuICAgIDExNDogJ3RmbHInLFxuICAgIDE5OiAnc2diJyxcbiAgICAxNjogJ3RzZ2InLFxuICAgIDExMTE6ICd3ZW1peCcsXG4gICAgMTExMjogJ3R3ZW1peCcsXG4gICAgNTA6ICd4ZGMnLFxuICAgIDUxOiAndHhkYycsXG4gICAgODAwOTQ6ICdiZXJhJyxcbiAgICA4MDA2OTogJ3RiZXJhJyxcbiAgICA0MjIyMDogJ2NlbG8nLFxuICAgIDExMTQyMjIwOiAndGNlbG8nLFxuICAgIDIyMjI6ICdrYXZhJyxcbiAgICAyMjIxOiAndGthdmEnLFxuICAgIDQzMTE0OiAnYXZheGMnLFxuICAgIDQzMTEzOiAndGF2YXhjJyxcbiAgICAxMDA6ICdnbm8nLFxuICAgIDEzMDogJ3VuaWV0aCcsXG4gICAgMTMwMTogJ3R1bmlldGgnLFxuICAgIDE5MDQxNTogJ2hwcGV0aCcsXG4gICAgMTgxMjI4OiAndGhwcGV0aCcsXG4gICAgNjk4NTM4NTogJ2gnLFxuICAgIDcwODA5Njk6ICd0aCcsXG4gICAgNDY2MzogJ2hvb2RldGgnLFxuICAgIDQ2NjMwOiAndGhvb2RldGgnLFxuICAgIDMyNDogJ3prZXRoJyxcbiAgICA4NDUzOiAnYmFzZWV0aCcsXG4gICAgODQ1MzI6ICd0YmFzZWV0aCcsXG4gICAgMTQzOiAnbW9uJyxcbiAgICAxMDE0MzogJ3Rtb24nLFxuICAgIDQ4MDogJ3dvcmxkJyxcbiAgICA0ODAxOiAndHdvcmxkJyxcbiAgICA1MDMxOiAnc29taScsXG4gICAgNTAzMTI6ICd0c3R0JyxcbiAgICAxODY4OiAnc29uZWl1bScsXG4gICAgMTk0NjogJ3Rzb25laXVtJyxcbiAgICAzMzExMTogJ3RhcGVjaGFpbicsXG4gICAgMzMxMzk6ICdhcGVjaGFpbicsXG4gICAgNjg4Njg5OiAndHBocnMnLFxuICAgIDEwMjAzMDogJ2N0YycsXG4gICAgMTAyMDMxOiAndGN0YycsXG4gICAgOTk4OiAndGh5cGVldm0nLFxuICAgIDk5OTogJ2h5cGVldm0nLFxuICAgIDE2NjAyOiAndG9nJyxcbiAgICAxNjY2MTogJ29nJyxcbiAgICA5NzQ2OiAndHhwbCcsXG4gICAgOTc0NTogJ3hwbCcsXG4gICAgMTQ2MDE6ICd0c29uaWMnLFxuICAgIDE0NjogJ3NvbmljJyxcbiAgICAxMzI4OiAndHNlaWV2bScsXG4gICAgMTMyOTogJ3NlaWV2bScsXG4gICAgMTAwMTogJ3RrYWlhJyxcbiAgICA4MjE3OiAna2FpYScsXG4gICAgMTI3MDogJ3RpcnlzJyxcbiAgICA1OTE0MTogJ3RsaW5lYWV0aCcsXG4gICAgNTkxNDQ6ICdsaW5lYWV0aCcsXG4gICAgMTMxNTogJ3RpcCcsXG4gICAgMTUxNDogJ2lwJyxcbiAgICA1NDU6ICd0ZmxvdycsXG4gICAgNzQ3OiAnZmxvdycsXG4gICAgOTg4Njc6ICd0cGx1bWUnLFxuICAgIDk4ODY2OiAncGx1bWUnLFxuICAgIDYzNDM6ICd0bWVnYWV0aCcsXG4gICAgNDMyNjogJ21lZ2FldGgnLFxuICAgIDI5NTogJ2hiYXJldm0nLFxuICAgIDI5NjogJ3RoYmFyZXZtJyxcbiAgICAxOTY6ICdva2J4bGF5ZXInLFxuICAgIDE5NTI6ICd0b2tieGxheWVyJyxcbiAgICA1NzM0OTUxOiAnam92YXlldGgnLFxuICAgIDIwMTk3NzU6ICd0am92YXlldGgnLFxuICAgIDUwNDIwMDI6ICd0YXJjdXNkYycsXG4gICAgNDIxNzogJ3RlbXBvJyxcbiAgICA0MjQzMTogJ3R0ZW1wbycsXG4gICAgNTAwMDogJ21hbnRsZScsXG4gICAgNTAwMzogJ3RtYW50bGUnLFxuICAgIDI1MzYzOiAnZmx1ZW50ZXRoJyxcbiAgICAyMDk5NDogJ3RmbHVlbnRldGgnLFxuICB9O1xuXG4gIHByaXZhdGUgYnVpbGRDaGFpbklkTWFwKCk6IE1hcDxudW1iZXIsIHN0cmluZz4ge1xuICAgIGNvbnN0IGNoYWluSWRNYXAgPSBuZXcgTWFwPG51bWJlciwgc3RyaW5nPigpO1xuICAgIHRoaXMuX21hcC5mb3JFYWNoKChjb2luLCBjb2luTmFtZSkgPT4ge1xuICAgICAgLy8gU2tpcCB0b2tlbnMgLSB0aGV5IHNoYXJlIHRoZSBzYW1lIGNoYWluSWQgYXMgdGhlaXIgcGFyZW50IGNoYWluXG4gICAgICBpZiAoY29pbi5pc1Rva2VuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ldHdvcmsgPSBjb2luLm5ldHdvcms7XG4gICAgICBpZiAoJ2NoYWluSWQnIGluIG5ldHdvcmsgJiYgdHlwZW9mIChuZXR3b3JrIGFzIEV0aGVyZXVtTmV0d29yaykuY2hhaW5JZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgY2hhaW5JZCA9IChuZXR3b3JrIGFzIEV0aGVyZXVtTmV0d29yaykuY2hhaW5JZDtcbiAgICAgICAgaWYgKCFjaGFpbklkTWFwLmhhcyhjaGFpbklkKSkge1xuICAgICAgICAgIGNoYWluSWRNYXAuc2V0KGNoYWluSWQsIGNvaW5OYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjaGFpbklkTWFwO1xuICB9XG5cbiAgcHVibGljIGNvaW5OYW1lRnJvbUNoYWluSWQoY2hhaW5JZDogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb2luTmFtZSA9IENvaW5NYXAuTEVHQUNZX0NIQUlOX0lEX01BUFtjaGFpbklkXTtcbiAgICBpZiAoY29pbk5hbWUpIHtcbiAgICAgIHJldHVybiBjb2luTmFtZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29pbkJ5Q2hhaW5JZCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5fY29pbkJ5Q2hhaW5JZCA9IHRoaXMuYnVpbGRDaGFpbklkTWFwKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb2luQnlDaGFpbklkLmdldChjaGFpbklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSBgZ2V0YCB0byB0aHJvdyBpZiBhIGNvaW4gaXMgbWlzc2luZywgaW5zdGVhZCBvZiByZXR1cm5pbmcgdW5kZWZpbmVkLlxuICAgKiBJdCB3aWxsIGhvbm9yIGtleSBlcXVpdmFsZW5jZXMgaW4gY2FzZSBnaXZlbiBrZXkgaXMgbWlzc2luZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcmV0dXJuIHtCYXNlQ29pbn1cbiAgICovXG4gIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBSZWFkb25seTxCYXNlQ29pbj4ge1xuICAgIGNvbnN0IGNvaW4gPVxuICAgICAgdGhpcy5fbWFwLmdldChrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlJZHMuZ2V0KGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeUFsaWFzZXMuZ2V0KGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeUNvbnRyYWN0QWRkcmVzcy5nZXQoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5TmZ0Q29sbGVjdGlvbklELmdldChrZXkpO1xuXG4gICAgaWYgKGNvaW4pIHtcbiAgICAgIHJldHVybiBjb2luO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBDb2luTm90RGVmaW5lZEVycm9yKGtleSk7XG4gIH1cblxuICBwdWJsaWMgaGFzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX21hcC5oYXMoa2V5KSB8fFxuICAgICAgdGhpcy5fY29pbkJ5SWRzLmhhcyhrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlBbGlhc2VzLmhhcyhrZXkpIHx8XG4gICAgICB0aGlzLl9jb2luQnlDb250cmFjdEFkZHJlc3MuaGFzKGtleSkgfHxcbiAgICAgIHRoaXMuX2NvaW5CeU5mdENvbGxlY3Rpb25JRC5oYXMoa2V5KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbWFwPFQ+KG1hcHBlcjogKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPiwgY29pbk5hbWU6IHN0cmluZykgPT4gVCk6IFRbXSB7XG4gICAgY29uc3QgbWFwUmVzdWx0OiBUW10gPSBbXTtcbiAgICB0aGlzLl9tYXAuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgbWFwUmVzdWx0LnB1c2gobWFwcGVyKHZhbHVlLCBrZXkpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbWFwUmVzdWx0O1xuICB9XG5cbiAgcHVibGljIHJlZHVjZTxUPihyZWR1Y2VyOiAoYWNjOiBULCBjb2luOiBSZWFkb25seTxCYXNlQ29pbj4sIGNvaW5OYW1lOiBzdHJpbmcpID0+IFQsIGluaXRpYWxWYWx1ZTogVCk6IFQge1xuICAgIGxldCBhY2MgPSBpbml0aWFsVmFsdWU7XG4gICAgdGhpcy5fbWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGFjYyA9IHJlZHVjZXIoYWNjLCB2YWx1ZSwga2V5KTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWNjO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihwcmVkaWNhdGU6IChjb2luOiBSZWFkb25seTxCYXNlQ29pbj4sIGNvaW5OYW1lOiBzdHJpbmcpID0+IGJvb2xlYW4pOiBDb2luTWFwIHtcbiAgICBjb25zdCBmaWx0ZXJSZXN1bHQ6IFJlYWRvbmx5PEJhc2VDb2luPltdID0gW107XG4gICAgdGhpcy5fbWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGtleSkpIHtcbiAgICAgICAgZmlsdGVyUmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBDb2luTWFwLmZyb21Db2lucyhmaWx0ZXJSZXN1bHQpO1xuICB9XG5cbiAgcHVibGljIGZvckVhY2goY2FsbGJhY2s6IChjb2luOiBSZWFkb25seTxCYXNlQ29pbj4sIGNvaW5OYW1lOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9tYXAuZm9yRWFjaChjYWxsYmFjayk7XG4gIH1cblxuICBwdWJsaWMgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmFibGVJdGVyYXRvcjxbc3RyaW5nLCBSZWFkb25seTxCYXNlQ29pbj5dPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcFtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIH1cbn1cbiJdfQ==
@@ -7,5 +7,11 @@ export declare function registerNetworkFeatures(family: string, features: CoinFe
7
7
  * Returns undefined if the family is not registered in either map.
8
8
  */
9
9
  export declare function getNetworkFeatures(family: string): CoinFeature[] | undefined;
10
+ /**
11
+ * Resolve the final feature list for a token: the family's default token features
12
+ * plus `additionalFeatures`, minus `excludedFeatures`. Used by generated bot-token
13
+ * lists to apply the per-token diff returned by AMS (`features=false`).
14
+ */
15
+ export declare function getTokenFeatures(family: string, additionalFeatures?: CoinFeature[], excludedFeatures?: CoinFeature[]): CoinFeature[];
10
16
  export declare const networkFeatureMapForTokens: Partial<Record<CoinFamily, CoinFeature[]>>;
11
17
  //# sourceMappingURL=networkFeatureMapForTokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"networkFeatureMapForTokens.d.ts","sourceRoot":"","sources":["../../src/networkFeatureMapForTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAgBjD,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAErF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,SAAS,CAE5E;AAED,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAgCjF,CAAC"}
1
+ {"version":3,"file":"networkFeatureMapForTokens.d.ts","sourceRoot":"","sources":["../../src/networkFeatureMapForTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAgBjD,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAErF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,SAAS,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,kBAAkB,GAAE,WAAW,EAAO,EACtC,gBAAgB,GAAE,WAAW,EAAO,GACnC,WAAW,EAAE,CAIf;AAED,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAyCjF,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.networkFeatureMapForTokens = void 0;
4
4
  exports.registerNetworkFeatures = registerNetworkFeatures;
5
5
  exports.getNetworkFeatures = getNetworkFeatures;
6
+ exports.getTokenFeatures = getTokenFeatures;
6
7
  const account_1 = require("./account");
7
8
  const base_1 = require("./base");
8
9
  const coinFeatures_1 = require("./coinFeatures");
@@ -19,6 +20,16 @@ function registerNetworkFeatures(family, features) {
19
20
  function getNetworkFeatures(family) {
20
21
  return exports.networkFeatureMapForTokens[family] ?? dynamicNetworkFeaturesMap.get(family);
21
22
  }
23
+ /**
24
+ * Resolve the final feature list for a token: the family's default token features
25
+ * plus `additionalFeatures`, minus `excludedFeatures`. Used by generated bot-token
26
+ * lists to apply the per-token diff returned by AMS (`features=false`).
27
+ */
28
+ function getTokenFeatures(family, additionalFeatures = [], excludedFeatures = []) {
29
+ const base = getNetworkFeatures(family) ?? [];
30
+ const excluded = new Set(excludedFeatures);
31
+ return [...new Set([...base, ...additionalFeatures])].filter((f) => !excluded.has(f));
32
+ }
22
33
  exports.networkFeatureMapForTokens = {
23
34
  algo: account_1.AccountCoin.DEFAULT_FEATURES,
24
35
  apt: coinFeatures_1.APT_FEATURES,
@@ -31,6 +42,15 @@ exports.networkFeatureMapForTokens = {
31
42
  eos: account_1.AccountCoin.DEFAULT_FEATURES,
32
43
  hbar: account_1.AccountCoin.DEFAULT_FEATURES,
33
44
  opeth: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
45
+ katanaeth: [
46
+ ...coinFeatures_1.EVM_FEATURES,
47
+ base_1.CoinFeature.SHARED_EVM_SIGNING,
48
+ base_1.CoinFeature.SHARED_EVM_SDK,
49
+ base_1.CoinFeature.EVM_COMPATIBLE_IMS,
50
+ base_1.CoinFeature.EVM_COMPATIBLE_UI,
51
+ base_1.CoinFeature.EVM_COMPATIBLE_WP,
52
+ base_1.CoinFeature.SUPPORTS_ERC20,
53
+ ],
34
54
  polygon: coinFeatures_1.POLYGON_TOKEN_FEATURES,
35
55
  scrolleth: [
36
56
  ...coinFeatures_1.EVM_FEATURES,
@@ -52,4 +72,4 @@ exports.networkFeatureMapForTokens = {
52
72
  ofc: [],
53
73
  ada: coinFeatures_1.ADA_TOKEN_FEATURES,
54
74
  };
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0JBLDBEQUVDO0FBT0QsZ0RBRUM7QUE3QkQsdUNBQXdDO0FBQ3hDLGlDQUFpRDtBQUNqRCxpREFXd0I7QUFFeEIsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztBQUVuRSxnRkFBZ0Y7QUFDaEYsU0FBZ0IsdUJBQXVCLENBQUMsTUFBYyxFQUFFLFFBQXVCO0lBQzdFLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxNQUFjO0lBQy9DLE9BQU8sa0NBQTBCLENBQUMsTUFBb0IsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuRyxDQUFDO0FBRVksUUFBQSwwQkFBMEIsR0FBK0M7SUFDcEYsSUFBSSxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2xDLEdBQUcsRUFBRSwyQkFBWTtJQUNqQixNQUFNLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDOUQsS0FBSyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ25DLElBQUksRUFBRSxDQUFDLEdBQUcscUJBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBVyxDQUFDLE9BQU8sQ0FBQztJQUM1RCxHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLElBQUksRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNsQyxHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLElBQUksRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNsQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDN0QsT0FBTyxFQUFFLHFDQUFzQjtJQUMvQixTQUFTLEVBQUU7UUFDVCxHQUFHLDJCQUFZO1FBQ2Ysa0JBQVcsQ0FBQyxrQkFBa0I7UUFDOUIsa0JBQVcsQ0FBQyxjQUFjO1FBQzFCLGtCQUFXLENBQUMsa0JBQWtCO1FBQzlCLGtCQUFXLENBQUMsaUJBQWlCO1FBQzdCLGtCQUFXLENBQUMsaUJBQWlCO1FBQzdCLGtCQUFXLENBQUMsY0FBYztLQUMzQjtJQUNELEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsR0FBRyxFQUFFLGlDQUFrQjtJQUN2QixHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsS0FBSyxFQUFFLG1DQUFvQjtJQUMzQixHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLEdBQUcsRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNqQyxHQUFHLEVBQUUsRUFBRTtJQUNQLEdBQUcsRUFBRSxpQ0FBa0I7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY291bnRDb2luIH0gZnJvbSAnLi9hY2NvdW50JztcbmltcG9ydCB7IENvaW5GYW1pbHksIENvaW5GZWF0dXJlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7XG4gIEFEQV9UT0tFTl9GRUFUVVJFUyxcbiAgQVBUX0ZFQVRVUkVTLFxuICBCU0NfVE9LRU5fRkVBVFVSRVMsXG4gIEVWTV9GRUFUVVJFUyxcbiAgUE9MWUdPTl9UT0tFTl9GRUFUVVJFUyxcbiAgUE9MWVhfVE9LRU5fRkVBVFVSRVMsXG4gIFNPTF9UT0tFTl9GRUFUVVJFUyxcbiAgU1RYX1RPS0VOX0ZFQVRVUkVTLFxuICBTVUlfVE9LRU5fRkVBVFVSRVMsXG4gIFRBT19UT0tFTl9GRUFUVVJFUyxcbn0gZnJvbSAnLi9jb2luRmVhdHVyZXMnO1xuXG5jb25zdCBkeW5hbWljTmV0d29ya0ZlYXR1cmVzTWFwID0gbmV3IE1hcDxzdHJpbmcsIENvaW5GZWF0dXJlW10+KCk7XG5cbi8qKiBSZWdpc3RlciBkZWZhdWx0IHRva2VuIGZlYXR1cmVzIGZvciBhIGR5bmFtaWNhbGx5IG9uYm9hcmRlZCBjaGFpbiBmYW1pbHkuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJOZXR3b3JrRmVhdHVyZXMoZmFtaWx5OiBzdHJpbmcsIGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdKTogdm9pZCB7XG4gIGR5bmFtaWNOZXR3b3JrRmVhdHVyZXNNYXAuc2V0KGZhbWlseSwgZmVhdHVyZXMpO1xufVxuXG4vKipcbiAqIExvb2sgdXAgdG9rZW4gZmVhdHVyZXMgZm9yIGEgZmFtaWx5LlxuICogQ2hlY2tzIHN0YXRpYyBtYXAgZmlyc3QsIHRoZW4gZmFsbHMgYmFjayB0byBkeW5hbWljIG1hcC5cbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBmYW1pbHkgaXMgbm90IHJlZ2lzdGVyZWQgaW4gZWl0aGVyIG1hcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtGZWF0dXJlcyhmYW1pbHk6IHN0cmluZyk6IENvaW5GZWF0dXJlW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnNbZmFtaWx5IGFzIENvaW5GYW1pbHldID8/IGR5bmFtaWNOZXR3b3JrRmVhdHVyZXNNYXAuZ2V0KGZhbWlseSk7XG59XG5cbmV4cG9ydCBjb25zdCBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VuczogUGFydGlhbDxSZWNvcmQ8Q29pbkZhbWlseSwgQ29pbkZlYXR1cmVbXT4+ID0ge1xuICBhbGdvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBhcHQ6IEFQVF9GRUFUVVJFUyxcbiAgYXJiZXRoOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGF2YXhjOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBiZXJhOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGJzYzogQlNDX1RPS0VOX0ZFQVRVUkVTLFxuICBjZWxvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBldGg6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIGVvczogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgaGJhcjogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgb3BldGg6IFsuLi5BY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5FSVAxNTU5XSxcbiAgcG9seWdvbjogUE9MWUdPTl9UT0tFTl9GRUFUVVJFUyxcbiAgc2Nyb2xsZXRoOiBbXG4gICAgLi4uRVZNX0ZFQVRVUkVTLFxuICAgIENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0lHTklORyxcbiAgICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESyxcbiAgICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9JTVMsXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfVUksXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfV1AsXG4gICAgQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjAsXG4gIF0sXG4gIHNvbDogU09MX1RPS0VOX0ZFQVRVUkVTLFxuICBzdHg6IFNUWF9UT0tFTl9GRUFUVVJFUyxcbiAgc3VpOiBTVUlfVE9LRU5fRkVBVFVSRVMsXG4gIHRhbzogVEFPX1RPS0VOX0ZFQVRVUkVTLFxuICBwb2x5eDogUE9MWVhfVE9LRU5fRkVBVFVSRVMsXG4gIHRyeDogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgeGxtOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICB4cnA6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIG9mYzogW10sXG4gIGFkYTogQURBX1RPS0VOX0ZFQVRVUkVTLFxufTtcbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0JBLDBEQUVDO0FBT0QsZ0RBRUM7QUFPRCw0Q0FRQztBQTVDRCx1Q0FBd0M7QUFDeEMsaUNBQWlEO0FBQ2pELGlEQVd3QjtBQUV4QixNQUFNLHlCQUF5QixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO0FBRW5FLGdGQUFnRjtBQUNoRixTQUFnQix1QkFBdUIsQ0FBQyxNQUFjLEVBQUUsUUFBdUI7SUFDN0UseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxrQ0FBMEIsQ0FBQyxNQUFvQixDQUFDLElBQUkseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQWMsRUFDZCxxQkFBb0MsRUFBRSxFQUN0QyxtQkFBa0MsRUFBRTtJQUVwQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQWMsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBYyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRyxDQUFDO0FBRVksUUFBQSwwQkFBMEIsR0FBK0M7SUFDcEYsSUFBSSxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2xDLEdBQUcsRUFBRSwyQkFBWTtJQUNqQixNQUFNLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDOUQsS0FBSyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ25DLElBQUksRUFBRSxDQUFDLEdBQUcscUJBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBVyxDQUFDLE9BQU8sQ0FBQztJQUM1RCxHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLElBQUksRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNsQyxHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLElBQUksRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNsQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDN0QsU0FBUyxFQUFFO1FBQ1QsR0FBRywyQkFBWTtRQUNmLGtCQUFXLENBQUMsa0JBQWtCO1FBQzlCLGtCQUFXLENBQUMsY0FBYztRQUMxQixrQkFBVyxDQUFDLGtCQUFrQjtRQUM5QixrQkFBVyxDQUFDLGlCQUFpQjtRQUM3QixrQkFBVyxDQUFDLGlCQUFpQjtRQUM3QixrQkFBVyxDQUFDLGNBQWM7S0FDM0I7SUFDRCxPQUFPLEVBQUUscUNBQXNCO0lBQy9CLFNBQVMsRUFBRTtRQUNULEdBQUcsMkJBQVk7UUFDZixrQkFBVyxDQUFDLGtCQUFrQjtRQUM5QixrQkFBVyxDQUFDLGNBQWM7UUFDMUIsa0JBQVcsQ0FBQyxrQkFBa0I7UUFDOUIsa0JBQVcsQ0FBQyxpQkFBaUI7UUFDN0Isa0JBQVcsQ0FBQyxpQkFBaUI7UUFDN0Isa0JBQVcsQ0FBQyxjQUFjO0tBQzNCO0lBQ0QsR0FBRyxFQUFFLGlDQUFrQjtJQUN2QixHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsR0FBRyxFQUFFLGlDQUFrQjtJQUN2QixLQUFLLEVBQUUsbUNBQW9CO0lBQzNCLEdBQUcsRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNqQyxHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLEdBQUcsRUFBRSxFQUFFO0lBQ1AsR0FBRyxFQUFFLGlDQUFrQjtDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3VudENvaW4gfSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgQ29pbkZhbWlseSwgQ29pbkZlYXR1cmUgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgQURBX1RPS0VOX0ZFQVRVUkVTLFxuICBBUFRfRkVBVFVSRVMsXG4gIEJTQ19UT0tFTl9GRUFUVVJFUyxcbiAgRVZNX0ZFQVRVUkVTLFxuICBQT0xZR09OX1RPS0VOX0ZFQVRVUkVTLFxuICBQT0xZWF9UT0tFTl9GRUFUVVJFUyxcbiAgU09MX1RPS0VOX0ZFQVRVUkVTLFxuICBTVFhfVE9LRU5fRkVBVFVSRVMsXG4gIFNVSV9UT0tFTl9GRUFUVVJFUyxcbiAgVEFPX1RPS0VOX0ZFQVRVUkVTLFxufSBmcm9tICcuL2NvaW5GZWF0dXJlcyc7XG5cbmNvbnN0IGR5bmFtaWNOZXR3b3JrRmVhdHVyZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgQ29pbkZlYXR1cmVbXT4oKTtcblxuLyoqIFJlZ2lzdGVyIGRlZmF1bHQgdG9rZW4gZmVhdHVyZXMgZm9yIGEgZHluYW1pY2FsbHkgb25ib2FyZGVkIGNoYWluIGZhbWlseS4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck5ldHdvcmtGZWF0dXJlcyhmYW1pbHk6IHN0cmluZywgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10pOiB2b2lkIHtcbiAgZHluYW1pY05ldHdvcmtGZWF0dXJlc01hcC5zZXQoZmFtaWx5LCBmZWF0dXJlcyk7XG59XG5cbi8qKlxuICogTG9vayB1cCB0b2tlbiBmZWF0dXJlcyBmb3IgYSBmYW1pbHkuXG4gKiBDaGVja3Mgc3RhdGljIG1hcCBmaXJzdCwgdGhlbiBmYWxscyBiYWNrIHRvIGR5bmFtaWMgbWFwLlxuICogUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGZhbWlseSBpcyBub3QgcmVnaXN0ZXJlZCBpbiBlaXRoZXIgbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya0ZlYXR1cmVzKGZhbWlseTogc3RyaW5nKTogQ29pbkZlYXR1cmVbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tmYW1pbHkgYXMgQ29pbkZhbWlseV0gPz8gZHluYW1pY05ldHdvcmtGZWF0dXJlc01hcC5nZXQoZmFtaWx5KTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmaW5hbCBmZWF0dXJlIGxpc3QgZm9yIGEgdG9rZW46IHRoZSBmYW1pbHkncyBkZWZhdWx0IHRva2VuIGZlYXR1cmVzXG4gKiBwbHVzIGBhZGRpdGlvbmFsRmVhdHVyZXNgLCBtaW51cyBgZXhjbHVkZWRGZWF0dXJlc2AuIFVzZWQgYnkgZ2VuZXJhdGVkIGJvdC10b2tlblxuICogbGlzdHMgdG8gYXBwbHkgdGhlIHBlci10b2tlbiBkaWZmIHJldHVybmVkIGJ5IEFNUyAoYGZlYXR1cmVzPWZhbHNlYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2tlbkZlYXR1cmVzKFxuICBmYW1pbHk6IHN0cmluZyxcbiAgYWRkaXRpb25hbEZlYXR1cmVzOiBDb2luRmVhdHVyZVtdID0gW10sXG4gIGV4Y2x1ZGVkRmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBbXVxuKTogQ29pbkZlYXR1cmVbXSB7XG4gIGNvbnN0IGJhc2UgPSBnZXROZXR3b3JrRmVhdHVyZXMoZmFtaWx5KSA/PyBbXTtcbiAgY29uc3QgZXhjbHVkZWQgPSBuZXcgU2V0PENvaW5GZWF0dXJlPihleGNsdWRlZEZlYXR1cmVzKTtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0PENvaW5GZWF0dXJlPihbLi4uYmFzZSwgLi4uYWRkaXRpb25hbEZlYXR1cmVzXSldLmZpbHRlcigoZikgPT4gIWV4Y2x1ZGVkLmhhcyhmKSk7XG59XG5cbmV4cG9ydCBjb25zdCBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VuczogUGFydGlhbDxSZWNvcmQ8Q29pbkZhbWlseSwgQ29pbkZlYXR1cmVbXT4+ID0ge1xuICBhbGdvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBhcHQ6IEFQVF9GRUFUVVJFUyxcbiAgYXJiZXRoOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGF2YXhjOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBiZXJhOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGJzYzogQlNDX1RPS0VOX0ZFQVRVUkVTLFxuICBjZWxvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBldGg6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIGVvczogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgaGJhcjogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgb3BldGg6IFsuLi5BY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5FSVAxNTU5XSxcbiAga2F0YW5hZXRoOiBbXG4gICAgLi4uRVZNX0ZFQVRVUkVTLFxuICAgIENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0lHTklORyxcbiAgICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESyxcbiAgICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9JTVMsXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfVUksXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfV1AsXG4gICAgQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjAsXG4gIF0sXG4gIHBvbHlnb246IFBPTFlHT05fVE9LRU5fRkVBVFVSRVMsXG4gIHNjcm9sbGV0aDogW1xuICAgIC4uLkVWTV9GRUFUVVJFUyxcbiAgICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NJR05JTkcsXG4gICAgQ29pbkZlYXR1cmUuU0hBUkVEX0VWTV9TREssXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfSU1TLFxuICAgIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX1VJLFxuICAgIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX1dQLFxuICAgIENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzIwLFxuICBdLFxuICBzb2w6IFNPTF9UT0tFTl9GRUFUVVJFUyxcbiAgc3R4OiBTVFhfVE9LRU5fRkVBVFVSRVMsXG4gIHN1aTogU1VJX1RPS0VOX0ZFQVRVUkVTLFxuICB0YW86IFRBT19UT0tFTl9GRUFUVVJFUyxcbiAgcG9seXg6IFBPTFlYX1RPS0VOX0ZFQVRVUkVTLFxuICB0cng6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHhsbTogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgeHJwOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBvZmM6IFtdLFxuICBhZGE6IEFEQV9UT0tFTl9GRUFUVVJFUyxcbn07XG4iXX0=
@@ -107,6 +107,7 @@ export interface AvalancheNetwork extends BaseNetwork {
107
107
  export interface AccountNetwork extends BaseNetwork {
108
108
  readonly accountExplorerUrl?: string;
109
109
  readonly blockExplorerUrl?: string;
110
+ readonly addressPrefix?: string;
110
111
  }
111
112
  export interface CosmosNetwork extends AccountNetwork {
112
113
  readonly addressPrefix: string;
@@ -145,6 +146,7 @@ export interface EthereumNetwork extends AccountNetwork {
145
146
  readonly walletV4ImplementationAddress?: string;
146
147
  readonly nativeCoinOperationHashPrefix?: string;
147
148
  readonly tokenOperationHashPrefix?: string;
149
+ readonly zamaAclContractAddress?: string;
148
150
  }
149
151
  export interface TronNetwork extends AccountNetwork {
150
152
  maxFeeLimit: string;
@@ -717,6 +719,7 @@ declare class Hoodi extends Testnet implements EthereumNetwork {
717
719
  walletV4ImplementationAddress: string;
718
720
  nativeCoinOperationHashPrefix: string;
719
721
  tokenOperationHashPrefix: string;
722
+ zamaAclContractAddress: string;
720
723
  }
721
724
  declare class EthereumClassic extends Mainnet implements EthereumNetwork {
722
725
  name: string;
@@ -844,81 +847,97 @@ declare class Atom extends Mainnet implements AccountNetwork {
844
847
  name: string;
845
848
  family: CoinFamily;
846
849
  explorerUrl: string;
850
+ addressPrefix: string;
847
851
  }
848
852
  declare class AtomTestnet extends Testnet implements AccountNetwork {
849
853
  name: string;
850
854
  family: CoinFamily;
851
855
  explorerUrl: string;
856
+ addressPrefix: string;
852
857
  }
853
858
  declare class Osmo extends Mainnet implements AccountNetwork {
854
859
  name: string;
855
860
  family: CoinFamily;
856
861
  explorerUrl: string;
862
+ addressPrefix: string;
857
863
  }
858
864
  declare class OsmoTestnet extends Testnet implements AccountNetwork {
859
865
  name: string;
860
866
  family: CoinFamily;
861
867
  explorerUrl: string;
868
+ addressPrefix: string;
862
869
  }
863
870
  declare class Tia extends Mainnet implements AccountNetwork {
864
871
  name: string;
865
872
  family: CoinFamily;
866
873
  explorerUrl: string;
874
+ addressPrefix: string;
867
875
  }
868
876
  declare class TiaTestnet extends Testnet implements AccountNetwork {
869
877
  name: string;
870
878
  family: CoinFamily;
871
879
  explorerUrl: string;
880
+ addressPrefix: string;
872
881
  }
873
882
  declare class Hash extends Mainnet implements AccountNetwork {
874
883
  name: string;
875
884
  family: CoinFamily;
876
885
  explorerUrl: string;
886
+ addressPrefix: string;
877
887
  }
878
888
  declare class HashTestnet extends Testnet implements AccountNetwork {
879
889
  name: string;
880
890
  family: CoinFamily;
881
891
  explorerUrl: string;
892
+ addressPrefix: string;
882
893
  }
883
894
  declare class Bld extends Mainnet implements AccountNetwork {
884
895
  name: string;
885
896
  family: CoinFamily;
886
897
  explorerUrl: string;
898
+ addressPrefix: string;
887
899
  }
888
900
  declare class BldTestnet extends Testnet implements AccountNetwork {
889
901
  name: string;
890
902
  family: CoinFamily;
891
903
  explorerUrl: string;
904
+ addressPrefix: string;
892
905
  }
893
906
  declare class Sei extends Mainnet implements AccountNetwork {
894
907
  name: string;
895
908
  family: CoinFamily;
896
909
  explorerUrl: string;
910
+ addressPrefix: string;
897
911
  }
898
912
  declare class SeiTestnet extends Testnet implements AccountNetwork {
899
913
  name: string;
900
914
  family: CoinFamily;
901
915
  explorerUrl: string;
916
+ addressPrefix: string;
902
917
  }
903
918
  declare class Zeta extends Mainnet implements AccountNetwork {
904
919
  name: string;
905
920
  family: CoinFamily;
906
921
  explorerUrl: string;
922
+ addressPrefix: string;
907
923
  }
908
924
  declare class ZetaTestnet extends Testnet implements AccountNetwork {
909
925
  name: string;
910
926
  family: CoinFamily;
911
927
  explorerUrl: string;
928
+ addressPrefix: string;
912
929
  }
913
930
  declare class Injective extends Mainnet implements AccountNetwork {
914
931
  name: string;
915
932
  family: CoinFamily;
916
933
  explorerUrl: string;
934
+ addressPrefix: string;
917
935
  }
918
936
  declare class InjectiveTestnet extends Testnet implements AccountNetwork {
919
937
  name: string;
920
938
  family: CoinFamily;
921
939
  explorerUrl: string;
940
+ addressPrefix: string;
922
941
  }
923
942
  declare class KavaCosmos extends Mainnet implements CosmosNetwork {
924
943
  name: string;
@@ -978,31 +997,37 @@ declare class Coreum extends Mainnet implements AccountNetwork {
978
997
  name: string;
979
998
  family: CoinFamily;
980
999
  explorerUrl: string;
1000
+ addressPrefix: string;
981
1001
  }
982
1002
  declare class CoreumTestnet extends Testnet implements AccountNetwork {
983
1003
  name: string;
984
1004
  family: CoinFamily;
985
1005
  explorerUrl: string;
1006
+ addressPrefix: string;
986
1007
  }
987
1008
  declare class Rune extends Mainnet implements AccountNetwork {
988
1009
  name: string;
989
1010
  family: CoinFamily;
990
1011
  explorerUrl: string;
1012
+ addressPrefix: string;
991
1013
  }
992
1014
  declare class RuneTestNet extends Testnet implements AccountNetwork {
993
1015
  name: string;
994
1016
  family: CoinFamily;
995
1017
  explorerUrl: string;
1018
+ addressPrefix: string;
996
1019
  }
997
1020
  declare class Baby extends Mainnet implements AccountNetwork {
998
1021
  name: string;
999
1022
  family: CoinFamily;
1000
1023
  explorerUrl: string;
1024
+ addressPrefix: string;
1001
1025
  }
1002
1026
  declare class BabyTestnet extends Testnet implements AccountNetwork {
1003
1027
  name: string;
1004
1028
  family: CoinFamily;
1005
1029
  explorerUrl: string;
1030
+ addressPrefix: string;
1006
1031
  }
1007
1032
  declare class Mantra extends Mainnet implements CosmosNetwork {
1008
1033
  name: string;
@@ -1030,11 +1055,13 @@ declare class Cronos extends Mainnet implements AccountNetwork {
1030
1055
  name: string;
1031
1056
  family: CoinFamily;
1032
1057
  explorerUrl: string;
1058
+ addressPrefix: string;
1033
1059
  }
1034
1060
  declare class CronosTestnet extends Testnet implements AccountNetwork {
1035
1061
  name: string;
1036
1062
  family: CoinFamily;
1037
1063
  explorerUrl: string;
1064
+ addressPrefix: string;
1038
1065
  }
1039
1066
  declare class FetchAi extends Mainnet implements AccountNetwork {
1040
1067
  name: string;
@@ -1050,31 +1077,37 @@ declare class Initia extends Mainnet implements AccountNetwork {
1050
1077
  name: string;
1051
1078
  family: CoinFamily;
1052
1079
  explorerUrl: string;
1080
+ addressPrefix: string;
1053
1081
  }
1054
1082
  declare class InitiaTestnet extends Testnet implements AccountNetwork {
1055
1083
  name: string;
1056
1084
  family: CoinFamily;
1057
1085
  explorerUrl: string;
1086
+ addressPrefix: string;
1058
1087
  }
1059
1088
  declare class Asi extends Mainnet implements AccountNetwork {
1060
1089
  name: string;
1061
1090
  family: CoinFamily;
1062
1091
  explorerUrl: string;
1092
+ addressPrefix: string;
1063
1093
  }
1064
1094
  declare class AsiTestnet extends Testnet implements AccountNetwork {
1065
1095
  name: string;
1066
1096
  family: CoinFamily;
1067
1097
  explorerUrl: string;
1098
+ addressPrefix: string;
1068
1099
  }
1069
1100
  declare class Islm extends Mainnet implements AccountNetwork {
1070
1101
  name: string;
1071
1102
  family: CoinFamily;
1072
1103
  explorerUrl: string;
1104
+ addressPrefix: string;
1073
1105
  }
1074
1106
  declare class IslmTestnet extends Testnet implements AccountNetwork {
1075
1107
  name: string;
1076
1108
  family: CoinFamily;
1077
1109
  explorerUrl: string;
1110
+ addressPrefix: string;
1078
1111
  }
1079
1112
  declare class Stx extends Mainnet implements StacksNetwork {
1080
1113
  name: string;
@@ -2260,6 +2293,22 @@ declare class HemiEthTestnet extends Testnet implements EthereumNetwork {
2260
2293
  chainId: number;
2261
2294
  nativeCoinOperationHashPrefix: string;
2262
2295
  }
2296
+ declare class KatanaEth extends Mainnet implements EthereumNetwork {
2297
+ name: string;
2298
+ family: CoinFamily;
2299
+ explorerUrl: string;
2300
+ accountExplorerUrl: string;
2301
+ chainId: number;
2302
+ nativeCoinOperationHashPrefix: string;
2303
+ }
2304
+ declare class KatanaEthTestnet extends Testnet implements EthereumNetwork {
2305
+ name: string;
2306
+ family: CoinFamily;
2307
+ explorerUrl: string;
2308
+ accountExplorerUrl: string;
2309
+ chainId: number;
2310
+ nativeCoinOperationHashPrefix: string;
2311
+ }
2263
2312
  declare class PrividiumETH extends Mainnet implements EthereumNetwork {
2264
2313
  name: string;
2265
2314
  family: CoinFamily;
@@ -2503,6 +2552,7 @@ export declare const Networks: {
2503
2552
  jovayeth: Readonly<JovayETH>;
2504
2553
  kaia: Readonly<Kaia>;
2505
2554
  kaspa: Readonly<KaspaMainnet>;
2555
+ katanaeth: Readonly<KatanaEth>;
2506
2556
  kavacosmos: Readonly<KavaCosmos>;
2507
2557
  kavaevm: Readonly<KavaEVM>;
2508
2558
  lnbtc: Readonly<LightningBitcoin>;
@@ -2633,6 +2683,7 @@ export declare const Networks: {
2633
2683
  islm: Readonly<IslmTestnet>;
2634
2684
  jovayeth: Readonly<JovayETHTestnet>;
2635
2685
  kaspa: Readonly<KaspaTestnet>;
2686
+ katanaeth: Readonly<KatanaEthTestnet>;
2636
2687
  kavacosmos: Readonly<KavaCosmosTestnet>;
2637
2688
  kavaevm: Readonly<KavaEVMTestnet>;
2638
2689
  kovan: Readonly<Kovan>;