@ledgerhq/vault-common 2.4.7 → 2.5.0

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.7 build /home/runner/work/vault-ts/vault-ts/packages/common
2
+ > @ledgerhq/vault-common@2.5.0 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
@@ -12,36 +12,36 @@
12
12
  CJS lib/createHSMBridge.js 331.00 B
13
13
  CJS lib/crypto/utils.js 335.00 B
14
14
  CJS lib/types/index.js 329.00 B
15
+ CJS lib/chunk-4JKKMVRR.js 3.59 KB
15
16
  CJS lib/index.js 119.40 KB
16
- CJS lib/chunk-7PAZRU3A.js 3.59 KB
17
17
  CJS lib/recipeManifest.js 349.00 B
18
- CJS lib/chunk-K3DKN3IC.js 17.80 KB
18
+ CJS lib/chunk-S2DPLATP.js 17.80 KB
19
19
  CJS lib/reviewAPIRequest.js 365.00 B
20
- CJS lib/chunk-XQD62EIW.js 37.63 KB
21
- CJS lib/chunk-OXEPL2GL.js 3.39 KB
20
+ CJS lib/chunk-RYXO2IRU.js 37.63 KB
21
+ CJS lib/chunk-7C36VUX7.js 3.39 KB
22
22
  CJS lib/utils.js 1.20 KB
23
- CJS lib/chunk-MM46PB5T.js 35.45 KB
23
+ CJS lib/chunk-OQZ2E2GN.js 36.33 KB
24
24
  CJS lib/chunk-3L2XDBZ2.js 8.65 KB
25
25
  CJS lib/chunk-PDP57LSK.js 396.00 B
26
26
  CJS lib/chunk-PZ5AY32C.js 314.00 B
27
27
  CJS lib/createHSMBridge.js.map 293.00 B
28
28
  CJS lib/crypto/utils.js.map 281.00 B
29
29
  CJS lib/types/index.js.map 269.00 B
30
+ CJS lib/chunk-4JKKMVRR.js.map 7.09 KB
30
31
  CJS lib/index.js.map 178.14 KB
31
- CJS lib/chunk-7PAZRU3A.js.map 7.09 KB
32
32
  CJS lib/recipeManifest.js.map 288.00 B
33
- CJS lib/chunk-K3DKN3IC.js.map 36.53 KB
33
+ CJS lib/chunk-S2DPLATP.js.map 36.53 KB
34
34
  CJS lib/reviewAPIRequest.js.map 308.00 B
35
- CJS lib/chunk-XQD62EIW.js.map 71.66 KB
36
- CJS lib/chunk-OXEPL2GL.js.map 5.19 KB
35
+ CJS lib/chunk-RYXO2IRU.js.map 71.66 KB
36
+ CJS lib/chunk-7C36VUX7.js.map 5.19 KB
37
37
  CJS lib/utils.js.map 398.00 B
38
- CJS lib/chunk-MM46PB5T.js.map 67.03 KB
38
+ CJS lib/chunk-OQZ2E2GN.js.map 69.08 KB
39
39
  CJS lib/chunk-3L2XDBZ2.js.map 20.30 KB
40
40
  CJS lib/chunk-PDP57LSK.js.map 52.89 KB
41
41
  CJS lib/chunk-PZ5AY32C.js.map 479.00 B
42
- CJS ⚡️ Build success in 1049ms
42
+ CJS ⚡️ Build success in 961ms
43
43
  DTS Build start
44
- DTS ⚡️ Build success in 14433ms
44
+ DTS ⚡️ Build success in 11704ms
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.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e3c761e2: feat: add SUI support to vault-common
8
+
3
9
  ## 2.4.7
4
10
 
5
11
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkOXEPL2GLjs = require('./chunk-OXEPL2GL.js');
3
+ var _chunk7C36VUX7js = require('./chunk-7C36VUX7.js');
4
4
 
5
5
  // src/createHSMBridge.ts
6
6
  var _vaultutils = require('@ledgerhq/vault-utils');
@@ -17,7 +17,7 @@ function createHSMBridge(options) {
17
17
  baseURL: hsmEndpoint,
18
18
  httpsAgent
19
19
  };
20
- const hsmNetwork = _chunkOXEPL2GLjs.createNetwork.call(void 0, hsmNetworkOptions);
20
+ const hsmNetwork = _chunk7C36VUX7js.createNetwork.call(void 0, hsmNetworkOptions);
21
21
  const raw = _axios2.default.create({ baseURL: hsmEndpoint, httpsAgent });
22
22
  return {
23
23
  backupCompartment: async (cid) => {
@@ -85,4 +85,4 @@ var createHSMBridge_default = createHSMBridge;
85
85
 
86
86
 
87
87
  exports.createHSMBridge_default = createHSMBridge_default;
88
- //# sourceMappingURL=chunk-7PAZRU3A.js.map
88
+ //# sourceMappingURL=chunk-4JKKMVRR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-7PAZRU3A.js","../src/createHSMBridge.ts"],"names":[],"mappings":"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","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-7PAZRU3A.js","sourcesContent":[null,"import { SILENT_LOGGER } from \"@ledgerhq/vault-utils\";\nimport axios from \"axios\";\nimport https from \"https\";\n\nimport createNetwork from \"./createNetwork\";\nimport { RunnableOptions } from \"./types\";\n\ntype HSMBridge = {\n backupCompartment: (cid: number) => Promise<HSMCompartmentBackup>;\n restoreCompartment: (\n cid: number,\n data: HSMCompartmentBackup,\n options?: RunnableOptions,\n ) => Promise<void>;\n initCompartment: (options?: RunnableOptions & { cid?: number }) => Promise<number>;\n resetCompartment: (compartmentID: number, options: RunnableOptions) => Promise<void>;\n};\n\ntype HSMSlot = {\n id: number;\n userId: number;\n lastUsed: string;\n};\n\ntype CreateHSMBridgeOptions = {\n hsmEndpoint: string;\n hsmCert: Buffer;\n hsmCertKey: Buffer;\n monotonicCountersSize?: number;\n fileSystemSize?: number;\n};\n\ntype HSMCompartmentBackup = {\n internalfs: string;\n counters: string;\n};\n\nfunction createHSMBridge(options: CreateHSMBridgeOptions): HSMBridge {\n const { monotonicCountersSize, fileSystemSize } = options;\n\n const httpsAgent = new https.Agent({\n cert: options.hsmCert,\n key: options.hsmCertKey,\n });\n\n // cf hsmaas code\n const hsmEndpoint = options.hsmEndpoint.replace(\"/process\", \"\");\n\n const hsmNetworkOptions = {\n baseURL: hsmEndpoint,\n httpsAgent,\n };\n\n const hsmNetwork = createNetwork(hsmNetworkOptions);\n const raw = axios.create({ baseURL: hsmEndpoint, httpsAgent });\n\n return {\n backupCompartment: async (cid: number): Promise<HSMCompartmentBackup> => {\n const [internalfs, counters] = await Promise.all([\n raw.get<Buffer>(`/compartments/${cid}/internalfs`, { responseType: \"arraybuffer\" }),\n raw.get<Buffer>(`/compartments/${cid}/counters`, { responseType: \"arraybuffer\" }),\n ]);\n return {\n internalfs: internalfs.data.toString(\"hex\"),\n counters: counters.data.toString(\"hex\"),\n };\n },\n restoreCompartment: async (\n cid: number,\n data: HSMCompartmentBackup,\n { logger = SILENT_LOGGER }: RunnableOptions = {},\n ): Promise<void> => {\n logger.info(\"Restoring internalfs...\");\n await raw.put(`/compartments/${cid}/internalfs`, Buffer.from(data.internalfs, \"hex\"));\n logger.info(\"Restoring counters...\");\n await raw.put(`/compartments/${cid}/counters`, Buffer.from(data.counters, \"hex\"));\n logger.success(\"Successfully restored compartment\");\n },\n initCompartment: async ({\n logger = SILENT_LOGGER,\n cid,\n }: RunnableOptions & { cid?: number } = {}) => {\n const res = (await hsmNetwork(\"POST\", \"/compartments\", {\n ...(cid !== undefined ? { id: cid } : {}),\n })) as { id: number };\n logger.info(`Created compartment ${res.id}`);\n return res.id;\n },\n resetCompartment: async (\n compartmentID: number,\n { logger = SILENT_LOGGER }: RunnableOptions,\n ) => {\n try {\n await hsmNetwork(\"DELETE\", `/compartments/${compartmentID}`);\n logger.info(`Removed compartment ${compartmentID}`);\n } catch (err) {\n /* istanbul ignore next */\n // @ts-expect-error\n logger.info(`Arf! Problem deleting compartment apparently: ${err.toString()}`);\n /* istanbul ignore next */\n logger.info(\"But let's pretend we don't care and let's continue\");\n }\n try {\n const slots: HSMSlot[] = await hsmNetwork(\"GET\", \"/slots\");\n const compartmentSlots = slots.filter((slot) => slot.userId === compartmentID);\n for (let i = 0; i < compartmentSlots.length; i++) {\n const slot = compartmentSlots[i];\n /* istanbul ignore if */\n if (!slot) throw new Error(\"Invalid slot\");\n await hsmNetwork(\"DELETE\", `/slots/${slot.id}`);\n logger.info(`Removed slot ${slot.id}`);\n }\n } catch (err) {\n /* istanbul ignore next */\n // @ts-expect-error\n logger.info(`Ouch! Little error there: ${err.toString()}`);\n /* istanbul ignore next */\n logger.info(\"There was a problem getting slots, but let's continue anyway, i mean.\");\n }\n const payload = { id: compartmentID };\n if (monotonicCountersSize) {\n Object.assign(payload, { monotonicCountersSize });\n }\n if (fileSystemSize) {\n Object.assign(payload, { fileSystemSize });\n }\n await hsmNetwork(\"POST\", \"/compartments\", payload);\n logger.info(`Created compartment ${compartmentID}`);\n },\n };\n}\n\nexport default createHSMBridge;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-4JKKMVRR.js","../src/createHSMBridge.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJA,mDAA8B;AAC9B,4EAAkB;AAClB,4EAAkB;AAmClB,SAAS,eAAA,CAAgB,OAAA,EAA4C;AACnE,EAAA,MAAM,EAAE,qBAAA,EAAuB,eAAe,EAAA,EAAI,OAAA;AAElD,EAAA,MAAM,WAAA,EAAa,IAAI,eAAA,CAAM,KAAA,CAAM;AAAA,IACjC,IAAA,EAAM,OAAA,CAAQ,OAAA;AAAA,IACd,GAAA,EAAK,OAAA,CAAQ;AAAA,EACf,CAAC,CAAA;AAGD,EAAA,MAAM,YAAA,EAAc,OAAA,CAAQ,WAAA,CAAY,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA;AAE9D,EAAA,MAAM,kBAAA,EAAoB;AAAA,IACxB,OAAA,EAAS,WAAA;AAAA,IACT;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,EAAa,4CAAA,iBAA+B,CAAA;AAClD,EAAA,MAAM,IAAA,EAAM,eAAA,CAAM,MAAA,CAAO,EAAE,OAAA,EAAS,WAAA,EAAa,WAAW,CAAC,CAAA;AAE7D,EAAA,OAAO;AAAA,IACL,iBAAA,EAAmB,MAAA,CAAO,GAAA,EAAA,GAA+C;AACvE,MAAA,MAAM,CAAC,UAAA,EAAY,QAAQ,EAAA,EAAI,MAAM,OAAA,CAAQ,GAAA,CAAI;AAAA,QAC/C,GAAA,CAAI,GAAA,CAAY,CAAA,cAAA,EAAiB,GAAG,CAAA,WAAA,CAAA,EAAe,EAAE,YAAA,EAAc,cAAc,CAAC,CAAA;AAAA,QAClF,GAAA,CAAI,GAAA,CAAY,CAAA,cAAA,EAAiB,GAAG,CAAA,SAAA,CAAA,EAAa,EAAE,YAAA,EAAc,cAAc,CAAC;AAAA,MAClF,CAAC,CAAA;AACD,MAAA,OAAO;AAAA,QACL,UAAA,EAAY,UAAA,CAAW,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AAAA,QAC1C,QAAA,EAAU,QAAA,CAAS,IAAA,CAAK,QAAA,CAAS,KAAK;AAAA,MACxC,CAAA;AAAA,IACF,CAAA;AAAA,IACA,kBAAA,EAAoB,MAAA,CAClB,GAAA,EACA,IAAA,EACA,EAAE,OAAA,EAAS,0BAAc,EAAA,EAAqB,CAAC,CAAA,EAAA,GAC7B;AAClB,MAAA,MAAA,CAAO,IAAA,CAAK,yBAAyB,CAAA;AACrC,MAAA,MAAM,GAAA,CAAI,GAAA,CAAI,CAAA,cAAA,EAAiB,GAAG,CAAA,WAAA,CAAA,EAAe,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,KAAK,CAAC,CAAA;AACpF,MAAA,MAAA,CAAO,IAAA,CAAK,uBAAuB,CAAA;AACnC,MAAA,MAAM,GAAA,CAAI,GAAA,CAAI,CAAA,cAAA,EAAiB,GAAG,CAAA,SAAA,CAAA,EAAa,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,KAAK,CAAC,CAAA;AAChF,MAAA,MAAA,CAAO,OAAA,CAAQ,mCAAmC,CAAA;AAAA,IACpD,CAAA;AAAA,IACA,eAAA,EAAiB,MAAA,CAAO;AAAA,MACtB,OAAA,EAAS,yBAAA;AAAA,MACT;AAAA,IACF,EAAA,EAAwC,CAAC,CAAA,EAAA,GAAM;AAC7C,MAAA,MAAM,IAAA,EAAO,MAAM,UAAA,CAAW,MAAA,EAAQ,eAAA,EAAiB;AAAA,QACrD,GAAI,IAAA,IAAQ,KAAA,EAAA,EAAY,EAAE,EAAA,EAAI,IAAI,EAAA,EAAI,CAAC;AAAA,MACzC,CAAC,CAAA;AACD,MAAA,MAAA,CAAO,IAAA,CAAK,CAAA,oBAAA,EAAuB,GAAA,CAAI,EAAE,CAAA,CAAA;AAC9B,MAAA;AACb,IAAA;AAGI,IAAA;AAEE,MAAA;AACyB,QAAA;AACQ,QAAA;AACvB,MAAA;AAGA,QAAA;AAEA,QAAA;AACd,MAAA;AACI,MAAA;AAC+C,QAAA;AACV,QAAA;AACF,QAAA;AACJ,UAAA;AAEJ,UAAA;AACU,UAAA;AACA,UAAA;AACvC,QAAA;AACY,MAAA;AAGA,QAAA;AAEA,QAAA;AACd,MAAA;AACoC,MAAA;AACT,MAAA;AACA,QAAA;AAC3B,MAAA;AACoB,MAAA;AACsB,QAAA;AAC1C,MAAA;AAC0C,MAAA;AACP,MAAA;AACrC,IAAA;AACF,EAAA;AACF;AAEe;ADjDiC;AACA;AACA;AACA","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-4JKKMVRR.js","sourcesContent":[null,"import { SILENT_LOGGER } from \"@ledgerhq/vault-utils\";\nimport axios from \"axios\";\nimport https from \"https\";\n\nimport createNetwork from \"./createNetwork\";\nimport { RunnableOptions } from \"./types\";\n\ntype HSMBridge = {\n backupCompartment: (cid: number) => Promise<HSMCompartmentBackup>;\n restoreCompartment: (\n cid: number,\n data: HSMCompartmentBackup,\n options?: RunnableOptions,\n ) => Promise<void>;\n initCompartment: (options?: RunnableOptions & { cid?: number }) => Promise<number>;\n resetCompartment: (compartmentID: number, options: RunnableOptions) => Promise<void>;\n};\n\ntype HSMSlot = {\n id: number;\n userId: number;\n lastUsed: string;\n};\n\ntype CreateHSMBridgeOptions = {\n hsmEndpoint: string;\n hsmCert: Buffer;\n hsmCertKey: Buffer;\n monotonicCountersSize?: number;\n fileSystemSize?: number;\n};\n\ntype HSMCompartmentBackup = {\n internalfs: string;\n counters: string;\n};\n\nfunction createHSMBridge(options: CreateHSMBridgeOptions): HSMBridge {\n const { monotonicCountersSize, fileSystemSize } = options;\n\n const httpsAgent = new https.Agent({\n cert: options.hsmCert,\n key: options.hsmCertKey,\n });\n\n // cf hsmaas code\n const hsmEndpoint = options.hsmEndpoint.replace(\"/process\", \"\");\n\n const hsmNetworkOptions = {\n baseURL: hsmEndpoint,\n httpsAgent,\n };\n\n const hsmNetwork = createNetwork(hsmNetworkOptions);\n const raw = axios.create({ baseURL: hsmEndpoint, httpsAgent });\n\n return {\n backupCompartment: async (cid: number): Promise<HSMCompartmentBackup> => {\n const [internalfs, counters] = await Promise.all([\n raw.get<Buffer>(`/compartments/${cid}/internalfs`, { responseType: \"arraybuffer\" }),\n raw.get<Buffer>(`/compartments/${cid}/counters`, { responseType: \"arraybuffer\" }),\n ]);\n return {\n internalfs: internalfs.data.toString(\"hex\"),\n counters: counters.data.toString(\"hex\"),\n };\n },\n restoreCompartment: async (\n cid: number,\n data: HSMCompartmentBackup,\n { logger = SILENT_LOGGER }: RunnableOptions = {},\n ): Promise<void> => {\n logger.info(\"Restoring internalfs...\");\n await raw.put(`/compartments/${cid}/internalfs`, Buffer.from(data.internalfs, \"hex\"));\n logger.info(\"Restoring counters...\");\n await raw.put(`/compartments/${cid}/counters`, Buffer.from(data.counters, \"hex\"));\n logger.success(\"Successfully restored compartment\");\n },\n initCompartment: async ({\n logger = SILENT_LOGGER,\n cid,\n }: RunnableOptions & { cid?: number } = {}) => {\n const res = (await hsmNetwork(\"POST\", \"/compartments\", {\n ...(cid !== undefined ? { id: cid } : {}),\n })) as { id: number };\n logger.info(`Created compartment ${res.id}`);\n return res.id;\n },\n resetCompartment: async (\n compartmentID: number,\n { logger = SILENT_LOGGER }: RunnableOptions,\n ) => {\n try {\n await hsmNetwork(\"DELETE\", `/compartments/${compartmentID}`);\n logger.info(`Removed compartment ${compartmentID}`);\n } catch (err) {\n /* istanbul ignore next */\n // @ts-expect-error\n logger.info(`Arf! Problem deleting compartment apparently: ${err.toString()}`);\n /* istanbul ignore next */\n logger.info(\"But let's pretend we don't care and let's continue\");\n }\n try {\n const slots: HSMSlot[] = await hsmNetwork(\"GET\", \"/slots\");\n const compartmentSlots = slots.filter((slot) => slot.userId === compartmentID);\n for (let i = 0; i < compartmentSlots.length; i++) {\n const slot = compartmentSlots[i];\n /* istanbul ignore if */\n if (!slot) throw new Error(\"Invalid slot\");\n await hsmNetwork(\"DELETE\", `/slots/${slot.id}`);\n logger.info(`Removed slot ${slot.id}`);\n }\n } catch (err) {\n /* istanbul ignore next */\n // @ts-expect-error\n logger.info(`Ouch! Little error there: ${err.toString()}`);\n /* istanbul ignore next */\n logger.info(\"There was a problem getting slots, but let's continue anyway, i mean.\");\n }\n const payload = { id: compartmentID };\n if (monotonicCountersSize) {\n Object.assign(payload, { monotonicCountersSize });\n }\n if (fileSystemSize) {\n Object.assign(payload, { fileSystemSize });\n }\n await hsmNetwork(\"POST\", \"/compartments\", payload);\n logger.info(`Created compartment ${compartmentID}`);\n },\n };\n}\n\nexport default createHSMBridge;\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkMM46PB5Tjs = require('./chunk-MM46PB5T.js');
3
+ var _chunkOQZ2E2GNjs = require('./chunk-OQZ2E2GN.js');
4
4
 
5
5
  // src/createNetwork.ts
6
6
  var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
@@ -64,7 +64,7 @@ function createNetwork(networkOptions) {
64
64
  console.log(_chalk2.default`{grey ${msg}}`);
65
65
  }
66
66
  if (typeof networkDelay === "number") {
67
- await _chunkMM46PB5Tjs.wait.call(void 0, networkDelay);
67
+ await _chunkOQZ2E2GNjs.wait.call(void 0, networkDelay);
68
68
  }
69
69
  const res = await _axios2.default.request(axiosParams);
70
70
  if (networkOptions.interceptToken && res.headers && res.headers["set-cookie"]) {
@@ -94,4 +94,4 @@ function createNetwork(networkOptions) {
94
94
 
95
95
 
96
96
  exports.createNetwork = createNetwork;
97
- //# sourceMappingURL=chunk-OXEPL2GL.js.map
97
+ //# sourceMappingURL=chunk-7C36VUX7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-OXEPL2GL.js","../src/createNetwork.ts"],"names":["token"],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJA,4EAAkB;AAClB,4EAAkB;AAClB,4EAA6B;AAmBtB,IAAM,UAAA,EAAN,MAAM,WAAA,QAAkB,MAAM;AAAA,EACnC,WAAA,CAAY,EAAE,IAAA,EAAM,OAAA,EAAS,KAAK,CAAA,EAAqB;AACrD,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,QAAA,EAAU,CAAA,CAAA,EAAI,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AACvB,IAAA;AACkB,IAAA;AAChC,EAAA;AACF;AAOa;AAC+C,EAAA;AACzB,IAAA;AACH,IAAA;AAEK,IAAA;AAER,MAAA;AACzB,IAAA;AACa,IAAA;AACE,IAAA;AACqB,IAAA;AACN,IAAA;AAChC,EAAA;AACF;AAEsE;AAGlE,EAAA;AAIkB,IAAA;AACd,IAAA;AACyB,MAAA;AACM,MAAA;AACD,MAAA;AACP,QAAA;AACzB,MAAA;AACgB,MAAA;AACE,QAAA;AACa,QAAA;AACE,QAAA;AACjC,MAAA;AACoB,MAAA;AAClB,QAAA;AAC8B,QAAA;AAC9B,QAAA;AACA,QAAA;AAGM,QAAA;AACkB,UAAA;AACrB,QAAA;AACL,MAAA;AAGwB,MAAA;AACI,QAAA;AACG,QAAA;AAC/B,MAAA;AAE6B,MAAA;AAGN,MAAA;AACX,QAAA;AACsB,QAAA;AACF,QAAA;AACF,UAAA;AAC5B,QAAA;AAEgC,QAAA;AAClC,MAAA;AAC4B,MAAA;AACH,QAAA;AACzB,MAAA;AAEgC,MAAA;AAEb,MAAA;AACY,QAAA;AACd,UAAA;AACf,QAAA;AACc,QAAA;AACgB,UAAA;AACL,UAAA;AACOA,UAAAA;AAChC,QAAA;AACF,MAAA;AACW,MAAA;AACC,IAAA;AAEO,MAAA;AACX,QAAA;AACR,MAAA;AAEqB,MAAA;AACS,MAAA;AACJ,QAAA;AAC1B,MAAA;AAE2B,MAAA;AAC7B,IAAA;AACF,EAAA;AACF;ADvCwC;AACA;AACA;AACA","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-OXEPL2GL.js","sourcesContent":[null,"import axios from \"axios\";\nimport chalk from \"chalk\";\nimport https, { Agent } from \"https\";\n\nimport { wait } from \"./utils\";\n\ninterface NetworkOptions {\n baseURL: string;\n token?: string;\n interceptToken?: (token: string) => void;\n injectToken?: () => string | null;\n httpsAgent?: Agent;\n networkDelay?: number;\n}\n\ninterface GateErrorPayload {\n code: number;\n message: string;\n name: string;\n}\n\nexport class GateError extends Error {\n constructor({ code, message, name }: GateErrorPayload) {\n super(message);\n this.message = `(${code}) ${message}`;\n this.name = name;\n Error.captureStackTrace(this, GateError);\n }\n}\n\ntype NetworkErrorPayload = {\n status: number;\n statusText: string;\n};\n\nexport class NetworkError extends Error {\n constructor(payload: NetworkErrorPayload, prefix: string) {\n const { status, statusText } = payload;\n let message = statusText || \"Unknown error\";\n // @ts-ignore\n if (payload.data && payload.data.message) {\n // @ts-ignore\n message = payload.data.message;\n }\n super(message);\n this.message = \"\";\n this.name = `Network error (${prefix}) ${status}: ${message}`;\n Error.captureStackTrace(this, NetworkError);\n }\n}\n\nexport default function createNetwork(networkOptions: NetworkOptions) {\n return async function request<T = any>(\n method: \"POST\" | \"GET\" | \"DELETE\" | \"PUT\",\n url: string,\n data: any = {},\n requestOptions: any = {},\n ): Promise<T> {\n let debugPrefix = \"\";\n try {\n let token = networkOptions.token || null;\n const { networkDelay, httpsAgent } = networkOptions;\n if (networkOptions.injectToken) {\n token = networkOptions.injectToken();\n }\n const headers = {\n \"Content-Type\": \"application/json\",\n ...(requestOptions.headers ? requestOptions.headers : {}),\n ...(token ? { \"X-Ledger-Auth\": token } : {}),\n };\n const axiosParams = {\n method,\n url: `${networkOptions.baseURL}${url}`,\n data,\n headers,\n httpsAgent:\n httpsAgent ||\n new https.Agent({\n rejectUnauthorized: false,\n }),\n };\n\n // ability to request raw data (as Buffer)\n if (requestOptions.raw) {\n Object.assign(axiosParams.headers, { \"Content-Type\": \"application/octet-stream\" });\n Object.assign(axiosParams, { responseType: \"arraybuffer\" });\n }\n\n debugPrefix = `${axiosParams.method} ${axiosParams.url}`;\n\n /* istanbul ignore next */\n if (process.env.DEBUG) {\n let msg = \"\";\n msg += `${axiosParams.method} ${axiosParams.url} `;\n if (data && Object.keys(data).length > 0) {\n msg += JSON.stringify(data);\n }\n // eslint-disable-next-line no-console\n console.log(chalk`{grey ${msg}}`);\n }\n if (typeof networkDelay === \"number\") {\n await wait(networkDelay);\n }\n\n const res = await axios.request(axiosParams);\n\n if (networkOptions.interceptToken && res.headers && res.headers[\"set-cookie\"]) {\n const tokenRow = res.headers[\"set-cookie\"].find((h: string) =>\n h.startsWith(\"ledger_token\"),\n );\n if (tokenRow) {\n const [leftPart] = tokenRow.split(\";\");\n const token = leftPart.substr(\"ledger_token=\".length);\n networkOptions.interceptToken(token);\n }\n }\n return res.data;\n } catch (err) {\n // @ts-expect-error\n if (!err.response) {\n throw err;\n }\n // @ts-expect-error\n const { data } = err.response;\n if (data && data.code && data.message && data.name) {\n throw new GateError(data);\n }\n // @ts-expect-error\n throw new NetworkError(err.response, debugPrefix);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-7C36VUX7.js","../src/createNetwork.ts"],"names":["token"],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJA,4EAAkB;AAClB,4EAAkB;AAClB,4EAA6B;AAmBtB,IAAM,UAAA,EAAN,MAAM,WAAA,QAAkB,MAAM;AAAA,EACnC,WAAA,CAAY,EAAE,IAAA,EAAM,OAAA,EAAS,KAAK,CAAA,EAAqB;AACrD,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,QAAA,EAAU,CAAA,CAAA,EAAI,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AACvB,IAAA;AACkB,IAAA;AAChC,EAAA;AACF;AAOa;AAC+C,EAAA;AACzB,IAAA;AACH,IAAA;AAEK,IAAA;AAER,MAAA;AACzB,IAAA;AACa,IAAA;AACE,IAAA;AACqB,IAAA;AACN,IAAA;AAChC,EAAA;AACF;AAEsE;AAGlE,EAAA;AAIkB,IAAA;AACd,IAAA;AACyB,MAAA;AACM,MAAA;AACD,MAAA;AACP,QAAA;AACzB,MAAA;AACgB,MAAA;AACE,QAAA;AACa,QAAA;AACE,QAAA;AACjC,MAAA;AACoB,MAAA;AAClB,QAAA;AAC8B,QAAA;AAC9B,QAAA;AACA,QAAA;AAGM,QAAA;AACkB,UAAA;AACrB,QAAA;AACL,MAAA;AAGwB,MAAA;AACI,QAAA;AACG,QAAA;AAC/B,MAAA;AAE6B,MAAA;AAGN,MAAA;AACX,QAAA;AACsB,QAAA;AACF,QAAA;AACF,UAAA;AAC5B,QAAA;AAEgC,QAAA;AAClC,MAAA;AAC4B,MAAA;AACH,QAAA;AACzB,MAAA;AAEgC,MAAA;AAEb,MAAA;AACY,QAAA;AACd,UAAA;AACf,QAAA;AACc,QAAA;AACgB,UAAA;AACL,UAAA;AACOA,UAAAA;AAChC,QAAA;AACF,MAAA;AACW,MAAA;AACC,IAAA;AAEO,MAAA;AACX,QAAA;AACR,MAAA;AAEqB,MAAA;AACS,MAAA;AACJ,QAAA;AAC1B,MAAA;AAE2B,MAAA;AAC7B,IAAA;AACF,EAAA;AACF;ADvCwC;AACA;AACA;AACA","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-7C36VUX7.js","sourcesContent":[null,"import axios from \"axios\";\nimport chalk from \"chalk\";\nimport https, { Agent } from \"https\";\n\nimport { wait } from \"./utils\";\n\ninterface NetworkOptions {\n baseURL: string;\n token?: string;\n interceptToken?: (token: string) => void;\n injectToken?: () => string | null;\n httpsAgent?: Agent;\n networkDelay?: number;\n}\n\ninterface GateErrorPayload {\n code: number;\n message: string;\n name: string;\n}\n\nexport class GateError extends Error {\n constructor({ code, message, name }: GateErrorPayload) {\n super(message);\n this.message = `(${code}) ${message}`;\n this.name = name;\n Error.captureStackTrace(this, GateError);\n }\n}\n\ntype NetworkErrorPayload = {\n status: number;\n statusText: string;\n};\n\nexport class NetworkError extends Error {\n constructor(payload: NetworkErrorPayload, prefix: string) {\n const { status, statusText } = payload;\n let message = statusText || \"Unknown error\";\n // @ts-ignore\n if (payload.data && payload.data.message) {\n // @ts-ignore\n message = payload.data.message;\n }\n super(message);\n this.message = \"\";\n this.name = `Network error (${prefix}) ${status}: ${message}`;\n Error.captureStackTrace(this, NetworkError);\n }\n}\n\nexport default function createNetwork(networkOptions: NetworkOptions) {\n return async function request<T = any>(\n method: \"POST\" | \"GET\" | \"DELETE\" | \"PUT\",\n url: string,\n data: any = {},\n requestOptions: any = {},\n ): Promise<T> {\n let debugPrefix = \"\";\n try {\n let token = networkOptions.token || null;\n const { networkDelay, httpsAgent } = networkOptions;\n if (networkOptions.injectToken) {\n token = networkOptions.injectToken();\n }\n const headers = {\n \"Content-Type\": \"application/json\",\n ...(requestOptions.headers ? requestOptions.headers : {}),\n ...(token ? { \"X-Ledger-Auth\": token } : {}),\n };\n const axiosParams = {\n method,\n url: `${networkOptions.baseURL}${url}`,\n data,\n headers,\n httpsAgent:\n httpsAgent ||\n new https.Agent({\n rejectUnauthorized: false,\n }),\n };\n\n // ability to request raw data (as Buffer)\n if (requestOptions.raw) {\n Object.assign(axiosParams.headers, { \"Content-Type\": \"application/octet-stream\" });\n Object.assign(axiosParams, { responseType: \"arraybuffer\" });\n }\n\n debugPrefix = `${axiosParams.method} ${axiosParams.url}`;\n\n /* istanbul ignore next */\n if (process.env.DEBUG) {\n let msg = \"\";\n msg += `${axiosParams.method} ${axiosParams.url} `;\n if (data && Object.keys(data).length > 0) {\n msg += JSON.stringify(data);\n }\n // eslint-disable-next-line no-console\n console.log(chalk`{grey ${msg}}`);\n }\n if (typeof networkDelay === \"number\") {\n await wait(networkDelay);\n }\n\n const res = await axios.request(axiosParams);\n\n if (networkOptions.interceptToken && res.headers && res.headers[\"set-cookie\"]) {\n const tokenRow = res.headers[\"set-cookie\"].find((h: string) =>\n h.startsWith(\"ledger_token\"),\n );\n if (tokenRow) {\n const [leftPart] = tokenRow.split(\";\");\n const token = leftPart.substr(\"ledger_token=\".length);\n networkOptions.interceptToken(token);\n }\n }\n return res.data;\n } catch (err) {\n // @ts-expect-error\n if (!err.response) {\n throw err;\n }\n // @ts-expect-error\n const { data } = err.response;\n if (data && data.code && data.message && data.name) {\n throw new GateError(data);\n }\n // @ts-expect-error\n throw new NetworkError(err.response, debugPrefix);\n }\n };\n}\n"]}
@@ -1395,6 +1395,60 @@ var vaultCoins = [
1395
1395
  token: "https://shapescan.xyz/token/$address"
1396
1396
  }
1397
1397
  ]
1398
+ },
1399
+ {
1400
+ type: "CryptoCurrency",
1401
+ // @ts-expect-error
1402
+ id: "sui",
1403
+ coinType: 60,
1404
+ name: "Sui",
1405
+ managerAppName: "Sui",
1406
+ ticker: "SUI",
1407
+ countervalueTicker: "SUI",
1408
+ scheme: "sui",
1409
+ color: "#FE7823",
1410
+ family: "sui",
1411
+ units: [
1412
+ {
1413
+ name: "SUI",
1414
+ code: "SUI",
1415
+ magnitude: 18
1416
+ }
1417
+ ],
1418
+ explorerViews: [
1419
+ {
1420
+ tx: "",
1421
+ address: "",
1422
+ token: ""
1423
+ }
1424
+ ]
1425
+ },
1426
+ {
1427
+ type: "CryptoCurrency",
1428
+ // @ts-expect-error
1429
+ id: "sui_testnet",
1430
+ coinType: 60,
1431
+ name: "Sui Testnet",
1432
+ managerAppName: "Sui",
1433
+ ticker: "tSUI",
1434
+ countervalueTicker: "tSUI",
1435
+ scheme: "sui",
1436
+ color: "#FE7823",
1437
+ family: "sui",
1438
+ units: [
1439
+ {
1440
+ name: "tSUI",
1441
+ code: "tSUI",
1442
+ magnitude: 9
1443
+ }
1444
+ ],
1445
+ explorerViews: [
1446
+ {
1447
+ tx: "",
1448
+ address: "",
1449
+ token: ""
1450
+ }
1451
+ ]
1398
1452
  }
1399
1453
  ];
1400
1454
  function getCryptoCurrencyById(id) {
@@ -1556,4 +1610,4 @@ var wait = (duration) => new Promise((resolve) => setTimeout(resolve, duration))
1556
1610
 
1557
1611
 
1558
1612
  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;
1559
- //# sourceMappingURL=chunk-MM46PB5T.js.map
1613
+ //# sourceMappingURL=chunk-OQZ2E2GN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-OQZ2E2GN.js","../src/utils.ts","../src/currencies.ts"],"names":[],"mappings":"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AACoB,EAAA;AACtB;AAE4D;AACP,EAAA;AAC5B,EAAA;AACzB;AAEwE;AACR,EAAA;AACd,EAAA;AAClD;AAEoC;AAClC,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;AAEiC;AAC/B,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACG,EAAA;AACL;AAC2E;AAGrE,EAAA;AAeN;AAEyD;AACO,EAAA;AACvD,EAAA;AACC,IAAA;AACA,IAAA;AACE,IAAA;AACE,IAAA;AACD,IAAA;AACU,IAAA;AAAA;AAEnB,IAAA;AAAA;AAEa,IAAA;AACf,EAAA;AACF;AAKmB;AACgB,EAAA;AAEb,EAAA;AAC8C,IAAA;AACpD,IAAA;AAC0D,MAAA;AACtE,IAAA;AACoB,IAAA;AACtB,EAAA;AAC6C,EAAA;AAC/C;AAEuF;AAE/D,EAAA;AAExB;AAEuF;AAKtE;AACe,EAAA;AACY,EAAA;AACR,EAAA;AACpC;AAGwD;ADw2CwB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-OQZ2E2GN.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 \"shape\",\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 type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"shape\",\n coinType: 60,\n name: \"Shape\",\n managerAppName: \"Shape\",\n ticker: \"SHAPE\",\n countervalueTicker: \"SHAPE\",\n scheme: \"shape\",\n color: \"#FE7823\",\n family: \"evm\",\n ethereumLikeInfo: {\n // @ts-expect-error\n baseChain: \"mainnet\",\n chainId: 360,\n networkId: 360,\n },\n units: [\n {\n name: \"ETH\",\n code: \"ETH\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"https://shapescan.xyz/tx/$hash\",\n address: \"https://shapescan.xyz/address/$address\",\n token: \"https://shapescan.xyz/token/$address\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"sui\",\n coinType: 60,\n name: \"Sui\",\n managerAppName: \"Sui\",\n ticker: \"SUI\",\n countervalueTicker: \"SUI\",\n scheme: \"sui\",\n color: \"#FE7823\",\n family: \"sui\",\n units: [\n {\n name: \"SUI\",\n code: \"SUI\",\n magnitude: 18,\n },\n ],\n explorerViews: [\n {\n tx: \"\",\n address: \"\",\n token: \"\",\n },\n ],\n },\n {\n type: \"CryptoCurrency\",\n // @ts-expect-error\n id: \"sui_testnet\",\n coinType: 60,\n name: \"Sui Testnet\",\n managerAppName: \"Sui\",\n ticker: \"tSUI\",\n countervalueTicker: \"tSUI\",\n scheme: \"sui\",\n color: \"#FE7823\",\n family: \"sui\",\n units: [\n {\n name: \"tSUI\",\n code: \"tSUI\",\n magnitude: 9,\n },\n ],\n explorerViews: [\n {\n tx: \"\",\n address: \"\",\n token: \"\",\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"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkOXEPL2GLjs = require('./chunk-OXEPL2GL.js');
3
+ var _chunk7C36VUX7js = require('./chunk-7C36VUX7.js');
4
4
 
5
5
 
6
6
 
@@ -9,7 +9,7 @@ var _chunkOXEPL2GLjs = require('./chunk-OXEPL2GL.js');
9
9
 
10
10
 
11
11
 
12
- var _chunkMM46PB5Tjs = require('./chunk-MM46PB5T.js');
12
+ var _chunkOQZ2E2GNjs = require('./chunk-OQZ2E2GN.js');
13
13
 
14
14
 
15
15
 
@@ -86,12 +86,12 @@ var prepareAccountCreation = ({ type, data }) => {
86
86
  } else if ("accountType" in account) {
87
87
  account_type = account.accountType;
88
88
  } else if ("currency" in account) {
89
- account_type = _chunkMM46PB5Tjs.getAccountTypeByCurrency.call(void 0, account.currency);
89
+ account_type = _chunkOQZ2E2GNjs.getAccountTypeByCurrency.call(void 0, account.currency);
90
90
  }
91
91
  if (!account_type) {
92
92
  throw new Error(`Can't determine account type`);
93
93
  }
94
- const unit = _chunkMM46PB5Tjs.getAccountUnit.call(void 0, account, tokens);
94
+ const unit = _chunkOQZ2E2GNjs.getAccountUnit.call(void 0, account, tokens);
95
95
  const governance_rules = "policy" in account || "tradelink_data" in account && !!account.tradelink_data ? null : transformManifestRules({
96
96
  rules: account.rules,
97
97
  unit,
@@ -221,7 +221,7 @@ var prepareAccountEdition = ({ type, data }) => {
221
221
  if (!existingAccount) {
222
222
  throw new Error("No existingAccount given");
223
223
  }
224
- const unit = _chunkMM46PB5Tjs.getAccountUnit.call(void 0, account, tokens);
224
+ const unit = _chunkOQZ2E2GNjs.getAccountUnit.call(void 0, account, tokens);
225
225
  const governance_rules = transformManifestRules({
226
226
  rules: account.rules,
227
227
  unit,
@@ -384,7 +384,7 @@ var prepareExchangeCreation = ({ type, data }) => {
384
384
  };
385
385
  var preparePolicyCreation = ({ type, data }) => {
386
386
  const { policy, usersByName, usersByDevice, groupsIDsByName, whitelistsIDsByName } = data;
387
- const unit = data.policy.currency ? _chunkMM46PB5Tjs.getCurrencyUnit.call(void 0, data.policy.currency) : void 0;
387
+ const unit = data.policy.currency ? _chunkOQZ2E2GNjs.getCurrencyUnit.call(void 0, data.policy.currency) : void 0;
388
388
  const governance_rules = transformManifestRules({
389
389
  rules: policy.rules,
390
390
  unit,
@@ -536,8 +536,8 @@ var transformThresholdRuleFromManifest = (rule, unit) => {
536
536
  data: [
537
537
  {
538
538
  currency_type: "CRYPTO",
539
- ...rule.max ? { max: _chunkMM46PB5Tjs.serializeUnitValue.call(void 0, unit, rule.max) } : {},
540
- min: _chunkMM46PB5Tjs.serializeUnitValue.call(void 0, unit, rule.min || 0)
539
+ ...rule.max ? { max: _chunkOQZ2E2GNjs.serializeUnitValue.call(void 0, unit, rule.max) } : {},
540
+ min: _chunkOQZ2E2GNjs.serializeUnitValue.call(void 0, unit, rule.min || 0)
541
541
  }
542
542
  ]
543
543
  };
@@ -723,7 +723,7 @@ var createDefaultRunner = (pool, options) => {
723
723
  const reqResp = await admin.get(
724
724
  `/requests?page=1&type=ACTIVATE&target_id=${res.account.id}`
725
725
  );
726
- const requests = _chunkMM46PB5Tjs.unwrapConnection.call(void 0, reqResp);
726
+ const requests = _chunkOQZ2E2GNjs.unwrapConnection.call(void 0, reqResp);
727
727
  const activationRequest = requests[0];
728
728
  if (!activationRequest) {
729
729
  throw new Error(`No account activation request found for account ${res.account.name}`);
@@ -786,7 +786,7 @@ var createDefaultRunner = (pool, options) => {
786
786
  res.account = account2;
787
787
  break;
788
788
  }
789
- await _chunkMM46PB5Tjs.wait.call(void 0, 3e3);
789
+ await _chunkOQZ2E2GNjs.wait.call(void 0, 3e3);
790
790
  }
791
791
  }
792
792
  return res;
@@ -1135,8 +1135,8 @@ async function reviewAPIRequest({
1135
1135
  reviewType,
1136
1136
  skipDecodeChallenge = false
1137
1137
  }, { logger = _vaultutils.SILENT_LOGGER }) {
1138
- const workspace = _chunkMM46PB5Tjs.getWorkspaceFromGate.call(void 0, gate);
1139
- const apiNetwork = _chunkOXEPL2GLjs.createNetwork.call(void 0, {
1138
+ const workspace = _chunkOQZ2E2GNjs.getWorkspaceFromGate.call(void 0, gate);
1139
+ const apiNetwork = _chunk7C36VUX7js.createNetwork.call(void 0, {
1140
1140
  baseURL: apiGateway
1141
1141
  });
1142
1142
  logger.info(`Authenticate for ${apiUser.name}`);
@@ -1181,4 +1181,4 @@ var reviewAPIRequest_default = reviewAPIRequest;
1181
1181
 
1182
1182
 
1183
1183
  exports.performRequest = performRequest; exports.prepareRequest_default = prepareRequest_default; exports.reviewAPIRequest_default = reviewAPIRequest_default; exports.createDefaultRunner_default = createDefaultRunner_default; exports.getAuthTokens = getAuthTokens; exports.authenticate = authenticate; exports.decodeChallenge = decodeChallenge; exports.signAndApprove = signAndApprove; exports.getTradelinkPledge = getTradelinkPledge; exports.getTradelinkRecipient = getTradelinkRecipient;
1184
- //# sourceMappingURL=chunk-XQD62EIW.js.map
1184
+ //# sourceMappingURL=chunk-RYXO2IRU.js.map