@ledgerhq/vault-common 2.4.2 → 2.4.3

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @ledgerhq/vault-common@2.4.2 build /home/runner/work/vault-ts/vault-ts/packages/common
2
+ > @ledgerhq/vault-common@2.4.3 build /home/runner/work/vault-ts/vault-ts/packages/common
3
3
  > tsup
4
4
 
5
5
  CLI Building entry: src/createHSMBridge.ts, src/index.ts, src/recipeManifest.ts, src/reviewAPIRequest.ts, src/utils.ts, src/crypto/utils.ts, src/types/index.ts
@@ -13,35 +13,35 @@
13
13
  CJS lib/crypto/utils.js 335.00 B
14
14
  CJS lib/types/index.js 329.00 B
15
15
  CJS lib/index.js 121.00 KB
16
- CJS lib/chunk-RMGLSD2K.js 3.59 KB
16
+ CJS lib/chunk-QL5GBWII.js 3.59 KB
17
17
  CJS lib/recipeManifest.js 349.00 B
18
- CJS lib/chunk-DYC7MJCF.js 17.80 KB
18
+ CJS lib/chunk-3NZFOZSL.js 17.80 KB
19
19
  CJS lib/reviewAPIRequest.js 365.00 B
20
- CJS lib/chunk-5FIUXT4V.js 37.63 KB
20
+ CJS lib/chunk-MTIKVKIS.js 37.63 KB
21
+ CJS lib/chunk-ZRN7GJSN.js 3.39 KB
21
22
  CJS lib/utils.js 1.20 KB
22
- CJS lib/chunk-VTRGMAG3.js 34.75 KB
23
+ CJS lib/chunk-4OGAVJPW.js 34.76 KB
24
+ CJS lib/chunk-3L2XDBZ2.js 8.65 KB
23
25
  CJS lib/chunk-IAJMQIH7.js 396.00 B
24
26
  CJS lib/chunk-PZ5AY32C.js 314.00 B
25
- CJS lib/chunk-3L2XDBZ2.js 8.65 KB
26
- CJS lib/chunk-GGTW7SXQ.js 3.39 KB
27
27
  CJS lib/createHSMBridge.js.map 293.00 B
28
+ CJS lib/crypto/utils.js.map 281.00 B
29
+ CJS lib/types/index.js.map 269.00 B
28
30
  CJS lib/index.js.map 179.10 KB
29
- CJS lib/chunk-RMGLSD2K.js.map 7.09 KB
31
+ CJS lib/chunk-QL5GBWII.js.map 7.09 KB
30
32
  CJS lib/recipeManifest.js.map 288.00 B
31
- CJS lib/crypto/utils.js.map 281.00 B
33
+ CJS lib/chunk-3NZFOZSL.js.map 36.53 KB
32
34
  CJS lib/reviewAPIRequest.js.map 308.00 B
33
- CJS lib/chunk-5FIUXT4V.js.map 71.66 KB
35
+ CJS lib/chunk-MTIKVKIS.js.map 71.66 KB
36
+ CJS lib/chunk-ZRN7GJSN.js.map 5.19 KB
34
37
  CJS lib/utils.js.map 398.00 B
35
- CJS lib/chunk-VTRGMAG3.js.map 65.63 KB
38
+ CJS lib/chunk-4OGAVJPW.js.map 65.64 KB
39
+ CJS lib/chunk-3L2XDBZ2.js.map 20.30 KB
36
40
  CJS lib/chunk-IAJMQIH7.js.map 52.69 KB
37
41
  CJS lib/chunk-PZ5AY32C.js.map 479.00 B
38
- CJS lib/chunk-3L2XDBZ2.js.map 20.30 KB
39
- CJS lib/types/index.js.map 269.00 B
40
- CJS lib/chunk-DYC7MJCF.js.map 36.53 KB
41
- CJS lib/chunk-GGTW7SXQ.js.map 5.19 KB
42
- CJS ⚡️ Build success in 915ms
42
+ CJS ⚡️ Build success in 912ms
43
43
  DTS Build start
44
- DTS ⚡️ Build success in 11448ms
44
+ DTS ⚡️ Build success in 11342ms
45
45
  DTS lib/createHSMBridge.d.ts 984.00 B
46
46
  DTS lib/index.d.ts 12.96 KB
47
47
  DTS lib/reviewAPIRequest.d.ts 836.00 B
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ledgerhq/vault-common
2
2
 
3
+ ## 2.4.3
4
+
5
+ ### Patch Changes
6
+
7
+ - f19b53e6: Change currency id sei to sei_evm
8
+
3
9
  ## 2.4.2
4
10
 
5
11
  ### Patch Changes
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkVTRGMAG3js = require('./chunk-VTRGMAG3.js');
6
+ var _chunk4OGAVJPWjs = require('./chunk-4OGAVJPW.js');
7
7
 
8
8
  // src/recipeManifest.ts
9
9
  var _invariant = require('invariant'); var _invariant2 = _interopRequireDefault(_invariant);
@@ -148,31 +148,31 @@ async function recipeManifest(pool, options = {}) {
148
148
  })
149
149
  )
150
150
  ]);
151
- const pendingUserRequests = _chunkVTRGMAG3js.unwrapConnection.call(void 0, pendingUserRequestsConnection);
152
- const users = _sortBy2.default.call(void 0, _chunkVTRGMAG3js.unwrapConnection.call(void 0, usersConnection), "id");
153
- const groups = _chunkVTRGMAG3js.unwrapConnection.call(void 0, groupsConnection);
154
- const whitelists = _chunkVTRGMAG3js.unwrapConnection.call(void 0, whitelistsConnection);
155
- const accounts = _sortBy2.default.call(void 0, _chunkVTRGMAG3js.unwrapConnection.call(void 0, accountsConnection), "index");
156
- const vaultEntities = _chunkVTRGMAG3js.unwrapConnection.call(void 0, vaultEntitiesConnection);
157
- const exchanges = _chunkVTRGMAG3js.unwrapConnection.call(void 0, exchangesConnection);
158
- const policies = _chunkVTRGMAG3js.unwrapConnection.call(void 0, policiesConnection);
159
- const tradelinkCustodians = _chunkVTRGMAG3js.unwrapConnection.call(void 0,
151
+ const pendingUserRequests = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, pendingUserRequestsConnection);
152
+ const users = _sortBy2.default.call(void 0, _chunk4OGAVJPWjs.unwrapConnection.call(void 0, usersConnection), "id");
153
+ const groups = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, groupsConnection);
154
+ const whitelists = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, whitelistsConnection);
155
+ const accounts = _sortBy2.default.call(void 0, _chunk4OGAVJPWjs.unwrapConnection.call(void 0, accountsConnection), "index");
156
+ const vaultEntities = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, vaultEntitiesConnection);
157
+ const exchanges = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, exchangesConnection);
158
+ const policies = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, policiesConnection);
159
+ const tradelinkCustodians = _chunk4OGAVJPWjs.unwrapConnection.call(void 0,
160
160
  tradelinkCustodianConnection
161
161
  );
162
- const tradelinkHSMCustodians = _chunkVTRGMAG3js.unwrapConnection.call(void 0, tradelinkHSMCustodianConnection);
163
- const tradelinkExchanges = _chunkVTRGMAG3js.unwrapConnection.call(void 0,
162
+ const tradelinkHSMCustodians = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, tradelinkHSMCustodianConnection);
163
+ const tradelinkExchanges = _chunk4OGAVJPWjs.unwrapConnection.call(void 0,
164
164
  tradelinkExchangeConnection
165
165
  );
166
- const tradelinkHSMExchanges = _chunkVTRGMAG3js.unwrapConnection.call(void 0,
166
+ const tradelinkHSMExchanges = _chunk4OGAVJPWjs.unwrapConnection.call(void 0,
167
167
  tradelinkHSMExchangeConnection
168
168
  );
169
- const tradelinkHSMAssetManagers = _chunkVTRGMAG3js.unwrapConnection.call(void 0,
169
+ const tradelinkHSMAssetManagers = _chunk4OGAVJPWjs.unwrapConnection.call(void 0,
170
170
  tradelinkHSMAssetManagerConnection
171
171
  );
172
- const tradelinkAssetManagers = _chunkVTRGMAG3js.unwrapConnection.call(void 0,
172
+ const tradelinkAssetManagers = _chunk4OGAVJPWjs.unwrapConnection.call(void 0,
173
173
  tradelinkAssetManagerConnection
174
174
  );
175
- const allWorkspaceRules = _chunkVTRGMAG3js.unwrapConnection.call(void 0, allWorkspaceRulesConnection);
175
+ const allWorkspaceRules = _chunk4OGAVJPWjs.unwrapConnection.call(void 0, allWorkspaceRulesConnection);
176
176
  const rootWorkspaceRule = _nullishCoalesce(allWorkspaceRules.find((r) => r.permission === "ROOT"), () => ( null));
177
177
  const apiAdminWorkspaceRules = allWorkspaceRules.filter((r) => r.permission !== "ROOT");
178
178
  const groupsByName = _keyBy2.default.call(void 0, groups, (group) => group.name);
@@ -230,7 +230,7 @@ async function recipeManifest(pool, options = {}) {
230
230
  return { ...acc, [curr.user.id]: curr.deviceIndex };
231
231
  }, {});
232
232
  const customUsernames = [..._admins, ...operators].reduce((acc, curr) => {
233
- if (_chunkVTRGMAG3js.getDefaultUsername.call(void 0, curr.user.role === "ADMIN" ? "admin" : "operator", curr.deviceIndex) === curr.user.username) {
233
+ if (_chunk4OGAVJPWjs.getDefaultUsername.call(void 0, curr.user.role === "ADMIN" ? "admin" : "operator", curr.deviceIndex) === curr.user.username) {
234
234
  return acc;
235
235
  }
236
236
  return { ...acc, [curr.deviceIndex]: curr.user.username };
@@ -402,7 +402,7 @@ function pickNonEmpty(obj) {
402
402
  return out;
403
403
  }
404
404
  function extractRules(gateGovRules, _currency, operatorsDevicesByID) {
405
- const currency = _currency ? _chunkVTRGMAG3js.getCryptoCurrencyById.call(void 0, _currency) : null;
405
+ const currency = _currency ? _chunk4OGAVJPWjs.getCryptoCurrencyById.call(void 0, _currency) : null;
406
406
  const unit = currency ? currency.units[0] : null;
407
407
  const governance_rules = gateGovRules || [];
408
408
  let rulesSets = governance_rules.map((r) => {
@@ -411,8 +411,8 @@ function extractRules(gateGovRules, _currency, operatorsDevicesByID) {
411
411
  _invariant2.default.call(void 0, unit, "Unit must be defined for THRESHOLD rule");
412
412
  const thresholdRule = {
413
413
  type: "THRESHOLD",
414
- ...rule.data[0].min ? { min: _chunkVTRGMAG3js.deserializeUnitValue.call(void 0, unit, rule.data[0].min) } : {},
415
- ...rule.data[0].max ? { max: _chunkVTRGMAG3js.deserializeUnitValue.call(void 0, unit, rule.data[0].max) } : {}
414
+ ...rule.data[0].min ? { min: _chunk4OGAVJPWjs.deserializeUnitValue.call(void 0, unit, rule.data[0].min) } : {},
415
+ ...rule.data[0].max ? { max: _chunk4OGAVJPWjs.deserializeUnitValue.call(void 0, unit, rule.data[0].max) } : {}
416
416
  };
417
417
  return thresholdRule;
418
418
  }
@@ -501,4 +501,4 @@ function countAPIUsersUntil(index, users) {
501
501
 
502
502
 
503
503
  exports.getDeviceIndex = getDeviceIndex; exports.recipeManifest = recipeManifest;
504
- //# sourceMappingURL=chunk-DYC7MJCF.js.map
504
+ //# sourceMappingURL=chunk-3NZFOZSL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-DYC7MJCF.js","../src/recipeManifest.ts"],"names":[],"mappings":"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","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-DYC7MJCF.js","sourcesContent":[null,"import invariant from \"invariant\";\nimport keyBy from \"lodash/keyBy\";\nimport sortBy from \"lodash/sortBy\";\n\nimport { getCryptoCurrencyById } from \"./currencies\";\nimport {\n GateGovernanceRulesSet,\n GateTradelink,\n GateTradelinkAssetManager,\n GateTradelinkEntity,\n GateTradelinkExchange,\n GateTradelinkNetwork,\n GateTradelinkOnboardingStatus,\n GateWorkspacePermission,\n GateWorkspaceRule,\n ManifestAccountRuleCreateSplTokenAccount,\n ManifestAccountRuleTransferSplToken,\n ManifestWorkspaceRule,\n} from \"./types\";\nimport {\n Connection,\n DevicesPool,\n GateAccount,\n GateExchange,\n GateGroup,\n GatePolicy,\n GateUser,\n GateUserRequest,\n GateVaultEntity,\n GateWhitelist,\n Manifest,\n ManifestAccountConfig,\n ManifestAccountRule,\n ManifestAccountRuleCardanoStaking,\n ManifestAccountRuleDeployContract,\n ManifestAccountRuleMessageSigning,\n ManifestAccountRuleMultiAuth,\n ManifestAccountRulePolkadotStaking,\n ManifestAccountRuleRawSigning,\n ManifestAccountRuleSCI,\n ManifestAccountRuleSolanaStaking,\n ManifestAccountRuleStake,\n ManifestAccountRuleTezosDelegation,\n ManifestAccountRuleThreshold,\n ManifestAccountRuleWhitelist,\n ManifestExchange,\n ManifestPolicy,\n ManifestWhitelistAddress,\n Organization,\n UserWithDevice,\n UserWithoutDevice,\n} from \"./types\";\nimport { getDefaultUsername } from \"./utils\";\nimport { deserializeUnitValue, unwrapConnection } from \"./utils\";\n\nconst ADMIN_START_DEVICE_INDEX = 4;\nconst DEFAULT_ADMINS_COUNT = 3;\nconst NB_SHARED_OWNERS = 3;\n\nexport const getDeviceIndex = (index: number): number => {\n const n = ADMIN_START_DEVICE_INDEX + index;\n if (n < ADMIN_START_DEVICE_INDEX + NB_SHARED_OWNERS) {\n return n;\n }\n return n + NB_SHARED_OWNERS;\n};\n\nexport type GateGroupsByName = Record<string, GateGroup>;\nexport type GateWhitelistsByName = Record<string, GateWhitelist>;\nexport type GateAccountsByName = Record<string, GateAccount>;\nexport type GateVaultEntitiesByName = Record<string, GateVaultEntity>;\nexport type GateExchangesByName = Record<string, GateExchange>;\nexport type GatePoliciesByName = Record<string, GatePolicy>;\nexport type GateTradelinkCustodianByName = Record<string, GateTradelinkEntity<\"CUSTODIAN\">>;\nexport type GateTradelinkHSMCustodianByName = Record<string, GateTradelink>;\nexport type GateTradelinkExchangeByName = Record<string, GateTradelinkEntity<\"EXCHANGE\">>;\nexport type GateTradelinkHSMExchangeByName = Record<string, GateTradelinkExchange>;\nexport type GateTradelinkHSMAssetManagerByName = Record<string, GateTradelinkAssetManager>;\nexport type GateTradelinkAssetManagerByName = Record<string, GateTradelinkEntity<\"ASSET_MANAGER\">>;\n\nexport type RecipeRawData = {\n pendingUserRequests: GateUserRequest[];\n groupsByName: GateGroupsByName;\n whitelistsByName: GateWhitelistsByName;\n accountsByName: GateAccountsByName;\n vaultEntitiesByName: GateVaultEntitiesByName;\n exchangesByName: GateExchangesByName;\n policiesByName: GatePoliciesByName;\n usersWithDevice: UserWithDevice[];\n usersWithoutDevice: UserWithoutDevice[];\n tradelinkCustodiansByName: GateTradelinkCustodianByName;\n tradelinkHSMCustodiansByName: GateTradelinkHSMCustodianByName;\n tradelinkExchangesByName: GateTradelinkExchangeByName;\n tradelinkHSMExchangesByName: GateTradelinkHSMExchangeByName;\n tradelinkHSMAssetManagersByName: GateTradelinkHSMAssetManagerByName;\n tradelinkAssetManagersByName: GateTradelinkAssetManagerByName;\n tradelinkNetwork: GateTradelinkNetwork;\n tradelinkOnboardingStatus: GateTradelinkOnboardingStatus;\n};\n\nexport type RecipeManifestResult = {\n manifest: Manifest;\n rawData: RecipeRawData;\n};\n\nexport type RecipeManifestOptions = {\n saveAccountsIndexes?: boolean;\n saveAccountsTypes?: boolean;\n};\n\nexport default async function recipeManifest(\n pool: DevicesPool,\n options: RecipeManifestOptions = {},\n): Promise<RecipeManifestResult> {\n const adminDevices = await pool.getOnboardingAdminDevices();\n const admin = await pool.login(adminDevices[0]![1]);\n const [\n organization,\n pendingUserRequestsConnection,\n usersConnection,\n groupsConnection,\n accountsConnection,\n vaultEntitiesConnection,\n whitelistsConnection,\n exchangesConnection,\n policiesConnection,\n tradelinkCustodianConnection,\n tradelinkHSMCustodianConnection,\n tradelinkExchangeConnection,\n tradelinkHSMExchangeConnection,\n tradelinkHSMAssetManagerConnection,\n tradelinkAssetManagerConnection,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n allWorkspaceRulesConnection,\n ] = await Promise.all([\n admin.network<Organization>(\"GET\", \"/organization\"),\n admin\n .network<Connection<GateUserRequest>>(\n \"GET\",\n `/requests?type=CREATE_ADMIN&type=CREATE_OPERATOR&type=CREATE_API_USER&status=PENDING_REGISTRATION&status=PENDING_APPROVAL`,\n )\n // for some reason this particular one can fail when targeting prod (not sure why)\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateUser>>(\n \"GET\",\n \"/people?status=ACTIVE&status=ACCESS_SUSPENDED&role=ADMIN&role=OPERATOR&pageSize=-1\",\n ),\n admin.network<Connection<GateGroup>>(\"GET\", \"/groups?pageSize=-1\"),\n admin.network<Connection<GateAccount>>(\n \"GET\",\n \"/accounts?status=ACTIVE&status=APPROVED&status=PENDING&status=VIEW_ONLY&pageSize=-1\",\n ),\n admin.network<Connection<GateVaultEntity>>(\"GET\", \"/entities?pageSize=-1\"),\n admin.network<Connection<GateWhitelist>>(\"GET\", \"/whitelists?pageSize=-1\"),\n admin\n .network<Connection<GateExchange>>(\"GET\", \"/exchanges?pageSize=-1\")\n // handle case where /exchanges is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GatePolicy>>(\"GET\", \"/policies?pageSize=-1\")\n // handle case where /policies is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"CUSTODIAN\">>>(\"GET\", \"/tradelink/custodians\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelink>>(\"GET\", \"/tradelink/hsm-custodians\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n\n admin.network<Connection<GateTradelinkEntity<\"EXCHANGE\">>>(\"GET\", \"/tradelink/exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelinkExchange>>(\"GET\", \"/tradelink/hsm-exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkAssetManager>>(\"GET\", \"/tradelink/hsm-asset-managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"ASSET_MANAGER\">>>(\"GET\", \"/tradelink/asset_managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<GateTradelinkNetwork>(\"GET\", \"/tradelink/network\").catch(\n /* istanbul ignore next */ () => ({\n id: \"\",\n asset_managers: [],\n custodian: {\n approver_group_id: 0,\n code: \"\",\n id: \"\",\n logo_url: \"\",\n name: \"\",\n whitelist_id: 0,\n },\n exchanges: [],\n }),\n ),\n admin\n .network<GateTradelinkOnboardingStatus>(\"GET\", \"/tradelink/onboarding\")\n .catch(\n /* istanbul ignore next */ (): GateTradelinkOnboardingStatus => ({ status: \"NOT_READY\" }),\n ),\n admin.network<Connection<GateWorkspaceRule>>(\"GET\", \"/workspace-rules\").catch(\n /* istanbul ignore next */ (): Connection<GateWorkspaceRule> => ({\n edges: [],\n pageInfo: { count: 0, hasNextPage: false },\n }),\n ),\n ]);\n\n const pendingUserRequests: GateUserRequest[] = unwrapConnection(pendingUserRequestsConnection);\n const users: GateUser[] = sortBy(unwrapConnection(usersConnection), \"id\");\n const groups: GateGroup[] = unwrapConnection(groupsConnection);\n const whitelists: GateWhitelist[] = unwrapConnection(whitelistsConnection);\n const accounts: GateAccount[] = sortBy(unwrapConnection(accountsConnection), \"index\");\n const vaultEntities: GateVaultEntity[] = unwrapConnection(vaultEntitiesConnection);\n const exchanges: GateExchange[] = unwrapConnection(exchangesConnection);\n const policies: GatePolicy[] = unwrapConnection(policiesConnection);\n const tradelinkCustodians: GateTradelinkEntity<\"CUSTODIAN\">[] = unwrapConnection(\n tradelinkCustodianConnection,\n );\n const tradelinkHSMCustodians: GateTradelink[] = unwrapConnection(tradelinkHSMCustodianConnection);\n const tradelinkExchanges: GateTradelinkEntity<\"EXCHANGE\">[] = unwrapConnection(\n tradelinkExchangeConnection,\n );\n const tradelinkHSMExchanges: GateTradelinkExchange[] = unwrapConnection(\n tradelinkHSMExchangeConnection,\n );\n const tradelinkHSMAssetManagers: GateTradelinkAssetManager[] = unwrapConnection(\n tradelinkHSMAssetManagerConnection,\n );\n const tradelinkAssetManagers: GateTradelinkEntity<\"ASSET_MANAGER\">[] = unwrapConnection(\n tradelinkAssetManagerConnection,\n );\n const allWorkspaceRules = unwrapConnection(allWorkspaceRulesConnection);\n const rootWorkspaceRule = allWorkspaceRules.find((r) => r.permission === \"ROOT\") ?? null;\n const apiAdminWorkspaceRules = allWorkspaceRules.filter((r) => r.permission !== \"ROOT\");\n\n const groupsByName = keyBy(groups, (group) => group.name);\n const whitelistsByName = keyBy(whitelists, (w) => w.name);\n const accountsByName = keyBy(accounts, (a) => a.name);\n const vaultEntitiesByName = keyBy(vaultEntities, (e) => e.name);\n const exchangesByName = keyBy(exchanges, (e) => e.name);\n const policiesByName = keyBy(policies, (e) => e.name);\n const tradelinkCustodiansByName = keyBy(tradelinkCustodians, (e) => e.name);\n const tradelinkHSMCustodiansByName = keyBy(\n tradelinkHSMCustodians,\n (e) => e.network.custodian.name,\n );\n const tradelinkExchangesByName = keyBy(tradelinkExchanges, (e) => e.name);\n const tradelinkHSMExchangesByName = keyBy(tradelinkHSMExchanges, (e) => e.hsm_data.name);\n const tradelinkHSMAssetManagersByName = keyBy(tradelinkHSMAssetManagers, (e) => e.hsm_data.name);\n const tradelinkAssetManagersByName = keyBy(tradelinkAssetManagers, (e) => e.name);\n\n // gate is sending all active users by order of creation\n // we rely on index in the reduce() to get the device index assuming we take them in order\n //\n // FIXME there is something weird with the typing of this reduce :(\n // @ts-ignore\n const {\n admins: _admins,\n operators,\n apiUsers,\n apiV2Users,\n }: {\n admins: Array<{ deviceIndex: number; user: GateUser }>;\n operators: Array<{ deviceIndex: number; user: GateUser }>;\n apiUsers: Array<{ deviceIndex: number; user: GateUser }>;\n apiV2Users: Array<{ username: string; user: GateUser }>;\n } = users.reduce(\n (acc, curr, index) =>\n // @ts-ignore\n curr.device_type === \"API\"\n ? {\n ...acc,\n apiV2Users: [...acc.apiV2Users, { deviceIndex: curr.username, user: curr }],\n }\n : curr.role === \"ADMIN\"\n ? {\n ...acc,\n admins: [\n ...acc.admins,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n }\n : curr.device_type === \"SOFT_PSD\"\n ? {\n ...acc,\n apiUsers: [...acc.apiUsers, { deviceIndex: curr.username, user: curr }],\n }\n : {\n ...acc,\n operators: [\n ...acc.operators,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n },\n { admins: [], operators: [], apiUsers: [], apiV2Users: [] },\n );\n\n const operatorsDevicesByID: Record<string, number> = operators.reduce((acc, curr) => {\n return { ...acc, [curr.user.id]: curr.deviceIndex };\n }, {});\n\n const customUsernames = [..._admins, ...operators].reduce((acc, curr) => {\n // don't assign custom username if user has default name\n if (\n getDefaultUsername(curr.user.role === \"ADMIN\" ? \"admin\" : \"operator\", curr.deviceIndex) ===\n curr.user.username\n ) {\n return acc;\n }\n return { ...acc, [curr.deviceIndex]: curr.user.username };\n }, {});\n\n const admins = _admins\n // remove admins 4, 5, 6, they are implicitly created during onboarding\n // we still want to fetch them first to eventually collect custom usernames\n .filter((_, i) => i > DEFAULT_ADMINS_COUNT - 1);\n\n const usersManifest = {\n operators: operators.map((o) => o.deviceIndex),\n admins: admins.map((a) => a.deviceIndex),\n api: apiUsers.map((a) =>\n a.user.view_all_override\n ? {\n name: a.user.username,\n viewAll: true,\n }\n : a.user.username,\n ),\n apiV2: apiV2Users.map((a) => ({\n role: a.user.role,\n name: a.user.username,\n ...(a.user.pub_key ? { publicKey: a.user.pub_key } : {}),\n ...(a.user.view_all_override ? { viewAll: true } : {}),\n })),\n };\n\n // we assume that if ROOT workspace rule exist, we take the workspace quorum from there,\n // else, we take it from the legacy \"organization\" object\n const quorum = rootWorkspaceRule ? rootWorkspaceRule.steps[0]!.quorum : organization.quorum;\n\n const manifestWorkspaceRules: ManifestWorkspaceRule[] = apiAdminWorkspaceRules\n .map((rule) => ({\n permission: rule.permission as Exclude<GateWorkspacePermission, \"ROOT\">,\n steps: rule.steps.map((gateStep) => ({\n quorum: gateStep.quorum,\n users: gateStep.users.map((pubKey) => {\n const user = users.find((u) => u.pub_key === pubKey);\n invariant(\n user,\n `Can't find user with pub key ${pubKey} referenced in workspace rule ${rule.permission}`,\n );\n return user.username;\n }),\n })),\n }))\n .filter((rule) => {\n // only output the rules that have users defined\n return rule.steps.length > 0;\n });\n\n const fullManifest: Manifest = {\n quorum: quorum === 2 ? undefined : quorum,\n customUsernames,\n users: usersManifest,\n workspaceRules: manifestWorkspaceRules,\n groups: groups\n .filter((g) => g.status === \"ACTIVE\")\n .map((g) => ({\n name: g.name,\n description: g.description,\n users: g.members.map((m) => (m.is_api ? m.username : operatorsDevicesByID[m.id]!)),\n })),\n whitelists: whitelists\n .filter((w) => w.status === \"ACTIVE\")\n .map((w) => ({\n name: w.name,\n description: w.description,\n type: w.whitelist_type,\n addresses: w.addresses.map(\n (a): ManifestWhitelistAddress => ({\n name: a.name,\n address: a.address,\n currency: a.currency,\n destination_tags: a.destination_tags,\n }),\n ),\n })),\n accounts: accounts\n // we want to get rid of VIEW_ONLY account see #76\n .filter((a) => a.status === \"ACTIVE\")\n .map((a) => ({\n name: a.name,\n currency: a.currency,\n ...(options.saveAccountsTypes ? { accountType: a.account_type } : {}),\n derivationMode: a.derivation_mode === \"STANDARD\" ? undefined : a.derivation_mode,\n contractAddress: a.contract_address || undefined,\n ...(options.saveAccountsIndexes ? { index: a.index } : {}),\n ...(a.parent\n ? {\n parentAccount: (() => {\n const parentAccount = accounts.find((acc) => acc.id === a.parent);\n /* istanbul ignore if */\n if (!parentAccount) {\n throw new Error(`Can't find parent account with id ${a.parent}`);\n }\n if (parentAccount.status !== \"ACTIVE\") {\n return undefined;\n }\n return parentAccount.name;\n })(),\n }\n : {}),\n rules: extractRules(a.governance_rules, a.currency, operatorsDevicesByID),\n ...(() => {\n const config: ManifestAccountConfig = {};\n\n if (a.nfts_gallery_enabled) {\n config.nftGallery = true;\n }\n\n const hasConfig = Object.keys(config).length > 0;\n return hasConfig ? { config } : {};\n })(),\n })),\n entities: vaultEntities\n .filter((e) => e.status === \"ACTIVE\")\n .map((e) => ({\n name: e.name,\n accounts: e.accounts.map((a) => a.name),\n })),\n exchanges: exchanges\n .filter((e) => e.status === \"ACTIVE\")\n .map(\n (e): ManifestExchange => ({\n name: e.name,\n platform: e.platform,\n configuration: {\n apiKey: \"<not-retrievable>\",\n apiSecret: \"<not-retrievable>\",\n },\n }),\n ),\n policies: policies.map((p): ManifestPolicy => {\n return {\n name: p.name,\n ...(p.currency ? { currency: p.currency } : {}),\n rules: extractRules(p.governance_rules, p.currency, operatorsDevicesByID),\n status: p.status,\n };\n }),\n };\n\n // clean out un-necessary keys\n const manifest = pickNonEmpty(fullManifest);\n\n return {\n manifest,\n rawData: {\n pendingUserRequests,\n groupsByName,\n whitelistsByName,\n accountsByName,\n vaultEntitiesByName,\n usersWithDevice: [..._admins, ...operators, ...apiUsers],\n usersWithoutDevice: [...apiV2Users],\n exchangesByName,\n policiesByName,\n tradelinkCustodiansByName,\n tradelinkHSMCustodiansByName,\n tradelinkExchangesByName,\n tradelinkHSMExchangesByName,\n tradelinkHSMAssetManagersByName,\n tradelinkAssetManagersByName,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n },\n };\n}\n\n// recursively create a minimal object (removing empty arrays etc.)\n// yeah.. lot of @ts-ignore in the function!\nfunction pickNonEmpty<T extends Record<string, any>>(obj: T) {\n const out = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n /* istanbul ignore if */\n if (!key) throw new Error(`Invalid key at index ${i}`);\n const val = obj[key];\n // @ts-ignore\n const getSanitized = (val: any) => {\n /* istanbul ignore if */\n if (val === null) {\n return;\n } else if (Array.isArray(val)) {\n // @ts-ignore\n const withoutEmpty = val.map(getSanitized).filter((v) => v !== undefined);\n if (withoutEmpty.length > 0) {\n return withoutEmpty;\n }\n } else if (typeof val === \"object\") {\n // @ts-ignore\n const subObj: Record<string, unknown> = val;\n const nonEmptyVal = pickNonEmpty(subObj);\n const nbKeys = Object.keys(nonEmptyVal).length;\n if (nbKeys > 0) {\n return nonEmptyVal;\n }\n } else if (val !== undefined) {\n return val;\n }\n };\n const sanitized = getSanitized(val);\n if (sanitized !== undefined) {\n // @ts-ignore\n out[key] = sanitized;\n }\n }\n return out;\n}\n\nfunction extractRules(\n gateGovRules: GateGovernanceRulesSet[] | null,\n _currency: string | null,\n operatorsDevicesByID: Record<string, number>,\n): ManifestAccountRule[][] {\n const currency = _currency ? getCryptoCurrencyById(_currency) : null;\n const unit = currency ? currency.units[0]! : null;\n const governance_rules = gateGovRules || [];\n let rulesSets = governance_rules.map((r) => {\n const rules = r.rules.map((rule) => {\n if (rule.type === \"THRESHOLD\") {\n invariant(unit, \"Unit must be defined for THRESHOLD rule\");\n const thresholdRule: ManifestAccountRuleThreshold = {\n type: \"THRESHOLD\",\n ...(rule.data[0].min ? { min: deserializeUnitValue(unit, rule.data[0].min) } : {}),\n ...(rule.data[0].max ? { max: deserializeUnitValue(unit, rule.data[0].max) } : {}),\n };\n return thresholdRule;\n }\n if (rule.type === \"WHITELIST\") {\n const whitelistRule: ManifestAccountRuleWhitelist = {\n type: \"WHITELIST\",\n whitelists: rule.data.map((d) => d.name),\n };\n return whitelistRule;\n }\n if (rule.type === \"MULTI_AUTHORIZATIONS\") {\n const multiAuthRule: ManifestAccountRuleMultiAuth = {\n type: \"MULTI_AUTHORIZATIONS\",\n steps: rule.data.map((s) => ({\n quorum: s.quorum,\n ...(s.group.is_internal\n ? {\n users: s.group.members.map((m) => {\n const u = m.is_api ? m.username : operatorsDevicesByID[m.id];\n /* istanbul ignore if */\n if (!u) throw new Error(`Invalid user ${m}`);\n return u;\n }),\n }\n : { group: s.group.name }),\n })),\n };\n return multiAuthRule;\n }\n if (rule.type === \"SMART_CONTRACT_INTERACTION\") {\n const sciRule: ManifestAccountRuleSCI = {\n type: \"SMART_CONTRACT_INTERACTION\",\n enabled: rule.data[0].enabled,\n };\n return sciRule;\n }\n if (rule.type === \"TRANSACTION_FILTER\") {\n switch (rule.data.preset) {\n case \"TEZOS_DELEGATION\":\n return { type: \"TEZOS_DELEGATION\" } as ManifestAccountRuleTezosDelegation;\n case \"POLKADOT_STAKING\":\n return { type: \"POLKADOT_STAKING\" } as ManifestAccountRulePolkadotStaking;\n case \"SOLANA_STAKING\":\n return { type: \"SOLANA_STAKING\" } as ManifestAccountRuleSolanaStaking;\n case \"CARDANO_STAKING\":\n return { type: \"CARDANO_STAKING\" } as ManifestAccountRuleCardanoStaking;\n case \"RAW_SIGNING\":\n return { type: \"RAW_SIGNING\" } as ManifestAccountRuleRawSigning;\n case \"CREATE_SPL_TOKEN_ACCOUNT\":\n return { type: \"CREATE_SPL_TOKEN_ACCOUNT\" } as ManifestAccountRuleCreateSplTokenAccount;\n case \"TRANSFER_SPL_TOKEN\":\n return {\n type: \"TRANSFER_SPL_TOKEN\",\n contractAddress: rule.data.contract_address,\n } as ManifestAccountRuleTransferSplToken;\n case \"SEND\":\n // VG-18271 don't recipe \"SEND\" rule as it's the default\n return null;\n case \"STAKE\":\n return { type: \"STAKE\" } as ManifestAccountRuleStake;\n case \"MESSAGE_SIGNING\":\n return { type: \"MESSAGE_SIGNING\" } as ManifestAccountRuleMessageSigning;\n case \"DEPLOY_CONTRACT\":\n return { type: \"DEPLOY_CONTRACT\" } as ManifestAccountRuleDeployContract;\n }\n }\n // @ts-ignore\n throw new Error(`Unknown rule type ${rule.type}`);\n });\n return rules.filter(Boolean) as ManifestAccountRule[];\n });\n\n // see VG-22141\n rulesSets = enforceSCIRuleIfNecessary(rulesSets);\n\n return rulesSets;\n}\n\n// Enforce that if a RulesSet have a SCI-enabled rule, all the other RulesSet should have\n// a SCI-disabled rule\n//\n// see VG-22141\n//\nfunction enforceSCIRuleIfNecessary(rulesSets: ManifestAccountRule[][]): ManifestAccountRule[][] {\n const hasSCIRulesSet = rulesSets.find((rulesSet) =>\n rulesSet.find((rule) => rule.type === \"SMART_CONTRACT_INTERACTION\" && rule.enabled),\n );\n if (!hasSCIRulesSet) return rulesSets;\n return rulesSets.map((rulesSet) => {\n const sciRule = rulesSet.find((r) => r.type === \"SMART_CONTRACT_INTERACTION\");\n if (sciRule) return rulesSet;\n return [...rulesSet, { type: \"SMART_CONTRACT_INTERACTION\", enabled: false }];\n });\n}\n\nfunction countAPIUsersUntil(index: number, users: GateUser[]) {\n return users.slice(0, index).filter((u) => u.is_api).length;\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-3NZFOZSL.js","../src/recipeManifest.ts"],"names":[],"mappings":"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","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-3NZFOZSL.js","sourcesContent":[null,"import invariant from \"invariant\";\nimport keyBy from \"lodash/keyBy\";\nimport sortBy from \"lodash/sortBy\";\n\nimport { getCryptoCurrencyById } from \"./currencies\";\nimport {\n GateGovernanceRulesSet,\n GateTradelink,\n GateTradelinkAssetManager,\n GateTradelinkEntity,\n GateTradelinkExchange,\n GateTradelinkNetwork,\n GateTradelinkOnboardingStatus,\n GateWorkspacePermission,\n GateWorkspaceRule,\n ManifestAccountRuleCreateSplTokenAccount,\n ManifestAccountRuleTransferSplToken,\n ManifestWorkspaceRule,\n} from \"./types\";\nimport {\n Connection,\n DevicesPool,\n GateAccount,\n GateExchange,\n GateGroup,\n GatePolicy,\n GateUser,\n GateUserRequest,\n GateVaultEntity,\n GateWhitelist,\n Manifest,\n ManifestAccountConfig,\n ManifestAccountRule,\n ManifestAccountRuleCardanoStaking,\n ManifestAccountRuleDeployContract,\n ManifestAccountRuleMessageSigning,\n ManifestAccountRuleMultiAuth,\n ManifestAccountRulePolkadotStaking,\n ManifestAccountRuleRawSigning,\n ManifestAccountRuleSCI,\n ManifestAccountRuleSolanaStaking,\n ManifestAccountRuleStake,\n ManifestAccountRuleTezosDelegation,\n ManifestAccountRuleThreshold,\n ManifestAccountRuleWhitelist,\n ManifestExchange,\n ManifestPolicy,\n ManifestWhitelistAddress,\n Organization,\n UserWithDevice,\n UserWithoutDevice,\n} from \"./types\";\nimport { getDefaultUsername } from \"./utils\";\nimport { deserializeUnitValue, unwrapConnection } from \"./utils\";\n\nconst ADMIN_START_DEVICE_INDEX = 4;\nconst DEFAULT_ADMINS_COUNT = 3;\nconst NB_SHARED_OWNERS = 3;\n\nexport const getDeviceIndex = (index: number): number => {\n const n = ADMIN_START_DEVICE_INDEX + index;\n if (n < ADMIN_START_DEVICE_INDEX + NB_SHARED_OWNERS) {\n return n;\n }\n return n + NB_SHARED_OWNERS;\n};\n\nexport type GateGroupsByName = Record<string, GateGroup>;\nexport type GateWhitelistsByName = Record<string, GateWhitelist>;\nexport type GateAccountsByName = Record<string, GateAccount>;\nexport type GateVaultEntitiesByName = Record<string, GateVaultEntity>;\nexport type GateExchangesByName = Record<string, GateExchange>;\nexport type GatePoliciesByName = Record<string, GatePolicy>;\nexport type GateTradelinkCustodianByName = Record<string, GateTradelinkEntity<\"CUSTODIAN\">>;\nexport type GateTradelinkHSMCustodianByName = Record<string, GateTradelink>;\nexport type GateTradelinkExchangeByName = Record<string, GateTradelinkEntity<\"EXCHANGE\">>;\nexport type GateTradelinkHSMExchangeByName = Record<string, GateTradelinkExchange>;\nexport type GateTradelinkHSMAssetManagerByName = Record<string, GateTradelinkAssetManager>;\nexport type GateTradelinkAssetManagerByName = Record<string, GateTradelinkEntity<\"ASSET_MANAGER\">>;\n\nexport type RecipeRawData = {\n pendingUserRequests: GateUserRequest[];\n groupsByName: GateGroupsByName;\n whitelistsByName: GateWhitelistsByName;\n accountsByName: GateAccountsByName;\n vaultEntitiesByName: GateVaultEntitiesByName;\n exchangesByName: GateExchangesByName;\n policiesByName: GatePoliciesByName;\n usersWithDevice: UserWithDevice[];\n usersWithoutDevice: UserWithoutDevice[];\n tradelinkCustodiansByName: GateTradelinkCustodianByName;\n tradelinkHSMCustodiansByName: GateTradelinkHSMCustodianByName;\n tradelinkExchangesByName: GateTradelinkExchangeByName;\n tradelinkHSMExchangesByName: GateTradelinkHSMExchangeByName;\n tradelinkHSMAssetManagersByName: GateTradelinkHSMAssetManagerByName;\n tradelinkAssetManagersByName: GateTradelinkAssetManagerByName;\n tradelinkNetwork: GateTradelinkNetwork;\n tradelinkOnboardingStatus: GateTradelinkOnboardingStatus;\n};\n\nexport type RecipeManifestResult = {\n manifest: Manifest;\n rawData: RecipeRawData;\n};\n\nexport type RecipeManifestOptions = {\n saveAccountsIndexes?: boolean;\n saveAccountsTypes?: boolean;\n};\n\nexport default async function recipeManifest(\n pool: DevicesPool,\n options: RecipeManifestOptions = {},\n): Promise<RecipeManifestResult> {\n const adminDevices = await pool.getOnboardingAdminDevices();\n const admin = await pool.login(adminDevices[0]![1]);\n const [\n organization,\n pendingUserRequestsConnection,\n usersConnection,\n groupsConnection,\n accountsConnection,\n vaultEntitiesConnection,\n whitelistsConnection,\n exchangesConnection,\n policiesConnection,\n tradelinkCustodianConnection,\n tradelinkHSMCustodianConnection,\n tradelinkExchangeConnection,\n tradelinkHSMExchangeConnection,\n tradelinkHSMAssetManagerConnection,\n tradelinkAssetManagerConnection,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n allWorkspaceRulesConnection,\n ] = await Promise.all([\n admin.network<Organization>(\"GET\", \"/organization\"),\n admin\n .network<Connection<GateUserRequest>>(\n \"GET\",\n `/requests?type=CREATE_ADMIN&type=CREATE_OPERATOR&type=CREATE_API_USER&status=PENDING_REGISTRATION&status=PENDING_APPROVAL`,\n )\n // for some reason this particular one can fail when targeting prod (not sure why)\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateUser>>(\n \"GET\",\n \"/people?status=ACTIVE&status=ACCESS_SUSPENDED&role=ADMIN&role=OPERATOR&pageSize=-1\",\n ),\n admin.network<Connection<GateGroup>>(\"GET\", \"/groups?pageSize=-1\"),\n admin.network<Connection<GateAccount>>(\n \"GET\",\n \"/accounts?status=ACTIVE&status=APPROVED&status=PENDING&status=VIEW_ONLY&pageSize=-1\",\n ),\n admin.network<Connection<GateVaultEntity>>(\"GET\", \"/entities?pageSize=-1\"),\n admin.network<Connection<GateWhitelist>>(\"GET\", \"/whitelists?pageSize=-1\"),\n admin\n .network<Connection<GateExchange>>(\"GET\", \"/exchanges?pageSize=-1\")\n // handle case where /exchanges is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GatePolicy>>(\"GET\", \"/policies?pageSize=-1\")\n // handle case where /policies is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"CUSTODIAN\">>>(\"GET\", \"/tradelink/custodians\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelink>>(\"GET\", \"/tradelink/hsm-custodians\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n\n admin.network<Connection<GateTradelinkEntity<\"EXCHANGE\">>>(\"GET\", \"/tradelink/exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelinkExchange>>(\"GET\", \"/tradelink/hsm-exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkAssetManager>>(\"GET\", \"/tradelink/hsm-asset-managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"ASSET_MANAGER\">>>(\"GET\", \"/tradelink/asset_managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<GateTradelinkNetwork>(\"GET\", \"/tradelink/network\").catch(\n /* istanbul ignore next */ () => ({\n id: \"\",\n asset_managers: [],\n custodian: {\n approver_group_id: 0,\n code: \"\",\n id: \"\",\n logo_url: \"\",\n name: \"\",\n whitelist_id: 0,\n },\n exchanges: [],\n }),\n ),\n admin\n .network<GateTradelinkOnboardingStatus>(\"GET\", \"/tradelink/onboarding\")\n .catch(\n /* istanbul ignore next */ (): GateTradelinkOnboardingStatus => ({ status: \"NOT_READY\" }),\n ),\n admin.network<Connection<GateWorkspaceRule>>(\"GET\", \"/workspace-rules\").catch(\n /* istanbul ignore next */ (): Connection<GateWorkspaceRule> => ({\n edges: [],\n pageInfo: { count: 0, hasNextPage: false },\n }),\n ),\n ]);\n\n const pendingUserRequests: GateUserRequest[] = unwrapConnection(pendingUserRequestsConnection);\n const users: GateUser[] = sortBy(unwrapConnection(usersConnection), \"id\");\n const groups: GateGroup[] = unwrapConnection(groupsConnection);\n const whitelists: GateWhitelist[] = unwrapConnection(whitelistsConnection);\n const accounts: GateAccount[] = sortBy(unwrapConnection(accountsConnection), \"index\");\n const vaultEntities: GateVaultEntity[] = unwrapConnection(vaultEntitiesConnection);\n const exchanges: GateExchange[] = unwrapConnection(exchangesConnection);\n const policies: GatePolicy[] = unwrapConnection(policiesConnection);\n const tradelinkCustodians: GateTradelinkEntity<\"CUSTODIAN\">[] = unwrapConnection(\n tradelinkCustodianConnection,\n );\n const tradelinkHSMCustodians: GateTradelink[] = unwrapConnection(tradelinkHSMCustodianConnection);\n const tradelinkExchanges: GateTradelinkEntity<\"EXCHANGE\">[] = unwrapConnection(\n tradelinkExchangeConnection,\n );\n const tradelinkHSMExchanges: GateTradelinkExchange[] = unwrapConnection(\n tradelinkHSMExchangeConnection,\n );\n const tradelinkHSMAssetManagers: GateTradelinkAssetManager[] = unwrapConnection(\n tradelinkHSMAssetManagerConnection,\n );\n const tradelinkAssetManagers: GateTradelinkEntity<\"ASSET_MANAGER\">[] = unwrapConnection(\n tradelinkAssetManagerConnection,\n );\n const allWorkspaceRules = unwrapConnection(allWorkspaceRulesConnection);\n const rootWorkspaceRule = allWorkspaceRules.find((r) => r.permission === \"ROOT\") ?? null;\n const apiAdminWorkspaceRules = allWorkspaceRules.filter((r) => r.permission !== \"ROOT\");\n\n const groupsByName = keyBy(groups, (group) => group.name);\n const whitelistsByName = keyBy(whitelists, (w) => w.name);\n const accountsByName = keyBy(accounts, (a) => a.name);\n const vaultEntitiesByName = keyBy(vaultEntities, (e) => e.name);\n const exchangesByName = keyBy(exchanges, (e) => e.name);\n const policiesByName = keyBy(policies, (e) => e.name);\n const tradelinkCustodiansByName = keyBy(tradelinkCustodians, (e) => e.name);\n const tradelinkHSMCustodiansByName = keyBy(\n tradelinkHSMCustodians,\n (e) => e.network.custodian.name,\n );\n const tradelinkExchangesByName = keyBy(tradelinkExchanges, (e) => e.name);\n const tradelinkHSMExchangesByName = keyBy(tradelinkHSMExchanges, (e) => e.hsm_data.name);\n const tradelinkHSMAssetManagersByName = keyBy(tradelinkHSMAssetManagers, (e) => e.hsm_data.name);\n const tradelinkAssetManagersByName = keyBy(tradelinkAssetManagers, (e) => e.name);\n\n // gate is sending all active users by order of creation\n // we rely on index in the reduce() to get the device index assuming we take them in order\n //\n // FIXME there is something weird with the typing of this reduce :(\n // @ts-ignore\n const {\n admins: _admins,\n operators,\n apiUsers,\n apiV2Users,\n }: {\n admins: Array<{ deviceIndex: number; user: GateUser }>;\n operators: Array<{ deviceIndex: number; user: GateUser }>;\n apiUsers: Array<{ deviceIndex: number; user: GateUser }>;\n apiV2Users: Array<{ username: string; user: GateUser }>;\n } = users.reduce(\n (acc, curr, index) =>\n // @ts-ignore\n curr.device_type === \"API\"\n ? {\n ...acc,\n apiV2Users: [...acc.apiV2Users, { deviceIndex: curr.username, user: curr }],\n }\n : curr.role === \"ADMIN\"\n ? {\n ...acc,\n admins: [\n ...acc.admins,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n }\n : curr.device_type === \"SOFT_PSD\"\n ? {\n ...acc,\n apiUsers: [...acc.apiUsers, { deviceIndex: curr.username, user: curr }],\n }\n : {\n ...acc,\n operators: [\n ...acc.operators,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n },\n { admins: [], operators: [], apiUsers: [], apiV2Users: [] },\n );\n\n const operatorsDevicesByID: Record<string, number> = operators.reduce((acc, curr) => {\n return { ...acc, [curr.user.id]: curr.deviceIndex };\n }, {});\n\n const customUsernames = [..._admins, ...operators].reduce((acc, curr) => {\n // don't assign custom username if user has default name\n if (\n getDefaultUsername(curr.user.role === \"ADMIN\" ? \"admin\" : \"operator\", curr.deviceIndex) ===\n curr.user.username\n ) {\n return acc;\n }\n return { ...acc, [curr.deviceIndex]: curr.user.username };\n }, {});\n\n const admins = _admins\n // remove admins 4, 5, 6, they are implicitly created during onboarding\n // we still want to fetch them first to eventually collect custom usernames\n .filter((_, i) => i > DEFAULT_ADMINS_COUNT - 1);\n\n const usersManifest = {\n operators: operators.map((o) => o.deviceIndex),\n admins: admins.map((a) => a.deviceIndex),\n api: apiUsers.map((a) =>\n a.user.view_all_override\n ? {\n name: a.user.username,\n viewAll: true,\n }\n : a.user.username,\n ),\n apiV2: apiV2Users.map((a) => ({\n role: a.user.role,\n name: a.user.username,\n ...(a.user.pub_key ? { publicKey: a.user.pub_key } : {}),\n ...(a.user.view_all_override ? { viewAll: true } : {}),\n })),\n };\n\n // we assume that if ROOT workspace rule exist, we take the workspace quorum from there,\n // else, we take it from the legacy \"organization\" object\n const quorum = rootWorkspaceRule ? rootWorkspaceRule.steps[0]!.quorum : organization.quorum;\n\n const manifestWorkspaceRules: ManifestWorkspaceRule[] = apiAdminWorkspaceRules\n .map((rule) => ({\n permission: rule.permission as Exclude<GateWorkspacePermission, \"ROOT\">,\n steps: rule.steps.map((gateStep) => ({\n quorum: gateStep.quorum,\n users: gateStep.users.map((pubKey) => {\n const user = users.find((u) => u.pub_key === pubKey);\n invariant(\n user,\n `Can't find user with pub key ${pubKey} referenced in workspace rule ${rule.permission}`,\n );\n return user.username;\n }),\n })),\n }))\n .filter((rule) => {\n // only output the rules that have users defined\n return rule.steps.length > 0;\n });\n\n const fullManifest: Manifest = {\n quorum: quorum === 2 ? undefined : quorum,\n customUsernames,\n users: usersManifest,\n workspaceRules: manifestWorkspaceRules,\n groups: groups\n .filter((g) => g.status === \"ACTIVE\")\n .map((g) => ({\n name: g.name,\n description: g.description,\n users: g.members.map((m) => (m.is_api ? m.username : operatorsDevicesByID[m.id]!)),\n })),\n whitelists: whitelists\n .filter((w) => w.status === \"ACTIVE\")\n .map((w) => ({\n name: w.name,\n description: w.description,\n type: w.whitelist_type,\n addresses: w.addresses.map(\n (a): ManifestWhitelistAddress => ({\n name: a.name,\n address: a.address,\n currency: a.currency,\n destination_tags: a.destination_tags,\n }),\n ),\n })),\n accounts: accounts\n // we want to get rid of VIEW_ONLY account see #76\n .filter((a) => a.status === \"ACTIVE\")\n .map((a) => ({\n name: a.name,\n currency: a.currency,\n ...(options.saveAccountsTypes ? { accountType: a.account_type } : {}),\n derivationMode: a.derivation_mode === \"STANDARD\" ? undefined : a.derivation_mode,\n contractAddress: a.contract_address || undefined,\n ...(options.saveAccountsIndexes ? { index: a.index } : {}),\n ...(a.parent\n ? {\n parentAccount: (() => {\n const parentAccount = accounts.find((acc) => acc.id === a.parent);\n /* istanbul ignore if */\n if (!parentAccount) {\n throw new Error(`Can't find parent account with id ${a.parent}`);\n }\n if (parentAccount.status !== \"ACTIVE\") {\n return undefined;\n }\n return parentAccount.name;\n })(),\n }\n : {}),\n rules: extractRules(a.governance_rules, a.currency, operatorsDevicesByID),\n ...(() => {\n const config: ManifestAccountConfig = {};\n\n if (a.nfts_gallery_enabled) {\n config.nftGallery = true;\n }\n\n const hasConfig = Object.keys(config).length > 0;\n return hasConfig ? { config } : {};\n })(),\n })),\n entities: vaultEntities\n .filter((e) => e.status === \"ACTIVE\")\n .map((e) => ({\n name: e.name,\n accounts: e.accounts.map((a) => a.name),\n })),\n exchanges: exchanges\n .filter((e) => e.status === \"ACTIVE\")\n .map(\n (e): ManifestExchange => ({\n name: e.name,\n platform: e.platform,\n configuration: {\n apiKey: \"<not-retrievable>\",\n apiSecret: \"<not-retrievable>\",\n },\n }),\n ),\n policies: policies.map((p): ManifestPolicy => {\n return {\n name: p.name,\n ...(p.currency ? { currency: p.currency } : {}),\n rules: extractRules(p.governance_rules, p.currency, operatorsDevicesByID),\n status: p.status,\n };\n }),\n };\n\n // clean out un-necessary keys\n const manifest = pickNonEmpty(fullManifest);\n\n return {\n manifest,\n rawData: {\n pendingUserRequests,\n groupsByName,\n whitelistsByName,\n accountsByName,\n vaultEntitiesByName,\n usersWithDevice: [..._admins, ...operators, ...apiUsers],\n usersWithoutDevice: [...apiV2Users],\n exchangesByName,\n policiesByName,\n tradelinkCustodiansByName,\n tradelinkHSMCustodiansByName,\n tradelinkExchangesByName,\n tradelinkHSMExchangesByName,\n tradelinkHSMAssetManagersByName,\n tradelinkAssetManagersByName,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n },\n };\n}\n\n// recursively create a minimal object (removing empty arrays etc.)\n// yeah.. lot of @ts-ignore in the function!\nfunction pickNonEmpty<T extends Record<string, any>>(obj: T) {\n const out = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n /* istanbul ignore if */\n if (!key) throw new Error(`Invalid key at index ${i}`);\n const val = obj[key];\n // @ts-ignore\n const getSanitized = (val: any) => {\n /* istanbul ignore if */\n if (val === null) {\n return;\n } else if (Array.isArray(val)) {\n // @ts-ignore\n const withoutEmpty = val.map(getSanitized).filter((v) => v !== undefined);\n if (withoutEmpty.length > 0) {\n return withoutEmpty;\n }\n } else if (typeof val === \"object\") {\n // @ts-ignore\n const subObj: Record<string, unknown> = val;\n const nonEmptyVal = pickNonEmpty(subObj);\n const nbKeys = Object.keys(nonEmptyVal).length;\n if (nbKeys > 0) {\n return nonEmptyVal;\n }\n } else if (val !== undefined) {\n return val;\n }\n };\n const sanitized = getSanitized(val);\n if (sanitized !== undefined) {\n // @ts-ignore\n out[key] = sanitized;\n }\n }\n return out;\n}\n\nfunction extractRules(\n gateGovRules: GateGovernanceRulesSet[] | null,\n _currency: string | null,\n operatorsDevicesByID: Record<string, number>,\n): ManifestAccountRule[][] {\n const currency = _currency ? getCryptoCurrencyById(_currency) : null;\n const unit = currency ? currency.units[0]! : null;\n const governance_rules = gateGovRules || [];\n let rulesSets = governance_rules.map((r) => {\n const rules = r.rules.map((rule) => {\n if (rule.type === \"THRESHOLD\") {\n invariant(unit, \"Unit must be defined for THRESHOLD rule\");\n const thresholdRule: ManifestAccountRuleThreshold = {\n type: \"THRESHOLD\",\n ...(rule.data[0].min ? { min: deserializeUnitValue(unit, rule.data[0].min) } : {}),\n ...(rule.data[0].max ? { max: deserializeUnitValue(unit, rule.data[0].max) } : {}),\n };\n return thresholdRule;\n }\n if (rule.type === \"WHITELIST\") {\n const whitelistRule: ManifestAccountRuleWhitelist = {\n type: \"WHITELIST\",\n whitelists: rule.data.map((d) => d.name),\n };\n return whitelistRule;\n }\n if (rule.type === \"MULTI_AUTHORIZATIONS\") {\n const multiAuthRule: ManifestAccountRuleMultiAuth = {\n type: \"MULTI_AUTHORIZATIONS\",\n steps: rule.data.map((s) => ({\n quorum: s.quorum,\n ...(s.group.is_internal\n ? {\n users: s.group.members.map((m) => {\n const u = m.is_api ? m.username : operatorsDevicesByID[m.id];\n /* istanbul ignore if */\n if (!u) throw new Error(`Invalid user ${m}`);\n return u;\n }),\n }\n : { group: s.group.name }),\n })),\n };\n return multiAuthRule;\n }\n if (rule.type === \"SMART_CONTRACT_INTERACTION\") {\n const sciRule: ManifestAccountRuleSCI = {\n type: \"SMART_CONTRACT_INTERACTION\",\n enabled: rule.data[0].enabled,\n };\n return sciRule;\n }\n if (rule.type === \"TRANSACTION_FILTER\") {\n switch (rule.data.preset) {\n case \"TEZOS_DELEGATION\":\n return { type: \"TEZOS_DELEGATION\" } as ManifestAccountRuleTezosDelegation;\n case \"POLKADOT_STAKING\":\n return { type: \"POLKADOT_STAKING\" } as ManifestAccountRulePolkadotStaking;\n case \"SOLANA_STAKING\":\n return { type: \"SOLANA_STAKING\" } as ManifestAccountRuleSolanaStaking;\n case \"CARDANO_STAKING\":\n return { type: \"CARDANO_STAKING\" } as ManifestAccountRuleCardanoStaking;\n case \"RAW_SIGNING\":\n return { type: \"RAW_SIGNING\" } as ManifestAccountRuleRawSigning;\n case \"CREATE_SPL_TOKEN_ACCOUNT\":\n return { type: \"CREATE_SPL_TOKEN_ACCOUNT\" } as ManifestAccountRuleCreateSplTokenAccount;\n case \"TRANSFER_SPL_TOKEN\":\n return {\n type: \"TRANSFER_SPL_TOKEN\",\n contractAddress: rule.data.contract_address,\n } as ManifestAccountRuleTransferSplToken;\n case \"SEND\":\n // VG-18271 don't recipe \"SEND\" rule as it's the default\n return null;\n case \"STAKE\":\n return { type: \"STAKE\" } as ManifestAccountRuleStake;\n case \"MESSAGE_SIGNING\":\n return { type: \"MESSAGE_SIGNING\" } as ManifestAccountRuleMessageSigning;\n case \"DEPLOY_CONTRACT\":\n return { type: \"DEPLOY_CONTRACT\" } as ManifestAccountRuleDeployContract;\n }\n }\n // @ts-ignore\n throw new Error(`Unknown rule type ${rule.type}`);\n });\n return rules.filter(Boolean) as ManifestAccountRule[];\n });\n\n // see VG-22141\n rulesSets = enforceSCIRuleIfNecessary(rulesSets);\n\n return rulesSets;\n}\n\n// Enforce that if a RulesSet have a SCI-enabled rule, all the other RulesSet should have\n// a SCI-disabled rule\n//\n// see VG-22141\n//\nfunction enforceSCIRuleIfNecessary(rulesSets: ManifestAccountRule[][]): ManifestAccountRule[][] {\n const hasSCIRulesSet = rulesSets.find((rulesSet) =>\n rulesSet.find((rule) => rule.type === \"SMART_CONTRACT_INTERACTION\" && rule.enabled),\n );\n if (!hasSCIRulesSet) return rulesSets;\n return rulesSets.map((rulesSet) => {\n const sciRule = rulesSet.find((r) => r.type === \"SMART_CONTRACT_INTERACTION\");\n if (sciRule) return rulesSet;\n return [...rulesSet, { type: \"SMART_CONTRACT_INTERACTION\", enabled: false }];\n });\n}\n\nfunction countAPIUsersUntil(index: number, users: GateUser[]) {\n return users.slice(0, index).filter((u) => u.is_api).length;\n}\n"]}
@@ -77,7 +77,7 @@ var vaultCoins = [
77
77
  {
78
78
  type: "CryptoCurrency",
79
79
  // @ts-expect-error
80
- id: "sei",
80
+ id: "sei_evm",
81
81
  coinType: 60,
82
82
  name: "Sei",
83
83
  managerAppName: "Sei",
@@ -1447,7 +1447,7 @@ var LIGHT_EVM_CURRENCIES = [
1447
1447
  "hyperevm_testnet",
1448
1448
  "bitlayer",
1449
1449
  "story",
1450
- "sei"
1450
+ "sei_evm"
1451
1451
  ];
1452
1452
  var ETHEREUM_LIKE_CURRENCIES = [
1453
1453
  "ethereum",
@@ -1522,4 +1522,4 @@ var wait = (duration) => new Promise((resolve) => setTimeout(resolve, duration))
1522
1522
 
1523
1523
 
1524
1524
  exports.vaultCoins = vaultCoins; exports.getCryptoCurrencyById = getCryptoCurrencyById; exports.listCryptoCurrencies = listCryptoCurrencies; exports.getWorkspaceFromGate = getWorkspaceFromGate; exports.xpubToExtendedPubKey = xpubToExtendedPubKey; exports.queue = queue; exports.serializeUnitValue = serializeUnitValue; exports.getAccountUnit = getAccountUnit; exports.getGateAccountUnit = getGateAccountUnit; exports.getTokenUnit = getTokenUnit; exports.getCurrencyUnit = getCurrencyUnit; exports.deserializeUnitValue = deserializeUnitValue; exports.LIGHT_EVM_CURRENCIES = LIGHT_EVM_CURRENCIES; exports.getAccountTypeByCurrency = getAccountTypeByCurrency; exports.getCurrencyOrToken = getCurrencyOrToken; exports.getDefaultUsername = getDefaultUsername; exports.unwrapConnection = unwrapConnection; exports.extractSecureChannel = extractSecureChannel; exports.wait = wait;
1525
- //# sourceMappingURL=chunk-VTRGMAG3.js.map
1525
+ //# sourceMappingURL=chunk-4OGAVJPW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-4OGAVJPW.js","../src/utils.ts","../src/currencies.ts"],"names":[],"mappings":"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","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-4OGAVJPW.js","sourcesContent":[null,"import { BigNumber } from \"bignumber.js\";\nimport bs58 from \"bs58\";\n\nimport { getCryptoCurrencyById } from \"./currencies\";\nimport {\n AccountType,\n Connection,\n CurrencyOrToken,\n GateAccount,\n GateTokenCurrency,\n ManifestAccount,\n SecureChannel,\n TokenCurrency,\n Unit,\n} from \"./types\";\n\nexport function getWorkspaceFromGate(gate: string): string {\n const s = gate.split(\"/\");\n const workspace = s[s.length - 1];\n /* istanbul ignore if */\n if (!workspace) throw new Error(`Could not extract workspace from gate ${gate}`);\n return workspace;\n}\n\nexport type ExtendedPubKey = {\n chain_code: string;\n public_key: string;\n};\n\nexport function xpubToExtendedPubKey(xpub: string): ExtendedPubKey {\n const decoded = bs58.decode(xpub);\n const extendedPubKey = {\n chain_code: decoded\n .slice(13, 13 + 32)\n .toString(\"hex\")\n .toUpperCase(),\n public_key: decoded\n .slice(13 + 32, 13 + 32 + 33)\n .toString(\"hex\")\n .toUpperCase(),\n };\n return extendedPubKey;\n}\n\nexport const queue = <T>(items: T[], job: (output: T) => Promise<void>): Promise<void> =>\n items.reduce((promise, item) => promise.then(() => job(item)), Promise.resolve());\n\nexport function serializeUnitValue(unit: Unit, value: number | string): string {\n const multi = new BigNumber(10).exponentiatedBy(unit.magnitude);\n return new BigNumber(value).times(multi).toFixed();\n}\n\nexport function getAccountUnit(account: ManifestAccount, tokens: GateTokenCurrency[]): Unit {\n const unit =\n \"contractAddress\" in account\n ? getTokenUnit(account.contractAddress, tokens)\n : getCurrencyUnit(account.currency);\n return unit;\n}\n\nexport function getGateAccountUnit(account: GateAccount, tokens: GateTokenCurrency[]): Unit {\n const unit = account.contract_address\n ? getTokenUnit(account.contract_address, tokens)\n : getCurrencyUnit(account.currency);\n return unit;\n}\n\nexport function getTokenUnit(contractAddress: string, tokens: GateTokenCurrency[]): Unit {\n const token = tokens.find((t) => t.contract_address === contractAddress);\n if (!token) {\n throw new Error(`Can't find token with contract address ${contractAddress}`);\n }\n return token.units[0];\n}\n\nexport function getCurrencyUnit(currencyName: string): Unit {\n const currency = getCryptoCurrencyById(currencyName);\n return currency.units[0]!;\n}\n\nexport function deserializeUnitValue(unit: Unit, value: string): number {\n const multi = new BigNumber(10).exponentiatedBy(unit.magnitude);\n return new BigNumber(value).div(multi).toNumber();\n}\n\nexport const LIGHT_EVM_CURRENCIES = [\n \"ethereum_sepolia\",\n \"polygon_mumbai\",\n \"klaytn\",\n \"klaytn_baobab\",\n \"arbitrum\",\n \"arbitrum_goerli\",\n \"base_goerli\",\n \"optimism\",\n \"optimism_goerli\",\n \"flare\",\n \"flare_coston\",\n \"fantom\",\n \"fantom_testnet\",\n \"avalanche_c_chain\",\n \"avalanche_c_chain_fuji\",\n \"celo\",\n \"celo_alfajores\",\n \"cronos\",\n \"cronos_testnet\",\n \"filecoin\",\n \"filecoin_calibration\",\n \"kava_evm\",\n \"kava_evm_testnet\",\n \"tomo\",\n \"tomo_testnet\",\n \"viction\",\n \"viction_testnet\",\n \"sonic\",\n \"plume\",\n \"katana\",\n \"hyperevm\",\n \"hyperevm_testnet\",\n \"bitlayer\",\n \"story\",\n \"sei_evm\",\n];\n\nconst ETHEREUM_LIKE_CURRENCIES = [\n \"ethereum\",\n \"ethereum_ropsten\",\n \"ethereum_goerli\",\n \"ethereum_classic\",\n \"ethereum_holesky\",\n \"ethereum_hoodi\",\n \"polygon_amoy\",\n \"polygon\",\n \"bsc\",\n ...LIGHT_EVM_CURRENCIES,\n];\nexport const getAccountTypeByCurrency = (currency: string): AccountType => {\n return ETHEREUM_LIKE_CURRENCIES.includes(currency)\n ? \"Ethereum\"\n : currency === \"ripple\"\n ? \"Ripple\"\n : currency === \"stellar\"\n ? \"Stellar\"\n : currency === \"tezos\"\n ? \"Tezos\"\n : currency === \"polkadot\" || currency == \"westend\"\n ? \"Polkadot\"\n : currency === \"solana\" || currency === \"solana_testnet\" || currency === \"solana_devnet\"\n ? \"Solana\"\n : currency === \"cardano\" || currency === \"cardano_testnet\" || currency === \"cardano_devnet\"\n ? \"Cardano\"\n : currency === \"tron\"\n ? \"Tron\"\n : \"Bitcoin\";\n};\n\nconst toToken = (t: GateTokenCurrency): TokenCurrency => {\n const parentCurrency = getCryptoCurrencyById(t.parent_currency);\n return {\n type: \"TokenCurrency\",\n id: t.ticker,\n name: t.name,\n ticker: t.ticker,\n units: t.units,\n contractAddress: t.contract_address,\n // the currency it belongs to. e.g. 'ethereum,\n parentCurrency,\n // the type of token in the blockchain it belongs. e.g. 'erc20,\n tokenType: t.token_type,\n };\n};\n\nexport function getCurrencyOrToken(\n account: GateAccount,\n tokens: GateTokenCurrency[],\n): CurrencyOrToken {\n const isTokenAccount = !!account.contract_address;\n\n if (isTokenAccount) {\n const token = tokens.find((t) => t.contract_address === account.contract_address);\n if (!token) {\n throw new Error(`Cannot find token with contract address: ${account.contract_address}`);\n }\n return toToken(token);\n }\n return getCryptoCurrencyById(account.currency);\n}\n\nexport function getDefaultUsername(role: \"admin\" | \"operator\", device: number): string {\n return `${role === \"admin\" ? \"Admin\" : \"Operator\"} ${\n role === \"admin\" ? (device < 10 ? device - 3 : device) : device\n }`;\n}\n\nexport const unwrapConnection = <T>(c: Connection<T>): T[] => c.edges.map((n) => n.node);\n\nexport function extractSecureChannel(\n object: Record<string, unknown>,\n pub_key: string,\n): SecureChannel {\n if (object.request_id) return object as SecureChannel;\n if (object[pub_key]) return object[pub_key] as SecureChannel;\n throw new Error(\"No channel found\");\n}\n\nexport const wait = (duration: number): Promise<void> =>\n new Promise((resolve) => setTimeout(resolve, duration));\n","import {\n getCryptoCurrencyById as byId,\n listCryptoCurrencies as listCC,\n} from \"@ledgerhq/cryptoassets/lib/currencies\";\n\nimport { CryptoCurrency } from \"./types\";\n\nexport const vaultCoins: CryptoCurrency[] = [\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"bitlayer\",\n coinType: 60,\n name: \"Bitlayer\",\n managerAppName: \"Bitlayer\",\n ticker: \"BTC\",\n countervalueTicker: \"BTC\",\n scheme: \"bitlayer\",\n color: \"#E46F1B\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 200901,\n networkId: 200901,\n },\n units: [\n {\n name: \"BTC\",\n code: \"BTC\",\n magnitude: 8,\n },\n ],\n explorerViews: [\n {\n tx: \"https://www.btrscan.com/tx/$hash\",\n address: \"https://www.btrscan.com/address/$address\",\n token: \"https://www.btrscan.com/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"katana\",\n coinType: 60,\n name: \"Katana\",\n managerAppName: \"Katana\",\n ticker: \"ETH\",\n countervalueTicker: \"ETH\",\n scheme: \"katana\",\n color: \"#F6FF0E\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 747474,\n networkId: 747474,\n },\n units: [\n {\n name: \"ETH\",\n code: \"ETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://katanascan.com/tx/$hash\",\n address: \"https://katanascan.com/$address\",\n token: \"https://katanascan.com/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"sei_evm\",\n coinType: 60,\n name: \"Sei\",\n managerAppName: \"Sei\",\n ticker: \"SEI\",\n countervalueTicker: \"SEI\",\n scheme: \"sei\",\n color: \"#780000\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 1329,\n networkId: 1329,\n },\n units: [\n {\n name: \"SEI\",\n code: \"SEI\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://seistream.app/transactions/$hash\",\n address: \"https://seistream.app/account/$address\",\n token: \"https://seistream.app/tokens/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"story\",\n coinType: 60,\n name: \"Story\",\n managerAppName: \"Story\",\n ticker: \"IP\",\n countervalueTicker: \"IP\",\n scheme: \"story\",\n color: \"#FE7823\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 1514,\n networkId: 1514,\n },\n units: [\n {\n name: \"IP\",\n code: \"IP\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://www.storyscan.io/tx/$hash\",\n address: \"https://www.storyscan.io/address/$address\",\n token: \"https://www.storyscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"plume\",\n coinType: 60,\n name: \"Plume\",\n managerAppName: \"Plume\",\n ticker: \"PLUME\",\n countervalueTicker: \"PLUME\",\n scheme: \"plume\",\n color: \"#FE7823\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 98866,\n networkId: 98866,\n },\n units: [\n {\n name: \"PLUME\",\n code: \"PLUME\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://explorer.plumenetwork.xyz/tx/$hash\",\n address: \"https://explorer.plumenetwork.xyz/address/$address\",\n token: \"https://explorer.plumenetwork.xyz/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"hyperevm\",\n coinType: 60,\n name: \"HyperLiquid EVM\",\n managerAppName: \"HyperEVM\",\n ticker: \"HYPE\",\n countervalueTicker: \"HYPE\",\n scheme: \"hyperevm\",\n color: \"#96FCE4\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 999,\n networkId: 999,\n },\n units: [\n {\n name: \"HYPE\",\n code: \"HYPE\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://hyperevmscan.io/tx/$hash\",\n address: \"https://hyperevmscan.io/address/$address\",\n token: \"https://hyperevmscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"hyperevm_testnet\",\n coinType: 60,\n name: \"HyperLiquid EVM Testnet\",\n managerAppName: \"HyperEVM\",\n ticker: \"tHYPE\",\n countervalueTicker: \"tHYPE\",\n scheme: \"hyperevm\",\n color: \"#96FCE4\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 998,\n networkId: 998,\n },\n units: [\n {\n name: \"tHYPE\",\n code: \"tHYPE\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://testnet.purrsec.com/tx/$hash\",\n address: \"https://testnet.purrsec.com/address/$address\",\n token: \"https://testnet.purrsec.com/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"tron_testnet\",\n coinType: 60,\n name: \"Tron Testnet\",\n managerAppName: \"Tron\",\n ticker: \"tTRX\",\n countervalueTicker: \"tTRX\",\n scheme: \"tron\",\n color: \"#6E4A4A\",\n family: \"tron\",\n units: [\n {\n name: \"tTRX\",\n code: \"tTRX\",\n magnitude: 6,\n },\n ],\n explorerViews: [\n {\n tx: \"https://shasta-tronscan.on.btfs.io/#/transaction/$hash\",\n address: \"https://shasta-tronscan.on.btfs.io/#/address/$address\",\n token: \"https://shasta-tronscan.on.btfs.io/#/token20/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"sonic\",\n coinType: 60,\n name: \"Sonic\",\n managerAppName: \"Sonic\",\n ticker: \"S\",\n countervalueTicker: \"S\",\n scheme: \"sonic\",\n color: \"#FE7823\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 146,\n networkId: 146,\n },\n units: [\n {\n name: \"S\",\n code: \"S\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://sonicscan.org/tx/$hash\",\n address: \"https://sonicscan.org/address/$address\",\n token: \"https://sonicscan.org/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"mantle\",\n coinType: 60,\n name: \"Mantle\",\n managerAppName: \"Mantle\",\n ticker: \"MNT\",\n countervalueTicker: \"MNT\",\n scheme: \"mantle\",\n color: \"#003827\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 5000,\n networkId: 5000,\n },\n units: [\n {\n name: \"MNT\",\n code: \"MNT\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://explorer.mantle.xyz/tx/$hash\",\n address: \"https://explorer.mantle.xyz/address/$address\",\n token: \"https://explorer.mantle.xyz/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"viction\",\n coinType: 60,\n name: \"Viction\",\n managerAppName: \"Viction\",\n ticker: \"VIC\",\n countervalueTicker: \"VIC\",\n scheme: \"viction\",\n color: \"#101010\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 88,\n networkId: 88,\n },\n units: [\n {\n name: \"VIC\",\n code: \"VIC\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://vicscan.xyz/tx/$hash\",\n address: \"https://vicscan.xyz/address/$address\",\n token: \"https://vicscan.xyz/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"viction_testnet\",\n coinType: 60,\n name: \"VictionTestnet\",\n managerAppName: \"VictionTestnet\",\n ticker: \"tVIC\",\n countervalueTicker: \"tVIC\",\n scheme: \"viction_testnet\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 89,\n networkId: 89,\n },\n units: [\n {\n name: \"tVIC\",\n code: \"tVIC\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://testnet.vicscan.xyz/tx/$hash\",\n address: \"https://testnet.vicscan.xyz/address/$address\",\n token: \"https://testnet.vicscan.xyz/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"polygon_amoy\",\n coinType: 60,\n name: \"Polygon Amoy\",\n managerAppName: \"Polygon Amoy\",\n ticker: \"tPOL\",\n countervalueTicker: \"POL\",\n scheme: \"polygon_amoy\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 80002,\n networkId: 80002,\n },\n units: [\n {\n name: \"tPOL\",\n code: \"tPOL\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://amoy.polygonscan.com/tx/$hash\",\n address: \"https://amoy.polygonscan.com/address/$address\",\n token: \"https://amoy.polygonscan.com//token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"ethereum_hoodi\",\n coinType: 60,\n name: \"Ethereum Hoodi\",\n managerAppName: \"Ethereum Hoodi\",\n ticker: \"tETH\",\n countervalueTicker: \"tETH\",\n scheme: \"ethereum_hoodi\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 560048,\n networkId: 560048,\n },\n units: [\n {\n name: \"ether\",\n code: \"tETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://hoodi.etherscan.io/tx/$hash\",\n address: \"https://hoodi.etherscan.io/account/$address\",\n token: \"https://hoodi.etherscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"polymesh\",\n // @ts-expect-error\n coinType: 595,\n name: \"Polymesh\",\n managerAppName: \"Polymesh\",\n ticker: \"POLYX\",\n scheme: \"polymesh\",\n color: \"#ff2e72\",\n family: \"polymesh\",\n units: [\n {\n name: \"polyx\",\n code: \"POLYX\",\n magnitude: 8,\n },\n ],\n explorerViews: [\n {\n address: \"https://polymesh.subscan.io/account/$address\",\n tx: \"https://polymesh.subscan.io/extrinsic/$hash\",\n },\n ],\n // @ts-expect-error\n explorerId: \"polymesh\",\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"pivx\",\n // @ts-expect-error\n coinType: 77,\n name: \"PivX\",\n managerAppName: \"PivX\",\n ticker: \"PIVX\",\n scheme: \"pivx\",\n color: \"#46385d\",\n family: \"bitcoin\",\n blockAvgTime: 150,\n bitcoinLikeInfo: {\n P2PKH: 30,\n P2SH: 13,\n XPUBVersion: 0x022d2533,\n },\n units: [\n {\n name: \"pivx\",\n code: \"PIVX\",\n magnitude: 8,\n },\n {\n name: \"satoshi\",\n code: \"sat\",\n magnitude: 0,\n },\n ],\n explorerViews: [\n {\n tx: \"https://chainz.cryptoid.info/pivx/tx.dws?$hash.htm\",\n address: \"https://chainz.cryptoid.info/pivx/address.dws?$address.htm\",\n },\n ],\n // @ts-expect-error\n explorerId: \"pivx\",\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"westend\",\n // @ts-expect-error\n coinType: 23519,\n name: \"Westend\",\n managerAppName: \"Polkadot\",\n ticker: \"WND\",\n countervalueTicker: \"PDOT\",\n scheme: \"polkadot\",\n color: \"#E6007A\",\n family: \"polkadot\",\n units: [\n {\n name: \"WND\",\n code: \"WND\",\n magnitude: 12,\n },\n ],\n explorerViews: [\n {\n address: \"https://westend.subscan.io/account/$address\",\n tx: \"https://westend.subscan.io/extrinsic/$hash\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"ethereum_pow\",\n coinType: 60,\n name: \"Ethereum PoW\",\n managerAppName: \"Ethereum PoW\",\n ticker: \"ETHW\",\n countervalueTicker: \"ETHW\",\n scheme: \"ethereum_pow\",\n color: \"#6E89D5\",\n family: \"ethereum\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 10001,\n networkId: 10001,\n },\n units: [\n {\n name: \"ETHW\",\n code: \"ETHW\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://www.oklink.com/en/ethw/tx/$hash\",\n address: \"https://www.oklink.com/en/ethw/address/$address\",\n token: \"https://www.oklink.com/en/ethw/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n id: \"klaytn\",\n // @ts-expect-error\n coinType: 8217,\n name: \"Klaytn\",\n managerAppName: \"Klaytn\",\n ticker: \"KLAY\",\n countervalueTicker: \"KLAY\",\n scheme: \"klaytn\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 8217,\n networkId: 8217,\n },\n units: [\n {\n name: \"KLAY\",\n code: \"KLAY\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://scope.klaytn.com/tx/$hash\",\n address: \"https://scope.klaytn.com/account/$address\",\n token: \"https://scope.klaytn.com/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"klaytn_baobab\",\n // @ts-expect-error\n coinType: 8217,\n name: \"Klaytn Baobab\",\n managerAppName: \"Klaytn Baobab\",\n ticker: \"tKLAY\",\n countervalueTicker: \"tKLAY\",\n scheme: \"klaytn\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 1001,\n networkId: 1001,\n },\n units: [\n {\n name: \"tKLAY\",\n code: \"tKLAY\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://baobab.scope.klaytn.com/tx/$hash\",\n address: \"https://baobab.scope.klaytn.com/account/$address\",\n token: \"https://baobab.scope.klaytn.com/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n id: \"ethereum_holesky\",\n coinType: 60,\n name: \"Ethereum Holesky\",\n managerAppName: \"Ethereum Holesky\",\n ticker: \"tETH\",\n countervalueTicker: \"tETH\",\n scheme: \"ethereum_holesky\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 17000,\n networkId: 17000,\n },\n units: [\n {\n name: \"ether\",\n code: \"tETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://holesky.etherscan.io/tx/$hash\",\n address: \"https://holesky.etherscan.io/account/$address\",\n token: \"https://holesky.etherscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n id: \"ethereum_sepolia\",\n coinType: 60,\n name: \"Ethereum Sepolia\",\n managerAppName: \"Ethereum Sepolia\",\n ticker: \"sETH\",\n countervalueTicker: \"sETH\",\n scheme: \"ethereum_sepolia\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 11155111,\n networkId: 11155111,\n },\n units: [\n {\n name: \"ether\",\n code: \"sETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://sepolia.etherscan.io/tx/$hash\",\n address: \"https://sepolia.etherscan.io/account/$address\",\n token: \"https://sepolia.etherscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"base_goerli\",\n // @ts-expect-error\n coinType: 614,\n name: \"Base Goerli\",\n managerAppName: \"Base Goerli\",\n ticker: \"gETH\",\n countervalueTicker: \"gETH\",\n scheme: \"base_goerli\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 84531,\n networkId: 84531,\n },\n units: [\n {\n name: \"ether\",\n code: \"gETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://base-goerli.blockscout.com/tx/$hash\",\n address: \"https://base-goerli.blockscout.com/account/$address\",\n token: \"https://base-goerli.blockscout.com/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"arbitrum_goerli\",\n // @ts-expect-error\n coinType: 9001,\n name: \"Arbitrum Goerli\",\n managerAppName: \"Arbitrum Goerli\",\n ticker: \"gETH\",\n countervalueTicker: \"gETH\",\n scheme: \"arbitrum_goerli\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 421611,\n networkId: 421611,\n },\n units: [\n {\n name: \"ether\",\n code: \"gETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://testnet.arbiscan.io/tx/$hash\",\n address: \"https://testnet.arbiscan.io/account/$address\",\n token: \"https://testnet.arbiscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n id: \"avalanche_c_chain\",\n // @ts-expect-error\n coinType: 9005,\n name: \"Aavalanche C Chain\",\n managerAppName: \"Aavalanche C Chain\",\n ticker: \"AVAX\",\n countervalueTicker: \"AVAX\",\n scheme: \"avalanche_c_chain\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 43114,\n networkId: 43114,\n },\n units: [\n {\n name: \"AVAX\",\n code: \"AVAX\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://snowtrace.io/tx/$hash\",\n address: \"https://snowtrace.io/address/$address\",\n token: \"https://snowtrace.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"avalanche_c_chain_fuji\",\n // @ts-expect-error\n coinType: 9005,\n name: \"Aavalanche C Chain Fuji\",\n managerAppName: \"Aavalanche C Chain Fuji\",\n ticker: \"AVAX\",\n countervalueTicker: \"AVAX\",\n scheme: \"avalanche_c_chain_fuji\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 43113,\n networkId: 43113,\n },\n units: [\n {\n name: \"fAVAX\",\n code: \"fAVAX\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://testnet.snowtrace.io/tx/$hash\",\n address: \"https://testnet.snowtrace.io/address/$address\",\n token: \"https://testnet.snowtrace.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"fantom_testnet\",\n // @ts-expect-error\n coinType: 1007,\n name: \"Fantom Testnet\",\n managerAppName: \"Fantom Testnet\",\n ticker: \"tFTM\",\n countervalueTicker: \"tFTM\",\n scheme: \"fantom_testnet\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 4002,\n networkId: 4002,\n },\n units: [\n {\n name: \"tFTM\",\n code: \"tFTM\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://testnet.ftmscan.com/tx/$hash\",\n address: \"https://testnet.ftmscan.com/address/$address\",\n token: \"https://testnet.ftmscan.com/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"flare_coston\",\n coinType: 60,\n name: \"Flare Coston\",\n managerAppName: \"Flare Coston\",\n ticker: \"tFLR\",\n countervalueTicker: \"tFLR\",\n scheme: \"flare_coston\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 16,\n networkId: 16,\n },\n units: [\n {\n name: \"tFLR\",\n code: \"tFLR\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://coston-explorer.flare.network/tx/$hash\",\n address: \"https://coston-explorer.flare.network/$address\",\n token: \"https://coston-explorer.flare.network/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n id: \"optimism\",\n // @ts-expect-error\n coinType: 614,\n name: \"Optimism\",\n managerAppName: \"Optimism\",\n ticker: \"ETH\",\n countervalueTicker: \"ETH\",\n scheme: \"optimism\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 10,\n networkId: 10,\n },\n units: [\n {\n name: \"ether\",\n code: \"ETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://optimistic.etherscan.io/tx/$hash\",\n address: \"https://optimistic.etherscan.io/account/$address\",\n token: \"https://optimistic.etherscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"polygon_mumbai\",\n coinType: 60,\n name: \"Polygon Mumbai\",\n managerAppName: \"Polygon Mumbai\",\n ticker: \"tMATIC\",\n countervalueTicker: \"MATIC\",\n scheme: \"polygon_mumbai\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 80001,\n networkId: 80001,\n },\n units: [\n {\n name: \"tMATIC\",\n code: \"tMATIC\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://mumbai.polygonscan.com/tx/$hash\",\n address: \"https://mumbai.polygonscan.com/address/$address\",\n token: \"https://mumbai.polygonscan.com//token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"optimism_goerli\",\n // @ts-expect-error\n coinType: 614,\n name: \"Optimism Goerli\",\n managerAppName: \"Optimism Goerli\",\n ticker: \"gETH\",\n countervalueTicker: \"gETH\",\n scheme: \"optimism_goerli\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 420,\n networkId: 420,\n },\n units: [\n {\n name: \"gether\",\n code: \"gETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://goerli-optimism.etherscan.io/tx/$hash\",\n address: \"https://goerli-optimism.etherscan.io/account/$address\",\n token: \"https://goerli-optimism.etherscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"celo_alfajores\",\n coinType: 60,\n name: \"Celo Alfajores\",\n managerAppName: \"Celo Alfajores\",\n ticker: \"tCELO\",\n countervalueTicker: \"tCELO\",\n scheme: \"celo_alfojores\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 44787,\n networkId: 44787,\n },\n units: [\n {\n name: \"tCELO\",\n code: \"tCELO\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://alfajores.celoscan.io/tx/$hash\",\n address: \"https://alfajores.celoscan.io/address/$address\",\n token: \"https://alfajores.celoscan.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"cronos_testnet\",\n coinType: 60,\n name: \"Cronos Testnet\",\n managerAppName: \"Cronos Testnet\",\n ticker: \"tCRO\",\n countervalueTicker: \"tCRO\",\n scheme: \"cronos_testnet\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 338,\n networkId: 338,\n },\n units: [\n {\n name: \"tCRO\",\n code: \"tCRO\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://cronos.org/explorer/testnet3/tx/$hash\",\n address: \"https://cronos.org/explorer/testnet3/address/$address\",\n token: \"https://cronos.org/explorer/testnet3/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"kava_evm\",\n coinType: 60,\n name: \"Kava EVM\",\n managerAppName: \"Kava EVM\",\n ticker: \"KAVA\",\n countervalueTicker: \"KAVA\",\n scheme: \"kava_evm\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 2222,\n networkId: 2222,\n },\n units: [\n {\n name: \"KAVA\",\n code: \"KAVA\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://explorer.kava.io/tx/$hash\",\n address: \"https://explorer.kava.io/address/$address\",\n token: \"https://explorer.kava.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"kava_evm_testnet\",\n coinType: 60,\n name: \"Kava EVM Testnet\",\n managerAppName: \"Kava EVM Testnet\",\n ticker: \"tKAVA\",\n countervalueTicker: \"tKAVA\",\n scheme: \"kava_evm_testnet\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 2221,\n networkId: 2221,\n },\n units: [\n {\n name: \"tKAVA\",\n code: \"tKAVA\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://explorer.testnet.kava.io/tx/$hash\",\n address: \"https://explorer.testnet.kava.io/address/$address\",\n token: \"https://explorer.testnet.kava.io/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"tomo_testnet\",\n coinType: 60,\n name: \"TomoTestnet\",\n managerAppName: \"TomoTestnet\",\n ticker: \"tTOMO\",\n countervalueTicker: \"tTOMO\",\n scheme: \"tomo_testnet\",\n color: \"#A020F0\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"testnet\",\n chainId: 88,\n networkId: 88,\n },\n units: [\n {\n name: \"tTOMO\",\n code: \"tTOMO\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://scan.testnet.tomochain.com/txs/$hash\",\n address: \"https://scan.testnet.tomochain.com/address/$address\",\n token: \"https://scan.testnet.tomochain.com/tokens/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"ethereum_goerli\",\n name: \"Ethereum Goerli\",\n family: \"ethereum\",\n coinType: 1,\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"goerli\",\n chainId: 5, // goerli\n networkId: 5,\n hardfork: \"petersburg\",\n },\n units: [\n {\n code: \"wei\",\n magnitude: 0,\n name: \"wei\",\n },\n {\n code: \"Kwei\",\n magnitude: 3,\n name: \"Kwei\",\n },\n {\n code: \"Mwei\",\n magnitude: 6,\n name: \"Mwei\",\n },\n {\n code: \"Gwei\",\n magnitude: 9,\n name: \"Gwei\",\n },\n {\n code: \"ether\",\n magnitude: 18,\n name: \"ether\",\n },\n ],\n explorerViews: [\n {\n tx: \"https://goerli.etherscan.io/tx/$hash\",\n address: \"https://goerli.etherscan.io/address/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"ethereum_ropsten\",\n name: \"Ethereum Ropsten\",\n cointype: 60,\n family: \"ethereum\",\n units: [\n {\n code: \"wei\",\n magnitude: 0,\n name: \"wei\",\n },\n {\n code: \"Kwei\",\n magnitude: 3,\n name: \"Kwei\",\n },\n {\n code: \"Mwei\",\n magnitude: 6,\n name: \"Mwei\",\n },\n {\n code: \"Gwei\",\n magnitude: 9,\n name: \"Gwei\",\n },\n {\n code: \"ether\",\n magnitude: 18,\n name: \"ether\",\n },\n ],\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"ropsten\",\n chainId: 3, // ropsten\n networkId: 3,\n hardfork: \"petersburg\",\n },\n explorerViews: [\n {\n tx: \"https://ropsten.etherscan.io/tx/$hash\",\n address: \"https://ropsten.etherscan.io/address/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"vertcoin\",\n // @ts-expect-error\n coinType: 28,\n name: \"Vertcoin\",\n managerAppName: \"Vertcoin\",\n ticker: \"VTC\",\n scheme: \"vertcoin\",\n color: \"#1b5c2e\",\n supportsSegwit: true,\n family: \"bitcoin\",\n blockAvgTime: 150,\n bitcoinLikeInfo: {\n P2PKH: 71,\n P2SH: 5,\n XPUBVersion: 0x0488b21e,\n },\n units: [\n {\n name: \"vertcoin\",\n code: \"VTC\",\n magnitude: 8,\n },\n {\n name: \"satoshi\",\n code: \"sat\",\n magnitude: 0,\n },\n ],\n explorerViews: [\n {\n tx: \"https://vtcblocks.com/tx/$hash\",\n address: \"https://vtcblocks.com/address/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"viacoin\",\n // @ts-expect-error\n coinType: 14,\n name: \"Viacoin\",\n managerAppName: \"Viacoin\",\n ticker: \"VIA\",\n scheme: \"viacoin\",\n color: \"#414141\",\n supportsSegwit: true,\n family: \"bitcoin\",\n blockAvgTime: 24,\n bitcoinLikeInfo: {\n P2PKH: 71,\n P2SH: 33,\n XPUBVersion: 0x0488b21e,\n },\n units: [\n {\n name: \"viacoin\",\n code: \"VIA\",\n magnitude: 8,\n },\n {\n name: \"satoshi\",\n code: \"sat\",\n magnitude: 0,\n },\n ],\n explorerViews: [\n {\n tx: \"https://explorer.viacoin.org/tx/$hash\",\n address: \"https://explorer.viacoin.org/address/$address\",\n },\n ],\n },\n];\n\nexport function getCryptoCurrencyById(id: string): CryptoCurrency {\n return vaultCoins.find((currency) => currency.id === id) || byId(id);\n}\n\n// istanbul ignore next\nconst listCryptoCurrencies = listCC;\nexport { listCryptoCurrencies };\n"]}