@ledgerhq/context-module 1.8.1 → 1.9.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.
Files changed (98) hide show
  1. package/lib/cjs/package.json +2 -2
  2. package/lib/cjs/src/DefaultContextModule.js +1 -1
  3. package/lib/cjs/src/DefaultContextModule.js.map +3 -3
  4. package/lib/cjs/src/di.js +1 -1
  5. package/lib/cjs/src/di.js.map +3 -3
  6. package/lib/cjs/src/pki/model/KeyUsage.js +1 -1
  7. package/lib/cjs/src/pki/model/KeyUsage.js.map +2 -2
  8. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js +2 -0
  9. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js.map +7 -0
  10. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js +2 -0
  11. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js.map +7 -0
  12. package/lib/cjs/src/safe/data/SafeAccountDataSource.js +2 -0
  13. package/lib/cjs/src/safe/data/SafeAccountDataSource.js.map +7 -0
  14. package/lib/cjs/src/safe/data/dto/SafeAccountDto.js +2 -0
  15. package/lib/cjs/src/safe/data/dto/SafeAccountDto.js.map +7 -0
  16. package/lib/cjs/src/safe/di/safeModuleFactory.js +2 -0
  17. package/lib/cjs/src/safe/di/safeModuleFactory.js.map +7 -0
  18. package/lib/cjs/src/safe/di/safeModuleFactory.test.js +2 -0
  19. package/lib/cjs/src/safe/di/safeModuleFactory.test.js.map +7 -0
  20. package/lib/cjs/src/safe/di/safeTypes.js +2 -0
  21. package/lib/cjs/src/safe/di/safeTypes.js.map +7 -0
  22. package/lib/cjs/src/safe/domain/SafeAddressLoader.js +2 -0
  23. package/lib/cjs/src/safe/domain/SafeAddressLoader.js.map +7 -0
  24. package/lib/cjs/src/safe/domain/SafeAddressLoader.test.js +2 -0
  25. package/lib/cjs/src/safe/domain/SafeAddressLoader.test.js.map +7 -0
  26. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  27. package/lib/cjs/src/shared/model/ClearSignContext.js.map +2 -2
  28. package/lib/cjs/src/shared/utils/KeyUsageMapper.js +1 -1
  29. package/lib/cjs/src/shared/utils/KeyUsageMapper.js.map +2 -2
  30. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js +1 -1
  31. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
  32. package/lib/cjs/src/token/data/HttpTokenDataSource.js +1 -1
  33. package/lib/cjs/src/token/data/HttpTokenDataSource.js.map +2 -2
  34. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js +1 -1
  35. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js.map +2 -2
  36. package/lib/esm/package.json +2 -2
  37. package/lib/esm/src/DefaultContextModule.js +1 -1
  38. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  39. package/lib/esm/src/di.js +1 -1
  40. package/lib/esm/src/di.js.map +3 -3
  41. package/lib/esm/src/pki/model/KeyUsage.js +1 -1
  42. package/lib/esm/src/pki/model/KeyUsage.js.map +2 -2
  43. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js +2 -0
  44. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js.map +7 -0
  45. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js +2 -0
  46. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js.map +7 -0
  47. package/lib/esm/src/safe/data/SafeAccountDataSource.js +1 -0
  48. package/lib/esm/src/safe/data/SafeAccountDataSource.js.map +7 -0
  49. package/lib/esm/src/safe/data/dto/SafeAccountDto.js +1 -0
  50. package/lib/esm/src/safe/data/dto/SafeAccountDto.js.map +7 -0
  51. package/lib/esm/src/safe/di/safeModuleFactory.js +2 -0
  52. package/lib/esm/src/safe/di/safeModuleFactory.js.map +7 -0
  53. package/lib/esm/src/safe/di/safeModuleFactory.test.js +2 -0
  54. package/lib/esm/src/safe/di/safeModuleFactory.test.js.map +7 -0
  55. package/lib/esm/src/safe/di/safeTypes.js +2 -0
  56. package/lib/esm/src/safe/di/safeTypes.js.map +7 -0
  57. package/lib/esm/src/safe/domain/SafeAddressLoader.js +2 -0
  58. package/lib/esm/src/safe/domain/SafeAddressLoader.js.map +7 -0
  59. package/lib/esm/src/safe/domain/SafeAddressLoader.test.js +2 -0
  60. package/lib/esm/src/safe/domain/SafeAddressLoader.test.js.map +7 -0
  61. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  62. package/lib/esm/src/shared/model/ClearSignContext.js.map +2 -2
  63. package/lib/esm/src/shared/utils/KeyUsageMapper.js +1 -1
  64. package/lib/esm/src/shared/utils/KeyUsageMapper.js.map +2 -2
  65. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js +1 -1
  66. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
  67. package/lib/esm/src/token/data/HttpTokenDataSource.js +1 -1
  68. package/lib/esm/src/token/data/HttpTokenDataSource.js.map +2 -2
  69. package/lib/esm/src/token/data/HttpTokenDataSource.test.js +1 -1
  70. package/lib/esm/src/token/data/HttpTokenDataSource.test.js.map +2 -2
  71. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  72. package/lib/types/src/di.d.ts.map +1 -1
  73. package/lib/types/src/pki/model/KeyUsage.d.ts +2 -1
  74. package/lib/types/src/pki/model/KeyUsage.d.ts.map +1 -1
  75. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts +11 -0
  76. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts.map +1 -0
  77. package/lib/types/src/safe/data/HttpSafeAccountDataSource.test.d.ts +2 -0
  78. package/lib/types/src/safe/data/HttpSafeAccountDataSource.test.d.ts.map +1 -0
  79. package/lib/types/src/safe/data/SafeAccountDataSource.d.ts +20 -0
  80. package/lib/types/src/safe/data/SafeAccountDataSource.d.ts.map +1 -0
  81. package/lib/types/src/safe/data/dto/SafeAccountDto.d.ts +10 -0
  82. package/lib/types/src/safe/data/dto/SafeAccountDto.d.ts.map +1 -0
  83. package/lib/types/src/safe/di/safeModuleFactory.d.ts +3 -0
  84. package/lib/types/src/safe/di/safeModuleFactory.d.ts.map +1 -0
  85. package/lib/types/src/safe/di/safeModuleFactory.test.d.ts +2 -0
  86. package/lib/types/src/safe/di/safeModuleFactory.test.d.ts.map +1 -0
  87. package/lib/types/src/safe/di/safeTypes.d.ts +5 -0
  88. package/lib/types/src/safe/di/safeTypes.d.ts.map +1 -0
  89. package/lib/types/src/safe/domain/SafeAddressLoader.d.ts +19 -0
  90. package/lib/types/src/safe/domain/SafeAddressLoader.d.ts.map +1 -0
  91. package/lib/types/src/safe/domain/SafeAddressLoader.test.d.ts +2 -0
  92. package/lib/types/src/safe/domain/SafeAddressLoader.test.d.ts.map +1 -0
  93. package/lib/types/src/shared/model/ClearSignContext.d.ts +3 -1
  94. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  95. package/lib/types/src/shared/utils/KeyUsageMapper.d.ts.map +1 -1
  96. package/lib/types/src/token/data/HttpTokenDataSource.d.ts.map +1 -1
  97. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  98. package/package.json +5 -5
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/domain/SafeAddressLoader.test.ts"],
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport {\n type GetSafeAccountResponse,\n type SafeAccountDataSource,\n} from \"@/safe/data/SafeAccountDataSource\";\nimport {\n type SafeAddressContextInput,\n SafeAddressLoader,\n} from \"@/safe/domain/SafeAddressLoader\";\nimport {\n type ClearSignContextSuccess,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\n\ndescribe(\"SafeAddressLoader\", () => {\n const mockSafeAccountDataSource: SafeAccountDataSource = {\n getDescriptors: vi.fn(),\n };\n const mockPkiCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n const loader = new SafeAddressLoader(\n mockSafeAccountDataSource,\n mockPkiCertificateLoader,\n );\n\n const mockCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([1, 2, 3]),\n };\n\n const mockSafeAccountResponse: GetSafeAccountResponse = {\n account: {\n signedDescriptor: \"safe-descriptor-payload\",\n keyId: \"safe-key-id\",\n keyUsage: \"safe-key-usage\",\n },\n signers: {\n signedDescriptor: \"signers-descriptor-payload\",\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n },\n };\n\n beforeEach(() => {\n vi.clearAllMocks();\n vi.spyOn(mockPkiCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n });\n\n describe(\"canHandle function\", () => {\n const validInput: SafeAddressContextInput = {\n safeContractAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n deviceModelId: DeviceModelId.FLEX,\n challenge: \"0xabcdef\",\n };\n\n it(\"should return true for valid input with SAFE and SIGNER types\", () => {\n expect(\n loader.canHandle(validInput, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n });\n\n it(\"should return true when expected types are subset of SAFE and SIGNER\", () => {\n expect(loader.canHandle(validInput, [ClearSignContextType.SAFE])).toBe(\n true,\n );\n expect(loader.canHandle(validInput, [ClearSignContextType.SIGNER])).toBe(\n true,\n );\n });\n\n it(\"should return false when expected types include unsupported types\", () => {\n expect(loader.canHandle(validInput, [ClearSignContextType.TOKEN])).toBe(\n false,\n );\n expect(loader.canHandle(validInput, [ClearSignContextType.NFT])).toBe(\n false,\n );\n });\n\n it(\"should return false when expected types include other types besides SAFE and SIGNER\", () => {\n expect(\n loader.canHandle(validInput, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ClearSignContextType.TOKEN,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [null, \"null input\"],\n [undefined, \"undefined input\"],\n [{}, \"empty object\"],\n [\"string\", \"string input\"],\n [123, \"number input\"],\n [[], \"array input\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [\n { ...validInput, safeContractAddress: undefined },\n \"missing safeContractAddress\",\n ],\n [{ ...validInput, chainId: undefined }, \"missing chainId\"],\n [{ ...validInput, deviceModelId: undefined }, \"missing deviceModelId\"],\n [{ ...validInput, challenge: undefined }, \"missing challenge\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [\n { ...validInput, safeContractAddress: \"invalid-hex\" },\n \"invalid safeContractAddress hex\",\n ],\n [\n { ...validInput, safeContractAddress: \"0x\" },\n \"empty safeContractAddress (0x)\",\n ],\n [\n { ...validInput, safeContractAddress: \"not-hex\" },\n \"non-hex safeContractAddress\",\n ],\n [\n { ...validInput, safeContractAddress: 123 },\n \"number safeContractAddress\",\n ],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [{ ...validInput, chainId: \"1\" }, \"string chainId\"],\n [{ ...validInput, chainId: null }, \"null chainId\"],\n [{ ...validInput, chainId: undefined }, \"undefined chainId\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [{ ...validInput, challenge: \"\" }, \"empty challenge string\"],\n [{ ...validInput, challenge: 123 }, \"number challenge\"],\n [{ ...validInput, challenge: null }, \"null challenge\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it(\"should return true for different device models\", () => {\n expect(\n loader.canHandle(\n { ...validInput, deviceModelId: DeviceModelId.NANO_S },\n [ClearSignContextType.SAFE, ClearSignContextType.SIGNER],\n ),\n ).toBe(true);\n expect(\n loader.canHandle(\n { ...validInput, deviceModelId: DeviceModelId.NANO_SP },\n [ClearSignContextType.SAFE, ClearSignContextType.SIGNER],\n ),\n ).toBe(true);\n expect(\n loader.canHandle(\n { ...validInput, deviceModelId: DeviceModelId.NANO_X },\n [ClearSignContextType.SAFE, ClearSignContextType.SIGNER],\n ),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, deviceModelId: DeviceModelId.STAX }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, deviceModelId: DeviceModelId.FLEX }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n });\n\n it(\"should return true for different chain IDs\", () => {\n expect(\n loader.canHandle({ ...validInput, chainId: 1 }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, chainId: 137 }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, chainId: 10 }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n });\n });\n\n describe(\"load function\", () => {\n const input: SafeAddressContextInput = {\n safeContractAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n deviceModelId: DeviceModelId.FLEX,\n challenge: \"0xabcdef\",\n };\n\n it(\"should return SAFE and SIGNER contexts with certificates\", async () => {\n // GIVEN\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(mockSafeAccountDataSource.getDescriptors).toHaveBeenCalledWith({\n safeContractAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"0xabcdef\",\n });\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenCalledTimes(2);\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenNthCalledWith(\n 1,\n {\n keyId: \"safe-key-id\",\n keyUsage: \"safe-key-usage\",\n targetDevice: DeviceModelId.FLEX,\n },\n );\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenNthCalledWith(\n 2,\n {\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n targetDevice: DeviceModelId.FLEX,\n },\n );\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"safe-descriptor-payload\",\n certificate: mockCertificate,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"signers-descriptor-payload\",\n certificate: mockCertificate,\n },\n ]);\n });\n\n it(\"should return SAFE and SIGNER contexts without certificates when loadCertificate returns undefined\", async () => {\n // GIVEN\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n vi.spyOn(mockPkiCertificateLoader, \"loadCertificate\").mockResolvedValue(\n undefined,\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"safe-descriptor-payload\",\n certificate: undefined,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"signers-descriptor-payload\",\n certificate: undefined,\n },\n ]);\n });\n\n it(\"should return ERROR context when data source returns Left\", async () => {\n // GIVEN\n const error = new Error(\"Failed to get safe account descriptors\");\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Left(error),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error,\n },\n ]);\n expect(mockPkiCertificateLoader.loadCertificate).not.toHaveBeenCalled();\n });\n\n it(\"should work with different device models\", async () => {\n // GIVEN\n const inputNanoS = { ...input, deviceModelId: DeviceModelId.NANO_S };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n const result = await loader.load(inputNanoS);\n\n // THEN\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenCalledWith(\n expect.objectContaining({\n targetDevice: DeviceModelId.NANO_S,\n }),\n );\n expect(result).toHaveLength(2);\n expect(result[0]?.type).toBe(ClearSignContextType.SAFE);\n expect(result[1]?.type).toBe(ClearSignContextType.SIGNER);\n });\n\n it(\"should work with different chain IDs\", async () => {\n // GIVEN\n const inputPolygon = { ...input, chainId: 137 };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n await loader.load(inputPolygon);\n\n // THEN\n expect(mockSafeAccountDataSource.getDescriptors).toHaveBeenCalledWith(\n expect.objectContaining({\n chainId: 137,\n }),\n );\n });\n\n it(\"should work with different safe addresses\", async () => {\n // GIVEN\n const differentInput = {\n ...input,\n safeContractAddress:\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\" as const,\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n await loader.load(differentInput);\n\n // THEN\n expect(mockSafeAccountDataSource.getDescriptors).toHaveBeenCalledWith(\n expect.objectContaining({\n safeContractAddress: \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\",\n }),\n );\n });\n\n it(\"should handle different certificate data for account and signers\", async () => {\n // GIVEN\n const accountCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([1, 2, 3]),\n };\n const signersCertificate: PkiCertificate = {\n keyUsageNumber: 2,\n payload: new Uint8Array([4, 5, 6]),\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n vi.spyOn(mockPkiCertificateLoader, \"loadCertificate\")\n .mockResolvedValueOnce(accountCertificate)\n .mockResolvedValueOnce(signersCertificate);\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"safe-descriptor-payload\",\n certificate: accountCertificate,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"signers-descriptor-payload\",\n certificate: signersCertificate,\n },\n ]);\n });\n\n it(\"should handle empty descriptor payloads\", async () => {\n // GIVEN\n const emptyResponse: GetSafeAccountResponse = {\n account: {\n signedDescriptor: \"\",\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n signers: {\n signedDescriptor: \"\",\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(emptyResponse),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"\",\n certificate: mockCertificate,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"\",\n certificate: mockCertificate,\n },\n ]);\n });\n\n it(\"should handle long descriptor payloads\", async () => {\n // GIVEN\n const longPayload = \"a\".repeat(1000);\n const longResponse: GetSafeAccountResponse = {\n account: {\n signedDescriptor: longPayload,\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n signers: {\n signedDescriptor: longPayload,\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(longResponse),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect((result[0] as ClearSignContextSuccess).payload).toBe(longPayload);\n expect((result[1] as ClearSignContextSuccess).payload).toBe(longPayload);\n });\n\n it(\"should handle data source errors gracefully\", async () => {\n // GIVEN\n const error = new Error(\"Network error\");\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Left(error),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"Network error\"),\n },\n ]);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["DeviceModelId", "Left", "Right", "SafeAddressLoader", "ClearSignContextType", "mockSafeAccountDataSource", "mockPkiCertificateLoader", "loader", "mockCertificate", "mockSafeAccountResponse", "validInput", "input", "_description", "result", "error", "inputNanoS", "inputPolygon", "differentInput", "accountCertificate", "signersCertificate", "emptyResponse", "longPayload", "longResponse"]
7
+ }
@@ -1,2 +1,2 @@
1
- var r=(e=>(e.TOKEN="token",e.NFT="nft",e.TRUSTED_NAME="trustedName",e.PLUGIN="plugin",e.EXTERNAL_PLUGIN="externalPlugin",e.TRANSACTION_INFO="transactionInfo",e.PROXY_INFO="proxyInfo",e.ENUM="enum",e.TRANSACTION_FIELD_DESCRIPTION="transactionFieldDescription",e.WEB3_CHECK="web3Check",e.DYNAMIC_NETWORK="dynamicNetwork",e.DYNAMIC_NETWORK_ICON="dynamicNetworkIcon",e.ERROR="error",e))(r||{}),n=(t=>(t.TOKEN="token",t.NFT="nft",t.TRUSTED_NAME="trustedName",t.ENUM="enum",t.CALLDATA="calldata",t))(n||{});export{n as ClearSignContextReferenceType,r as ClearSignContextType};
1
+ var r=(e=>(e.TOKEN="token",e.NFT="nft",e.TRUSTED_NAME="trustedName",e.PLUGIN="plugin",e.EXTERNAL_PLUGIN="externalPlugin",e.TRANSACTION_INFO="transactionInfo",e.PROXY_INFO="proxyInfo",e.ENUM="enum",e.TRANSACTION_FIELD_DESCRIPTION="transactionFieldDescription",e.WEB3_CHECK="web3Check",e.DYNAMIC_NETWORK="dynamicNetwork",e.DYNAMIC_NETWORK_ICON="dynamicNetworkIcon",e.ERROR="error",e.SAFE="safe",e.SIGNER="signer",e))(r||{}),n=(t=>(t.TOKEN="token",t.NFT="nft",t.TRUSTED_NAME="trustedName",t.ENUM="enum",t.CALLDATA="calldata",t))(n||{});export{n as ClearSignContextReferenceType,r as ClearSignContextType};
2
2
  //# sourceMappingURL=ClearSignContext.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/model/ClearSignContext.ts"],
4
- "sourcesContent": ["import { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nimport { type GenericPath } from \"./GenericPath\";\n\nexport enum ClearSignContextType {\n TOKEN = \"token\",\n NFT = \"nft\",\n TRUSTED_NAME = \"trustedName\",\n PLUGIN = \"plugin\",\n EXTERNAL_PLUGIN = \"externalPlugin\",\n TRANSACTION_INFO = \"transactionInfo\",\n PROXY_INFO = \"proxyInfo\",\n ENUM = \"enum\",\n TRANSACTION_FIELD_DESCRIPTION = \"transactionFieldDescription\",\n WEB3_CHECK = \"web3Check\",\n DYNAMIC_NETWORK = \"dynamicNetwork\",\n DYNAMIC_NETWORK_ICON = \"dynamicNetworkIcon\",\n ERROR = \"error\",\n}\n\nexport enum ClearSignContextReferenceType {\n TOKEN = ClearSignContextType.TOKEN,\n NFT = ClearSignContextType.NFT,\n TRUSTED_NAME = ClearSignContextType.TRUSTED_NAME,\n ENUM = ClearSignContextType.ENUM,\n CALLDATA = \"calldata\",\n}\n\nexport type ClearSignContextReference<\n Type extends ClearSignContextReferenceType = ClearSignContextReferenceType,\n> = Type extends ClearSignContextReferenceType.ENUM\n ? {\n type: ClearSignContextReferenceType.ENUM;\n valuePath: GenericPath;\n id: number; // enum id to reference\n }\n : Type extends ClearSignContextReferenceType.TRUSTED_NAME\n ? {\n type: ClearSignContextReferenceType.TRUSTED_NAME;\n valuePath: GenericPath;\n types: string[];\n sources: string[];\n }\n : Type extends ClearSignContextReferenceType.CALLDATA\n ? {\n type: ClearSignContextReferenceType.CALLDATA;\n callee: GenericPath;\n valuePath: GenericPath;\n selector?: GenericPath;\n amount?: GenericPath;\n spender?: GenericPath;\n chainId?: GenericPath;\n }\n :\n | {\n type: Type;\n valuePath: GenericPath;\n value?: never;\n }\n | {\n type: Type;\n valuePath?: never;\n value: string;\n };\n\nexport type ClearSignContextSuccessType = Exclude<\n ClearSignContextType,\n ClearSignContextType.ERROR\n>;\n\nexport type ClearSignContextSuccess<\n T extends Exclude<\n ClearSignContextType,\n ClearSignContextType.ERROR\n > = ClearSignContextSuccessType,\n> = T extends ClearSignContextType.ENUM\n ? {\n type: ClearSignContextType.ENUM;\n id: number;\n payload: string;\n value: number;\n certificate?: PkiCertificate;\n }\n : T extends ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION\n ? {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION;\n payload: string;\n reference?: ClearSignContextReference;\n certificate?: PkiCertificate;\n }\n : {\n type: T;\n payload: string;\n certificate?: PkiCertificate;\n };\n\nexport type ClearSignContextError = {\n type: ClearSignContextType.ERROR;\n error: Error;\n};\n\nexport type ClearSignContext = ClearSignContextSuccess | ClearSignContextError;\n"],
5
- "mappings": "AAIO,IAAKA,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,OAAS,SACTA,EAAA,gBAAkB,iBAClBA,EAAA,iBAAmB,kBACnBA,EAAA,WAAa,YACbA,EAAA,KAAO,OACPA,EAAA,8BAAgC,8BAChCA,EAAA,WAAa,YACbA,EAAA,gBAAkB,iBAClBA,EAAA,qBAAuB,qBACvBA,EAAA,MAAQ,QAbEA,OAAA,IAgBAC,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,KAAO,OACPA,EAAA,SAAW,WALDA,OAAA",
4
+ "sourcesContent": ["import { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nimport { type GenericPath } from \"./GenericPath\";\n\nexport enum ClearSignContextType {\n TOKEN = \"token\",\n NFT = \"nft\",\n TRUSTED_NAME = \"trustedName\",\n PLUGIN = \"plugin\",\n EXTERNAL_PLUGIN = \"externalPlugin\",\n TRANSACTION_INFO = \"transactionInfo\",\n PROXY_INFO = \"proxyInfo\",\n ENUM = \"enum\",\n TRANSACTION_FIELD_DESCRIPTION = \"transactionFieldDescription\",\n WEB3_CHECK = \"web3Check\",\n DYNAMIC_NETWORK = \"dynamicNetwork\",\n DYNAMIC_NETWORK_ICON = \"dynamicNetworkIcon\",\n ERROR = \"error\",\n SAFE = \"safe\",\n SIGNER = \"signer\",\n}\n\nexport enum ClearSignContextReferenceType {\n TOKEN = ClearSignContextType.TOKEN,\n NFT = ClearSignContextType.NFT,\n TRUSTED_NAME = ClearSignContextType.TRUSTED_NAME,\n ENUM = ClearSignContextType.ENUM,\n CALLDATA = \"calldata\",\n}\n\nexport type ClearSignContextReference<\n Type extends ClearSignContextReferenceType = ClearSignContextReferenceType,\n> = Type extends ClearSignContextReferenceType.ENUM\n ? {\n type: ClearSignContextReferenceType.ENUM;\n valuePath: GenericPath;\n id: number; // enum id to reference\n }\n : Type extends ClearSignContextReferenceType.TRUSTED_NAME\n ? {\n type: ClearSignContextReferenceType.TRUSTED_NAME;\n valuePath: GenericPath;\n types: string[];\n sources: string[];\n }\n : Type extends ClearSignContextReferenceType.CALLDATA\n ? {\n type: ClearSignContextReferenceType.CALLDATA;\n callee: GenericPath;\n valuePath: GenericPath;\n selector?: GenericPath;\n amount?: GenericPath;\n spender?: GenericPath;\n chainId?: GenericPath;\n }\n :\n | {\n type: Type;\n valuePath: GenericPath;\n value?: never;\n }\n | {\n type: Type;\n valuePath?: never;\n value: string;\n };\n\nexport type ClearSignContextSuccessType = Exclude<\n ClearSignContextType,\n ClearSignContextType.ERROR\n>;\n\nexport type ClearSignContextSuccess<\n T extends Exclude<\n ClearSignContextType,\n ClearSignContextType.ERROR\n > = ClearSignContextSuccessType,\n> = T extends ClearSignContextType.ENUM\n ? {\n type: ClearSignContextType.ENUM;\n id: number;\n payload: string;\n value: number;\n certificate?: PkiCertificate;\n }\n : T extends ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION\n ? {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION;\n payload: string;\n reference?: ClearSignContextReference;\n certificate?: PkiCertificate;\n }\n : {\n type: T;\n payload: string;\n certificate?: PkiCertificate;\n };\n\nexport type ClearSignContextError = {\n type: ClearSignContextType.ERROR;\n error: Error;\n};\n\nexport type ClearSignContext = ClearSignContextSuccess | ClearSignContextError;\n"],
5
+ "mappings": "AAIO,IAAKA,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,OAAS,SACTA,EAAA,gBAAkB,iBAClBA,EAAA,iBAAmB,kBACnBA,EAAA,WAAa,YACbA,EAAA,KAAO,OACPA,EAAA,8BAAgC,8BAChCA,EAAA,WAAa,YACbA,EAAA,gBAAkB,iBAClBA,EAAA,qBAAuB,qBACvBA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,OAAS,SAfCA,OAAA,IAkBAC,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,KAAO,OACPA,EAAA,SAAW,WALDA,OAAA",
6
6
  "names": ["ClearSignContextType", "ClearSignContextReferenceType"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{KeyUsage as e}from"../../pki/model/KeyUsage";class s{static keyUsageMap=new Map([[e.GenuineCheck,1],[e.ExchangePayload,2],[e.NftMeta,3],[e.TrustedName,4],[e.BackupProvider,5],[e.ProtectOrchestrator,6],[e.PluginMeta,7],[e.CoinMeta,8],[e.SeedIdAuth,9],[e.TxSimulationSigner,10],[e.Calldata,11],[e.Network,12]]);static mapKeyUsageForFirmware(a){return Object.values(e).includes(a)?this.keyUsageMap.get(a)??-1:-1}}export{s as KeyUsageMapper};
1
+ import{KeyUsage as e}from"../../pki/model/KeyUsage";class s{static keyUsageMap=new Map([[e.GenuineCheck,1],[e.ExchangePayload,2],[e.NftMeta,3],[e.TrustedName,4],[e.BackupProvider,5],[e.ProtectOrchestrator,6],[e.PluginMeta,7],[e.CoinMeta,8],[e.SeedIdAuth,9],[e.TxSimulationSigner,10],[e.Calldata,11],[e.Network,12],[e.LESMultisig,14]]);static mapKeyUsageForFirmware(a){return Object.values(e).includes(a)?this.keyUsageMap.get(a)??-1:-1}}export{s as KeyUsageMapper};
2
2
  //# sourceMappingURL=KeyUsageMapper.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/utils/KeyUsageMapper.ts"],
4
- "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\n\nexport class KeyUsageMapper {\n private static keyUsageMap = new Map<KeyUsage, number>([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n ]);\n\n static mapKeyUsageForFirmware(keyUsage: string): number {\n if (Object.values(KeyUsage).includes(keyUsage as KeyUsage)) {\n return this.keyUsageMap.get(keyUsage as KeyUsage) ?? -1;\n }\n return -1;\n }\n}\n"],
5
- "mappings": "AAAA,OAAS,YAAAA,MAAgB,uBAElB,MAAMC,CAAe,CAC1B,OAAe,YAAc,IAAI,IAAsB,CACrD,CAACD,EAAS,aAAc,CAAC,EACzB,CAACA,EAAS,gBAAiB,CAAC,EAC5B,CAACA,EAAS,QAAS,CAAC,EACpB,CAACA,EAAS,YAAa,CAAC,EACxB,CAACA,EAAS,eAAgB,CAAC,EAC3B,CAACA,EAAS,oBAAqB,CAAC,EAChC,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,SAAU,CAAC,EACrB,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,mBAAoB,EAAE,EAChC,CAACA,EAAS,SAAU,EAAE,EACtB,CAACA,EAAS,QAAS,EAAE,CACvB,CAAC,EAED,OAAO,uBAAuBE,EAA0B,CACtD,OAAI,OAAO,OAAOF,CAAQ,EAAE,SAASE,CAAoB,EAChD,KAAK,YAAY,IAAIA,CAAoB,GAAK,GAEhD,EACT,CACF",
4
+ "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\n\nexport class KeyUsageMapper {\n private static keyUsageMap = new Map<KeyUsage, number>([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n [KeyUsage.LESMultisig, 14],\n ]);\n\n static mapKeyUsageForFirmware(keyUsage: string): number {\n if (Object.values(KeyUsage).includes(keyUsage as KeyUsage)) {\n return this.keyUsageMap.get(keyUsage as KeyUsage) ?? -1;\n }\n return -1;\n }\n}\n"],
5
+ "mappings": "AAAA,OAAS,YAAAA,MAAgB,uBAElB,MAAMC,CAAe,CAC1B,OAAe,YAAc,IAAI,IAAsB,CACrD,CAACD,EAAS,aAAc,CAAC,EACzB,CAACA,EAAS,gBAAiB,CAAC,EAC5B,CAACA,EAAS,QAAS,CAAC,EACpB,CAACA,EAAS,YAAa,CAAC,EACxB,CAACA,EAAS,eAAgB,CAAC,EAC3B,CAACA,EAAS,oBAAqB,CAAC,EAChC,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,SAAU,CAAC,EACrB,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,mBAAoB,EAAE,EAChC,CAACA,EAAS,SAAU,EAAE,EACtB,CAACA,EAAS,QAAS,EAAE,EACrB,CAACA,EAAS,YAAa,EAAE,CAC3B,CAAC,EAED,OAAO,uBAAuBE,EAA0B,CACtD,OAAI,OAAO,OAAOF,CAAQ,EAAE,SAASE,CAAoB,EAChD,KAAK,YAAY,IAAIA,CAAoB,GAAK,GAEhD,EACT,CACF",
6
6
  "names": ["KeyUsage", "KeyUsageMapper", "keyUsage"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{KeyUsage as e}from"../../pki/model/KeyUsage";import{KeyUsageMapper as r}from"../../shared/utils/KeyUsageMapper";describe("KeyUsageMapper",()=>{describe("mapKeyUsageForFirmware",()=>{it.each([[e.GenuineCheck,1],[e.ExchangePayload,2],[e.NftMeta,3],[e.TrustedName,4],[e.BackupProvider,5],[e.ProtectOrchestrator,6],[e.PluginMeta,7],[e.CoinMeta,8],[e.SeedIdAuth,9],[e.TxSimulationSigner,10],[e.Calldata,11],[e.Network,12]])("should map key usage %s to %i",(a,t)=>{const o=r.mapKeyUsageForFirmware(a);expect(o).toEqual(t)}),it("should return -1 when key usage is not found",()=>{const a=r.mapKeyUsageForFirmware("unknown");expect(a).toEqual(-1)})})});
1
+ import{KeyUsage as e}from"../../pki/model/KeyUsage";import{KeyUsageMapper as r}from"../../shared/utils/KeyUsageMapper";describe("KeyUsageMapper",()=>{describe("mapKeyUsageForFirmware",()=>{it.each([[e.GenuineCheck,1],[e.ExchangePayload,2],[e.NftMeta,3],[e.TrustedName,4],[e.BackupProvider,5],[e.ProtectOrchestrator,6],[e.PluginMeta,7],[e.CoinMeta,8],[e.SeedIdAuth,9],[e.TxSimulationSigner,10],[e.Calldata,11],[e.Network,12],[e.LESMultisig,14]])("should map key usage %s to %i",(a,t)=>{const o=r.mapKeyUsageForFirmware(a);expect(o).toEqual(t)}),it("should return -1 when key usage is not found",()=>{const a=r.mapKeyUsageForFirmware("unknown");expect(a).toEqual(-1)})})});
2
2
  //# sourceMappingURL=KeyUsageMapper.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/utils/KeyUsageMapper.test.ts"],
4
- "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { KeyUsageMapper } from \"@/shared/utils/KeyUsageMapper\";\n\ndescribe(\"KeyUsageMapper\", () => {\n describe(\"mapKeyUsageForFirmware\", () => {\n it.each([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n ])(`should map key usage %s to %i`, (keyUsage, expected) => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(keyUsage);\n\n // THEN\n expect(result).toEqual(expected);\n });\n\n it(\"should return -1 when key usage is not found\", () => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(\n \"unknown\" as KeyUsage,\n );\n\n // THEN\n expect(result).toEqual(-1);\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,YAAAA,MAAgB,uBACzB,OAAS,kBAAAC,MAAsB,gCAE/B,SAAS,iBAAkB,IAAM,CAC/B,SAAS,yBAA0B,IAAM,CACvC,GAAG,KAAK,CACN,CAACD,EAAS,aAAc,CAAC,EACzB,CAACA,EAAS,gBAAiB,CAAC,EAC5B,CAACA,EAAS,QAAS,CAAC,EACpB,CAACA,EAAS,YAAa,CAAC,EACxB,CAACA,EAAS,eAAgB,CAAC,EAC3B,CAACA,EAAS,oBAAqB,CAAC,EAChC,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,SAAU,CAAC,EACrB,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,mBAAoB,EAAE,EAChC,CAACA,EAAS,SAAU,EAAE,EACtB,CAACA,EAAS,QAAS,EAAE,CACvB,CAAC,EAAE,gCAAiC,CAACE,EAAUC,IAAa,CAE1D,MAAMC,EAASH,EAAe,uBAAuBC,CAAQ,EAG7D,OAAOE,CAAM,EAAE,QAAQD,CAAQ,CACjC,CAAC,EAED,GAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAASH,EAAe,uBAC5B,SACF,EAGA,OAAOG,CAAM,EAAE,QAAQ,EAAE,CAC3B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { KeyUsageMapper } from \"@/shared/utils/KeyUsageMapper\";\n\ndescribe(\"KeyUsageMapper\", () => {\n describe(\"mapKeyUsageForFirmware\", () => {\n it.each([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n [KeyUsage.LESMultisig, 14],\n ])(`should map key usage %s to %i`, (keyUsage, expected) => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(keyUsage);\n\n // THEN\n expect(result).toEqual(expected);\n });\n\n it(\"should return -1 when key usage is not found\", () => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(\n \"unknown\" as KeyUsage,\n );\n\n // THEN\n expect(result).toEqual(-1);\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,YAAAA,MAAgB,uBACzB,OAAS,kBAAAC,MAAsB,gCAE/B,SAAS,iBAAkB,IAAM,CAC/B,SAAS,yBAA0B,IAAM,CACvC,GAAG,KAAK,CACN,CAACD,EAAS,aAAc,CAAC,EACzB,CAACA,EAAS,gBAAiB,CAAC,EAC5B,CAACA,EAAS,QAAS,CAAC,EACpB,CAACA,EAAS,YAAa,CAAC,EACxB,CAACA,EAAS,eAAgB,CAAC,EAC3B,CAACA,EAAS,oBAAqB,CAAC,EAChC,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,SAAU,CAAC,EACrB,CAACA,EAAS,WAAY,CAAC,EACvB,CAACA,EAAS,mBAAoB,EAAE,EAChC,CAACA,EAAS,SAAU,EAAE,EACtB,CAACA,EAAS,QAAS,EAAE,EACrB,CAACA,EAAS,YAAa,EAAE,CAC3B,CAAC,EAAE,gCAAiC,CAACE,EAAUC,IAAa,CAE1D,MAAMC,EAASH,EAAe,uBAAuBC,CAAQ,EAG7D,OAAOE,CAAM,EAAE,QAAQD,CAAQ,CACjC,CAAC,EAED,GAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAASH,EAAe,uBAC5B,SACF,EAGA,OAAOG,CAAM,EAAE,QAAQ,EAAE,CAC3B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["KeyUsage", "KeyUsageMapper", "keyUsage", "expected", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var c=(n,t,r,e)=>{for(var o=e>1?void 0:e?p(t,r):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(o=(e?a(t,r,o):a(o))||o);return e&&o&&d(t,r,o),o},f=(n,t)=>(r,e)=>t(r,e,n);import g from"axios";import{inject as l,injectable as u}from"inversify";import{Left as m,Right as h}from"purify-ts";import{configTypes as k}from"../../config/di/configTypes";import{LEDGER_CLIENT_VERSION_HEADER as E}from"../../shared/constant/HttpHeaders";import C from"../../../package.json";let s=class{constructor(t){this.config=t}async getTokenInfosPayload({chainId:t,address:r}){try{const o=(await g.request({method:"GET",url:`${this.config.cal.url}/tokens`,params:{contract_address:r,chain_id:t,output:"descriptor,ticker",ref:`branch:${this.config.cal.branch}`},headers:{[E]:`context-module/${C.version}`}})).data?.[0];if(!o||!o.ticker||!o.descriptor||!o.descriptor.data||!o.descriptor.signatures||typeof o.descriptor.signatures[this.config.cal.mode]!="string")return m(new Error(`[ContextModule] HttpTokenDataSource: no token metadata for address ${r} on chain ${t}`));const i=o.ticker.length.toString(16).padStart(2,"0");return h([i,o.descriptor.data,o.descriptor.signatures[this.config.cal.mode]].join(""))}catch{return m(new Error("[ContextModule] HttpTokenDataSource: Failed to fetch token informations"))}}};s=c([u(),f(0,l(k.Config))],s);export{s as HttpTokenDataSource};
1
+ var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var c=(n,t,r,e)=>{for(var o=e>1?void 0:e?p(t,r):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(o=(e?a(t,r,o):a(o))||o);return e&&o&&d(t,r,o),o},f=(n,t)=>(r,e)=>t(r,e,n);import g from"axios";import{inject as l,injectable as u}from"inversify";import{Left as m,Right as h}from"purify-ts";import{configTypes as E}from"../../config/di/configTypes";import{LEDGER_CLIENT_VERSION_HEADER as k}from"../../shared/constant/HttpHeaders";import C from"../../../package.json";let s=class{constructor(t){this.config=t}async getTokenInfosPayload({chainId:t,address:r}){try{const o=(await g.request({method:"GET",url:`${this.config.cal.url}/tokens`,params:{contract_address:r,chain_id:t,output:"descriptor",ref:`branch:${this.config.cal.branch}`},headers:{[k]:`context-module/${C.version}`}})).data?.[0];if(!o||!o.descriptor||!o.descriptor.data||!o.descriptor.signatures||typeof o.descriptor.signatures[this.config.cal.mode]!="string")return m(new Error(`[ContextModule] HttpTokenDataSource: no token metadata for address ${r} on chain ${t}`));const i=(o.descriptor.data.length/2-20-4-4).toString(16).padStart(2,"0");return h([i,o.descriptor.data,o.descriptor.signatures[this.config.cal.mode]].join(""))}catch{return m(new Error("[ContextModule] HttpTokenDataSource: Failed to fetch token informations"))}}};s=c([u(),f(0,l(E.Config))],s);export{s as HttpTokenDataSource};
2
2
  //# sourceMappingURL=HttpTokenDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/token/data/HttpTokenDataSource.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type { ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { GetTokenInfosParams, TokenDataSource } from \"./TokenDataSource\";\nimport { TokenDto } from \"./TokenDto\";\n\n@injectable()\nexport class HttpTokenDataSource implements TokenDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n public async getTokenInfosPayload({\n chainId,\n address,\n }: GetTokenInfosParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<TokenDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/tokens`,\n params: {\n contract_address: address,\n chain_id: chainId,\n output: \"descriptor,ticker\",\n ref: `branch:${this.config.cal.branch}`,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n });\n const tokenInfos = response.data?.[0];\n\n if (\n !tokenInfos ||\n !tokenInfos.ticker ||\n !tokenInfos.descriptor ||\n !tokenInfos.descriptor.data ||\n !tokenInfos.descriptor.signatures ||\n typeof tokenInfos.descriptor.signatures[this.config.cal.mode] !==\n \"string\"\n ) {\n return Left(\n new Error(\n `[ContextModule] HttpTokenDataSource: no token metadata for address ${address} on chain ${chainId}`,\n ),\n );\n }\n\n // 1 byte for the length of the ticker\n const tickerLengthBuff = tokenInfos.ticker.length\n .toString(16)\n .padStart(2, \"0\");\n\n return Right(\n [\n tickerLengthBuff,\n tokenInfos.descriptor.data,\n tokenInfos.descriptor.signatures[this.config.cal.mode],\n ].join(\"\"),\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: Failed to fetch token informations\",\n ),\n );\n }\n }\n}\n"],
5
- "mappings": "iOAAA,OAAOA,MAAW,QAClB,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,MAAa,YAEpC,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,gCAAAC,MAAoC,gCAC7C,OAAOC,MAAa,qBAMb,IAAMC,EAAN,KAAqD,CAC1D,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CACH,MAAa,qBAAqB,CAChC,QAAAC,EACA,QAAAC,CACF,EAAwD,CACtD,GAAI,CAcF,MAAMC,GAbW,MAAMC,EAAM,QAAoB,CAC/C,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,UAC3B,OAAQ,CACN,iBAAkBF,EAClB,SAAUD,EACV,OAAQ,oBACR,IAAK,UAAU,KAAK,OAAO,IAAI,MAAM,EACvC,EACA,QAAS,CACP,CAACI,CAA4B,EAAG,kBAAkBC,EAAQ,OAAO,EACnE,CACF,CAAC,GAC2B,OAAO,CAAC,EAEpC,GACE,CAACH,GACD,CAACA,EAAW,QACZ,CAACA,EAAW,YACZ,CAACA,EAAW,WAAW,MACvB,CAACA,EAAW,WAAW,YACvB,OAAOA,EAAW,WAAW,WAAW,KAAK,OAAO,IAAI,IAAI,GAC1D,SAEF,OAAOI,EACL,IAAI,MACF,sEAAsEL,CAAO,aAAaD,CAAO,EACnG,CACF,EAIF,MAAMO,EAAmBL,EAAW,OAAO,OACxC,SAAS,EAAE,EACX,SAAS,EAAG,GAAG,EAElB,OAAOM,EACL,CACED,EACAL,EAAW,WAAW,KACtBA,EAAW,WAAW,WAAW,KAAK,OAAO,IAAI,IAAI,CACvD,EAAE,KAAK,EAAE,CACX,CACF,MAAiB,CACf,OAAOI,EACL,IAAI,MACF,yEACF,CACF,CACF,CACF,CACF,EA5DaR,EAANW,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAY,MAAM,IAFjBf",
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type { ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { GetTokenInfosParams, TokenDataSource } from \"./TokenDataSource\";\nimport { TokenDto } from \"./TokenDto\";\n\n@injectable()\nexport class HttpTokenDataSource implements TokenDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n public async getTokenInfosPayload({\n chainId,\n address,\n }: GetTokenInfosParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<TokenDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/tokens`,\n params: {\n contract_address: address,\n chain_id: chainId,\n output: \"descriptor\",\n ref: `branch:${this.config.cal.branch}`,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n });\n const tokenInfos = response.data?.[0];\n\n if (\n !tokenInfos ||\n !tokenInfos.descriptor ||\n !tokenInfos.descriptor.data ||\n !tokenInfos.descriptor.signatures ||\n typeof tokenInfos.descriptor.signatures[this.config.cal.mode] !==\n \"string\"\n ) {\n return Left(\n new Error(\n `[ContextModule] HttpTokenDataSource: no token metadata for address ${address} on chain ${chainId}`,\n ),\n );\n }\n\n // According to documentation: https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#provide-erc-20-token-information\n // Signed descriptor is composed of:\n // ticker || address (20 bytes) || number of decimals (4 bytes) || chainId (4 bytes)\n const tickerLengthBuff = (\n tokenInfos.descriptor.data.length / 2 -\n 20 -\n 4 -\n 4\n )\n .toString(16)\n .padStart(2, \"0\");\n\n return Right(\n [\n tickerLengthBuff,\n tokenInfos.descriptor.data,\n tokenInfos.descriptor.signatures[this.config.cal.mode],\n ].join(\"\"),\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: Failed to fetch token informations\",\n ),\n );\n }\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAOA,MAAW,QAClB,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,MAAa,YAEpC,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,gCAAAC,MAAoC,gCAC7C,OAAOC,MAAa,qBAMb,IAAMC,EAAN,KAAqD,CAC1D,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CACH,MAAa,qBAAqB,CAChC,QAAAC,EACA,QAAAC,CACF,EAAwD,CACtD,GAAI,CAcF,MAAMC,GAbW,MAAMC,EAAM,QAAoB,CAC/C,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,UAC3B,OAAQ,CACN,iBAAkBF,EAClB,SAAUD,EACV,OAAQ,aACR,IAAK,UAAU,KAAK,OAAO,IAAI,MAAM,EACvC,EACA,QAAS,CACP,CAACI,CAA4B,EAAG,kBAAkBC,EAAQ,OAAO,EACnE,CACF,CAAC,GAC2B,OAAO,CAAC,EAEpC,GACE,CAACH,GACD,CAACA,EAAW,YACZ,CAACA,EAAW,WAAW,MACvB,CAACA,EAAW,WAAW,YACvB,OAAOA,EAAW,WAAW,WAAW,KAAK,OAAO,IAAI,IAAI,GAC1D,SAEF,OAAOI,EACL,IAAI,MACF,sEAAsEL,CAAO,aAAaD,CAAO,EACnG,CACF,EAMF,MAAMO,GACJL,EAAW,WAAW,KAAK,OAAS,EACpC,GACA,EACA,GAEC,SAAS,EAAE,EACX,SAAS,EAAG,GAAG,EAElB,OAAOM,EACL,CACED,EACAL,EAAW,WAAW,KACtBA,EAAW,WAAW,WAAW,KAAK,OAAO,IAAI,IAAI,CACvD,EAAE,KAAK,EAAE,CACX,CACF,MAAiB,CACf,OAAOI,EACL,IAAI,MACF,yEACF,CACF,CACF,CACF,CACF,EAlEaR,EAANW,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAY,MAAM,IAFjBf",
6
6
  "names": ["axios", "inject", "injectable", "Left", "Right", "configTypes", "LEDGER_CLIENT_VERSION_HEADER", "PACKAGE", "HttpTokenDataSource", "config", "chainId", "address", "tokenInfos", "axios", "LEDGER_CLIENT_VERSION_HEADER", "PACKAGE", "Left", "tickerLengthBuff", "Right", "__decorateClass", "injectable", "__decorateParam", "inject", "configTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import o from"axios";import{Left as n}from"purify-ts";import{LEDGER_CLIENT_VERSION_HEADER as r}from"../../shared/constant/HttpHeaders";import{HttpTokenDataSource as s}from"../../token/data/HttpTokenDataSource";import d from"../../../package.json";vi.mock("axios");describe("HttpTokenDataSource",()=>{let t;beforeAll(()=>{const e={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",mode:"prod",branch:"main"}};t=new s(e),vi.clearAllMocks()}),it("should call axios with the ledger client version header",async()=>{const e=`context-module/${d.version}`,a=vi.fn(()=>Promise.resolve({data:[]}));vi.spyOn(o,"request").mockImplementation(a),await t.getTokenInfosPayload({address:"0x00",chainId:1}),expect(a).toHaveBeenCalledWith(expect.objectContaining({headers:{[r]:e}}))}),it("should return a string when axios response is correct",async()=>{const e={ticker:"USDC",descriptor:{data:"55534443000000000800000001",signatures:{prod:"0123"}}};vi.spyOn(o,"request").mockResolvedValue({data:[e]});const a=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(a.extract()).toEqual("04555344430000000008000000010123")}),it("should return an error when data is empty",async()=>{vi.spyOn(o,"request").mockResolvedValue({data:void 0});const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1")))}),it("should return undefined when no signature",async()=>{vi.spyOn(o,"request").mockResolvedValue({data:[{}]});const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1")))}),it("should return undefined when no ticker",async()=>{const e={ticker:"USDC",descriptor:{data:"55534443000000000800000001",signatures:{test:"0123"}}};vi.spyOn(o,"request").mockResolvedValue({data:[e]});const a=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(a).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1")))}),it("should return undefined when no decimals",async()=>{vi.spyOn(o,"request").mockResolvedValue({data:[{live_signature:"0x0",ticker:"USDC"}]});const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1")))}),it("should return an error when axios throws an error",async()=>{vi.spyOn(o,"request").mockRejectedValue(new Error);const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: Failed to fetch token informations")))})});
1
+ import o from"axios";import{Left as n}from"purify-ts";import{LEDGER_CLIENT_VERSION_HEADER as r}from"../../shared/constant/HttpHeaders";import{HttpTokenDataSource as s}from"../../token/data/HttpTokenDataSource";import c from"../../../package.json";vi.mock("axios");describe("HttpTokenDataSource",()=>{let t;beforeAll(()=>{const e={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",mode:"prod",branch:"main"}};t=new s(e),vi.clearAllMocks()}),it("should call axios with the ledger client version header",async()=>{const e=`context-module/${c.version}`,a=vi.fn(()=>Promise.resolve({data:[]}));vi.spyOn(o,"request").mockImplementation(a),await t.getTokenInfosPayload({address:"0x00",chainId:1}),expect(a).toHaveBeenCalledWith(expect.objectContaining({headers:{[r]:e}}))}),it("should return a string when axios response is correct",async()=>{const e={ticker:"USDC",descriptor:{data:"555344433c499c542cef5e3811e1192ce70d8cc03d5c33590000000600000089",signatures:{prod:"0123"}}};vi.spyOn(o,"request").mockResolvedValue({data:[e]});const a=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(a.extract()).toEqual("04555344433c499c542cef5e3811e1192ce70d8cc03d5c335900000006000000890123")}),it("should return a string when axios response is correct with a prefixed ticker",async()=>{const e={ticker:"tUSDC",descriptor:{data:"7474555344431c7d4b196cb0c7b01d743fbc6116a902379c72380000000600aa36a7",signatures:{prod:"0123"}}};vi.spyOn(o,"request").mockResolvedValue({data:[e]});const a=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(a.extract()).toEqual("067474555344431c7d4b196cb0c7b01d743fbc6116a902379c72380000000600aa36a70123")}),it("should return an error when data is empty",async()=>{vi.spyOn(o,"request").mockResolvedValue({data:void 0});const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1")))}),it("should return undefined when no signature",async()=>{vi.spyOn(o,"request").mockResolvedValue({data:[{}]});const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1")))}),it("should return undefined when no decimals",async()=>{vi.spyOn(o,"request").mockResolvedValue({data:[{live_signature:"0x0",ticker:"USDC"}]});const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1")))}),it("should return an error when axios throws an error",async()=>{vi.spyOn(o,"request").mockRejectedValue(new Error);const e=await t.getTokenInfosPayload({address:"0x00",chainId:1});expect(e).toEqual(n(new Error("[ContextModule] HttpTokenDataSource: Failed to fetch token informations")))})});
2
2
  //# sourceMappingURL=HttpTokenDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/token/data/HttpTokenDataSource.test.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { Left } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport { HttpTokenDataSource } from \"@/token/data/HttpTokenDataSource\";\nimport { type TokenDataSource } from \"@/token/data/TokenDataSource\";\nimport { type TokenDto } from \"@/token/data/TokenDto\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpTokenDataSource\", () => {\n let datasource: TokenDataSource;\n\n beforeAll(() => {\n const config = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n } as ContextModuleConfig;\n datasource = new HttpTokenDataSource(config);\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getTokenInfosPayload({ address: \"0x00\", chainId: 1 });\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: { [LEDGER_CLIENT_VERSION_HEADER]: version },\n }),\n );\n });\n\n it(\"should return a string when axios response is correct\", async () => {\n // GIVEN\n const tokenDTO: TokenDto = {\n ticker: \"USDC\",\n descriptor: {\n data: \"55534443000000000800000001\",\n signatures: {\n prod: \"0123\",\n },\n },\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [tokenDTO] });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result.extract()).toEqual(\"04555344430000000008000000010123\");\n });\n\n it(\"should return an error when data is empty\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1\",\n ),\n ),\n );\n });\n\n it(\"should return undefined when no signature\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [{}] });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1\",\n ),\n ),\n );\n });\n\n it(\"should return undefined when no ticker\", async () => {\n // GIVEN\n const tokenDTO: TokenDto = {\n ticker: \"USDC\",\n descriptor: {\n data: \"55534443000000000800000001\",\n signatures: {\n test: \"0123\",\n },\n },\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [tokenDTO] });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1\",\n ),\n ),\n );\n });\n\n it(\"should return undefined when no decimals\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({\n data: [{ live_signature: \"0x0\", ticker: \"USDC\" }],\n });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1\",\n ),\n ),\n );\n });\n\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error());\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: Failed to fetch token informations\",\n ),\n ),\n );\n });\n});\n"],
5
- "mappings": "AAAA,OAAOA,MAAW,QAClB,OAAS,QAAAC,MAAY,YAGrB,OAAS,gCAAAC,MAAoC,gCAC7C,OAAS,uBAAAC,MAA2B,mCAGpC,OAAOC,MAAa,qBAEpB,GAAG,KAAK,OAAO,EAEf,SAAS,sBAAuB,IAAM,CACpC,IAAIC,EAEJ,UAAU,IAAM,CACd,MAAMC,EAAS,CACb,IAAK,CACH,IAAK,kDACL,KAAM,OACN,OAAQ,MACV,CACF,EACAD,EAAa,IAAIF,EAAoBG,CAAM,EAC3C,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAMC,EAAU,kBAAkBH,EAAQ,OAAO,GAC3CI,EAAa,GAAG,GAAG,IAAM,QAAQ,QAAQ,CAAE,KAAM,CAAC,CAAE,CAAC,CAAC,EAC5D,GAAG,MAAMR,EAAO,SAAS,EAAE,mBAAmBQ,CAAU,EAGxD,MAAMH,EAAW,qBAAqB,CAAE,QAAS,OAAQ,QAAS,CAAE,CAAC,EAGrE,OAAOG,CAAU,EAAE,qBACjB,OAAO,iBAAiB,CACtB,QAAS,CAAE,CAACN,CAA4B,EAAGK,CAAQ,CACrD,CAAC,CACH,CACF,CAAC,EAED,GAAG,wDAAyD,SAAY,CAEtE,MAAME,EAAqB,CACzB,OAAQ,OACR,WAAY,CACV,KAAM,6BACN,WAAY,CACV,KAAM,MACR,CACF,CACF,EACA,GAAG,MAAMT,EAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,CAACS,CAAQ,CAAE,CAAC,EAGjE,MAAMC,EAAS,MAAML,EAAW,qBAAqB,CACnD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,EAAO,QAAQ,CAAC,EAAE,QAAQ,kCAAkC,CACrE,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,GAAG,MAAMV,EAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,MAAU,CAAC,EAGhE,MAAMU,EAAS,MAAML,EAAW,qBAAqB,CACnD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,CAAM,EAAE,QACbT,EACE,IAAI,MACF,oFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,GAAG,MAAMD,EAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,CAAC,CAAC,CAAC,CAAE,CAAC,EAG3D,MAAMU,EAAS,MAAML,EAAW,qBAAqB,CACnD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,CAAM,EAAE,QACbT,EACE,IAAI,MACF,oFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,yCAA0C,SAAY,CAEvD,MAAMQ,EAAqB,CACzB,OAAQ,OACR,WAAY,CACV,KAAM,6BACN,WAAY,CACV,KAAM,MACR,CACF,CACF,EACA,GAAG,MAAMT,EAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,CAACS,CAAQ,CAAE,CAAC,EAGjE,MAAMC,EAAS,MAAML,EAAW,qBAAqB,CACnD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,CAAM,EAAE,QACbT,EACE,IAAI,MACF,oFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,2CAA4C,SAAY,CAEzD,GAAG,MAAMD,EAAO,SAAS,EAAE,kBAAkB,CAC3C,KAAM,CAAC,CAAE,eAAgB,MAAO,OAAQ,MAAO,CAAC,CAClD,CAAC,EAGD,MAAMU,EAAS,MAAML,EAAW,qBAAqB,CACnD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,CAAM,EAAE,QACbT,EACE,IAAI,MACF,oFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,GAAG,MAAMD,EAAO,SAAS,EAAE,kBAAkB,IAAI,KAAO,EAGxD,MAAMU,EAAS,MAAML,EAAW,qBAAqB,CACnD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,CAAM,EAAE,QACbT,EACE,IAAI,MACF,yEACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { Left } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport { HttpTokenDataSource } from \"@/token/data/HttpTokenDataSource\";\nimport { type TokenDataSource } from \"@/token/data/TokenDataSource\";\nimport { type TokenDto } from \"@/token/data/TokenDto\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpTokenDataSource\", () => {\n let datasource: TokenDataSource;\n\n beforeAll(() => {\n const config = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n } as ContextModuleConfig;\n datasource = new HttpTokenDataSource(config);\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getTokenInfosPayload({ address: \"0x00\", chainId: 1 });\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: { [LEDGER_CLIENT_VERSION_HEADER]: version },\n }),\n );\n });\n\n it(\"should return a string when axios response is correct\", async () => {\n // GIVEN\n const tokenDTO: TokenDto = {\n ticker: \"USDC\",\n descriptor: {\n data: \"555344433c499c542cef5e3811e1192ce70d8cc03d5c33590000000600000089\",\n signatures: {\n prod: \"0123\",\n },\n },\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [tokenDTO] });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result.extract()).toEqual(\n \"04555344433c499c542cef5e3811e1192ce70d8cc03d5c335900000006000000890123\",\n );\n });\n\n it(\"should return a string when axios response is correct with a prefixed ticker\", async () => {\n // GIVEN\n const tokenDTO: TokenDto = {\n ticker: \"tUSDC\",\n descriptor: {\n data: \"7474555344431c7d4b196cb0c7b01d743fbc6116a902379c72380000000600aa36a7\",\n signatures: {\n prod: \"0123\",\n },\n },\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [tokenDTO] });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result.extract()).toEqual(\n \"067474555344431c7d4b196cb0c7b01d743fbc6116a902379c72380000000600aa36a70123\",\n );\n });\n\n it(\"should return an error when data is empty\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1\",\n ),\n ),\n );\n });\n\n it(\"should return undefined when no signature\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [{}] });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1\",\n ),\n ),\n );\n });\n\n it(\"should return undefined when no decimals\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({\n data: [{ live_signature: \"0x0\", ticker: \"USDC\" }],\n });\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: no token metadata for address 0x00 on chain 1\",\n ),\n ),\n );\n });\n\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error());\n\n // WHEN\n const result = await datasource.getTokenInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTokenDataSource: Failed to fetch token informations\",\n ),\n ),\n );\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["axios", "Left", "LEDGER_CLIENT_VERSION_HEADER", "HttpTokenDataSource", "PACKAGE", "datasource", "config", "version", "requestSpy", "tokenDTO", "result"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultContextModule.d.ts","sourceRoot":"","sources":["../../../src/DefaultContextModule.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAM9E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAGxF,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAMzF,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAgC;gBAEzC,IAAI,EAAE,mBAAmB;IAkBrC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,gBAAgB;IAiBX,WAAW,CACtB,KAAK,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,oBAAoB,EAAE,GACrC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAUjB,eAAe,CAAC,MAAM,EACjC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,gBAAgB,CAAC;IA4Bf,mBAAmB,CAC9B,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,yBAAyB,CAAC;IAIxB,aAAa,CACxB,kBAAkB,EAAE,gBAAgB,GACnC,OAAO,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAa9D,gBAAgB,CAC3B,kBAAkB,EAAE,wBAAwB,GAC3C,OAAO,CAAC,8BAA8B,CAAC;CAG3C"}
1
+ {"version":3,"file":"DefaultContextModule.d.ts","sourceRoot":"","sources":["../../../src/DefaultContextModule.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAO9E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAGxF,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAMzF,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAgC;gBAEzC,IAAI,EAAE,mBAAmB;IAkBrC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,gBAAgB;IAiBX,WAAW,CACtB,KAAK,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,oBAAoB,EAAE,GACrC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAUjB,eAAe,CAAC,MAAM,EACjC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,gBAAgB,CAAC;IA4Bf,mBAAmB,CAC9B,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,yBAAyB,CAAC;IAIxB,aAAa,CACxB,kBAAkB,EAAE,gBAAgB,GACnC,OAAO,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAa9D,gBAAgB,CAC3B,kBAAkB,EAAE,wBAAwB,GAC3C,OAAO,CAAC,8BAA8B,CAAC;CAG3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../src/di.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAa9E,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,YAAY,iBAAiB,cAoB1D,CAAC"}
1
+ {"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../src/di.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAc9E,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,YAAY,iBAAiB,cAqB1D,CAAC"}
@@ -10,6 +10,7 @@ export declare enum KeyUsage {
10
10
  SeedIdAuth = "seed_id_auth",
11
11
  TxSimulationSigner = "tx_simu_signer",
12
12
  Calldata = "calldata",
13
- Network = "network"
13
+ Network = "network",
14
+ LESMultisig = "les_multisig"
14
15
  }
15
16
  //# sourceMappingURL=KeyUsage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyUsage.d.ts","sourceRoot":"","sources":["../../../../../src/pki/model/KeyUsage.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,YAAY,kBAAkB;IAC9B,eAAe,qBAAqB;IACpC,OAAO,aAAa;IACpB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,mBAAmB,yBAAyB;IAC5C,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;IACtB,UAAU,iBAAiB;IAC3B,kBAAkB,mBAAmB;IACrC,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB"}
1
+ {"version":3,"file":"KeyUsage.d.ts","sourceRoot":"","sources":["../../../../../src/pki/model/KeyUsage.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,YAAY,kBAAkB;IAC9B,eAAe,qBAAqB;IACpC,OAAO,aAAa;IACpB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,mBAAmB,yBAAyB;IAC5C,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;IACtB,UAAU,iBAAiB;IAC3B,kBAAkB,mBAAmB;IACrC,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,WAAW,iBAAiB;CAC7B"}
@@ -0,0 +1,11 @@
1
+ import { type Either } from "purify-ts";
2
+ import { type ContextModuleConfig } from "../../config/model/ContextModuleConfig";
3
+ import { type GetSafeAccountParams, type GetSafeAccountResponse, type SafeAccountDataSource } from "./SafeAccountDataSource";
4
+ export declare class HttpSafeAccountDataSource implements SafeAccountDataSource {
5
+ private readonly config;
6
+ constructor(config: ContextModuleConfig);
7
+ getDescriptors({ safeContractAddress, chainId, challenge, }: GetSafeAccountParams): Promise<Either<Error, GetSafeAccountResponse>>;
8
+ private isSafeAccountDto;
9
+ private isSafeDescriptorDto;
10
+ }
11
+ //# sourceMappingURL=HttpSafeAccountDataSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpSafeAccountDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/safe/data/HttpSafeAccountDataSource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAQ9E,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,yBAA0B,YAAW,qBAAqB;IAEvC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAGpE,cAAc,CAAC,EACnB,mBAAmB,EACnB,OAAO,EACP,SAAS,GACV,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAmDxE,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,mBAAmB;CAY5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HttpSafeAccountDataSource.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpSafeAccountDataSource.test.d.ts","sourceRoot":"","sources":["../../../../../src/safe/data/HttpSafeAccountDataSource.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { type HexaString } from "@ledgerhq/device-management-kit";
2
+ import { type Either } from "purify-ts";
3
+ export type GetSafeAccountParams = {
4
+ safeContractAddress: HexaString;
5
+ chainId: number;
6
+ challenge: string;
7
+ };
8
+ export type SafeDescriptor = {
9
+ signedDescriptor: string;
10
+ keyId: string;
11
+ keyUsage: string;
12
+ };
13
+ export type GetSafeAccountResponse = {
14
+ account: SafeDescriptor;
15
+ signers: SafeDescriptor;
16
+ };
17
+ export interface SafeAccountDataSource {
18
+ getDescriptors(params: GetSafeAccountParams): Promise<Either<Error, GetSafeAccountResponse>>;
19
+ }
20
+ //# sourceMappingURL=SafeAccountDataSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAccountDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/safe/data/SafeAccountDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,oBAAoB,GAAG;IACjC,mBAAmB,EAAE,UAAU,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,cAAc,CACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC;CACnD"}
@@ -0,0 +1,10 @@
1
+ export type SafeAccountDto = {
2
+ accountDescriptor: SafeDescriptorDto;
3
+ signersDescriptor: SafeDescriptorDto;
4
+ };
5
+ export type SafeDescriptorDto = {
6
+ signedDescriptor: string;
7
+ keyId: string;
8
+ keyUsage: string;
9
+ };
10
+ //# sourceMappingURL=SafeAccountDto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAccountDto.d.ts","sourceRoot":"","sources":["../../../../../../src/safe/data/dto/SafeAccountDto.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ContainerModule } from "inversify";
2
+ export declare const safeModuleFactory: () => ContainerModule;
3
+ //# sourceMappingURL=safeModuleFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeModuleFactory.d.ts","sourceRoot":"","sources":["../../../../../src/safe/di/safeModuleFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAO5C,eAAO,MAAM,iBAAiB,uBAI1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=safeModuleFactory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeModuleFactory.test.d.ts","sourceRoot":"","sources":["../../../../../src/safe/di/safeModuleFactory.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare const safeTypes: {
2
+ SafeAddressDataSource: symbol;
3
+ SafeAddressLoader: symbol;
4
+ };
5
+ //# sourceMappingURL=safeTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeTypes.d.ts","sourceRoot":"","sources":["../../../../../src/safe/di/safeTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;CAGrB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { DeviceModelId, HexaString } from "@ledgerhq/device-management-kit";
2
+ import { type PkiCertificateLoader } from "../../pki/domain/PkiCertificateLoader";
3
+ import type { SafeAccountDataSource } from "../../safe/data/SafeAccountDataSource";
4
+ import { ContextLoader } from "../../shared/domain/ContextLoader";
5
+ import { ClearSignContext, ClearSignContextType } from "../../shared/model/ClearSignContext";
6
+ export type SafeAddressContextInput = {
7
+ safeContractAddress: HexaString;
8
+ chainId: number;
9
+ deviceModelId: DeviceModelId;
10
+ challenge: string;
11
+ };
12
+ export declare class SafeAddressLoader implements ContextLoader<SafeAddressContextInput> {
13
+ private readonly _dataSource;
14
+ private readonly _certificateLoader;
15
+ constructor(_dataSource: SafeAccountDataSource, _certificateLoader: PkiCertificateLoader);
16
+ canHandle(input: unknown, expectedTypes: ClearSignContextType[]): input is SafeAddressContextInput;
17
+ load({ safeContractAddress, chainId, deviceModelId, challenge, }: SafeAddressContextInput): Promise<ClearSignContext[]>;
18
+ }
19
+ //# sourceMappingURL=SafeAddressLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAddressLoader.d.ts","sourceRoot":"","sources":["../../../../../src/safe/domain/SafeAddressLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EAEX,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,uBAAuB,GAAG;IACpC,mBAAmB,EAAE,UAAU,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAOF,qBACa,iBACX,YAAW,aAAa,CAAC,uBAAuB,CAAC;IAI/C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAFlB,WAAW,EAAE,qBAAqB,EAElC,kBAAkB,EAAE,oBAAoB;IAG3D,SAAS,CACP,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,oBAAoB,EAAE,GACpC,KAAK,IAAI,uBAAuB;IAkB7B,IAAI,CAAC,EACT,mBAAmB,EACnB,OAAO,EACP,aAAa,EACb,SAAS,GACV,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAwCzD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SafeAddressLoader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAddressLoader.test.d.ts","sourceRoot":"","sources":["../../../../../src/safe/domain/SafeAddressLoader.test.ts"],"names":[],"mappings":""}
@@ -13,7 +13,9 @@ export declare enum ClearSignContextType {
13
13
  WEB3_CHECK = "web3Check",
14
14
  DYNAMIC_NETWORK = "dynamicNetwork",
15
15
  DYNAMIC_NETWORK_ICON = "dynamicNetworkIcon",
16
- ERROR = "error"
16
+ ERROR = "error",
17
+ SAFE = "safe",
18
+ SIGNER = "signer"
17
19
  }
18
20
  export declare enum ClearSignContextReferenceType {
19
21
  TOKEN = "token",
@@ -1 +1 @@
1
- {"version":3,"file":"ClearSignContext.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/ClearSignContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClearSignContext.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/ClearSignContext.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyUsageMapper.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/KeyUsageMapper.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,WAAW,CAavB;IAEH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAMxD"}
1
+ {"version":3,"file":"KeyUsageMapper.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/KeyUsageMapper.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,WAAW,CAcvB;IAEH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAMxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"HttpTokenDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/token/data/HttpTokenDataSource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAGhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzE,qBACa,mBAAoB,YAAW,eAAe;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE7D,oBAAoB,CAAC,EAChC,OAAO,EACP,OAAO,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAqDxD"}
1
+ {"version":3,"file":"HttpTokenDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/token/data/HttpTokenDataSource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAGhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzE,qBACa,mBAAoB,YAAW,eAAe;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE7D,oBAAoB,CAAC,EAChC,OAAO,EACP,OAAO,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CA2DxD"}