@ledgerhq/context-module 0.0.0-develop-20261008001410 → 0.0.0-develop-20261010001520

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 (26) hide show
  1. package/lib/cjs/package.json +1 -1
  2. package/lib/cjs/src/DefaultContextModule.js +1 -1
  3. package/lib/cjs/src/DefaultContextModule.js.map +3 -3
  4. package/lib/cjs/src/DefaultContextModule.test.js +1 -1
  5. package/lib/cjs/src/DefaultContextModule.test.js.map +3 -3
  6. package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js +1 -1
  7. package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js.map +2 -2
  8. package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js +1 -1
  9. package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js.map +2 -2
  10. package/lib/cjs/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.js.map +1 -1
  11. package/lib/esm/package.json +1 -1
  12. package/lib/esm/src/DefaultContextModule.js +1 -1
  13. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  14. package/lib/esm/src/DefaultContextModule.test.js +1 -1
  15. package/lib/esm/src/DefaultContextModule.test.js.map +3 -3
  16. package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js +1 -1
  17. package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js.map +2 -2
  18. package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js +1 -1
  19. package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js.map +2 -2
  20. package/lib/types/src/DefaultContextModule.d.ts +1 -0
  21. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  22. package/lib/types/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.d.ts.map +1 -1
  23. package/lib/types/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.d.ts +0 -2
  24. package/lib/types/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.d.ts.map +1 -1
  25. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  26. package/package.json +6 -6
@@ -1,2 +1,2 @@
1
- import{ContextModuleChainID as E}from"./shared/domain/ContextModuleChainID";import{ClearSignContextType as o}from"./shared/model/ClearSignContext";import{DefaultContextModule as d}from"./DefaultContextModule";const x=()=>({debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn(),subscribers:[]}),u=i=>({load:vi.fn(),canHandle:vi.fn().mockReturnValue(i)}),s=()=>({canHandle:vi.fn(),loadField:vi.fn()});describe("DefaultContextModule",()=>{const i={load:vi.fn()},l={customLoaders:[],defaultLoaders:!1,defaultFieldLoaders:!1,customFieldLoaders:[],customTypedDataLoader:i,cal:{url:"https://cal/v1",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks/v3"},metadataServiceDomain:{url:"https://metadata.com"},reporter:{url:"https://reporter.com"},datasource:{proxy:"default"},appSource:"third-party",chain:E.Ethereum,originToken:"originToken",loggerFactory:x};beforeEach(()=>{vi.restoreAllMocks()}),it("should initialize the context module with all the default loaders",async()=>{const t=await new d(l).getContexts({});expect(t).toEqual([])}),it("should return an empty array when no loaders",async()=>{const t=await new d(l).getContexts({});expect(t).toEqual([])}),it("should call all fetch method from metadata fetcher",async()=>{const e=u(!0);await new d({...l,customLoaders:[e,e]}).getContexts({}),expect(e.canHandle).toHaveBeenCalledTimes(2),expect(e.load).toHaveBeenCalledTimes(2)}),it("should return an array of context response",async()=>{const e=u(!0),t=[[{type:o.ETHEREUM_TOKEN,payload:"payload1"}],[{type:o.ETHEREUM_TOKEN,payload:"payload2"},{type:o.ETHEREUM_PLUGIN,payload:"payload3"}]];vi.spyOn(e,"load").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const a=await new d({...l,customLoaders:[e,e]}).getContexts({});expect(e.canHandle).toHaveBeenCalledTimes(2),expect(e.load).toHaveBeenCalledTimes(2),expect(a).toEqual(t.flat())}),it("should only call loaders that can handle the input",async()=>{const e=u(!0),t=u(!0);vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(t,"canHandle").mockReturnValue(!1),vi.spyOn(e,"load").mockResolvedValue([{type:o.ETHEREUM_TOKEN,payload:"payload1"}]),vi.spyOn(t,"load").mockResolvedValue([{type:o.ETHEREUM_NFT,payload:"payload2"}]);const n=new d({...l,customLoaders:[e,t]}),a={to:"0x123",selector:"0xabc"},r=await n.getContexts(a);expect(e.canHandle).toHaveBeenCalledWith(a,Object.values(o)),expect(t.canHandle).toHaveBeenCalledWith(a,Object.values(o)),expect(e.load).toHaveBeenCalledWith(a),expect(t.load).not.toHaveBeenCalled(),expect(r).toEqual([{type:"ethereumToken",payload:"payload1"}])}),it("should use expected types if provided",async()=>{const e=u(!0);vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(e,"load").mockResolvedValue([{type:o.ETHEREUM_TOKEN,payload:"payload1"}]);const t=new d({...l,customLoaders:[e]}),n={to:"0x123",selector:"0xabc"};await t.getContexts(n,[o.ETHEREUM_TOKEN]),expect(e.canHandle).toHaveBeenCalledWith(n,[o.ETHEREUM_TOKEN])}),it("should call the typed data loader",async()=>{await new d({...l,customTypedDataLoader:i}).getTypedDataFilters({}),expect(i.load).toHaveBeenCalledTimes(1)}),describe("getFieldContext",()=>{it("should return error when no loader can handle the field",async()=>{const e=s();vi.spyOn(e,"canHandle").mockReturnValue(!1);const t=new d({...l,customFieldLoaders:[e]}),n={type:"unknown"},a=await t.getFieldContext(n,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(n,o.ETHEREUM_TOKEN),expect(e.loadField).not.toHaveBeenCalled(),expect(a).toEqual({type:o.ERROR,error:new Error(`Loader not found for field: ${n} and expected type: ${o.ETHEREUM_TOKEN}`)})}),it("should return context when a loader can handle the field",async()=>{const e=s(),t={type:o.ETHEREUM_TOKEN,payload:"test-payload"};vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockResolvedValue(t);const n=new d({...l,customFieldLoaders:[e]}),a={type:"token",address:"0x123"},r=await n.getFieldContext(a,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(a,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(a),expect(r).toEqual(t)}),it("should return first context when multiple loaders can handle the field",async()=>{const e=s(),t=s(),n={type:o.ETHEREUM_TOKEN,payload:"first-payload"},a={type:o.ETHEREUM_NFT,payload:"second-payload"};vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(t,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockResolvedValue(n),vi.spyOn(t,"loadField").mockResolvedValue(a);const r=new d({...l,customFieldLoaders:[e,t]}),c={type:"multi",address:"0x123"},p=await r.getFieldContext(c,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(c,o.ETHEREUM_TOKEN),expect(t.canHandle).toHaveBeenCalledWith(c,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(c),expect(t.loadField).not.toHaveBeenCalled(),expect(p).toEqual(n)}),it("should return second context when first context is an error",async()=>{const e=s(),t=s(),n={type:o.ERROR,error:new Error("first-error")},a={type:o.ETHEREUM_TOKEN,payload:"second-payload"};vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(t,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockResolvedValue(n),vi.spyOn(t,"loadField").mockResolvedValue(a);const r=new d({...l,customFieldLoaders:[e,t]}),c={type:"error",address:"0x123"},p=await r.getFieldContext(c,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(c,o.ETHEREUM_TOKEN),expect(t.canHandle).toHaveBeenCalledWith(c,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(c),expect(t.loadField).toHaveBeenCalledWith(c),expect(p).toEqual(a)}),it("should handle loader rejection gracefully",async()=>{const e=s(),t=new Error("Load field failed");vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockRejectedValue(t);const n=new d({...l,customFieldLoaders:[e]}),a={type:"error",address:"0x123"};await expect(n.getFieldContext(a,o.ETHEREUM_TOKEN)).rejects.toThrow("Load field failed"),expect(e.canHandle).toHaveBeenCalledWith(a,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(a)})})});
1
+ import{Right as y}from"purify-ts";import{DefaultSignReporter as E}from"./modules/multichain/sign-reporter/domain/DefaultSignReporter";import{ContextModuleChainID as u}from"./shared/domain/ContextModuleChainID";import{ClearSignContextType as o}from"./shared/model/ClearSignContext";import{DefaultContextModule as d}from"./DefaultContextModule";const m=()=>({debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn(),subscribers:[]}),p=i=>({load:vi.fn(),canHandle:vi.fn().mockReturnValue(i)}),s=()=>({canHandle:vi.fn(),loadField:vi.fn()});describe("DefaultContextModule",()=>{const i={load:vi.fn()},l={customLoaders:[],defaultLoaders:!1,defaultFieldLoaders:!1,customFieldLoaders:[],customTypedDataLoader:i,cal:{url:"https://cal/v1",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks/v3"},metadataServiceDomain:{url:"https://metadata.com"},reporter:{url:"https://reporter.com"},datasource:{proxy:"default"},appSource:"third-party",chain:u.Ethereum,originToken:"originToken",loggerFactory:m};beforeEach(()=>{vi.restoreAllMocks()}),it("should initialize the context module with all the default loaders",async()=>{const t=await new d(l).getContexts({});expect(t).toEqual([])}),it("should return an empty array when no loaders",async()=>{const t=await new d(l).getContexts({});expect(t).toEqual([])}),it("should call all fetch method from metadata fetcher",async()=>{const e=p(!0);await new d({...l,customLoaders:[e,e]}).getContexts({}),expect(e.canHandle).toHaveBeenCalledTimes(2),expect(e.load).toHaveBeenCalledTimes(2)}),it("should return an array of context response",async()=>{const e=p(!0),t=[[{type:o.ETHEREUM_TOKEN,payload:"payload1"}],[{type:o.ETHEREUM_TOKEN,payload:"payload2"},{type:o.ETHEREUM_PLUGIN,payload:"payload3"}]];vi.spyOn(e,"load").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const a=await new d({...l,customLoaders:[e,e]}).getContexts({});expect(e.canHandle).toHaveBeenCalledTimes(2),expect(e.load).toHaveBeenCalledTimes(2),expect(a).toEqual(t.flat())}),it("should only call loaders that can handle the input",async()=>{const e=p(!0),t=p(!0);vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(t,"canHandle").mockReturnValue(!1),vi.spyOn(e,"load").mockResolvedValue([{type:o.ETHEREUM_TOKEN,payload:"payload1"}]),vi.spyOn(t,"load").mockResolvedValue([{type:o.ETHEREUM_NFT,payload:"payload2"}]);const n=new d({...l,customLoaders:[e,t]}),a={to:"0x123",selector:"0xabc"},c=await n.getContexts(a);expect(e.canHandle).toHaveBeenCalledWith(a,Object.values(o)),expect(t.canHandle).toHaveBeenCalledWith(a,Object.values(o)),expect(e.load).toHaveBeenCalledWith(a),expect(t.load).not.toHaveBeenCalled(),expect(c).toEqual([{type:"ethereumToken",payload:"payload1"}])}),it("should use expected types if provided",async()=>{const e=p(!0);vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(e,"load").mockResolvedValue([{type:o.ETHEREUM_TOKEN,payload:"payload1"}]);const t=new d({...l,customLoaders:[e]}),n={to:"0x123",selector:"0xabc"};await t.getContexts(n,[o.ETHEREUM_TOKEN]),expect(e.canHandle).toHaveBeenCalledWith(n,[o.ETHEREUM_TOKEN])}),it("should call the typed data loader",async()=>{await new d({...l,customTypedDataLoader:i}).getTypedDataFilters({}),expect(i.load).toHaveBeenCalledTimes(1)}),describe("getFieldContext",()=>{it("should return error when no loader can handle the field",async()=>{const e=s();vi.spyOn(e,"canHandle").mockReturnValue(!1);const t=new d({...l,customFieldLoaders:[e]}),n={type:"unknown"},a=await t.getFieldContext(n,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(n,o.ETHEREUM_TOKEN),expect(e.loadField).not.toHaveBeenCalled(),expect(a).toEqual({type:o.ERROR,error:new Error(`Loader not found for field: ${n} and expected type: ${o.ETHEREUM_TOKEN}`)})}),it("should return context when a loader can handle the field",async()=>{const e=s(),t={type:o.ETHEREUM_TOKEN,payload:"test-payload"};vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockResolvedValue(t);const n=new d({...l,customFieldLoaders:[e]}),a={type:"token",address:"0x123"},c=await n.getFieldContext(a,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(a,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(a),expect(c).toEqual(t)}),it("should return first context when multiple loaders can handle the field",async()=>{const e=s(),t=s(),n={type:o.ETHEREUM_TOKEN,payload:"first-payload"},a={type:o.ETHEREUM_NFT,payload:"second-payload"};vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(t,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockResolvedValue(n),vi.spyOn(t,"loadField").mockResolvedValue(a);const c=new d({...l,customFieldLoaders:[e,t]}),r={type:"multi",address:"0x123"},x=await c.getFieldContext(r,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(r,o.ETHEREUM_TOKEN),expect(t.canHandle).toHaveBeenCalledWith(r,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(r),expect(t.loadField).not.toHaveBeenCalled(),expect(x).toEqual(n)}),it("should return second context when first context is an error",async()=>{const e=s(),t=s(),n={type:o.ERROR,error:new Error("first-error")},a={type:o.ETHEREUM_TOKEN,payload:"second-payload"};vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(t,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockResolvedValue(n),vi.spyOn(t,"loadField").mockResolvedValue(a);const c=new d({...l,customFieldLoaders:[e,t]}),r={type:"error",address:"0x123"},x=await c.getFieldContext(r,o.ETHEREUM_TOKEN);expect(e.canHandle).toHaveBeenCalledWith(r,o.ETHEREUM_TOKEN),expect(t.canHandle).toHaveBeenCalledWith(r,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(r),expect(t.loadField).toHaveBeenCalledWith(r),expect(x).toEqual(a)}),it("should handle loader rejection gracefully",async()=>{const e=s(),t=new Error("Load field failed");vi.spyOn(e,"canHandle").mockReturnValue(!0),vi.spyOn(e,"loadField").mockRejectedValue(t);const n=new d({...l,customFieldLoaders:[e]}),a={type:"error",address:"0x123"};await expect(n.getFieldContext(a,o.ETHEREUM_TOKEN)).rejects.toThrow("Load field failed"),expect(e.canHandle).toHaveBeenCalledWith(a,o.ETHEREUM_TOKEN),expect(e.loadField).toHaveBeenCalledWith(a)})}),describe("signReport",()=>{const e={chain:"ETH"};it.each([u.Ethereum,u.Solana])("should delegate to the bound sign reporter for %s",async t=>{const n=vi.spyOn(E.prototype,"report").mockResolvedValue(y(void 0));await new d({...l,chain:t}).signReport(e),expect(n).toHaveBeenCalledWith(e)}),it("should be a no-op when no sign reporter is bound",async()=>{const t=vi.spyOn(E.prototype,"report");await new d({...l,chain:u.Tron}).signReport(e),expect(t).not.toHaveBeenCalled()})})});
2
2
  //# sourceMappingURL=DefaultContextModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/DefaultContextModule.test.ts"],
4
- "sourcesContent": ["import {\n type ContextModuleLoaderConfig,\n type ContextModuleServiceConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type TypedDataContext } from \"./modules/ethereum/model/TypedDataContext\";\nimport type { TypedDataContextLoader } from \"./modules/ethereum/typed-data/domain/TypedDataContextLoader\";\nimport { type ContextFieldLoader } from \"./shared/domain/ContextFieldLoader\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { ContextModuleChainID } from \"./shared/domain/ContextModuleChainID\";\nimport {\n type ClearSignContext,\n ClearSignContextType,\n} from \"./shared/model/ClearSignContext\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst mockLoggerFactory = () => ({\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n});\n\nconst contextLoaderStubBuilder = (canHandle: boolean): ContextLoader => {\n return {\n load: vi.fn(),\n canHandle: vi\n .fn()\n .mockReturnValue(canHandle) as unknown as ContextLoader[\"canHandle\"],\n };\n};\n\nconst fieldLoaderStubBuilder = (): ContextFieldLoader => {\n return {\n canHandle: vi.fn() as unknown as ContextFieldLoader[\"canHandle\"],\n loadField: vi.fn(),\n };\n};\n\ndescribe(\"DefaultContextModule\", () => {\n const typedDataLoader: TypedDataContextLoader = { load: vi.fn() };\n const defaultContextModuleConfig: ContextModuleServiceConfig &\n ContextModuleLoaderConfig = {\n customLoaders: [],\n defaultLoaders: false,\n defaultFieldLoaders: false,\n customFieldLoaders: [],\n customTypedDataLoader: typedDataLoader,\n cal: {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks/v3\",\n },\n metadataServiceDomain: {\n url: \"https://metadata.com\",\n },\n reporter: {\n url: \"https://reporter.com\",\n },\n datasource: {\n proxy: \"default\",\n },\n appSource: \"third-party\",\n chain: ContextModuleChainID.Ethereum,\n originToken: \"originToken\",\n loggerFactory: mockLoggerFactory,\n };\n\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should initialize the context module with all the default loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({});\n\n expect(res).toEqual([]);\n });\n\n it(\"should return an empty array when no loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({});\n\n expect(res).toEqual([]);\n });\n\n it(\"should call all fetch method from metadata fetcher\", async () => {\n const loader = contextLoaderStubBuilder(true);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n await contextModule.getContexts({});\n\n expect(loader.canHandle).toHaveBeenCalledTimes(2);\n expect(loader.load).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return an array of context response\", async () => {\n const loader = contextLoaderStubBuilder(true);\n const responses = [\n [{ type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload1\" }],\n [\n { type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload2\" },\n { type: ClearSignContextType.ETHEREUM_PLUGIN, payload: \"payload3\" },\n ],\n ] as ClearSignContext[][];\n vi.spyOn(loader, \"load\")\n .mockResolvedValueOnce(responses[0]!)\n .mockResolvedValueOnce(responses[1]!);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n const res = await contextModule.getContexts({});\n\n expect(loader.canHandle).toHaveBeenCalledTimes(2);\n expect(loader.load).toHaveBeenCalledTimes(2);\n expect(res).toEqual(responses.flat());\n });\n\n it(\"should only call loaders that can handle the input\", async () => {\n const loader1 = contextLoaderStubBuilder(true);\n const loader2 = contextLoaderStubBuilder(true);\n\n vi.spyOn(loader1, \"canHandle\").mockReturnValue(true);\n vi.spyOn(loader2, \"canHandle\").mockReturnValue(false);\n vi.spyOn(loader1, \"load\").mockResolvedValue([\n { type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload1\" },\n ]);\n vi.spyOn(loader2, \"load\").mockResolvedValue([\n { type: ClearSignContextType.ETHEREUM_NFT, payload: \"payload2\" },\n ]);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader1, loader2],\n });\n\n const testInput = { to: \"0x123\", selector: \"0xabc\" };\n const res = await contextModule.getContexts(testInput);\n\n expect(loader1.canHandle).toHaveBeenCalledWith(\n testInput,\n Object.values(ClearSignContextType),\n );\n expect(loader2.canHandle).toHaveBeenCalledWith(\n testInput,\n Object.values(ClearSignContextType),\n );\n expect(loader1.load).toHaveBeenCalledWith(testInput);\n expect(loader2.load).not.toHaveBeenCalled(); // Should not be called since canHandle returned false\n expect(res).toEqual([{ type: \"ethereumToken\", payload: \"payload1\" }]);\n });\n\n it(\"should use expected types if provided\", async () => {\n const loader = contextLoaderStubBuilder(true);\n\n vi.spyOn(loader, \"canHandle\").mockReturnValue(true);\n\n vi.spyOn(loader, \"load\").mockResolvedValue([\n { type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload1\" },\n ]);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader],\n });\n\n const testInput = { to: \"0x123\", selector: \"0xabc\" };\n await contextModule.getContexts(testInput, [\n ClearSignContextType.ETHEREUM_TOKEN,\n ]);\n\n expect(loader.canHandle).toHaveBeenCalledWith(testInput, [\n ClearSignContextType.ETHEREUM_TOKEN,\n ]);\n });\n\n it(\"should call the typed data loader\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customTypedDataLoader: typedDataLoader,\n });\n\n await contextModule.getTypedDataFilters({} as TypedDataContext);\n\n expect(typedDataLoader.load).toHaveBeenCalledTimes(1);\n });\n\n describe(\"getFieldContext\", () => {\n it(\"should return error when no loader can handle the field\", async () => {\n // GIVEN\n const fieldLoader = fieldLoaderStubBuilder();\n vi.spyOn(fieldLoader, \"canHandle\").mockReturnValue(false);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader],\n });\n\n const testField = { type: \"unknown\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader.loadField).not.toHaveBeenCalled();\n expect(result).toEqual({\n type: ClearSignContextType.ERROR,\n error: new Error(\n `Loader not found for field: ${testField} and expected type: ${ClearSignContextType.ETHEREUM_TOKEN}`,\n ),\n });\n });\n\n it(\"should return context when a loader can handle the field\", async () => {\n // GIVEN\n const fieldLoader = fieldLoaderStubBuilder();\n const mockContext: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_TOKEN,\n payload: \"test-payload\",\n };\n\n vi.spyOn(fieldLoader, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader, \"loadField\").mockResolvedValue(mockContext);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader],\n });\n\n const testField = { type: \"token\", address: \"0x123\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader.loadField).toHaveBeenCalledWith(testField);\n expect(result).toEqual(mockContext);\n });\n\n it(\"should return first context when multiple loaders can handle the field\", async () => {\n // GIVEN\n const fieldLoader1 = fieldLoaderStubBuilder();\n const fieldLoader2 = fieldLoaderStubBuilder();\n\n const mockContext1: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_TOKEN,\n payload: \"first-payload\",\n };\n const mockContext2: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_NFT,\n payload: \"second-payload\",\n };\n\n vi.spyOn(fieldLoader1, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader2, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader1, \"loadField\").mockResolvedValue(mockContext1);\n vi.spyOn(fieldLoader2, \"loadField\").mockResolvedValue(mockContext2);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader1, fieldLoader2],\n });\n\n const testField = { type: \"multi\", address: \"0x123\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader1.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader2.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader1.loadField).toHaveBeenCalledWith(testField);\n expect(fieldLoader2.loadField).not.toHaveBeenCalled();\n expect(result).toEqual(mockContext1); // Should return first context\n });\n\n it(\"should return second context when first context is an error\", async () => {\n // GIVEN\n const fieldLoader1 = fieldLoaderStubBuilder();\n const fieldLoader2 = fieldLoaderStubBuilder();\n const mockContext1: ClearSignContext = {\n type: ClearSignContextType.ERROR,\n error: new Error(\"first-error\"),\n };\n const mockContext2: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_TOKEN,\n payload: \"second-payload\",\n };\n vi.spyOn(fieldLoader1, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader2, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader1, \"loadField\").mockResolvedValue(mockContext1);\n vi.spyOn(fieldLoader2, \"loadField\").mockResolvedValue(mockContext2);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader1, fieldLoader2],\n });\n\n const testField = { type: \"error\", address: \"0x123\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader1.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader2.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader1.loadField).toHaveBeenCalledWith(testField);\n expect(fieldLoader2.loadField).toHaveBeenCalledWith(testField);\n expect(result).toEqual(mockContext2);\n });\n\n it(\"should handle loader rejection gracefully\", async () => {\n // GIVEN\n const fieldLoader = fieldLoaderStubBuilder();\n const loadError = new Error(\"Load field failed\");\n\n vi.spyOn(fieldLoader, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader, \"loadField\").mockRejectedValue(loadError);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader],\n });\n\n const testField = { type: \"error\", address: \"0x123\" };\n\n // WHEN & THEN\n await expect(\n contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n ),\n ).rejects.toThrow(\"Load field failed\");\n\n expect(fieldLoader.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader.loadField).toHaveBeenCalledWith(testField);\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["ContextModuleChainID", "ClearSignContextType", "DefaultContextModule", "mockLoggerFactory", "contextLoaderStubBuilder", "canHandle", "fieldLoaderStubBuilder", "typedDataLoader", "defaultContextModuleConfig", "res", "loader", "responses", "loader1", "loader2", "contextModule", "testInput", "fieldLoader", "testField", "result", "mockContext", "fieldLoader1", "fieldLoader2", "mockContext1", "mockContext2", "loadError"]
4
+ "sourcesContent": ["import { Right } from \"purify-ts\";\n\nimport {\n type ContextModuleLoaderConfig,\n type ContextModuleServiceConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type TypedDataContext } from \"./modules/ethereum/model/TypedDataContext\";\nimport type { TypedDataContextLoader } from \"./modules/ethereum/typed-data/domain/TypedDataContextLoader\";\nimport { DefaultSignReporter } from \"./modules/multichain/sign-reporter/domain/DefaultSignReporter\";\nimport { type SignReportParams } from \"./modules/multichain/sign-reporter/model/SignReportParams\";\nimport { type ContextFieldLoader } from \"./shared/domain/ContextFieldLoader\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { ContextModuleChainID } from \"./shared/domain/ContextModuleChainID\";\nimport {\n type ClearSignContext,\n ClearSignContextType,\n} from \"./shared/model/ClearSignContext\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst mockLoggerFactory = () => ({\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n});\n\nconst contextLoaderStubBuilder = (canHandle: boolean): ContextLoader => {\n return {\n load: vi.fn(),\n canHandle: vi\n .fn()\n .mockReturnValue(canHandle) as unknown as ContextLoader[\"canHandle\"],\n };\n};\n\nconst fieldLoaderStubBuilder = (): ContextFieldLoader => {\n return {\n canHandle: vi.fn() as unknown as ContextFieldLoader[\"canHandle\"],\n loadField: vi.fn(),\n };\n};\n\ndescribe(\"DefaultContextModule\", () => {\n const typedDataLoader: TypedDataContextLoader = { load: vi.fn() };\n const defaultContextModuleConfig: ContextModuleServiceConfig &\n ContextModuleLoaderConfig = {\n customLoaders: [],\n defaultLoaders: false,\n defaultFieldLoaders: false,\n customFieldLoaders: [],\n customTypedDataLoader: typedDataLoader,\n cal: {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks/v3\",\n },\n metadataServiceDomain: {\n url: \"https://metadata.com\",\n },\n reporter: {\n url: \"https://reporter.com\",\n },\n datasource: {\n proxy: \"default\",\n },\n appSource: \"third-party\",\n chain: ContextModuleChainID.Ethereum,\n originToken: \"originToken\",\n loggerFactory: mockLoggerFactory,\n };\n\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should initialize the context module with all the default loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({});\n\n expect(res).toEqual([]);\n });\n\n it(\"should return an empty array when no loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({});\n\n expect(res).toEqual([]);\n });\n\n it(\"should call all fetch method from metadata fetcher\", async () => {\n const loader = contextLoaderStubBuilder(true);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n await contextModule.getContexts({});\n\n expect(loader.canHandle).toHaveBeenCalledTimes(2);\n expect(loader.load).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return an array of context response\", async () => {\n const loader = contextLoaderStubBuilder(true);\n const responses = [\n [{ type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload1\" }],\n [\n { type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload2\" },\n { type: ClearSignContextType.ETHEREUM_PLUGIN, payload: \"payload3\" },\n ],\n ] as ClearSignContext[][];\n vi.spyOn(loader, \"load\")\n .mockResolvedValueOnce(responses[0]!)\n .mockResolvedValueOnce(responses[1]!);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n const res = await contextModule.getContexts({});\n\n expect(loader.canHandle).toHaveBeenCalledTimes(2);\n expect(loader.load).toHaveBeenCalledTimes(2);\n expect(res).toEqual(responses.flat());\n });\n\n it(\"should only call loaders that can handle the input\", async () => {\n const loader1 = contextLoaderStubBuilder(true);\n const loader2 = contextLoaderStubBuilder(true);\n\n vi.spyOn(loader1, \"canHandle\").mockReturnValue(true);\n vi.spyOn(loader2, \"canHandle\").mockReturnValue(false);\n vi.spyOn(loader1, \"load\").mockResolvedValue([\n { type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload1\" },\n ]);\n vi.spyOn(loader2, \"load\").mockResolvedValue([\n { type: ClearSignContextType.ETHEREUM_NFT, payload: \"payload2\" },\n ]);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader1, loader2],\n });\n\n const testInput = { to: \"0x123\", selector: \"0xabc\" };\n const res = await contextModule.getContexts(testInput);\n\n expect(loader1.canHandle).toHaveBeenCalledWith(\n testInput,\n Object.values(ClearSignContextType),\n );\n expect(loader2.canHandle).toHaveBeenCalledWith(\n testInput,\n Object.values(ClearSignContextType),\n );\n expect(loader1.load).toHaveBeenCalledWith(testInput);\n expect(loader2.load).not.toHaveBeenCalled(); // Should not be called since canHandle returned false\n expect(res).toEqual([{ type: \"ethereumToken\", payload: \"payload1\" }]);\n });\n\n it(\"should use expected types if provided\", async () => {\n const loader = contextLoaderStubBuilder(true);\n\n vi.spyOn(loader, \"canHandle\").mockReturnValue(true);\n\n vi.spyOn(loader, \"load\").mockResolvedValue([\n { type: ClearSignContextType.ETHEREUM_TOKEN, payload: \"payload1\" },\n ]);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader],\n });\n\n const testInput = { to: \"0x123\", selector: \"0xabc\" };\n await contextModule.getContexts(testInput, [\n ClearSignContextType.ETHEREUM_TOKEN,\n ]);\n\n expect(loader.canHandle).toHaveBeenCalledWith(testInput, [\n ClearSignContextType.ETHEREUM_TOKEN,\n ]);\n });\n\n it(\"should call the typed data loader\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customTypedDataLoader: typedDataLoader,\n });\n\n await contextModule.getTypedDataFilters({} as TypedDataContext);\n\n expect(typedDataLoader.load).toHaveBeenCalledTimes(1);\n });\n\n describe(\"getFieldContext\", () => {\n it(\"should return error when no loader can handle the field\", async () => {\n // GIVEN\n const fieldLoader = fieldLoaderStubBuilder();\n vi.spyOn(fieldLoader, \"canHandle\").mockReturnValue(false);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader],\n });\n\n const testField = { type: \"unknown\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader.loadField).not.toHaveBeenCalled();\n expect(result).toEqual({\n type: ClearSignContextType.ERROR,\n error: new Error(\n `Loader not found for field: ${testField} and expected type: ${ClearSignContextType.ETHEREUM_TOKEN}`,\n ),\n });\n });\n\n it(\"should return context when a loader can handle the field\", async () => {\n // GIVEN\n const fieldLoader = fieldLoaderStubBuilder();\n const mockContext: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_TOKEN,\n payload: \"test-payload\",\n };\n\n vi.spyOn(fieldLoader, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader, \"loadField\").mockResolvedValue(mockContext);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader],\n });\n\n const testField = { type: \"token\", address: \"0x123\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader.loadField).toHaveBeenCalledWith(testField);\n expect(result).toEqual(mockContext);\n });\n\n it(\"should return first context when multiple loaders can handle the field\", async () => {\n // GIVEN\n const fieldLoader1 = fieldLoaderStubBuilder();\n const fieldLoader2 = fieldLoaderStubBuilder();\n\n const mockContext1: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_TOKEN,\n payload: \"first-payload\",\n };\n const mockContext2: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_NFT,\n payload: \"second-payload\",\n };\n\n vi.spyOn(fieldLoader1, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader2, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader1, \"loadField\").mockResolvedValue(mockContext1);\n vi.spyOn(fieldLoader2, \"loadField\").mockResolvedValue(mockContext2);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader1, fieldLoader2],\n });\n\n const testField = { type: \"multi\", address: \"0x123\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader1.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader2.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader1.loadField).toHaveBeenCalledWith(testField);\n expect(fieldLoader2.loadField).not.toHaveBeenCalled();\n expect(result).toEqual(mockContext1); // Should return first context\n });\n\n it(\"should return second context when first context is an error\", async () => {\n // GIVEN\n const fieldLoader1 = fieldLoaderStubBuilder();\n const fieldLoader2 = fieldLoaderStubBuilder();\n const mockContext1: ClearSignContext = {\n type: ClearSignContextType.ERROR,\n error: new Error(\"first-error\"),\n };\n const mockContext2: ClearSignContext = {\n type: ClearSignContextType.ETHEREUM_TOKEN,\n payload: \"second-payload\",\n };\n vi.spyOn(fieldLoader1, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader2, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader1, \"loadField\").mockResolvedValue(mockContext1);\n vi.spyOn(fieldLoader2, \"loadField\").mockResolvedValue(mockContext2);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader1, fieldLoader2],\n });\n\n const testField = { type: \"error\", address: \"0x123\" };\n\n // WHEN\n const result = await contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n\n // THEN\n expect(fieldLoader1.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader2.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader1.loadField).toHaveBeenCalledWith(testField);\n expect(fieldLoader2.loadField).toHaveBeenCalledWith(testField);\n expect(result).toEqual(mockContext2);\n });\n\n it(\"should handle loader rejection gracefully\", async () => {\n // GIVEN\n const fieldLoader = fieldLoaderStubBuilder();\n const loadError = new Error(\"Load field failed\");\n\n vi.spyOn(fieldLoader, \"canHandle\").mockReturnValue(true);\n vi.spyOn(fieldLoader, \"loadField\").mockRejectedValue(loadError);\n\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customFieldLoaders: [fieldLoader],\n });\n\n const testField = { type: \"error\", address: \"0x123\" };\n\n // WHEN & THEN\n await expect(\n contextModule.getFieldContext(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n ),\n ).rejects.toThrow(\"Load field failed\");\n\n expect(fieldLoader.canHandle).toHaveBeenCalledWith(\n testField,\n ClearSignContextType.ETHEREUM_TOKEN,\n );\n expect(fieldLoader.loadField).toHaveBeenCalledWith(testField);\n });\n });\n\n describe(\"signReport\", () => {\n const params = { chain: \"ETH\" } as SignReportParams;\n\n it.each([ContextModuleChainID.Ethereum, ContextModuleChainID.Solana])(\n \"should delegate to the bound sign reporter for %s\",\n async (chain) => {\n // GIVEN\n const reportSpy = vi\n .spyOn(DefaultSignReporter.prototype, \"report\")\n .mockResolvedValue(Right(undefined));\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n chain,\n });\n\n // WHEN\n await contextModule.signReport(params);\n\n // THEN\n expect(reportSpy).toHaveBeenCalledWith(params);\n },\n );\n\n it(\"should be a no-op when no sign reporter is bound\", async () => {\n // GIVEN\n const reportSpy = vi.spyOn(DefaultSignReporter.prototype, \"report\");\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n chain: ContextModuleChainID.Tron,\n });\n\n // WHEN\n await contextModule.signReport(params);\n\n // THEN\n expect(reportSpy).not.toHaveBeenCalled();\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["Right", "DefaultSignReporter", "ContextModuleChainID", "ClearSignContextType", "DefaultContextModule", "mockLoggerFactory", "contextLoaderStubBuilder", "canHandle", "fieldLoaderStubBuilder", "typedDataLoader", "defaultContextModuleConfig", "res", "loader", "responses", "loader1", "loader2", "contextModule", "testInput", "fieldLoader", "testField", "result", "mockContext", "fieldLoader1", "fieldLoader2", "mockContext1", "mockContext2", "loadError", "params", "chain", "reportSpy"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var c=(o,e,n,t)=>{for(var i=t>1?void 0:t?f(e,n):e,d=o.length-1,l;d>=0;d--)(l=o[d])&&(i=(t?l(e,n,i):l(i))||i);return t&&i&&u(e,n,i),i},r=(o,e)=>(n,t)=>e(n,t,o);import{inject as s,injectable as h}from"inversify";import{Left as S,Right as a}from"purify-ts";import{configTypes as p}from"../../../../config/di/configTypes";import{networkTypes as v}from"../../../../shared/network/di/networkTypes";import{networkClientFactory as y}from"../../../../shared/network/networkClientFactory";let g=class{constructor(e,n,t){this.config=e;this.http=t??y(e),this.logger=n("HttpSignReporterDatasource")}http;logger;async report(e){try{const n=this.buildDto(e,this.config.appSource);this.logger.debug("[report] Posting signing event",{data:n}),await this.http.post(`${this.config.reporter.url}/v2/blind-signing-events`,n,{responseType:"void"})}catch{return S(new Error("[ContextModule] HttpSignReporterDatasource: Failed to report signing event"))}return a(void 0)}buildDto(e,n){const t={isBlindSign:e.isBlindSign,sessionId:e.sessionId??null,envData:{modelId:e.modelId,signerAppVersion:e.signerAppVersion,deviceVersion:e.deviceVersion,source:n,...e.platform!==void 0&&{platform:e.platform},...e.appVersion!==void 0&&{appVersion:e.appVersion},...e.platformOS!==void 0&&{platformOS:e.platformOS},...e.platformVersion!==void 0&&{platformVersion:e.platformVersion},...e.liveAppContext!==void 0&&{liveAppContext:e.liveAppContext}}};switch(e.chain){case"ETH":return{...t,chain:"ETH",chainData:{chain:"ETH",signatureId:e.signatureId,signingMethod:e.signingMethod,targetAddress:e.targetAddress,chainId:e.chainId,blindSignReason:e.blindSignReason,...e.selectorId!==void 0&&{selectorId:e.selectorId},...e.clearSigningType!==void 0&&{clearSigningType:e.clearSigningType},...e.partialContextErrors!==void 0&&{partialContextErrors:e.partialContextErrors}}};case"SOL":return{...t,chain:"SOL",chainData:{chain:"SOL",signatureId:e.signatureId,signingMethod:e.signingMethod,targetAddress:e.targetAddress,blindSignReason:e.blindSignReason,programIds:e.programIds,unrecognizedPrograms:e.unrecognizedPrograms,...e.transactionSignature!==void 0&&{transactionSignature:e.transactionSignature}}}}}};g=c([h(),r(0,s(p.Config)),r(1,s(p.ContextModuleLoggerFactory)),r(2,s(v.NetworkClient))],g);export{g as HttpSignReporterDatasource};
1
+ var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var c=(o,e,t,n)=>{for(var i=n>1?void 0:n?f(e,t):e,d=o.length-1,l;d>=0;d--)(l=o[d])&&(i=(n?l(e,t,i):l(i))||i);return n&&i&&u(e,t,i),i},r=(o,e)=>(t,n)=>e(t,n,o);import{inject as s,injectable as h}from"inversify";import{Left as S,Right as v}from"purify-ts";import{configTypes as p}from"../../../../config/di/configTypes";import{networkTypes as a}from"../../../../shared/network/di/networkTypes";import{networkClientFactory as y}from"../../../../shared/network/networkClientFactory";let g=class{constructor(e,t,n){this.config=e;this.http=n??y(e),this.logger=t("HttpSignReporterDatasource")}http;logger;async report(e){try{const t=this.buildDto(e,this.config.appSource);this.logger.debug("[report] Posting signing event",{data:t}),await this.http.post(`${this.config.reporter.url}/v2/blind-signing-events`,t,{responseType:"void"})}catch{return S(new Error("[ContextModule] HttpSignReporterDatasource: Failed to report signing event"))}return v(void 0)}buildDto(e,t){const n={isBlindSign:e.isBlindSign,sessionId:e.sessionId??null,envData:{modelId:e.modelId,signerAppVersion:e.signerAppVersion,deviceVersion:e.deviceVersion,source:t,...e.platform!==void 0&&{platform:e.platform},...e.appVersion!==void 0&&{appVersion:e.appVersion},...e.platformOS!==void 0&&{platformOS:e.platformOS},...e.platformVersion!==void 0&&{platformVersion:e.platformVersion},...e.liveAppContext!==void 0&&{liveAppContext:e.liveAppContext}}};switch(e.chain){case"ETH":return{...n,chain:"ETH",chainData:{signatureId:e.signatureId,signingMethod:e.signingMethod,targetAddress:e.targetAddress,chainId:e.chainId,blindSignReason:e.blindSignReason,...e.selectorId!==void 0&&{selectorId:e.selectorId},...e.clearSigningType!==void 0&&{clearSigningType:e.clearSigningType},...e.partialContextErrors!==void 0&&{partialContextErrors:e.partialContextErrors}}};case"SOL":return{...n,chain:"SOL",chainData:{signatureId:e.signatureId,signingMethod:e.signingMethod,targetAddress:e.targetAddress,blindSignReason:e.blindSignReason,programIds:e.programIds,unrecognizedPrograms:e.unrecognizedPrograms,...e.transactionSignature!==void 0&&{transactionSignature:e.transactionSignature}}}}}};g=c([h(),r(0,s(p.Config)),r(1,s(p.ContextModuleLoggerFactory)),r(2,s(a.NetworkClient))],g);export{g as HttpSignReporterDatasource};
2
2
  //# sourceMappingURL=HttpSignReporterDatasource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.ts"],
4
- "sourcesContent": ["import {\n type DmkNetworkClient,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\nimport { type Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { type SignReportParams } from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\nimport { networkTypes } from \"@/shared/network/di/networkTypes\";\nimport { networkClientFactory } from \"@/shared/network/networkClientFactory\";\n\nimport { type SigningEventDto } from \"./dto/SigningEventDto\";\nimport { type SignReporterDatasource } from \"./SignReporterDatasource\";\n\n@injectable()\nexport class HttpSignReporterDatasource implements SignReporterDatasource {\n private readonly http: DmkNetworkClient;\n private readonly logger: LoggerPublisherService;\n\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(configTypes.ContextModuleLoggerFactory)\n loggerFactory: (tag: string) => LoggerPublisherService,\n @inject(networkTypes.NetworkClient)\n networkClient?: DmkNetworkClient,\n ) {\n this.http = networkClient ?? networkClientFactory(config);\n this.logger = loggerFactory(\"HttpSignReporterDatasource\");\n }\n\n async report(params: SignReportParams): Promise<Either<Error, void>> {\n try {\n const dto = this.buildDto(params, this.config.appSource);\n this.logger.debug(\"[report] Posting signing event\", { data: dto });\n await this.http.post(\n `${this.config.reporter.url}/v2/blind-signing-events`,\n dto,\n { responseType: \"void\" },\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpSignReporterDatasource: Failed to report signing event\",\n ),\n );\n }\n\n return Right(undefined);\n }\n\n private buildDto(params: SignReportParams, source: string): SigningEventDto {\n const base = {\n isBlindSign: params.isBlindSign,\n sessionId: params.sessionId ?? null,\n envData: {\n modelId: params.modelId,\n signerAppVersion: params.signerAppVersion,\n deviceVersion: params.deviceVersion,\n source,\n ...(params.platform !== undefined && { platform: params.platform }),\n ...(params.appVersion !== undefined && {\n appVersion: params.appVersion,\n }),\n ...(params.platformOS !== undefined && {\n platformOS: params.platformOS,\n }),\n ...(params.platformVersion !== undefined && {\n platformVersion: params.platformVersion,\n }),\n ...(params.liveAppContext !== undefined && {\n liveAppContext: params.liveAppContext,\n }),\n },\n };\n\n switch (params.chain) {\n case \"ETH\":\n return {\n ...base,\n chain: \"ETH\",\n chainData: {\n chain: \"ETH\",\n signatureId: params.signatureId,\n signingMethod: params.signingMethod,\n targetAddress: params.targetAddress,\n chainId: params.chainId,\n blindSignReason: params.blindSignReason,\n ...(params.selectorId !== undefined && {\n selectorId: params.selectorId,\n }),\n ...(params.clearSigningType !== undefined && {\n clearSigningType: params.clearSigningType,\n }),\n ...(params.partialContextErrors !== undefined && {\n partialContextErrors: params.partialContextErrors,\n }),\n },\n };\n case \"SOL\":\n return {\n ...base,\n chain: \"SOL\",\n chainData: {\n chain: \"SOL\",\n signatureId: params.signatureId,\n signingMethod: params.signingMethod,\n targetAddress: params.targetAddress,\n blindSignReason: params.blindSignReason,\n programIds: params.programIds,\n unrecognizedPrograms: params.unrecognizedPrograms,\n ...(params.transactionSignature !== undefined && {\n transactionSignature: params.transactionSignature,\n }),\n },\n };\n }\n }\n}\n"],
5
- "mappings": "iOAIA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAsB,QAAAC,EAAM,SAAAC,MAAa,YAEzC,OAAS,eAAAC,MAAmB,0BAG5B,OAAS,gBAAAC,MAAoB,mCAC7B,OAAS,wBAAAC,MAA4B,wCAM9B,IAAMC,EAAN,KAAmE,CAIxE,YAEmBC,EAEjBC,EAEAC,EACA,CALiB,YAAAF,EAMjB,KAAK,KAAOE,GAAiBC,EAAqBH,CAAM,EACxD,KAAK,OAASC,EAAc,4BAA4B,CAC1D,CAbiB,KACA,OAcjB,MAAM,OAAOG,EAAwD,CACnE,GAAI,CACF,MAAMC,EAAM,KAAK,SAASD,EAAQ,KAAK,OAAO,SAAS,EACvD,KAAK,OAAO,MAAM,iCAAkC,CAAE,KAAMC,CAAI,CAAC,EACjE,MAAM,KAAK,KAAK,KACd,GAAG,KAAK,OAAO,SAAS,GAAG,2BAC3BA,EACA,CAAE,aAAc,MAAO,CACzB,CACF,MAAiB,CACf,OAAOC,EACL,IAAI,MACF,4EACF,CACF,CACF,CAEA,OAAOC,EAAM,MAAS,CACxB,CAEQ,SAASH,EAA0BI,EAAiC,CAC1E,MAAMC,EAAO,CACX,YAAaL,EAAO,YACpB,UAAWA,EAAO,WAAa,KAC/B,QAAS,CACP,QAASA,EAAO,QAChB,iBAAkBA,EAAO,iBACzB,cAAeA,EAAO,cACtB,OAAAI,EACA,GAAIJ,EAAO,WAAa,QAAa,CAAE,SAAUA,EAAO,QAAS,EACjE,GAAIA,EAAO,aAAe,QAAa,CACrC,WAAYA,EAAO,UACrB,EACA,GAAIA,EAAO,aAAe,QAAa,CACrC,WAAYA,EAAO,UACrB,EACA,GAAIA,EAAO,kBAAoB,QAAa,CAC1C,gBAAiBA,EAAO,eAC1B,EACA,GAAIA,EAAO,iBAAmB,QAAa,CACzC,eAAgBA,EAAO,cACzB,CACF,CACF,EAEA,OAAQA,EAAO,MAAO,CACpB,IAAK,MACH,MAAO,CACL,GAAGK,EACH,MAAO,MACP,UAAW,CACT,MAAO,MACP,YAAaL,EAAO,YACpB,cAAeA,EAAO,cACtB,cAAeA,EAAO,cACtB,QAASA,EAAO,QAChB,gBAAiBA,EAAO,gBACxB,GAAIA,EAAO,aAAe,QAAa,CACrC,WAAYA,EAAO,UACrB,EACA,GAAIA,EAAO,mBAAqB,QAAa,CAC3C,iBAAkBA,EAAO,gBAC3B,EACA,GAAIA,EAAO,uBAAyB,QAAa,CAC/C,qBAAsBA,EAAO,oBAC/B,CACF,CACF,EACF,IAAK,MACH,MAAO,CACL,GAAGK,EACH,MAAO,MACP,UAAW,CACT,MAAO,MACP,YAAaL,EAAO,YACpB,cAAeA,EAAO,cACtB,cAAeA,EAAO,cACtB,gBAAiBA,EAAO,gBACxB,WAAYA,EAAO,WACnB,qBAAsBA,EAAO,qBAC7B,GAAIA,EAAO,uBAAyB,QAAa,CAC/C,qBAAsBA,EAAO,oBAC/B,CACF,CACF,CACJ,CACF,CACF,EAvGaL,EAANW,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAY,MAAM,GAEzBF,EAAA,EAAAC,EAAOC,EAAY,0BAA0B,GAE7CF,EAAA,EAAAC,EAAOE,EAAa,aAAa,IATzBhB",
4
+ "sourcesContent": ["import {\n type DmkNetworkClient,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\nimport { type Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { type SignReportParams } from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\nimport { networkTypes } from \"@/shared/network/di/networkTypes\";\nimport { networkClientFactory } from \"@/shared/network/networkClientFactory\";\n\nimport { type SigningEventDto } from \"./dto/SigningEventDto\";\nimport { type SignReporterDatasource } from \"./SignReporterDatasource\";\n\n@injectable()\nexport class HttpSignReporterDatasource implements SignReporterDatasource {\n private readonly http: DmkNetworkClient;\n private readonly logger: LoggerPublisherService;\n\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(configTypes.ContextModuleLoggerFactory)\n loggerFactory: (tag: string) => LoggerPublisherService,\n @inject(networkTypes.NetworkClient)\n networkClient?: DmkNetworkClient,\n ) {\n this.http = networkClient ?? networkClientFactory(config);\n this.logger = loggerFactory(\"HttpSignReporterDatasource\");\n }\n\n async report(params: SignReportParams): Promise<Either<Error, void>> {\n try {\n const dto = this.buildDto(params, this.config.appSource);\n this.logger.debug(\"[report] Posting signing event\", { data: dto });\n await this.http.post(\n `${this.config.reporter.url}/v2/blind-signing-events`,\n dto,\n { responseType: \"void\" },\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpSignReporterDatasource: Failed to report signing event\",\n ),\n );\n }\n\n return Right(undefined);\n }\n\n private buildDto(params: SignReportParams, source: string): SigningEventDto {\n const base = {\n isBlindSign: params.isBlindSign,\n sessionId: params.sessionId ?? null,\n envData: {\n modelId: params.modelId,\n signerAppVersion: params.signerAppVersion,\n deviceVersion: params.deviceVersion,\n source,\n ...(params.platform !== undefined && { platform: params.platform }),\n ...(params.appVersion !== undefined && {\n appVersion: params.appVersion,\n }),\n ...(params.platformOS !== undefined && {\n platformOS: params.platformOS,\n }),\n ...(params.platformVersion !== undefined && {\n platformVersion: params.platformVersion,\n }),\n ...(params.liveAppContext !== undefined && {\n liveAppContext: params.liveAppContext,\n }),\n },\n };\n\n switch (params.chain) {\n case \"ETH\":\n return {\n ...base,\n chain: \"ETH\",\n chainData: {\n signatureId: params.signatureId,\n signingMethod: params.signingMethod,\n targetAddress: params.targetAddress,\n chainId: params.chainId,\n blindSignReason: params.blindSignReason,\n ...(params.selectorId !== undefined && {\n selectorId: params.selectorId,\n }),\n ...(params.clearSigningType !== undefined && {\n clearSigningType: params.clearSigningType,\n }),\n ...(params.partialContextErrors !== undefined && {\n partialContextErrors: params.partialContextErrors,\n }),\n },\n };\n case \"SOL\":\n return {\n ...base,\n chain: \"SOL\",\n chainData: {\n signatureId: params.signatureId,\n signingMethod: params.signingMethod,\n targetAddress: params.targetAddress,\n blindSignReason: params.blindSignReason,\n programIds: params.programIds,\n unrecognizedPrograms: params.unrecognizedPrograms,\n ...(params.transactionSignature !== undefined && {\n transactionSignature: params.transactionSignature,\n }),\n },\n };\n }\n }\n}\n"],
5
+ "mappings": "iOAIA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAsB,QAAAC,EAAM,SAAAC,MAAa,YAEzC,OAAS,eAAAC,MAAmB,0BAG5B,OAAS,gBAAAC,MAAoB,mCAC7B,OAAS,wBAAAC,MAA4B,wCAM9B,IAAMC,EAAN,KAAmE,CAIxE,YAEmBC,EAEjBC,EAEAC,EACA,CALiB,YAAAF,EAMjB,KAAK,KAAOE,GAAiBC,EAAqBH,CAAM,EACxD,KAAK,OAASC,EAAc,4BAA4B,CAC1D,CAbiB,KACA,OAcjB,MAAM,OAAOG,EAAwD,CACnE,GAAI,CACF,MAAMC,EAAM,KAAK,SAASD,EAAQ,KAAK,OAAO,SAAS,EACvD,KAAK,OAAO,MAAM,iCAAkC,CAAE,KAAMC,CAAI,CAAC,EACjE,MAAM,KAAK,KAAK,KACd,GAAG,KAAK,OAAO,SAAS,GAAG,2BAC3BA,EACA,CAAE,aAAc,MAAO,CACzB,CACF,MAAiB,CACf,OAAOC,EACL,IAAI,MACF,4EACF,CACF,CACF,CAEA,OAAOC,EAAM,MAAS,CACxB,CAEQ,SAASH,EAA0BI,EAAiC,CAC1E,MAAMC,EAAO,CACX,YAAaL,EAAO,YACpB,UAAWA,EAAO,WAAa,KAC/B,QAAS,CACP,QAASA,EAAO,QAChB,iBAAkBA,EAAO,iBACzB,cAAeA,EAAO,cACtB,OAAAI,EACA,GAAIJ,EAAO,WAAa,QAAa,CAAE,SAAUA,EAAO,QAAS,EACjE,GAAIA,EAAO,aAAe,QAAa,CACrC,WAAYA,EAAO,UACrB,EACA,GAAIA,EAAO,aAAe,QAAa,CACrC,WAAYA,EAAO,UACrB,EACA,GAAIA,EAAO,kBAAoB,QAAa,CAC1C,gBAAiBA,EAAO,eAC1B,EACA,GAAIA,EAAO,iBAAmB,QAAa,CACzC,eAAgBA,EAAO,cACzB,CACF,CACF,EAEA,OAAQA,EAAO,MAAO,CACpB,IAAK,MACH,MAAO,CACL,GAAGK,EACH,MAAO,MACP,UAAW,CACT,YAAaL,EAAO,YACpB,cAAeA,EAAO,cACtB,cAAeA,EAAO,cACtB,QAASA,EAAO,QAChB,gBAAiBA,EAAO,gBACxB,GAAIA,EAAO,aAAe,QAAa,CACrC,WAAYA,EAAO,UACrB,EACA,GAAIA,EAAO,mBAAqB,QAAa,CAC3C,iBAAkBA,EAAO,gBAC3B,EACA,GAAIA,EAAO,uBAAyB,QAAa,CAC/C,qBAAsBA,EAAO,oBAC/B,CACF,CACF,EACF,IAAK,MACH,MAAO,CACL,GAAGK,EACH,MAAO,MACP,UAAW,CACT,YAAaL,EAAO,YACpB,cAAeA,EAAO,cACtB,cAAeA,EAAO,cACtB,gBAAiBA,EAAO,gBACxB,WAAYA,EAAO,WACnB,qBAAsBA,EAAO,qBAC7B,GAAIA,EAAO,uBAAyB,QAAa,CAC/C,qBAAsBA,EAAO,oBAC/B,CACF,CACF,CACJ,CACF,CACF,EArGaL,EAANW,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAY,MAAM,GAEzBF,EAAA,EAAAC,EAAOC,EAAY,0BAA0B,GAE7CF,EAAA,EAAAC,EAAOE,EAAa,aAAa,IATzBhB",
6
6
  "names": ["inject", "injectable", "Left", "Right", "configTypes", "networkTypes", "networkClientFactory", "HttpSignReporterDatasource", "config", "loggerFactory", "networkClient", "networkClientFactory", "params", "dto", "Left", "Right", "source", "base", "__decorateClass", "injectable", "__decorateParam", "inject", "configTypes", "networkTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Left as c,Right as l}from"purify-ts";import{BlindSignReason as p}from"../../../../modules/multichain/reporter/model/BlindSigningEvent";import{BlindSigningModelId as a}from"../../../../shared/model/BlindSigningModelId";import{HttpSignReporterDatasource as g}from"./HttpSignReporterDatasource";describe("HttpSignReporterDatasource",()=>{const s={reporter:{url:"https://reporter.test"},appSource:"third-party",originToken:"originToken"},d={modelId:a.NANO_X,signerAppVersion:"1.4.0",deviceVersion:"2.2.3"},t={...d,chain:"SOL",signatureId:"abc123-1738850400000",signingMethod:"sol_signTransaction",isBlindSign:!0,targetAddress:"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",blindSignReason:p.UNRECOGNIZED_PROGRAM,programIds:["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4","TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],unrecognizedPrograms:["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"]},i={...d,chain:"ETH",signatureId:"def456-1738850400000",signingMethod:"eth_signTransaction",isBlindSign:!1,chainId:1,targetAddress:"0xdAC17F958D2ee523a2206206994597C13D831ec7",blindSignReason:null};let e,n;beforeEach(()=>{vi.resetAllMocks(),e={post:vi.fn()},n=new g(s,()=>({debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn()}),e)}),describe("report",()=>{it("should return Right(undefined) on success",async()=>{e.post.mockResolvedValueOnce(void 0);const r=await n.report(t);expect(r).toEqual(l(void 0))}),it("should return Left(Error) when the request fails",async()=>{e.post.mockRejectedValueOnce(new Error("network error"));const r=await n.report(t);expect(r).toEqual(c(new Error("[ContextModule] HttpSignReporterDatasource: Failed to report signing event")))}),it("should call the v2 endpoint with the correct URL",async()=>{e.post.mockResolvedValueOnce(void 0),await n.report(t),expect(e.post).toHaveBeenCalledWith(`${s.reporter.url}/v2/blind-signing-events`,expect.anything(),{responseType:"void"})}),it("should build correct three-layer body for SOL params",async()=>{e.post.mockResolvedValueOnce(void 0),await n.report(t),expect(e.post).toHaveBeenCalledWith(expect.any(String),{chain:"SOL",isBlindSign:!0,sessionId:null,chainData:{chain:"SOL",signatureId:t.signatureId,signingMethod:"sol_signTransaction",targetAddress:t.targetAddress,blindSignReason:p.UNRECOGNIZED_PROGRAM,programIds:t.programIds,unrecognizedPrograms:t.unrecognizedPrograms},envData:{modelId:a.NANO_X,signerAppVersion:"1.4.0",deviceVersion:"2.2.3",source:"third-party"}},{responseType:"void"})}),it("should build correct three-layer body for ETH params",async()=>{e.post.mockResolvedValueOnce(void 0),await n.report(i),expect(e.post).toHaveBeenCalledWith(expect.any(String),{chain:"ETH",isBlindSign:!1,sessionId:null,chainData:{chain:"ETH",signatureId:i.signatureId,signingMethod:"eth_signTransaction",targetAddress:i.targetAddress,chainId:1,blindSignReason:null},envData:{modelId:a.NANO_X,signerAppVersion:"1.4.0",deviceVersion:"2.2.3",source:"third-party"}},{responseType:"void"})}),it("should include optional env fields when provided",async()=>{e.post.mockResolvedValueOnce(void 0);const r={...t,platform:"desktop",appVersion:"2.80.0",platformOS:"macOS",platformVersion:"14.5",liveAppContext:"swap",sessionId:"session-abc"};await n.report(r);const o=e.post.mock.calls[0][1];expect(o.envData.platform).toBe("desktop"),expect(o.envData.appVersion).toBe("2.80.0"),expect(o.envData.platformOS).toBe("macOS"),expect(o.envData.platformVersion).toBe("14.5"),expect(o.envData.liveAppContext).toBe("swap"),expect(o.sessionId).toBe("session-abc")}),it("should include transactionSignature in SOL chainData when provided",async()=>{e.post.mockResolvedValueOnce(void 0);const r={...t,transactionSignature:"5yJ9..."};await n.report(r);const o=e.post.mock.calls[0][1];expect(o.chainData.transactionSignature).toBe("5yJ9...")})})});
1
+ import{Left as c,Right as l}from"purify-ts";import{BlindSignReason as p}from"../../../../modules/multichain/reporter/model/BlindSigningEvent";import{BlindSigningModelId as a}from"../../../../shared/model/BlindSigningModelId";import{HttpSignReporterDatasource as g}from"./HttpSignReporterDatasource";describe("HttpSignReporterDatasource",()=>{const s={reporter:{url:"https://reporter.test"},appSource:"third-party",originToken:"originToken"},d={modelId:a.NANO_X,signerAppVersion:"1.4.0",deviceVersion:"2.2.3"},t={...d,chain:"SOL",signatureId:"abc123-1738850400000",signingMethod:"sol_signTransaction",isBlindSign:!0,targetAddress:"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",blindSignReason:p.UNRECOGNIZED_PROGRAM,programIds:["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4","TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],unrecognizedPrograms:["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"]},i={...d,chain:"ETH",signatureId:"def456-1738850400000",signingMethod:"eth_signTransaction",isBlindSign:!1,chainId:1,targetAddress:"0xdAC17F958D2ee523a2206206994597C13D831ec7",blindSignReason:null};let e,n;beforeEach(()=>{vi.resetAllMocks(),e={post:vi.fn()},n=new g(s,()=>({debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn()}),e)}),describe("report",()=>{it("should return Right(undefined) on success",async()=>{e.post.mockResolvedValueOnce(void 0);const r=await n.report(t);expect(r).toEqual(l(void 0))}),it("should return Left(Error) when the request fails",async()=>{e.post.mockRejectedValueOnce(new Error("network error"));const r=await n.report(t);expect(r).toEqual(c(new Error("[ContextModule] HttpSignReporterDatasource: Failed to report signing event")))}),it("should call the v2 endpoint with the correct URL",async()=>{e.post.mockResolvedValueOnce(void 0),await n.report(t),expect(e.post).toHaveBeenCalledWith(`${s.reporter.url}/v2/blind-signing-events`,expect.anything(),{responseType:"void"})}),it("should build correct three-layer body for SOL params",async()=>{e.post.mockResolvedValueOnce(void 0),await n.report(t),expect(e.post).toHaveBeenCalledWith(expect.any(String),{chain:"SOL",isBlindSign:!0,sessionId:null,chainData:{signatureId:t.signatureId,signingMethod:"sol_signTransaction",targetAddress:t.targetAddress,blindSignReason:p.UNRECOGNIZED_PROGRAM,programIds:t.programIds,unrecognizedPrograms:t.unrecognizedPrograms},envData:{modelId:a.NANO_X,signerAppVersion:"1.4.0",deviceVersion:"2.2.3",source:"third-party"}},{responseType:"void"})}),it("should build correct three-layer body for ETH params",async()=>{e.post.mockResolvedValueOnce(void 0),await n.report(i),expect(e.post).toHaveBeenCalledWith(expect.any(String),{chain:"ETH",isBlindSign:!1,sessionId:null,chainData:{signatureId:i.signatureId,signingMethod:"eth_signTransaction",targetAddress:i.targetAddress,chainId:1,blindSignReason:null},envData:{modelId:a.NANO_X,signerAppVersion:"1.4.0",deviceVersion:"2.2.3",source:"third-party"}},{responseType:"void"})}),it("should include optional env fields when provided",async()=>{e.post.mockResolvedValueOnce(void 0);const r={...t,platform:"desktop",appVersion:"2.80.0",platformOS:"macOS",platformVersion:"14.5",liveAppContext:"swap",sessionId:"session-abc"};await n.report(r);const o=e.post.mock.calls[0][1];expect(o.envData.platform).toBe("desktop"),expect(o.envData.appVersion).toBe("2.80.0"),expect(o.envData.platformOS).toBe("macOS"),expect(o.envData.platformVersion).toBe("14.5"),expect(o.envData.liveAppContext).toBe("swap"),expect(o.sessionId).toBe("session-abc")}),it("should include transactionSignature in SOL chainData when provided",async()=>{e.post.mockResolvedValueOnce(void 0);const r={...t,transactionSignature:"5yJ9..."};await n.report(r);const o=e.post.mock.calls[0][1];expect(o.chainData.transactionSignature).toBe("5yJ9...")})})});
2
2
  //# sourceMappingURL=HttpSignReporterDatasource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.ts"],
4
- "sourcesContent": ["import {\n type DmkNetworkClient,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { BlindSignReason } from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport {\n type EthSignReportParams,\n type SolSignReportParams,\n} from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\nimport { BlindSigningModelId } from \"@/shared/model/BlindSigningModelId\";\n\nimport { HttpSignReporterDatasource } from \"./HttpSignReporterDatasource\";\n\ndescribe(\"HttpSignReporterDatasource\", () => {\n const config = {\n reporter: { url: \"https://reporter.test\" },\n appSource: \"third-party\",\n originToken: \"originToken\",\n } as ContextModuleServiceConfig;\n\n const envFields = {\n modelId: BlindSigningModelId.NANO_X,\n signerAppVersion: \"1.4.0\",\n deviceVersion: \"2.2.3\",\n };\n\n const solParams: SolSignReportParams = {\n ...envFields,\n chain: \"SOL\",\n signatureId: \"abc123-1738850400000\",\n signingMethod: \"sol_signTransaction\",\n isBlindSign: true,\n targetAddress: \"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\",\n blindSignReason: BlindSignReason.UNRECOGNIZED_PROGRAM,\n programIds: [\n \"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\",\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\",\n ],\n unrecognizedPrograms: [\"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\"],\n };\n\n const ethParams: EthSignReportParams = {\n ...envFields,\n chain: \"ETH\",\n signatureId: \"def456-1738850400000\",\n signingMethod: \"eth_signTransaction\",\n isBlindSign: false,\n chainId: 1,\n targetAddress: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n blindSignReason: null,\n };\n\n let httpMock: { post: ReturnType<typeof vi.fn> };\n let dataSource: HttpSignReporterDatasource;\n\n beforeEach(() => {\n vi.resetAllMocks();\n httpMock = { post: vi.fn() };\n dataSource = new HttpSignReporterDatasource(\n config,\n () =>\n ({\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n }) as unknown as LoggerPublisherService,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"report\", () => {\n it(\"should return Right(undefined) on success\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n const result = await dataSource.report(solParams);\n\n // THEN\n expect(result).toEqual(Right(undefined));\n });\n\n it(\"should return Left(Error) when the request fails\", async () => {\n // GIVEN\n httpMock.post.mockRejectedValueOnce(new Error(\"network error\"));\n\n // WHEN\n const result = await dataSource.report(solParams);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSignReporterDatasource: Failed to report signing event\",\n ),\n ),\n );\n });\n\n it(\"should call the v2 endpoint with the correct URL\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n await dataSource.report(solParams);\n\n // THEN\n expect(httpMock.post).toHaveBeenCalledWith(\n `${config.reporter.url}/v2/blind-signing-events`,\n expect.anything(),\n { responseType: \"void\" },\n );\n });\n\n it(\"should build correct three-layer body for SOL params\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n await dataSource.report(solParams);\n\n // THEN\n expect(httpMock.post).toHaveBeenCalledWith(\n expect.any(String),\n {\n chain: \"SOL\",\n isBlindSign: true,\n sessionId: null,\n chainData: {\n chain: \"SOL\",\n signatureId: solParams.signatureId,\n signingMethod: \"sol_signTransaction\",\n targetAddress: solParams.targetAddress,\n blindSignReason: BlindSignReason.UNRECOGNIZED_PROGRAM,\n programIds: solParams.programIds,\n unrecognizedPrograms: solParams.unrecognizedPrograms,\n },\n envData: {\n modelId: BlindSigningModelId.NANO_X,\n signerAppVersion: \"1.4.0\",\n deviceVersion: \"2.2.3\",\n source: \"third-party\",\n },\n },\n { responseType: \"void\" },\n );\n });\n\n it(\"should build correct three-layer body for ETH params\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n await dataSource.report(ethParams);\n\n // THEN\n expect(httpMock.post).toHaveBeenCalledWith(\n expect.any(String),\n {\n chain: \"ETH\",\n isBlindSign: false,\n sessionId: null,\n chainData: {\n chain: \"ETH\",\n signatureId: ethParams.signatureId,\n signingMethod: \"eth_signTransaction\",\n targetAddress: ethParams.targetAddress,\n chainId: 1,\n blindSignReason: null,\n },\n envData: {\n modelId: BlindSigningModelId.NANO_X,\n signerAppVersion: \"1.4.0\",\n deviceVersion: \"2.2.3\",\n source: \"third-party\",\n },\n },\n { responseType: \"void\" },\n );\n });\n\n it(\"should include optional env fields when provided\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n const paramsWithOptional: SolSignReportParams = {\n ...solParams,\n platform: \"desktop\",\n appVersion: \"2.80.0\",\n platformOS: \"macOS\",\n platformVersion: \"14.5\",\n liveAppContext: \"swap\",\n sessionId: \"session-abc\",\n };\n\n // WHEN\n await dataSource.report(paramsWithOptional);\n\n // THEN\n const body = httpMock.post.mock.calls[0]![1];\n expect(body.envData.platform).toBe(\"desktop\");\n expect(body.envData.appVersion).toBe(\"2.80.0\");\n expect(body.envData.platformOS).toBe(\"macOS\");\n expect(body.envData.platformVersion).toBe(\"14.5\");\n expect(body.envData.liveAppContext).toBe(\"swap\");\n expect(body.sessionId).toBe(\"session-abc\");\n });\n\n it(\"should include transactionSignature in SOL chainData when provided\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n const paramsWithSig: SolSignReportParams = {\n ...solParams,\n transactionSignature: \"5yJ9...\",\n };\n\n // WHEN\n await dataSource.report(paramsWithSig);\n\n // THEN\n const body = httpMock.post.mock.calls[0]![1];\n expect(body.chainData.transactionSignature).toBe(\"5yJ9...\");\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n type DmkNetworkClient,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { BlindSignReason } from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport {\n type EthSignReportParams,\n type SolSignReportParams,\n} from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\nimport { BlindSigningModelId } from \"@/shared/model/BlindSigningModelId\";\n\nimport { HttpSignReporterDatasource } from \"./HttpSignReporterDatasource\";\n\ndescribe(\"HttpSignReporterDatasource\", () => {\n const config = {\n reporter: { url: \"https://reporter.test\" },\n appSource: \"third-party\",\n originToken: \"originToken\",\n } as ContextModuleServiceConfig;\n\n const envFields = {\n modelId: BlindSigningModelId.NANO_X,\n signerAppVersion: \"1.4.0\",\n deviceVersion: \"2.2.3\",\n };\n\n const solParams: SolSignReportParams = {\n ...envFields,\n chain: \"SOL\",\n signatureId: \"abc123-1738850400000\",\n signingMethod: \"sol_signTransaction\",\n isBlindSign: true,\n targetAddress: \"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\",\n blindSignReason: BlindSignReason.UNRECOGNIZED_PROGRAM,\n programIds: [\n \"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\",\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\",\n ],\n unrecognizedPrograms: [\"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\"],\n };\n\n const ethParams: EthSignReportParams = {\n ...envFields,\n chain: \"ETH\",\n signatureId: \"def456-1738850400000\",\n signingMethod: \"eth_signTransaction\",\n isBlindSign: false,\n chainId: 1,\n targetAddress: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n blindSignReason: null,\n };\n\n let httpMock: { post: ReturnType<typeof vi.fn> };\n let dataSource: HttpSignReporterDatasource;\n\n beforeEach(() => {\n vi.resetAllMocks();\n httpMock = { post: vi.fn() };\n dataSource = new HttpSignReporterDatasource(\n config,\n () =>\n ({\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n }) as unknown as LoggerPublisherService,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"report\", () => {\n it(\"should return Right(undefined) on success\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n const result = await dataSource.report(solParams);\n\n // THEN\n expect(result).toEqual(Right(undefined));\n });\n\n it(\"should return Left(Error) when the request fails\", async () => {\n // GIVEN\n httpMock.post.mockRejectedValueOnce(new Error(\"network error\"));\n\n // WHEN\n const result = await dataSource.report(solParams);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSignReporterDatasource: Failed to report signing event\",\n ),\n ),\n );\n });\n\n it(\"should call the v2 endpoint with the correct URL\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n await dataSource.report(solParams);\n\n // THEN\n expect(httpMock.post).toHaveBeenCalledWith(\n `${config.reporter.url}/v2/blind-signing-events`,\n expect.anything(),\n { responseType: \"void\" },\n );\n });\n\n it(\"should build correct three-layer body for SOL params\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n await dataSource.report(solParams);\n\n // THEN\n expect(httpMock.post).toHaveBeenCalledWith(\n expect.any(String),\n {\n chain: \"SOL\",\n isBlindSign: true,\n sessionId: null,\n chainData: {\n signatureId: solParams.signatureId,\n signingMethod: \"sol_signTransaction\",\n targetAddress: solParams.targetAddress,\n blindSignReason: BlindSignReason.UNRECOGNIZED_PROGRAM,\n programIds: solParams.programIds,\n unrecognizedPrograms: solParams.unrecognizedPrograms,\n },\n envData: {\n modelId: BlindSigningModelId.NANO_X,\n signerAppVersion: \"1.4.0\",\n deviceVersion: \"2.2.3\",\n source: \"third-party\",\n },\n },\n { responseType: \"void\" },\n );\n });\n\n it(\"should build correct three-layer body for ETH params\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n\n // WHEN\n await dataSource.report(ethParams);\n\n // THEN\n expect(httpMock.post).toHaveBeenCalledWith(\n expect.any(String),\n {\n chain: \"ETH\",\n isBlindSign: false,\n sessionId: null,\n chainData: {\n signatureId: ethParams.signatureId,\n signingMethod: \"eth_signTransaction\",\n targetAddress: ethParams.targetAddress,\n chainId: 1,\n blindSignReason: null,\n },\n envData: {\n modelId: BlindSigningModelId.NANO_X,\n signerAppVersion: \"1.4.0\",\n deviceVersion: \"2.2.3\",\n source: \"third-party\",\n },\n },\n { responseType: \"void\" },\n );\n });\n\n it(\"should include optional env fields when provided\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n const paramsWithOptional: SolSignReportParams = {\n ...solParams,\n platform: \"desktop\",\n appVersion: \"2.80.0\",\n platformOS: \"macOS\",\n platformVersion: \"14.5\",\n liveAppContext: \"swap\",\n sessionId: \"session-abc\",\n };\n\n // WHEN\n await dataSource.report(paramsWithOptional);\n\n // THEN\n const body = httpMock.post.mock.calls[0]![1];\n expect(body.envData.platform).toBe(\"desktop\");\n expect(body.envData.appVersion).toBe(\"2.80.0\");\n expect(body.envData.platformOS).toBe(\"macOS\");\n expect(body.envData.platformVersion).toBe(\"14.5\");\n expect(body.envData.liveAppContext).toBe(\"swap\");\n expect(body.sessionId).toBe(\"session-abc\");\n });\n\n it(\"should include transactionSignature in SOL chainData when provided\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValueOnce(undefined);\n const paramsWithSig: SolSignReportParams = {\n ...solParams,\n transactionSignature: \"5yJ9...\",\n };\n\n // WHEN\n await dataSource.report(paramsWithSig);\n\n // THEN\n const body = httpMock.post.mock.calls[0]![1];\n expect(body.chainData.transactionSignature).toBe(\"5yJ9...\");\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["Left", "Right", "BlindSignReason", "BlindSigningModelId", "HttpSignReporterDatasource", "config", "envFields", "solParams", "ethParams", "httpMock", "dataSource", "result", "paramsWithOptional", "body", "paramsWithSig"]
7
7
  }
@@ -18,6 +18,7 @@ export declare class DefaultContextModule implements ContextModule {
18
18
  private _getDefaultLoaders;
19
19
  private _getDefaultTypedDataLoader;
20
20
  private _getBlindSigningReporter;
21
+ private _getSignReporter;
21
22
  getContexts(input: unknown, expectedTypes?: ClearSignContextType[]): Promise<ClearSignContext[]>;
22
23
  getFieldContext<TInput>(field: TInput, expectedType: ClearSignContextType): Promise<ClearSignContext>;
23
24
  getTypedDataFilters(typedData: TypedDataContext): Promise<TypedDataClearSignContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultContextModule.d.ts","sourceRoot":"","sources":["../../../src/DefaultContextModule.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AACpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAQlF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAIlH,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAelG,OAAO,EACL,KAAK,gBAAgB,EACrB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAyD;IACxE,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,aAAa,CAAsB;gBAE/B,IAAI,EAAE,0BAA0B,GAAG,yBAAyB;IAmBxE,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,kBAAkB;IAoF1B,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,wBAAwB;IASnB,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,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjE"}
1
+ {"version":3,"file":"DefaultContextModule.d.ts","sourceRoot":"","sources":["../../../src/DefaultContextModule.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AACpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAQlF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAKlH,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAelG,OAAO,EACL,KAAK,gBAAgB,EACrB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAyD;IACxE,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,aAAa,CAAsB;gBAE/B,IAAI,EAAE,0BAA0B,GAAG,yBAAyB;IAmBxE,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,kBAAkB;IAoF1B,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,gBAAgB;IAOX,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,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"HttpSignReporterDatasource.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAKlG,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,qBACa,0BAA2B,YAAW,sBAAsB;IAMrE,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAI7B,MAAM,EAAE,0BAA0B,EAEnD,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,EAEtD,aAAa,CAAC,EAAE,gBAAgB;IAM5B,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAoBpE,OAAO,CAAC,QAAQ;CAmEjB"}
1
+ {"version":3,"file":"HttpSignReporterDatasource.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAKlG,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,qBACa,0BAA2B,YAAW,sBAAsB;IAMrE,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAI7B,MAAM,EAAE,0BAA0B,EAEnD,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,EAEtD,aAAa,CAAC,EAAE,gBAAgB;IAM5B,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAoBpE,OAAO,CAAC,QAAQ;CAiEjB"}
@@ -12,7 +12,6 @@ type SigningEventEnvDataDto = {
12
12
  liveAppContext?: string | null;
13
13
  };
14
14
  type EthChainDataDto = {
15
- chain: "ETH";
16
15
  signatureId: string;
17
16
  signingMethod: "eth_signTransaction" | "eth_signTypedData";
18
17
  targetAddress: string | null;
@@ -23,7 +22,6 @@ type EthChainDataDto = {
23
22
  partialContextErrors?: number | null;
24
23
  };
25
24
  type SolChainDataDto = {
26
- chain: "SOL";
27
25
  signatureId: string;
28
26
  signingMethod: "sol_signTransaction";
29
27
  targetAddress: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"SigningEventDto.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/multichain/sign-reporter/data/dto/SigningEventDto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;IAC3D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,qBAAqB,CAAC;IACrC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,CAAC,mBAAmB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACpE,CAAC,mBAAmB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"SigningEventDto.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/multichain/sign-reporter/data/dto/SigningEventDto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;IAC3D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,qBAAqB,CAAC;IACrC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,CAAC,mBAAmB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACpE,CAAC,mBAAmB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC"}