@ledgerhq/context-module 2.4.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/src/ContextModule.js +1 -1
- package/lib/cjs/src/ContextModule.js.map +1 -1
- package/lib/cjs/src/ContextModuleBuilder.js +1 -1
- package/lib/cjs/src/ContextModuleBuilder.js.map +2 -2
- package/lib/cjs/src/DefaultContextModule.js +1 -1
- package/lib/cjs/src/DefaultContextModule.js.map +2 -2
- package/lib/cjs/src/di.js +1 -1
- package/lib/cjs/src/di.js.map +3 -3
- package/lib/cjs/src/index.js +1 -1
- package/lib/cjs/src/index.js.map +2 -2
- package/lib/cjs/src/modules/multichain/reporter/data/BlindSigningReporterDatasource.js.map +1 -1
- package/lib/cjs/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.js +1 -1
- package/lib/cjs/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.js.map +2 -2
- package/lib/cjs/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.test.js +1 -1
- package/lib/cjs/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.test.js.map +2 -2
- package/lib/cjs/src/modules/multichain/reporter/data/dto/BlindSigningEventDto.js.map +1 -1
- package/lib/cjs/src/modules/multichain/reporter/domain/DefaultBlindSigningReporter.test.js +1 -1
- package/lib/cjs/src/modules/multichain/reporter/domain/DefaultBlindSigningReporter.test.js.map +2 -2
- package/lib/cjs/src/modules/multichain/reporter/model/BlindSigningEvent.js +1 -1
- package/lib/cjs/src/modules/multichain/reporter/model/BlindSigningEvent.js.map +2 -2
- package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/data/SignReporterDatasource.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/data/SignReporterDatasource.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/di/signReporterModuleFactory.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/di/signReporterModuleFactory.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/di/signReporterTypes.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/di/signReporterTypes.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.test.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.test.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/domain/SignReporter.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/domain/SignReporter.js.map +7 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/model/SignReportParams.js +2 -0
- package/lib/cjs/src/modules/multichain/sign-reporter/model/SignReportParams.js.map +7 -0
- package/lib/cjs/src/{modules/multichain/reporter → shared}/model/BlindSigningModelId.js.map +1 -1
- package/lib/esm/package.json +1 -1
- package/lib/esm/src/ContextModuleBuilder.js +1 -1
- package/lib/esm/src/ContextModuleBuilder.js.map +2 -2
- package/lib/esm/src/DefaultContextModule.js +1 -1
- package/lib/esm/src/DefaultContextModule.js.map +2 -2
- package/lib/esm/src/di.js +1 -1
- package/lib/esm/src/di.js.map +3 -3
- package/lib/esm/src/index.js +1 -1
- package/lib/esm/src/index.js.map +2 -2
- package/lib/esm/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.js +1 -1
- package/lib/esm/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.js.map +2 -2
- package/lib/esm/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.test.js +1 -1
- package/lib/esm/src/modules/multichain/reporter/data/HttpBlindSigningReporterDatasource.test.js.map +2 -2
- package/lib/esm/src/modules/multichain/reporter/domain/DefaultBlindSigningReporter.test.js +1 -1
- package/lib/esm/src/modules/multichain/reporter/domain/DefaultBlindSigningReporter.test.js.map +2 -2
- package/lib/esm/src/modules/multichain/reporter/model/BlindSigningEvent.js +1 -1
- package/lib/esm/src/modules/multichain/reporter/model/BlindSigningEvent.js.map +2 -2
- package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js +2 -0
- package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js +2 -0
- package/lib/esm/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/data/SignReporterDatasource.js +1 -0
- package/lib/esm/src/modules/multichain/sign-reporter/data/SignReporterDatasource.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.js +1 -0
- package/lib/esm/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/di/signReporterModuleFactory.js +2 -0
- package/lib/esm/src/modules/multichain/sign-reporter/di/signReporterModuleFactory.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/di/signReporterTypes.js +2 -0
- package/lib/esm/src/modules/multichain/sign-reporter/di/signReporterTypes.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.js +2 -0
- package/lib/esm/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.test.js +2 -0
- package/lib/esm/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.test.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/domain/SignReporter.js +1 -0
- package/lib/esm/src/modules/multichain/sign-reporter/domain/SignReporter.js.map +7 -0
- package/lib/esm/src/modules/multichain/sign-reporter/model/SignReportParams.js +2 -0
- package/lib/esm/src/modules/multichain/sign-reporter/model/SignReportParams.js.map +7 -0
- package/lib/esm/src/{modules/multichain/reporter → shared}/model/BlindSigningModelId.js.map +1 -1
- package/lib/types/src/ContextModule.d.ts +2 -0
- package/lib/types/src/ContextModule.d.ts.map +1 -1
- package/lib/types/src/DefaultContextModule.d.ts +3 -0
- package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
- package/lib/types/src/di.d.ts.map +1 -1
- package/lib/types/src/index.d.ts +2 -1
- package/lib/types/src/index.d.ts.map +1 -1
- package/lib/types/src/modules/multichain/reporter/data/BlindSigningReporterDatasource.d.ts +1 -1
- package/lib/types/src/modules/multichain/reporter/data/BlindSigningReporterDatasource.d.ts.map +1 -1
- package/lib/types/src/modules/multichain/reporter/data/dto/BlindSigningEventDto.d.ts +1 -1
- package/lib/types/src/modules/multichain/reporter/data/dto/BlindSigningEventDto.d.ts.map +1 -1
- package/lib/types/src/modules/multichain/reporter/model/BlindSigningEvent.d.ts +1 -0
- package/lib/types/src/modules/multichain/reporter/model/BlindSigningEvent.d.ts.map +1 -1
- package/lib/types/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.d.ts +14 -0
- package/lib/types/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.d.ts +2 -0
- package/lib/types/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/data/SignReporterDatasource.d.ts +6 -0
- package/lib/types/src/modules/multichain/sign-reporter/data/SignReporterDatasource.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.d.ts +48 -0
- package/lib/types/src/modules/multichain/sign-reporter/data/dto/SigningEventDto.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/di/signReporterModuleFactory.d.ts +3 -0
- package/lib/types/src/modules/multichain/sign-reporter/di/signReporterModuleFactory.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/di/signReporterTypes.d.ts +5 -0
- package/lib/types/src/modules/multichain/sign-reporter/di/signReporterTypes.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.d.ts +10 -0
- package/lib/types/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.test.d.ts +2 -0
- package/lib/types/src/modules/multichain/sign-reporter/domain/DefaultSignReporter.test.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/domain/SignReporter.d.ts +6 -0
- package/lib/types/src/modules/multichain/sign-reporter/domain/SignReporter.d.ts.map +1 -0
- package/lib/types/src/modules/multichain/sign-reporter/model/SignReportParams.d.ts +45 -0
- package/lib/types/src/modules/multichain/sign-reporter/model/SignReportParams.d.ts.map +1 -0
- package/lib/types/src/shared/model/BlindSigningModelId.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/lib/types/src/modules/multichain/reporter/model/BlindSigningModelId.d.ts.map +0 -1
- /package/lib/cjs/src/{modules/multichain/reporter → shared}/model/BlindSigningModelId.js +0 -0
- /package/lib/esm/src/{modules/multichain/reporter → shared}/model/BlindSigningModelId.js +0 -0
- /package/lib/types/src/{modules/multichain/reporter → shared}/model/BlindSigningModelId.d.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../src/modules/multichain/reporter/data/dto/BlindSigningEventDto.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type BlindSigningMethod,\n type BlindSigningPlatform,\n type BlindSignReason,\n type ClearSigningType,\n} from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport { type BlindSigningModelId } from \"@/
|
|
4
|
+
"sourcesContent": ["import {\n type BlindSigningMethod,\n type BlindSigningPlatform,\n type BlindSignReason,\n type ClearSigningType,\n} from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport { type BlindSigningModelId } from \"@/shared/model/BlindSigningModelId\";\n\nexport type BlindSigningEventEthContextDto = {\n clearSigningType: ClearSigningType;\n partialContextErrors: number;\n};\n\nexport type BlindSigningEventDto = {\n signatureId: string;\n signingMethod: BlindSigningMethod;\n source: string;\n isBlindSign: boolean;\n chainId: number | null;\n targetAddress: string | null;\n blindSignReason: BlindSignReason | null;\n modelId: BlindSigningModelId;\n signerAppVersion: string;\n deviceVersion: string | null;\n ethContext: BlindSigningEventEthContextDto | null;\n platform?: BlindSigningPlatform;\n appVersion?: string;\n platformOS?: string;\n platformVersion?: string;\n liveAppContext?: string | null;\n sessionId?: string | null;\n};\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["BlindSigningEventDto_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("purify-ts"),r=require("../../../../modules/multichain/reporter/model/BlindSigningEvent"),d=require("../../../../
|
|
1
|
+
"use strict";var e=require("purify-ts"),r=require("../../../../modules/multichain/reporter/model/BlindSigningEvent"),d=require("../../../../shared/model/BlindSigningModelId"),i=require("./DefaultBlindSigningReporter");describe("DefaultBlindSigningReporter",()=>{const n={signatureId:"a3f8Kb-1738850400000",signingMethod:r.BlindSigningMethod.ETH_SIGN_TRANSACTION,isBlindSign:!0,chainId:1,targetAddress:"0xdAC17F958D2ee523a2206206994597C13D831ec7",blindSignReason:r.BlindSignReason.NO_CLEAR_SIGNING_CONTEXT,modelId:d.BlindSigningModelId.NANO_X,signerAppVersion:"1.12.1",deviceVersion:"2.2.3",ethContext:{clearSigningType:r.ClearSigningType.EIP7730,partialContextErrors:0}};it("should delegate to the datasource and return Right on success",async()=>{const t={report:vi.fn().mockResolvedValueOnce((0,e.Right)(void 0))},a=await new i.DefaultBlindSigningReporter(t).report(n);expect(t.report).toHaveBeenCalledWith(n),expect(a).toEqual((0,e.Right)(void 0))}),it("should delegate to the datasource and return Left on failure",async()=>{const t=new Error("report failed"),o={report:vi.fn().mockResolvedValueOnce((0,e.Left)(t))},s=await new i.DefaultBlindSigningReporter(o).report(n);expect(o.report).toHaveBeenCalledWith(n),expect(s).toEqual((0,e.Left)(t))})});
|
|
2
2
|
//# sourceMappingURL=DefaultBlindSigningReporter.test.js.map
|
package/lib/cjs/src/modules/multichain/reporter/domain/DefaultBlindSigningReporter.test.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/modules/multichain/reporter/domain/DefaultBlindSigningReporter.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type BlindSigningReporterDatasource } from \"@/modules/multichain/reporter/data/BlindSigningReporterDatasource\";\nimport {\n BlindSigningMethod,\n BlindSignReason,\n ClearSigningType,\n} from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport { BlindSigningModelId } from \"@/
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAA4B,qBAG5BC,EAIO,iEACPC,EAAoC,
|
|
4
|
+
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type BlindSigningReporterDatasource } from \"@/modules/multichain/reporter/data/BlindSigningReporterDatasource\";\nimport {\n BlindSigningMethod,\n BlindSignReason,\n ClearSigningType,\n} from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport { BlindSigningModelId } from \"@/shared/model/BlindSigningModelId\";\n\nimport { DefaultBlindSigningReporter } from \"./DefaultBlindSigningReporter\";\n\ndescribe(\"DefaultBlindSigningReporter\", () => {\n const params = {\n signatureId: \"a3f8Kb-1738850400000\",\n signingMethod: BlindSigningMethod.ETH_SIGN_TRANSACTION,\n isBlindSign: true,\n chainId: 1,\n targetAddress: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n blindSignReason: BlindSignReason.NO_CLEAR_SIGNING_CONTEXT,\n modelId: BlindSigningModelId.NANO_X,\n signerAppVersion: \"1.12.1\",\n deviceVersion: \"2.2.3\",\n ethContext: {\n clearSigningType: ClearSigningType.EIP7730,\n partialContextErrors: 0,\n },\n };\n\n it(\"should delegate to the datasource and return Right on success\", async () => {\n // GIVEN\n const dataSource: BlindSigningReporterDatasource = {\n report: vi.fn().mockResolvedValueOnce(Right(undefined)),\n };\n const reporter = new DefaultBlindSigningReporter(dataSource);\n\n // WHEN\n const result = await reporter.report(params);\n\n // THEN\n expect(dataSource.report).toHaveBeenCalledWith(params);\n expect(result).toEqual(Right(undefined));\n });\n\n it(\"should delegate to the datasource and return Left on failure\", async () => {\n // GIVEN\n const error = new Error(\"report failed\");\n const dataSource: BlindSigningReporterDatasource = {\n report: vi.fn().mockResolvedValueOnce(Left(error)),\n };\n const reporter = new DefaultBlindSigningReporter(dataSource);\n\n // WHEN\n const result = await reporter.report(params);\n\n // THEN\n expect(dataSource.report).toHaveBeenCalledWith(params);\n expect(result).toEqual(Left(error));\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAA4B,qBAG5BC,EAIO,iEACPC,EAAoC,8CAEpCC,EAA4C,yCAE5C,SAAS,8BAA+B,IAAM,CAC5C,MAAMC,EAAS,CACb,YAAa,uBACb,cAAe,qBAAmB,qBAClC,YAAa,GACb,QAAS,EACT,cAAe,6CACf,gBAAiB,kBAAgB,yBACjC,QAAS,sBAAoB,OAC7B,iBAAkB,SAClB,cAAe,QACf,WAAY,CACV,iBAAkB,mBAAiB,QACnC,qBAAsB,CACxB,CACF,EAEA,GAAG,gEAAiE,SAAY,CAE9E,MAAMC,EAA6C,CACjD,OAAQ,GAAG,GAAG,EAAE,yBAAsB,SAAM,MAAS,CAAC,CACxD,EAIMC,EAAS,MAHE,IAAI,8BAA4BD,CAAU,EAG7B,OAAOD,CAAM,EAG3C,OAAOC,EAAW,MAAM,EAAE,qBAAqBD,CAAM,EACrD,OAAOE,CAAM,EAAE,WAAQ,SAAM,MAAS,CAAC,CACzC,CAAC,EAED,GAAG,+DAAgE,SAAY,CAE7E,MAAMC,EAAQ,IAAI,MAAM,eAAe,EACjCF,EAA6C,CACjD,OAAQ,GAAG,GAAG,EAAE,yBAAsB,QAAKE,CAAK,CAAC,CACnD,EAIMD,EAAS,MAHE,IAAI,8BAA4BD,CAAU,EAG7B,OAAOD,CAAM,EAG3C,OAAOC,EAAW,MAAM,EAAE,qBAAqBD,CAAM,EACrD,OAAOE,CAAM,EAAE,WAAQ,QAAKC,CAAK,CAAC,CACpC,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_purify_ts", "import_BlindSigningEvent", "import_BlindSigningModelId", "import_DefaultBlindSigningReporter", "params", "dataSource", "result", "error"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(n,e)=>{for(var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},s=(n,e,t,g)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of r(e))!a.call(n,i)&&i!==t&&o(n,i,{get:()=>e[i],enumerable:!(g=p(e,i))||g.enumerable});return n};var S=n=>s(o({},"__esModule",{value:!0}),n);var _={};l(_,{BlindSignReason:()=>y,BlindSigningMethod:()=>d,BlindSigningPlatform:()=>f,ClearSigningType:()=>c});module.exports=S(_);const d=Object.freeze({ETH_SIGN_TRANSACTION:"eth_signTransaction",ETH_SIGN_TYPED_DATA:"eth_signTypedData"}),y=Object.freeze({NO_CLEAR_SIGNING_CONTEXT:"no_clear_signing_context",DEVICE_REJECTED_CONTEXT:"device_rejected_context",UNRECOGNIZED_PROGRAM:"unrecognized_program"}),c=Object.freeze({BASIC:"basic",EIP7730:"eip7730"}),f=Object.freeze({DESKTOP:"desktop",MOBILE:"mobile"});0&&(module.exports={BlindSignReason,BlindSigningMethod,BlindSigningPlatform,ClearSigningType});
|
|
2
2
|
//# sourceMappingURL=BlindSigningEvent.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/modules/multichain/reporter/model/BlindSigningEvent.ts"],
|
|
4
|
-
"sourcesContent": ["export const BlindSigningMethod = Object.freeze({\n ETH_SIGN_TRANSACTION: \"eth_signTransaction\",\n ETH_SIGN_TYPED_DATA: \"eth_signTypedData\",\n} as const);\nexport type BlindSigningMethod =\n (typeof BlindSigningMethod)[keyof typeof BlindSigningMethod];\n\nexport const BlindSignReason = Object.freeze({\n NO_CLEAR_SIGNING_CONTEXT: \"no_clear_signing_context\",\n DEVICE_REJECTED_CONTEXT: \"device_rejected_context\",\n} as const);\nexport type BlindSignReason =\n (typeof BlindSignReason)[keyof typeof BlindSignReason];\n\nexport const ClearSigningType = Object.freeze({\n BASIC: \"basic\",\n EIP7730: \"eip7730\",\n} as const);\nexport type ClearSigningType =\n (typeof ClearSigningType)[keyof typeof ClearSigningType];\n\nexport const BlindSigningPlatform = Object.freeze({\n DESKTOP: \"desktop\",\n MOBILE: \"mobile\",\n} as const);\nexport type BlindSigningPlatform =\n (typeof BlindSigningPlatform)[keyof typeof BlindSigningPlatform];\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,uBAAAC,EAAA,yBAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAN,GAAO,MAAMG,EAAqB,OAAO,OAAO,CAC9C,qBAAsB,sBACtB,oBAAqB,mBACvB,CAAU,EAIGD,EAAkB,OAAO,OAAO,CAC3C,yBAA0B,2BAC1B,wBAAyB,
|
|
4
|
+
"sourcesContent": ["export const BlindSigningMethod = Object.freeze({\n ETH_SIGN_TRANSACTION: \"eth_signTransaction\",\n ETH_SIGN_TYPED_DATA: \"eth_signTypedData\",\n} as const);\nexport type BlindSigningMethod =\n (typeof BlindSigningMethod)[keyof typeof BlindSigningMethod];\n\nexport const BlindSignReason = Object.freeze({\n NO_CLEAR_SIGNING_CONTEXT: \"no_clear_signing_context\",\n DEVICE_REJECTED_CONTEXT: \"device_rejected_context\",\n UNRECOGNIZED_PROGRAM: \"unrecognized_program\",\n} as const);\nexport type BlindSignReason =\n (typeof BlindSignReason)[keyof typeof BlindSignReason];\n\nexport const ClearSigningType = Object.freeze({\n BASIC: \"basic\",\n EIP7730: \"eip7730\",\n} as const);\nexport type ClearSigningType =\n (typeof ClearSigningType)[keyof typeof ClearSigningType];\n\nexport const BlindSigningPlatform = Object.freeze({\n DESKTOP: \"desktop\",\n MOBILE: \"mobile\",\n} as const);\nexport type BlindSigningPlatform =\n (typeof BlindSigningPlatform)[keyof typeof BlindSigningPlatform];\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,uBAAAC,EAAA,yBAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAN,GAAO,MAAMG,EAAqB,OAAO,OAAO,CAC9C,qBAAsB,sBACtB,oBAAqB,mBACvB,CAAU,EAIGD,EAAkB,OAAO,OAAO,CAC3C,yBAA0B,2BAC1B,wBAAyB,0BACzB,qBAAsB,sBACxB,CAAU,EAIGG,EAAmB,OAAO,OAAO,CAC5C,MAAO,QACP,QAAS,SACX,CAAU,EAIGD,EAAuB,OAAO,OAAO,CAChD,QAAS,UACT,OAAQ,QACV,CAAU",
|
|
6
6
|
"names": ["BlindSigningEvent_exports", "__export", "BlindSignReason", "BlindSigningMethod", "BlindSigningPlatform", "ClearSigningType", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var C=(i,e)=>{for(var n in e)d(i,n,{get:e[n],enumerable:!0})},I=(i,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of v(e))!y.call(i,o)&&o!==n&&d(i,o,{get:()=>e[o],enumerable:!(t=f(e,o))||t.enumerable});return i};var b=i=>I(d({},"__esModule",{value:!0}),i),h=(i,e,n,t)=>{for(var o=t>1?void 0:t?f(e,n):e,c=i.length-1,p;c>=0;c--)(p=i[c])&&(o=(t?p(e,n,o):p(o))||o);return t&&o&&d(e,n,o),o},l=(i,e)=>(n,t)=>e(n,t,i);var E={};C(E,{HttpSignReporterDatasource:()=>g});module.exports=b(E);var r=require("inversify"),s=require("purify-ts"),u=require("../../../../config/di/configTypes"),S=require("../../../../shared/network/di/networkTypes"),a=require("../../../../shared/network/networkClientFactory");let g=class{constructor(e,n,t){this.config=e;this.http=t??(0,a.networkClientFactory)(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(0,s.Left)(new Error("[ContextModule] HttpSignReporterDatasource: Failed to report signing event"))}return(0,s.Right)(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=h([(0,r.injectable)(),l(0,(0,r.inject)(u.configTypes.Config)),l(1,(0,r.inject)(u.configTypes.ContextModuleLoggerFactory)),l(2,(0,r.inject)(S.networkTypes.NetworkClient))],g);0&&(module.exports={HttpSignReporterDatasource});
|
|
2
|
+
//# sourceMappingURL=HttpSignReporterDatasource.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAIA,IAAAI,EAAmC,qBACnCC,EAAyC,qBAEzCC,EAA4B,mCAG5BC,EAA6B,4CAC7BC,EAAqC,iDAM9B,IAAMC,EAAN,KAAmE,CAIxE,YAEmBC,EAEjBC,EAEAC,EACA,CALiB,YAAAF,EAMjB,KAAK,KAAOE,MAAiB,wBAAqBF,CAAM,EACxD,KAAK,OAASC,EAAc,4BAA4B,CAC1D,CAbiB,KACA,OAcjB,MAAM,OAAOE,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,SAAO,QACL,IAAI,MACF,4EACF,CACF,CACF,CAEA,SAAO,SAAM,MAAS,CACxB,CAEQ,SAASD,EAA0BE,EAAiC,CAC1E,MAAMC,EAAO,CACX,YAAaH,EAAO,YACpB,UAAWA,EAAO,WAAa,KAC/B,QAAS,CACP,QAASA,EAAO,QAChB,iBAAkBA,EAAO,iBACzB,cAAeA,EAAO,cACtB,OAAAE,EACA,GAAIF,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,GAAGG,EACH,MAAO,MACP,UAAW,CACT,MAAO,MACP,YAAaH,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,GAAGG,EACH,MAAO,MACP,UAAW,CACT,MAAO,MACP,YAAaH,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,EAvGaJ,EAANQ,EAAA,IADN,cAAW,EAMPC,EAAA,eAAO,cAAY,MAAM,GAEzBA,EAAA,eAAO,cAAY,0BAA0B,GAE7CA,EAAA,eAAO,eAAa,aAAa,IATzBT",
|
|
6
|
+
"names": ["HttpSignReporterDatasource_exports", "__export", "HttpSignReporterDatasource", "__toCommonJS", "import_inversify", "import_purify_ts", "import_configTypes", "import_networkTypes", "import_networkClientFactory", "HttpSignReporterDatasource", "config", "loggerFactory", "networkClient", "params", "dto", "source", "base", "__decorateClass", "__decorateParam"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=require("purify-ts"),d=require("../../../../modules/multichain/reporter/model/BlindSigningEvent"),i=require("../../../../shared/model/BlindSigningModelId"),l=require("./HttpSignReporterDatasource");describe("HttpSignReporterDatasource",()=>{const p={reporter:{url:"https://reporter.test"},appSource:"third-party",originToken:"originToken"},c={modelId:i.BlindSigningModelId.NANO_X,signerAppVersion:"1.4.0",deviceVersion:"2.2.3"},t={...c,chain:"SOL",signatureId:"abc123-1738850400000",signingMethod:"sol_signTransaction",isBlindSign:!0,targetAddress:"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",blindSignReason:d.BlindSignReason.UNRECOGNIZED_PROGRAM,programIds:["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4","TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],unrecognizedPrograms:["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"]},s={...c,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 l.HttpSignReporterDatasource(p,()=>({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((0,a.Right)(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((0,a.Left)(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(`${p.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:d.BlindSignReason.UNRECOGNIZED_PROGRAM,programIds:t.programIds,unrecognizedPrograms:t.unrecognizedPrograms},envData:{modelId:i.BlindSigningModelId.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(s),expect(e.post).toHaveBeenCalledWith(expect.any(String),{chain:"ETH",isBlindSign:!1,sessionId:null,chainData:{chain:"ETH",signatureId:s.signatureId,signingMethod:"eth_signTransaction",targetAddress:s.targetAddress,chainId:1,blindSignReason:null},envData:{modelId:i.BlindSigningModelId.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
|
+
//# sourceMappingURL=HttpSignReporterDatasource.test.js.map
|
package/lib/cjs/src/modules/multichain/sign-reporter/data/HttpSignReporterDatasource.test.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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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",
|
|
6
|
+
"names": ["import_purify_ts", "import_BlindSigningEvent", "import_BlindSigningModelId", "import_HttpSignReporterDatasource", "config", "envFields", "solParams", "ethParams", "httpMock", "dataSource", "result", "paramsWithOptional", "body", "paramsWithSig"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var n=(e,r,p,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of m(r))!s.call(e,o)&&o!==p&&i(e,o,{get:()=>r[o],enumerable:!(t=a(r,o))||t.enumerable});return e};var f=e=>n(i({},"__esModule",{value:!0}),e);var g={};module.exports=f(g);
|
|
2
|
+
//# sourceMappingURL=SignReporterDatasource.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/modules/multichain/sign-reporter/data/SignReporterDatasource.ts"],
|
|
4
|
+
"sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport { type SignReportParams } from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\n\nexport interface SignReporterDatasource {\n report(params: SignReportParams): Promise<Either<Error, void>>;\n}\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["SignReporterDatasource_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var l=(i,n,g,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of r(n))!o.call(i,t)&&t!==g&&a(i,t,{get:()=>n[t],enumerable:!(e=s(n,t))||e.enumerable});return i};var d=i=>l(a({},"__esModule",{value:!0}),i);var p={};module.exports=d(p);
|
|
2
|
+
//# sourceMappingURL=SigningEventDto.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../src/modules/multichain/sign-reporter/data/dto/SigningEventDto.ts"],
|
|
4
|
+
"sourcesContent": ["import { type BlindSignReason } from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport { type BlindSigningModelId } from \"@/shared/model/BlindSigningModelId\";\n\ntype SigningEventEnvDataDto = {\n modelId: BlindSigningModelId;\n signerAppVersion: string;\n deviceVersion: string | null;\n source: string;\n platform?: \"desktop\" | \"mobile\";\n appVersion?: string;\n platformOS?: string;\n platformVersion?: string;\n liveAppContext?: string | null;\n};\n\ntype EthChainDataDto = {\n chain: \"ETH\";\n signatureId: string;\n signingMethod: \"eth_signTransaction\" | \"eth_signTypedData\";\n targetAddress: string | null;\n chainId: number | null;\n blindSignReason: BlindSignReason | null;\n selectorId?: string | null;\n clearSigningType?: \"basic\" | \"eip7730\" | null;\n partialContextErrors?: number | null;\n};\n\ntype SolChainDataDto = {\n chain: \"SOL\";\n signatureId: string;\n signingMethod: \"sol_signTransaction\";\n targetAddress: string | null;\n blindSignReason: BlindSignReason | null;\n programIds: string[];\n unrecognizedPrograms: string[];\n transactionSignature?: string | null;\n};\n\ntype SigningEventDtoBase = {\n isBlindSign: boolean;\n sessionId: string | null;\n envData: SigningEventEnvDataDto;\n};\n\nexport type SigningEventDto =\n | (SigningEventDtoBase & { chain: \"ETH\"; chainData: EthChainDataDto })\n | (SigningEventDtoBase & { chain: \"SOL\"; chainData: SolChainDataDto });\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["SigningEventDto_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var u=(r,o)=>{for(var t in o)p(r,t,{get:o[t],enumerable:!0})},c=(r,o,t,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of R(o))!f.call(r,e)&&e!==t&&p(r,e,{get:()=>o[e],enumerable:!(n=s(o,e))||n.enumerable});return r};var S=r=>c(p({},"__esModule",{value:!0}),r);var D={};u(D,{signReporterModuleFactory:()=>l});module.exports=S(D);var m=require("inversify"),a=require("../../../../modules/multichain/sign-reporter/data/HttpSignReporterDatasource"),i=require("../../../../modules/multichain/sign-reporter/di/signReporterTypes"),g=require("../../../../modules/multichain/sign-reporter/domain/DefaultSignReporter");const l=()=>new m.ContainerModule(({bind:r})=>{r(i.signReporterTypes.SignReporterDatasource).to(a.HttpSignReporterDatasource),r(i.signReporterTypes.SignReporter).to(g.DefaultSignReporter)});0&&(module.exports={signReporterModuleFactory});
|
|
2
|
+
//# sourceMappingURL=signReporterModuleFactory.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/modules/multichain/sign-reporter/di/signReporterModuleFactory.ts"],
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpSignReporterDatasource } from \"@/modules/multichain/sign-reporter/data/HttpSignReporterDatasource\";\nimport { signReporterTypes } from \"@/modules/multichain/sign-reporter/di/signReporterTypes\";\nimport { DefaultSignReporter } from \"@/modules/multichain/sign-reporter/domain/DefaultSignReporter\";\n\nexport const signReporterModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(signReporterTypes.SignReporterDatasource).to(\n HttpSignReporterDatasource,\n );\n bind(signReporterTypes.SignReporter).to(DefaultSignReporter);\n });\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA2C,8EAC3CC,EAAkC,mEAClCC,EAAoC,yEAE7B,MAAML,EAA4B,IACvC,IAAI,kBAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAK,oBAAkB,sBAAsB,EAAE,GAC7C,4BACF,EACAA,EAAK,oBAAkB,YAAY,EAAE,GAAG,qBAAmB,CAC7D,CAAC",
|
|
6
|
+
"names": ["signReporterModuleFactory_exports", "__export", "signReporterModuleFactory", "__toCommonJS", "import_inversify", "import_HttpSignReporterDatasource", "import_signReporterTypes", "import_DefaultSignReporter", "bind"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var s=(e,r)=>{for(var t in r)p(e,t,{get:r[t],enumerable:!0})},R=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of g(r))!i.call(e,o)&&o!==t&&p(e,o,{get:()=>r[o],enumerable:!(n=S(r,o))||n.enumerable});return e};var a=e=>R(p({},"__esModule",{value:!0}),e);var y={};s(y,{signReporterTypes:()=>c});module.exports=a(y);const c={SignReporterDatasource:Symbol.for("SignReporterDatasource"),SignReporter:Symbol.for("SignReporter")};0&&(module.exports={signReporterTypes});
|
|
2
|
+
//# sourceMappingURL=signReporterTypes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/modules/multichain/sign-reporter/di/signReporterTypes.ts"],
|
|
4
|
+
"sourcesContent": ["export const signReporterTypes = {\n SignReporterDatasource: Symbol.for(\"SignReporterDatasource\"),\n SignReporter: Symbol.for(\"SignReporter\"),\n};\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAoB,CAC/B,uBAAwB,OAAO,IAAI,wBAAwB,EAC3D,aAAc,OAAO,IAAI,cAAc,CACzC",
|
|
6
|
+
"names": ["signReporterTypes_exports", "__export", "signReporterTypes", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var m=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var u=(o,r)=>{for(var e in r)m(o,e,{get:r[e],enumerable:!0})},f=(o,r,e,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of R(r))!d.call(o,t)&&t!==e&&m(o,t,{get:()=>r[t],enumerable:!(p=c(r,t))||p.enumerable});return o};var h=o=>f(m({},"__esModule",{value:!0}),o),y=(o,r,e,p)=>{for(var t=p>1?void 0:p?c(r,e):r,s=o.length-1,n;s>=0;s--)(n=o[s])&&(t=(p?n(r,e,t):n(t))||t);return p&&t&&m(r,e,t),t},S=(o,r)=>(e,p)=>r(e,p,o);var E={};u(E,{DefaultSignReporter:()=>i});module.exports=h(E);var a=require("inversify"),g=require("../../../../modules/multichain/sign-reporter/di/signReporterTypes");let i=class{constructor(r){this.dataSource=r}async report(r){return this.dataSource.report(r)}};i=y([(0,a.injectable)(),S(0,(0,a.inject)(g.signReporterTypes.SignReporterDatasource))],i);0&&(module.exports={DefaultSignReporter});
|
|
2
|
+
//# sourceMappingURL=DefaultSignReporter.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/modules/multichain/sign-reporter/domain/DefaultSignReporter.ts"],
|
|
4
|
+
"sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { type Either } from \"purify-ts\";\n\nimport { type SignReporterDatasource } from \"@/modules/multichain/sign-reporter/data/SignReporterDatasource\";\nimport { signReporterTypes } from \"@/modules/multichain/sign-reporter/di/signReporterTypes\";\nimport { type SignReportParams } from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\n\nimport { type SignReporter } from \"./SignReporter\";\n\n@injectable()\nexport class DefaultSignReporter implements SignReporter {\n constructor(\n @inject(signReporterTypes.SignReporterDatasource)\n private readonly dataSource: SignReporterDatasource,\n ) {}\n\n async report(params: SignReportParams): Promise<Either<Error, void>> {\n return this.dataSource.report(params);\n }\n}\n"],
|
|
5
|
+
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAInCC,EAAkC,mEAM3B,IAAMC,EAAN,KAAkD,CACvD,YAEmBC,EACjB,CADiB,gBAAAA,CAChB,CAEH,MAAM,OAAOC,EAAwD,CACnE,OAAO,KAAK,WAAW,OAAOA,CAAM,CACtC,CACF,EATaF,EAANG,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,oBAAkB,sBAAsB,IAFvCJ",
|
|
6
|
+
"names": ["DefaultSignReporter_exports", "__export", "DefaultSignReporter", "__toCommonJS", "import_inversify", "import_signReporterTypes", "DefaultSignReporter", "dataSource", "params", "__decorateClass", "__decorateParam"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("purify-ts"),i=require("../../../../modules/multichain/reporter/model/BlindSigningEvent"),s=require("../../../../shared/model/BlindSigningModelId"),n=require("./DefaultSignReporter");describe("DefaultSignReporter",()=>{const t={chain:"SOL",signatureId:"abc123-1738850400000",signingMethod:"sol_signTransaction",isBlindSign:!0,targetAddress:null,blindSignReason:i.BlindSignReason.NO_CLEAR_SIGNING_CONTEXT,programIds:["11111111111111111111111111111111"],unrecognizedPrograms:[],modelId:s.BlindSigningModelId.FLEX,signerAppVersion:"1.4.0",deviceVersion:"2.2.3"};it("should delegate to the datasource and return Right on success",async()=>{const r={report:vi.fn().mockResolvedValueOnce((0,e.Right)(void 0))},a=await new n.DefaultSignReporter(r).report(t);expect(r.report).toHaveBeenCalledWith(t),expect(a).toEqual((0,e.Right)(void 0))}),it("should delegate to the datasource and return Left on failure",async()=>{const r=new Error("report failed"),o={report:vi.fn().mockResolvedValueOnce((0,e.Left)(r))},d=await new n.DefaultSignReporter(o).report(t);expect(o.report).toHaveBeenCalledWith(t),expect(d).toEqual((0,e.Left)(r))})});
|
|
2
|
+
//# sourceMappingURL=DefaultSignReporter.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/modules/multichain/sign-reporter/domain/DefaultSignReporter.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { BlindSignReason } from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport { type SignReporterDatasource } from \"@/modules/multichain/sign-reporter/data/SignReporterDatasource\";\nimport { type SolSignReportParams } from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\nimport { BlindSigningModelId } from \"@/shared/model/BlindSigningModelId\";\n\nimport { DefaultSignReporter } from \"./DefaultSignReporter\";\n\ndescribe(\"DefaultSignReporter\", () => {\n const params: SolSignReportParams = {\n chain: \"SOL\",\n signatureId: \"abc123-1738850400000\",\n signingMethod: \"sol_signTransaction\",\n isBlindSign: true,\n targetAddress: null,\n blindSignReason: BlindSignReason.NO_CLEAR_SIGNING_CONTEXT,\n programIds: [\"11111111111111111111111111111111\"],\n unrecognizedPrograms: [],\n modelId: BlindSigningModelId.FLEX,\n signerAppVersion: \"1.4.0\",\n deviceVersion: \"2.2.3\",\n };\n\n it(\"should delegate to the datasource and return Right on success\", async () => {\n // GIVEN\n const dataSource: SignReporterDatasource = {\n report: vi.fn().mockResolvedValueOnce(Right(undefined)),\n };\n const reporter = new DefaultSignReporter(dataSource);\n\n // WHEN\n const result = await reporter.report(params);\n\n // THEN\n expect(dataSource.report).toHaveBeenCalledWith(params);\n expect(result).toEqual(Right(undefined));\n });\n\n it(\"should delegate to the datasource and return Left on failure\", async () => {\n // GIVEN\n const error = new Error(\"report failed\");\n const dataSource: SignReporterDatasource = {\n report: vi.fn().mockResolvedValueOnce(Left(error)),\n };\n const reporter = new DefaultSignReporter(dataSource);\n\n // WHEN\n const result = await reporter.report(params);\n\n // THEN\n expect(dataSource.report).toHaveBeenCalledWith(params);\n expect(result).toEqual(Left(error));\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAA4B,qBAE5BC,EAAgC,iEAGhCC,EAAoC,8CAEpCC,EAAoC,iCAEpC,SAAS,sBAAuB,IAAM,CACpC,MAAMC,EAA8B,CAClC,MAAO,MACP,YAAa,uBACb,cAAe,sBACf,YAAa,GACb,cAAe,KACf,gBAAiB,kBAAgB,yBACjC,WAAY,CAAC,kCAAkC,EAC/C,qBAAsB,CAAC,EACvB,QAAS,sBAAoB,KAC7B,iBAAkB,QAClB,cAAe,OACjB,EAEA,GAAG,gEAAiE,SAAY,CAE9E,MAAMC,EAAqC,CACzC,OAAQ,GAAG,GAAG,EAAE,yBAAsB,SAAM,MAAS,CAAC,CACxD,EAIMC,EAAS,MAHE,IAAI,sBAAoBD,CAAU,EAGrB,OAAOD,CAAM,EAG3C,OAAOC,EAAW,MAAM,EAAE,qBAAqBD,CAAM,EACrD,OAAOE,CAAM,EAAE,WAAQ,SAAM,MAAS,CAAC,CACzC,CAAC,EAED,GAAG,+DAAgE,SAAY,CAE7E,MAAMC,EAAQ,IAAI,MAAM,eAAe,EACjCF,EAAqC,CACzC,OAAQ,GAAG,GAAG,EAAE,yBAAsB,QAAKE,CAAK,CAAC,CACnD,EAIMD,EAAS,MAHE,IAAI,sBAAoBD,CAAU,EAGrB,OAAOD,CAAM,EAG3C,OAAOC,EAAW,MAAM,EAAE,qBAAqBD,CAAM,EACrD,OAAOE,CAAM,EAAE,WAAQ,QAAKC,CAAK,CAAC,CACpC,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_purify_ts", "import_BlindSigningEvent", "import_BlindSigningModelId", "import_DefaultSignReporter", "params", "dataSource", "result", "error"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var s=(e,r,p,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of a(r))!n.call(e,o)&&o!==p&&i(e,o,{get:()=>r[o],enumerable:!(t=m(r,o))||t.enumerable});return e};var f=e=>s(i({},"__esModule",{value:!0}),e);var g={};module.exports=f(g);
|
|
2
|
+
//# sourceMappingURL=SignReporter.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/modules/multichain/sign-reporter/domain/SignReporter.ts"],
|
|
4
|
+
"sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport { type SignReportParams } from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\n\nexport interface SignReporter {\n report(params: SignReportParams): Promise<Either<Error, void>>;\n}\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["SignReporter_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(i,n)=>{for(var e in n)o(i,e,{get:n[e],enumerable:!0})},p=(i,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of s(n))!a.call(i,t)&&t!==e&&o(i,t,{get:()=>n[t],enumerable:!(r=g(n,t))||r.enumerable});return i};var S=i=>p(o({},"__esModule",{value:!0}),i);var T={};l(T,{SigningMethod:()=>d});module.exports=S(T);const d=Object.freeze({ETH_SIGN_TRANSACTION:"eth_signTransaction",ETH_SIGN_TYPED_DATA:"eth_signTypedData",SOL_SIGN_TRANSACTION:"sol_signTransaction"});0&&(module.exports={SigningMethod});
|
|
2
|
+
//# sourceMappingURL=SignReportParams.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/modules/multichain/sign-reporter/model/SignReportParams.ts"],
|
|
4
|
+
"sourcesContent": ["import { type BlindSignReason } from \"@/modules/multichain/reporter/model/BlindSigningEvent\";\nimport { type BlindSigningModelId } from \"@/shared/model/BlindSigningModelId\";\n\nexport const SigningMethod = Object.freeze({\n ETH_SIGN_TRANSACTION: \"eth_signTransaction\",\n ETH_SIGN_TYPED_DATA: \"eth_signTypedData\",\n SOL_SIGN_TRANSACTION: \"sol_signTransaction\",\n} as const);\nexport type SigningMethod = (typeof SigningMethod)[keyof typeof SigningMethod];\n\ntype SignReportEnvData = {\n modelId: BlindSigningModelId;\n signerAppVersion: string;\n deviceVersion: string | null;\n platform?: \"desktop\" | \"mobile\";\n appVersion?: string;\n platformOS?: string;\n platformVersion?: string;\n liveAppContext?: string | null;\n sessionId?: string | null;\n};\n\nexport type EthSignReportParams = SignReportEnvData & {\n chain: \"ETH\";\n signatureId: string;\n signingMethod:\n | typeof SigningMethod.ETH_SIGN_TRANSACTION\n | typeof SigningMethod.ETH_SIGN_TYPED_DATA;\n isBlindSign: boolean;\n chainId: number | null;\n targetAddress: string | null;\n selectorId?: string | null;\n blindSignReason: BlindSignReason | null;\n clearSigningType?: \"basic\" | \"eip7730\" | null;\n partialContextErrors?: number | null;\n};\n\nexport type SolSignReportParams = SignReportEnvData & {\n chain: \"SOL\";\n signatureId: string;\n signingMethod: typeof SigningMethod.SOL_SIGN_TRANSACTION;\n isBlindSign: boolean;\n targetAddress: string | null;\n blindSignReason: BlindSignReason | null;\n programIds: string[];\n unrecognizedPrograms: string[];\n transactionSignature?: string | null;\n};\n\nexport type SignReportParams = EthSignReportParams | SolSignReportParams;\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAGO,MAAME,EAAgB,OAAO,OAAO,CACzC,qBAAsB,sBACtB,oBAAqB,oBACrB,qBAAsB,qBACxB,CAAU",
|
|
6
|
+
"names": ["SignReportParams_exports", "__export", "SigningMethod", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../src/shared/model/BlindSigningModelId.ts"],
|
|
4
4
|
"sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\n\nexport const BlindSigningModelId = Object.freeze({\n NANO_S: \"nanoS\",\n NANO_SP: \"nanoSP\",\n NANO_X: \"nanoX\",\n STAX: \"stax\",\n FLEX: \"flex\",\n APEX_P: \"apexP\",\n} as const);\nexport type BlindSigningModelId =\n (typeof BlindSigningModelId)[keyof typeof BlindSigningModelId];\n\nconst deviceModelIdToBlindSigningModelId: Record<\n DeviceModelId,\n BlindSigningModelId\n> = {\n [DeviceModelId.NANO_S]: BlindSigningModelId.NANO_S,\n [DeviceModelId.NANO_SP]: BlindSigningModelId.NANO_SP,\n [DeviceModelId.NANO_X]: BlindSigningModelId.NANO_X,\n [DeviceModelId.STAX]: BlindSigningModelId.STAX,\n [DeviceModelId.FLEX]: BlindSigningModelId.FLEX,\n [DeviceModelId.APEX]: BlindSigningModelId.APEX_P,\n};\n\nexport function mapDeviceModelId(id: DeviceModelId): BlindSigningModelId {\n return deviceModelIdToBlindSigningModelId[id];\n}\n"],
|
|
5
5
|
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,qBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAA8B,2CAEvB,MAAMH,EAAsB,OAAO,OAAO,CAC/C,OAAQ,QACR,QAAS,SACT,OAAQ,QACR,KAAM,OACN,KAAM,OACN,OAAQ,OACV,CAAU,EAIJI,EAGF,CACF,CAAC,gBAAc,MAAM,EAAGJ,EAAoB,OAC5C,CAAC,gBAAc,OAAO,EAAGA,EAAoB,QAC7C,CAAC,gBAAc,MAAM,EAAGA,EAAoB,OAC5C,CAAC,gBAAc,IAAI,EAAGA,EAAoB,KAC1C,CAAC,gBAAc,IAAI,EAAGA,EAAoB,KAC1C,CAAC,gBAAc,IAAI,EAAGA,EAAoB,MAC5C,EAEO,SAASC,EAAiBI,EAAwC,CACvE,OAAOD,EAAmCC,CAAE,CAC9C",
|
|
6
6
|
"names": ["BlindSigningModelId_exports", "__export", "BlindSigningModelId", "mapDeviceModelId", "__toCommonJS", "import_device_management_kit", "deviceModelIdToBlindSigningModelId", "id"]
|
package/lib/esm/package.json
CHANGED
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
59
59
|
"watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
|
|
60
60
|
},
|
|
61
|
-
"version": "2.
|
|
61
|
+
"version": "2.5.0"
|
|
62
62
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{noopLoggerFactory as o}from"@ledgerhq/device-management-kit";import{DefaultContextModule as r}from"./DefaultContextModule";const i="https://global.api.prd.ledger.com/cal/v1",n="https://global.api.prd.ledger.com/transaction-checks/v3",a="https://nft.api.live.ledger.com",d="https://blind-signing.api.ledger.com/ingest
|
|
1
|
+
import{noopLoggerFactory as o}from"@ledgerhq/device-management-kit";import{DefaultContextModule as r}from"./DefaultContextModule";const i="https://global.api.prd.ledger.com/cal/v1",n="https://global.api.prd.ledger.com/transaction-checks/v3",a="https://nft.api.live.ledger.com",d="https://blind-signing.api.ledger.com/ingest",s=Object.freeze({cal:Object.freeze({url:i,mode:"prod",branch:"main"}),web3checks:Object.freeze({url:n}),metadataServiceDomain:Object.freeze({url:a}),reporter:Object.freeze({url:d}),datasource:Object.freeze({proxy:"default"}),appSource:"third-party"}),u={defaultLoaders:!0,defaultFieldLoaders:!0,customLoaders:[],customFieldLoaders:[],customTypedDataLoader:void 0,customBlindSigningReporter:void 0,customTrustedNameDataSource:void 0};class C{config;constructor({originToken:e,loggerFactory:t}){this.config={...s,...u,customLoaders:[],customFieldLoaders:[],originToken:e??"",loggerFactory:t??o}}removeDefaultLoaders(){return this.config.defaultLoaders=!1,this}addLoader(e){return this.config.customLoaders.push(e),this}addTypedDataLoader(e){return this.config.customTypedDataLoader=e,this}setCalConfig(e){return this.config.cal=e,this}setMetadataServiceConfig(e){return this.config.metadataServiceDomain=e,this}setWeb3ChecksConfig(e){return this.config.web3checks=e,this}setDatasourceConfig(e){return this.config.datasource=e,this}setReporterConfig(e){return this.config.reporter=e,this}setAppSource(e){return this.config.appSource=e,this}setBlindSigningReporter(e){return this.config.customBlindSigningReporter=e,this}setTrustedNameDataSource(e){return this.config.customTrustedNameDataSource=e,this}setLoggerFactory(e){return this.config.loggerFactory=e,this}setChain(e){return this.config.chain=e,this}build(){if(!this.config.chain)throw new Error("[ContextModuleBuilder] setChain() must be called before build()");return new r(this.config)}}export{C as ContextModuleBuilder,s as DEFAULT_CONFIG};
|
|
2
2
|
//# sourceMappingURL=ContextModuleBuilder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ContextModuleBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type LoggerPublisherService,\n noopLoggerFactory,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type ContextModuleConstructorArgs } from \"./config/model/ContextModuleBuildArgs\";\nimport {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n type ContextModuleDatasourceConfig,\n type ContextModuleLoaderConfig,\n type ContextModuleMetadataServiceConfig,\n type ContextModuleReporterConfig,\n type ContextModuleServiceConfig,\n type ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type TrustedNameDataSource } from \"./modules/ethereum/trusted-name/data/TrustedNameDataSource\";\nimport { type TypedDataContextLoader } from \"./modules/ethereum/typed-data/domain/TypedDataContextLoader\";\nimport { type BlindSigningReporter } from \"./modules/multichain/reporter/domain/BlindSigningReporter\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { type ContextModuleChainID } from \"./shared/domain/ContextModuleChainID\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst DEFAULT_CAL_URL = \"https://global.api.prd.ledger.com/cal/v1\";\nconst DEFAULT_WEB3_CHECKS_URL =\n \"https://global.api.prd.ledger.com/transaction-checks/v3\";\nconst DEFAULT_METADATA_SERVICE_DOMAIN = \"https://nft.api.live.ledger.com\";\nconst DEFAULT_REPORTER_URL = \"https://blind-signing.api.ledger.com/ingest
|
|
5
|
-
"mappings": "AAAA,OAEE,qBAAAA,MACK,kCAmBP,OAAS,wBAAAC,MAA4B,yBAErC,MAAMC,EAAkB,2CAClBC,EACJ,0DACIC,EAAkC,kCAClCC,EAAuB,
|
|
4
|
+
"sourcesContent": ["import {\n type LoggerPublisherService,\n noopLoggerFactory,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type ContextModuleConstructorArgs } from \"./config/model/ContextModuleBuildArgs\";\nimport {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n type ContextModuleDatasourceConfig,\n type ContextModuleLoaderConfig,\n type ContextModuleMetadataServiceConfig,\n type ContextModuleReporterConfig,\n type ContextModuleServiceConfig,\n type ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type TrustedNameDataSource } from \"./modules/ethereum/trusted-name/data/TrustedNameDataSource\";\nimport { type TypedDataContextLoader } from \"./modules/ethereum/typed-data/domain/TypedDataContextLoader\";\nimport { type BlindSigningReporter } from \"./modules/multichain/reporter/domain/BlindSigningReporter\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { type ContextModuleChainID } from \"./shared/domain/ContextModuleChainID\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst DEFAULT_CAL_URL = \"https://global.api.prd.ledger.com/cal/v1\";\nconst DEFAULT_WEB3_CHECKS_URL =\n \"https://global.api.prd.ledger.com/transaction-checks/v3\";\nconst DEFAULT_METADATA_SERVICE_DOMAIN = \"https://nft.api.live.ledger.com\";\nconst DEFAULT_REPORTER_URL = \"https://blind-signing.api.ledger.com/ingest\";\n\n/**\n * Default configuration for the context module\n *\n * @note This configuration is frozen to prevent modifications after construction\n * and can be used by external packages to get a default configuration.\n */\nexport const DEFAULT_CONFIG: Readonly<ContextModuleConfig> = Object.freeze({\n cal: Object.freeze({\n url: DEFAULT_CAL_URL,\n mode: \"prod\",\n branch: \"main\",\n }),\n web3checks: Object.freeze({\n url: DEFAULT_WEB3_CHECKS_URL,\n }),\n metadataServiceDomain: Object.freeze({\n url: DEFAULT_METADATA_SERVICE_DOMAIN,\n }),\n reporter: Object.freeze({\n url: DEFAULT_REPORTER_URL,\n }),\n datasource: Object.freeze({ proxy: \"default\" }),\n appSource: \"third-party\",\n});\n\n/**\n * Default loader configuration for the context module\n *\n * @note This configuration is internal and will be the default configuration for the context module.\n */\nconst DEFAULT_LOADER_CONFIG: ContextModuleLoaderConfig = {\n defaultLoaders: true,\n defaultFieldLoaders: true,\n customLoaders: [],\n customFieldLoaders: [],\n customTypedDataLoader: undefined,\n customBlindSigningReporter: undefined,\n customTrustedNameDataSource: undefined,\n};\n\n// Internal config type: all ServiceConfig fields except chain (set later via setChain)\ntype BuilderConfig = Omit<ContextModuleServiceConfig, \"chain\"> &\n Partial<Pick<ContextModuleServiceConfig, \"chain\">> &\n ContextModuleLoaderConfig;\n\nexport class ContextModuleBuilder {\n private config: BuilderConfig;\n\n constructor({ originToken, loggerFactory }: ContextModuleConstructorArgs) {\n this.config = {\n ...DEFAULT_CONFIG,\n ...DEFAULT_LOADER_CONFIG,\n customLoaders: [],\n customFieldLoaders: [],\n originToken: originToken ?? \"\",\n loggerFactory: loggerFactory ?? noopLoggerFactory,\n };\n }\n\n /**\n * Remove default loaders from the list of loaders\n *\n * @returns this\n */\n removeDefaultLoaders() {\n this.config.defaultLoaders = false;\n return this;\n }\n\n /**\n * Add a custom loader to the list of loaders\n *\n * @param loader loader to add to the list of loaders\n * @returns this\n */\n addLoader(loader: ContextLoader) {\n this.config.customLoaders.push(loader);\n return this;\n }\n\n /**\n * Replace the default loader for typed data clear signing contexts\n *\n * @param loader loader to use for typed data clear signing contexts\n * @returns this\n */\n addTypedDataLoader(loader: TypedDataContextLoader) {\n this.config.customTypedDataLoader = loader;\n return this;\n }\n\n /**\n * Add a custom CAL configuration\n *\n * @param calConfig\n * @returns this\n */\n setCalConfig(calConfig: ContextModuleCalConfig) {\n this.config.cal = calConfig;\n return this;\n }\n\n /**\n * Add a custom metadata service configuration\n *\n * @param metadataServiceConfig\n * @returns this\n */\n setMetadataServiceConfig(\n metadataServiceConfig: ContextModuleMetadataServiceConfig,\n ) {\n this.config.metadataServiceDomain = metadataServiceConfig;\n return this;\n }\n\n /**\n * Add a custom web3 checks configuration\n *\n * @param web3ChecksConfig\n * @returns this\n */\n setWeb3ChecksConfig(web3ChecksConfig: ContextModuleWeb3ChecksConfig) {\n this.config.web3checks = web3ChecksConfig;\n return this;\n }\n\n /**\n * Add datasource configuration\n *\n * @param datasourceConfig\n * @returns this\n */\n setDatasourceConfig(datasourceConfig: ContextModuleDatasourceConfig) {\n this.config.datasource = datasourceConfig;\n return this;\n }\n\n /**\n * Set a custom reporter configuration\n *\n * @param reporterConfig\n * @returns this\n */\n setReporterConfig(reporterConfig: ContextModuleReporterConfig) {\n this.config.reporter = reporterConfig;\n return this;\n }\n\n /**\n * Set the app source identifier included in blind signing reports\n *\n * @param appSource\n * @returns this\n */\n setAppSource(appSource: string) {\n this.config.appSource = appSource;\n return this;\n }\n\n /**\n * Set a custom blind signing reporter\n *\n * @param reporter reporter to use for blind signing events\n * @returns this\n */\n setBlindSigningReporter(reporter: BlindSigningReporter) {\n this.config.customBlindSigningReporter = reporter;\n return this;\n }\n\n /**\n * Set a custom trusted name data source\n *\n * @param dataSource data source to use for trusted name resolution\n * @returns this\n */\n setTrustedNameDataSource(dataSource: TrustedNameDataSource) {\n this.config.customTrustedNameDataSource = dataSource;\n return this;\n }\n\n /**\n * Set a custom logger factory\n *\n * @param loggerFactory\n * @returns this\n */\n setLoggerFactory(loggerFactory: (tag: string) => LoggerPublisherService) {\n this.config.loggerFactory = loggerFactory;\n return this;\n }\n\n /**\n * Set the chain for which this context module is built\n *\n * @param chain\n * @returns this\n */\n setChain(chain: ContextModuleChainID) {\n this.config.chain = chain;\n return this;\n }\n\n /**\n * Build the context module\n *\n * @returns the context module\n */\n build(): ContextModule {\n if (!this.config.chain) {\n throw new Error(\n \"[ContextModuleBuilder] setChain() must be called before build()\",\n );\n }\n return new DefaultContextModule(\n this.config as ContextModuleServiceConfig & ContextModuleLoaderConfig,\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAEE,qBAAAA,MACK,kCAmBP,OAAS,wBAAAC,MAA4B,yBAErC,MAAMC,EAAkB,2CAClBC,EACJ,0DACIC,EAAkC,kCAClCC,EAAuB,8CAQhBC,EAAgD,OAAO,OAAO,CACzE,IAAK,OAAO,OAAO,CACjB,IAAKJ,EACL,KAAM,OACN,OAAQ,MACV,CAAC,EACD,WAAY,OAAO,OAAO,CACxB,IAAKC,CACP,CAAC,EACD,sBAAuB,OAAO,OAAO,CACnC,IAAKC,CACP,CAAC,EACD,SAAU,OAAO,OAAO,CACtB,IAAKC,CACP,CAAC,EACD,WAAY,OAAO,OAAO,CAAE,MAAO,SAAU,CAAC,EAC9C,UAAW,aACb,CAAC,EAOKE,EAAmD,CACvD,eAAgB,GAChB,oBAAqB,GACrB,cAAe,CAAC,EAChB,mBAAoB,CAAC,EACrB,sBAAuB,OACvB,2BAA4B,OAC5B,4BAA6B,MAC/B,EAOO,MAAMC,CAAqB,CACxB,OAER,YAAY,CAAE,YAAAC,EAAa,cAAAC,CAAc,EAAiC,CACxE,KAAK,OAAS,CACZ,GAAGJ,EACH,GAAGC,EACH,cAAe,CAAC,EAChB,mBAAoB,CAAC,EACrB,YAAaE,GAAe,GAC5B,cAAeC,GAAiBV,CAClC,CACF,CAOA,sBAAuB,CACrB,YAAK,OAAO,eAAiB,GACtB,IACT,CAQA,UAAUW,EAAuB,CAC/B,YAAK,OAAO,cAAc,KAAKA,CAAM,EAC9B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,aAAaC,EAAmC,CAC9C,YAAK,OAAO,IAAMA,EACX,IACT,CAQA,yBACEC,EACA,CACA,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,oBAAoBC,EAAiD,CACnE,YAAK,OAAO,WAAaA,EAClB,IACT,CAQA,oBAAoBC,EAAiD,CACnE,YAAK,OAAO,WAAaA,EAClB,IACT,CAQA,kBAAkBC,EAA6C,CAC7D,YAAK,OAAO,SAAWA,EAChB,IACT,CAQA,aAAaC,EAAmB,CAC9B,YAAK,OAAO,UAAYA,EACjB,IACT,CAQA,wBAAwBC,EAAgC,CACtD,YAAK,OAAO,2BAA6BA,EAClC,IACT,CAQA,yBAAyBC,EAAmC,CAC1D,YAAK,OAAO,4BAA8BA,EACnC,IACT,CAQA,iBAAiBT,EAAwD,CACvE,YAAK,OAAO,cAAgBA,EACrB,IACT,CAQA,SAASU,EAA6B,CACpC,YAAK,OAAO,MAAQA,EACb,IACT,CAOA,OAAuB,CACrB,GAAI,CAAC,KAAK,OAAO,MACf,MAAM,IAAI,MACR,iEACF,EAEF,OAAO,IAAInB,EACT,KAAK,MACP,CACF,CACF",
|
|
6
6
|
"names": ["noopLoggerFactory", "DefaultContextModule", "DEFAULT_CAL_URL", "DEFAULT_WEB3_CHECKS_URL", "DEFAULT_METADATA_SERVICE_DOMAIN", "DEFAULT_REPORTER_URL", "DEFAULT_CONFIG", "DEFAULT_LOADER_CONFIG", "ContextModuleBuilder", "originToken", "loggerFactory", "loader", "calConfig", "metadataServiceConfig", "web3ChecksConfig", "datasourceConfig", "reporterConfig", "appSource", "reporter", "dataSource", "chain"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeContainer as
|
|
1
|
+
import{makeContainer as g}from"./di";import{accountOwnershipTypes as x}from"./modules/concordium/account-ownership/di/accountOwnershipTypes";import{calldataTypes as u}from"./modules/ethereum/calldata/di/calldataTypes";import{dynamicNetworkTypes as f}from"./modules/ethereum/dynamic-network/di/dynamicNetworkTypes";import{externalPluginTypes as L}from"./modules/ethereum/external-plugin/di/externalPluginTypes";import{gatedSigningTypes as p}from"./modules/ethereum/gated-signing/di/gatedSigningTypes";import{nftTypes as l}from"./modules/ethereum/nft/di/nftTypes";import{proxyTypes as y}from"./modules/ethereum/proxy/di/proxyTypes";import{safeTypes as h}from"./modules/ethereum/safe/di/safeTypes";import{tokenTypes as m}from"./modules/ethereum/token/di/tokenTypes";import{trustedNameTypes as C}from"./modules/ethereum/trusted-name/di/trustedNameTypes";import{typedDataTypes as _}from"./modules/ethereum/typed-data/di/typedDataTypes";import{reporterTypes as c}from"./modules/multichain/reporter/di/reporterTypes";import{transactionCheckTypes as s}from"./modules/multichain/transaction-check/di/transactionCheckTypes";import{altResolutionTypes as T}from"./modules/solana/alt-resolution/di/altResolutionTypes";import{enumVariantTypes as S}from"./modules/solana/enum-variant/di/enumVariantTypes";import{instructionInfoTypes as R}from"./modules/solana/instruction-info/di/instructionInfoTypes";import{lifiTypes as D}from"./modules/solana/lifi/di/lifiTypes";import{ownerInfoTypes as k}from"./modules/solana/owner-info/di/ownerInfoTypes";import{tokenTypes as v}from"./modules/solana/token/di/tokenTypes";import{tokenAccountStateTypes as F}from"./modules/solana/token-account-state/di/tokenAccountStateTypes";import{tokenInfoTypes as w}from"./modules/solana/token-info/di/tokenInfoTypes";import{solanaTrustedNameTypes as P}from"./modules/solana/trusted-name/di/trustedNameTypes";import{ContextModuleChainID as o}from"./shared/domain/ContextModuleChainID";import{ClearSignContextType as a}from"./shared/model/ClearSignContext";class ne{_container;_config;_loaders;_typedDataLoader;_fieldLoaders;_blindSigningReporter;_signReporter;constructor(e){this._config=e,this._container=g({config:e}),this._loaders=e.defaultLoaders?this._getDefaultLoaders():[],this._loaders.push(...e.customLoaders),this._fieldLoaders=e.defaultFieldLoaders?this._getDefaultFieldLoaders():[],this._fieldLoaders.push(...e.customFieldLoaders),this._typedDataLoader=e.customTypedDataLoader??this._getDefaultTypedDataLoader(),this._blindSigningReporter=e.customBlindSigningReporter??this._getBlindSigningReporter(),this._signReporter=null}_getDefaultFieldLoaders(){return this._config.chain!==o.Ethereum?[]:[this._container.get(l.NftContextFieldLoader),this._container.get(m.TokenContextFieldLoader),this._container.get(C.TrustedNameContextFieldLoader),this._container.get(y.ProxyContextFieldLoader)]}_getDefaultLoaders(){const{chain:e}=this._config;switch(e){case o.Ethereum:return[this._container.get(L.ExternalPluginContextLoader),this._container.get(C.TrustedNameContextLoader),this._container.get(l.NftContextLoader),this._container.get(m.TokenContextLoader),this._container.get(u.CalldataContextLoader),this._container.get(f.DynamicNetworkContextLoader),this._container.get(h.SafeAddressLoader),this._container.get(p.GatedSigningContextLoader),this._container.get(p.GatedSigningTypedDataContextLoader),this._container.get(s.TransactionCheckLoader),this._container.get(s.TypedDataCheckLoader)];case o.Solana:return[this._container.get(v.TokenContextLoader),this._container.get(D.LifiContextLoader),this._container.get(k.OwnerInfoContextLoader),this._container.get(s.TransactionCheckLoader),this._container.get(R.InstructionInfoContextLoader),this._container.get(S.EnumVariantContextLoader),this._container.get(w.TokenInfoContextLoader),this._container.get(F.TokenAccountStateContextLoader),this._container.get(T.AltResolutionContextLoader),this._container.get(P.SolanaTrustedNameContextLoader)];case o.Concordium:return[this._container.get(x.AccountOwnershipContextLoader)];default:{const t=e;return[]}}}_getDefaultTypedDataLoader(){return this._config.chain!==o.Ethereum?{load:()=>Promise.reject(new Error("[ContextModule] getTypedDataFilters is not supported for this chain"))}:this._container.get(_.TypedDataContextLoader)}_getBlindSigningReporter(){return this._container.isBound(c.BlindSigningReporter)?this._container.get(c.BlindSigningReporter):null}async getContexts(e,t){const r=Object.values(a),i=this._loaders.filter(d=>d.canHandle(e,t??r)).map(d=>d.load(e));return(await Promise.all(i)).flat()}async getFieldContext(e,t){const r=this._fieldLoaders.filter(n=>n.canHandle(e,t));if(r.length===0)return Promise.resolve({type:a.ERROR,error:new Error(`Loader not found for field: ${e} and expected type: ${t}`)});for(const n of r){const i=await n.loadField(e);if(i.type!==a.ERROR)return i}return{type:a.ERROR,error:new Error(`Loader not found for field: ${e} and expected type: ${t}`)}}async getTypedDataFilters(e){return this._typedDataLoader.load(e)}async report(e){await this._blindSigningReporter?.report(e)}async signReport(e){await this._signReporter?.report(e)}}export{ne as DefaultContextModule};
|
|
2
2
|
//# sourceMappingURL=DefaultContextModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/DefaultContextModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { type Container } from \"inversify\";\n\nimport {\n type ContextModuleLoaderConfig,\n type ContextModuleServiceConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport { type ContextModule } from \"@/ContextModule\";\nimport { makeContainer } from \"@/di\";\nimport { accountOwnershipTypes } from \"@/modules/concordium/account-ownership/di/accountOwnershipTypes\";\nimport { calldataTypes } from \"@/modules/ethereum/calldata/di/calldataTypes\";\nimport { dynamicNetworkTypes } from \"@/modules/ethereum/dynamic-network/di/dynamicNetworkTypes\";\nimport { externalPluginTypes } from \"@/modules/ethereum/external-plugin/di/externalPluginTypes\";\nimport { gatedSigningTypes } from \"@/modules/ethereum/gated-signing/di/gatedSigningTypes\";\nimport type { TypedDataClearSignContext } from \"@/modules/ethereum/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/modules/ethereum/model/TypedDataContext\";\nimport { nftTypes } from \"@/modules/ethereum/nft/di/nftTypes\";\nimport { proxyTypes } from \"@/modules/ethereum/proxy/di/proxyTypes\";\nimport { safeTypes } from \"@/modules/ethereum/safe/di/safeTypes\";\nimport { tokenTypes as ethereumTokenTypes } from \"@/modules/ethereum/token/di/tokenTypes\";\nimport { trustedNameTypes } from \"@/modules/ethereum/trusted-name/di/trustedNameTypes\";\nimport { typedDataTypes } from \"@/modules/ethereum/typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"@/modules/ethereum/typed-data/domain/TypedDataContextLoader\";\nimport { type BlindSigningReportParams } from \"@/modules/multichain/reporter/data/BlindSigningReporterDatasource\";\nimport { reporterTypes } from \"@/modules/multichain/reporter/di/reporterTypes\";\nimport { type BlindSigningReporter } from \"@/modules/multichain/reporter/domain/BlindSigningReporter\";\nimport { transactionCheckTypes } from \"@/modules/multichain/transaction-check/di/transactionCheckTypes\";\nimport { altResolutionTypes } from \"@/modules/solana/alt-resolution/di/altResolutionTypes\";\nimport { enumVariantTypes } from \"@/modules/solana/enum-variant/di/enumVariantTypes\";\nimport { instructionInfoTypes } from \"@/modules/solana/instruction-info/di/instructionInfoTypes\";\nimport { lifiTypes } from \"@/modules/solana/lifi/di/lifiTypes\";\nimport { ownerInfoTypes } from \"@/modules/solana/owner-info/di/ownerInfoTypes\";\nimport { tokenTypes as solanaTokenTypes } from \"@/modules/solana/token/di/tokenTypes\";\nimport { tokenAccountStateTypes } from \"@/modules/solana/token-account-state/di/tokenAccountStateTypes\";\nimport { tokenInfoTypes } from \"@/modules/solana/token-info/di/tokenInfoTypes\";\nimport { solanaTrustedNameTypes } from \"@/modules/solana/trusted-name/di/trustedNameTypes\";\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\";\n\nexport class DefaultContextModule implements ContextModule {\n private _container: Container;\n private _config: ContextModuleServiceConfig & ContextModuleLoaderConfig;\n private _loaders: ContextLoader<unknown>[];\n private _typedDataLoader: TypedDataContextLoader;\n private _fieldLoaders: ContextFieldLoader<unknown>[];\n private _blindSigningReporter: BlindSigningReporter | null;\n\n constructor(args: ContextModuleServiceConfig & ContextModuleLoaderConfig) {\n this._config = args;\n this._container = makeContainer({ config: args });\n\n this._loaders = args.defaultLoaders ? this._getDefaultLoaders() : [];\n this._loaders.push(...args.customLoaders);\n\n this._fieldLoaders = args.defaultFieldLoaders\n ? this._getDefaultFieldLoaders()\n : [];\n this._fieldLoaders.push(...args.customFieldLoaders);\n\n this._typedDataLoader =\n args.customTypedDataLoader ?? this._getDefaultTypedDataLoader();\n this._blindSigningReporter =\n args.customBlindSigningReporter ?? this._getBlindSigningReporter();\n }\n\n private _getDefaultFieldLoaders(): ContextFieldLoader[] {\n if (this._config.chain !== ContextModuleChainID.Ethereum) return [];\n return [\n this._container.get<ContextFieldLoader>(nftTypes.NftContextFieldLoader),\n this._container.get<ContextFieldLoader>(\n ethereumTokenTypes.TokenContextFieldLoader,\n ),\n this._container.get<ContextFieldLoader>(\n trustedNameTypes.TrustedNameContextFieldLoader,\n ),\n this._container.get<ContextFieldLoader>(\n proxyTypes.ProxyContextFieldLoader,\n ),\n ];\n }\n\n private _getDefaultLoaders(): ContextLoader<unknown>[] {\n const { chain } = this._config;\n switch (chain) {\n case ContextModuleChainID.Ethereum:\n return [\n this._container.get<ContextLoader>(\n externalPluginTypes.ExternalPluginContextLoader,\n ),\n this._container.get<ContextLoader>(\n trustedNameTypes.TrustedNameContextLoader,\n ),\n this._container.get<ContextLoader>(nftTypes.NftContextLoader),\n this._container.get<ContextLoader>(\n ethereumTokenTypes.TokenContextLoader,\n ),\n this._container.get<ContextLoader>(\n calldataTypes.CalldataContextLoader,\n ),\n this._container.get<ContextLoader>(\n dynamicNetworkTypes.DynamicNetworkContextLoader,\n ),\n this._container.get<ContextLoader>(safeTypes.SafeAddressLoader),\n this._container.get<ContextLoader>(\n gatedSigningTypes.GatedSigningContextLoader,\n ),\n this._container.get<ContextLoader>(\n gatedSigningTypes.GatedSigningTypedDataContextLoader,\n ),\n this._container.get<ContextLoader>(\n transactionCheckTypes.TransactionCheckLoader,\n ),\n this._container.get<ContextLoader>(\n transactionCheckTypes.TypedDataCheckLoader,\n ),\n ];\n case ContextModuleChainID.Solana:\n return [\n this._container.get<ContextLoader>(\n solanaTokenTypes.TokenContextLoader,\n ),\n this._container.get<ContextLoader>(lifiTypes.LifiContextLoader),\n this._container.get<ContextLoader>(\n ownerInfoTypes.OwnerInfoContextLoader,\n ),\n this._container.get<ContextLoader>(\n transactionCheckTypes.TransactionCheckLoader,\n ),\n this._container.get<ContextLoader>(\n instructionInfoTypes.InstructionInfoContextLoader,\n ),\n this._container.get<ContextLoader>(\n enumVariantTypes.EnumVariantContextLoader,\n ),\n this._container.get<ContextLoader>(\n tokenInfoTypes.TokenInfoContextLoader,\n ),\n this._container.get<ContextLoader>(\n tokenAccountStateTypes.TokenAccountStateContextLoader,\n ),\n this._container.get<ContextLoader>(\n altResolutionTypes.AltResolutionContextLoader,\n ),\n this._container.get<ContextLoader>(\n solanaTrustedNameTypes.SolanaTrustedNameContextLoader,\n ),\n ];\n case ContextModuleChainID.Concordium:\n return [\n this._container.get<ContextLoader>(\n accountOwnershipTypes.AccountOwnershipContextLoader,\n ),\n ];\n default: {\n const exhaustiveCheck: never = chain;\n void exhaustiveCheck;\n return [];\n }\n }\n }\n\n private _getDefaultTypedDataLoader(): TypedDataContextLoader {\n if (this._config.chain !== ContextModuleChainID.Ethereum) {\n return {\n load: () =>\n Promise.reject(\n new Error(\n \"[ContextModule] getTypedDataFilters is not supported for this chain\",\n ),\n ),\n };\n }\n return this._container.get<TypedDataContextLoader>(\n typedDataTypes.TypedDataContextLoader,\n );\n }\n\n private _getBlindSigningReporter(): BlindSigningReporter | null {\n if (this._container.isBound(reporterTypes.BlindSigningReporter)) {\n return this._container.get<BlindSigningReporter>(\n reporterTypes.BlindSigningReporter,\n );\n }\n return null;\n }\n\n public async getContexts(\n input: unknown,\n expectedTypes?: ClearSignContextType[],\n ): Promise<ClearSignContext[]> {\n const allContextTypes = Object.values(ClearSignContextType);\n const loaders = this._loaders.filter((l) =>\n l.canHandle(input, expectedTypes ?? allContextTypes),\n );\n const promises = loaders.map((fetcher) => fetcher.load(input));\n const responses = await Promise.all(promises);\n return responses.flat();\n }\n\n public async getFieldContext<TInput>(\n field: TInput,\n expectedType: ClearSignContextType,\n ): Promise<ClearSignContext> {\n const loaders = this._fieldLoaders.filter((l) =>\n l.canHandle(field, expectedType),\n );\n if (loaders.length === 0) {\n return Promise.resolve({\n type: ClearSignContextType.ERROR,\n error: new Error(\n `Loader not found for field: ${field} and expected type: ${expectedType}`,\n ),\n });\n }\n\n for (const loader of loaders) {\n const context = await loader.loadField(field);\n if (context.type !== ClearSignContextType.ERROR) {\n return context;\n }\n }\n\n return {\n type: ClearSignContextType.ERROR,\n error: new Error(\n `Loader not found for field: ${field} and expected type: ${expectedType}`,\n ),\n };\n }\n\n public async getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext> {\n return this._typedDataLoader.load(typedData);\n }\n\n public async report(params: BlindSigningReportParams): Promise<void> {\n await this._blindSigningReporter?.report(params);\n }\n}\n"],
|
|
5
|
-
"mappings": "AAOA,OAAS,iBAAAA,MAAqB,OAC9B,OAAS,yBAAAC,MAA6B,kEACtC,OAAS,iBAAAC,MAAqB,+CAC9B,OAAS,uBAAAC,MAA2B,4DACpC,OAAS,uBAAAC,MAA2B,4DACpC,OAAS,qBAAAC,MAAyB,wDAGlC,OAAS,YAAAC,MAAgB,qCACzB,OAAS,cAAAC,MAAkB,yCAC3B,OAAS,aAAAC,MAAiB,uCAC1B,OAAS,cAAcC,MAA0B,yCACjD,OAAS,oBAAAC,MAAwB,sDACjC,OAAS,kBAAAC,MAAsB,kDAG/B,OAAS,iBAAAC,MAAqB,
|
|
4
|
+
"sourcesContent": ["import { type Container } from \"inversify\";\n\nimport {\n type ContextModuleLoaderConfig,\n type ContextModuleServiceConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport { type ContextModule } from \"@/ContextModule\";\nimport { makeContainer } from \"@/di\";\nimport { accountOwnershipTypes } from \"@/modules/concordium/account-ownership/di/accountOwnershipTypes\";\nimport { calldataTypes } from \"@/modules/ethereum/calldata/di/calldataTypes\";\nimport { dynamicNetworkTypes } from \"@/modules/ethereum/dynamic-network/di/dynamicNetworkTypes\";\nimport { externalPluginTypes } from \"@/modules/ethereum/external-plugin/di/externalPluginTypes\";\nimport { gatedSigningTypes } from \"@/modules/ethereum/gated-signing/di/gatedSigningTypes\";\nimport type { TypedDataClearSignContext } from \"@/modules/ethereum/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/modules/ethereum/model/TypedDataContext\";\nimport { nftTypes } from \"@/modules/ethereum/nft/di/nftTypes\";\nimport { proxyTypes } from \"@/modules/ethereum/proxy/di/proxyTypes\";\nimport { safeTypes } from \"@/modules/ethereum/safe/di/safeTypes\";\nimport { tokenTypes as ethereumTokenTypes } from \"@/modules/ethereum/token/di/tokenTypes\";\nimport { trustedNameTypes } from \"@/modules/ethereum/trusted-name/di/trustedNameTypes\";\nimport { typedDataTypes } from \"@/modules/ethereum/typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"@/modules/ethereum/typed-data/domain/TypedDataContextLoader\";\nimport { type BlindSigningReportParams } from \"@/modules/multichain/reporter/data/BlindSigningReporterDatasource\";\nimport { reporterTypes } from \"@/modules/multichain/reporter/di/reporterTypes\";\nimport { type BlindSigningReporter } from \"@/modules/multichain/reporter/domain/BlindSigningReporter\";\nimport { type SignReporter } from \"@/modules/multichain/sign-reporter/domain/SignReporter\";\nimport { type SignReportParams } from \"@/modules/multichain/sign-reporter/model/SignReportParams\";\nimport { transactionCheckTypes } from \"@/modules/multichain/transaction-check/di/transactionCheckTypes\";\nimport { altResolutionTypes } from \"@/modules/solana/alt-resolution/di/altResolutionTypes\";\nimport { enumVariantTypes } from \"@/modules/solana/enum-variant/di/enumVariantTypes\";\nimport { instructionInfoTypes } from \"@/modules/solana/instruction-info/di/instructionInfoTypes\";\nimport { lifiTypes } from \"@/modules/solana/lifi/di/lifiTypes\";\nimport { ownerInfoTypes } from \"@/modules/solana/owner-info/di/ownerInfoTypes\";\nimport { tokenTypes as solanaTokenTypes } from \"@/modules/solana/token/di/tokenTypes\";\nimport { tokenAccountStateTypes } from \"@/modules/solana/token-account-state/di/tokenAccountStateTypes\";\nimport { tokenInfoTypes } from \"@/modules/solana/token-info/di/tokenInfoTypes\";\nimport { solanaTrustedNameTypes } from \"@/modules/solana/trusted-name/di/trustedNameTypes\";\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\";\n\nexport class DefaultContextModule implements ContextModule {\n private _container: Container;\n private _config: ContextModuleServiceConfig & ContextModuleLoaderConfig;\n private _loaders: ContextLoader<unknown>[];\n private _typedDataLoader: TypedDataContextLoader;\n private _fieldLoaders: ContextFieldLoader<unknown>[];\n private _blindSigningReporter: BlindSigningReporter | null;\n private _signReporter: SignReporter | null;\n\n constructor(args: ContextModuleServiceConfig & ContextModuleLoaderConfig) {\n this._config = args;\n this._container = makeContainer({ config: args });\n\n this._loaders = args.defaultLoaders ? this._getDefaultLoaders() : [];\n this._loaders.push(...args.customLoaders);\n\n this._fieldLoaders = args.defaultFieldLoaders\n ? this._getDefaultFieldLoaders()\n : [];\n this._fieldLoaders.push(...args.customFieldLoaders);\n\n this._typedDataLoader =\n args.customTypedDataLoader ?? this._getDefaultTypedDataLoader();\n this._blindSigningReporter =\n args.customBlindSigningReporter ?? this._getBlindSigningReporter();\n this._signReporter = null;\n }\n\n private _getDefaultFieldLoaders(): ContextFieldLoader[] {\n if (this._config.chain !== ContextModuleChainID.Ethereum) return [];\n return [\n this._container.get<ContextFieldLoader>(nftTypes.NftContextFieldLoader),\n this._container.get<ContextFieldLoader>(\n ethereumTokenTypes.TokenContextFieldLoader,\n ),\n this._container.get<ContextFieldLoader>(\n trustedNameTypes.TrustedNameContextFieldLoader,\n ),\n this._container.get<ContextFieldLoader>(\n proxyTypes.ProxyContextFieldLoader,\n ),\n ];\n }\n\n private _getDefaultLoaders(): ContextLoader<unknown>[] {\n const { chain } = this._config;\n switch (chain) {\n case ContextModuleChainID.Ethereum:\n return [\n this._container.get<ContextLoader>(\n externalPluginTypes.ExternalPluginContextLoader,\n ),\n this._container.get<ContextLoader>(\n trustedNameTypes.TrustedNameContextLoader,\n ),\n this._container.get<ContextLoader>(nftTypes.NftContextLoader),\n this._container.get<ContextLoader>(\n ethereumTokenTypes.TokenContextLoader,\n ),\n this._container.get<ContextLoader>(\n calldataTypes.CalldataContextLoader,\n ),\n this._container.get<ContextLoader>(\n dynamicNetworkTypes.DynamicNetworkContextLoader,\n ),\n this._container.get<ContextLoader>(safeTypes.SafeAddressLoader),\n this._container.get<ContextLoader>(\n gatedSigningTypes.GatedSigningContextLoader,\n ),\n this._container.get<ContextLoader>(\n gatedSigningTypes.GatedSigningTypedDataContextLoader,\n ),\n this._container.get<ContextLoader>(\n transactionCheckTypes.TransactionCheckLoader,\n ),\n this._container.get<ContextLoader>(\n transactionCheckTypes.TypedDataCheckLoader,\n ),\n ];\n case ContextModuleChainID.Solana:\n return [\n this._container.get<ContextLoader>(\n solanaTokenTypes.TokenContextLoader,\n ),\n this._container.get<ContextLoader>(lifiTypes.LifiContextLoader),\n this._container.get<ContextLoader>(\n ownerInfoTypes.OwnerInfoContextLoader,\n ),\n this._container.get<ContextLoader>(\n transactionCheckTypes.TransactionCheckLoader,\n ),\n this._container.get<ContextLoader>(\n instructionInfoTypes.InstructionInfoContextLoader,\n ),\n this._container.get<ContextLoader>(\n enumVariantTypes.EnumVariantContextLoader,\n ),\n this._container.get<ContextLoader>(\n tokenInfoTypes.TokenInfoContextLoader,\n ),\n this._container.get<ContextLoader>(\n tokenAccountStateTypes.TokenAccountStateContextLoader,\n ),\n this._container.get<ContextLoader>(\n altResolutionTypes.AltResolutionContextLoader,\n ),\n this._container.get<ContextLoader>(\n solanaTrustedNameTypes.SolanaTrustedNameContextLoader,\n ),\n ];\n case ContextModuleChainID.Concordium:\n return [\n this._container.get<ContextLoader>(\n accountOwnershipTypes.AccountOwnershipContextLoader,\n ),\n ];\n default: {\n const exhaustiveCheck: never = chain;\n void exhaustiveCheck;\n return [];\n }\n }\n }\n\n private _getDefaultTypedDataLoader(): TypedDataContextLoader {\n if (this._config.chain !== ContextModuleChainID.Ethereum) {\n return {\n load: () =>\n Promise.reject(\n new Error(\n \"[ContextModule] getTypedDataFilters is not supported for this chain\",\n ),\n ),\n };\n }\n return this._container.get<TypedDataContextLoader>(\n typedDataTypes.TypedDataContextLoader,\n );\n }\n\n private _getBlindSigningReporter(): BlindSigningReporter | null {\n if (this._container.isBound(reporterTypes.BlindSigningReporter)) {\n return this._container.get<BlindSigningReporter>(\n reporterTypes.BlindSigningReporter,\n );\n }\n return null;\n }\n\n public async getContexts(\n input: unknown,\n expectedTypes?: ClearSignContextType[],\n ): Promise<ClearSignContext[]> {\n const allContextTypes = Object.values(ClearSignContextType);\n const loaders = this._loaders.filter((l) =>\n l.canHandle(input, expectedTypes ?? allContextTypes),\n );\n const promises = loaders.map((fetcher) => fetcher.load(input));\n const responses = await Promise.all(promises);\n return responses.flat();\n }\n\n public async getFieldContext<TInput>(\n field: TInput,\n expectedType: ClearSignContextType,\n ): Promise<ClearSignContext> {\n const loaders = this._fieldLoaders.filter((l) =>\n l.canHandle(field, expectedType),\n );\n if (loaders.length === 0) {\n return Promise.resolve({\n type: ClearSignContextType.ERROR,\n error: new Error(\n `Loader not found for field: ${field} and expected type: ${expectedType}`,\n ),\n });\n }\n\n for (const loader of loaders) {\n const context = await loader.loadField(field);\n if (context.type !== ClearSignContextType.ERROR) {\n return context;\n }\n }\n\n return {\n type: ClearSignContextType.ERROR,\n error: new Error(\n `Loader not found for field: ${field} and expected type: ${expectedType}`,\n ),\n };\n }\n\n public async getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext> {\n return this._typedDataLoader.load(typedData);\n }\n\n public async report(params: BlindSigningReportParams): Promise<void> {\n await this._blindSigningReporter?.report(params);\n }\n\n public async signReport(params: SignReportParams): Promise<void> {\n await this._signReporter?.report(params);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["makeContainer", "accountOwnershipTypes", "calldataTypes", "dynamicNetworkTypes", "externalPluginTypes", "gatedSigningTypes", "nftTypes", "proxyTypes", "safeTypes", "ethereumTokenTypes", "trustedNameTypes", "typedDataTypes", "reporterTypes", "transactionCheckTypes", "altResolutionTypes", "enumVariantTypes", "instructionInfoTypes", "lifiTypes", "ownerInfoTypes", "solanaTokenTypes", "tokenAccountStateTypes", "tokenInfoTypes", "solanaTrustedNameTypes", "ContextModuleChainID", "ClearSignContextType", "DefaultContextModule", "args", "chain", "exhaustiveCheck", "input", "expectedTypes", "allContextTypes", "promises", "l", "fetcher", "field", "expectedType", "loaders", "loader", "context", "typedData", "params"]
|
|
7
7
|
}
|
package/lib/esm/src/di.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as
|
|
1
|
+
import{Container as i}from"inversify";import{configModuleFactory as c}from"./config/di/configModuleFactory";import{configTypes as u}from"./config/di/configTypes";import{accountOwnershipModuleFactory as l}from"./modules/concordium/account-ownership/di/accountOwnershipModuleFactory";import{calldataModuleFactory as d}from"./modules/ethereum/calldata/di/calldataModuleFactory";import{dynamicNetworkModuleFactory as p}from"./modules/ethereum/dynamic-network/di/dynamicNetworkModuleFactory";import{externalPluginModuleFactory as y}from"./modules/ethereum/external-plugin/di/externalPluginModuleFactory";import{gatedSigningModuleFactory as f}from"./modules/ethereum/gated-signing/di/gatedSigningModuleFactory";import{nftModuleFactory as M}from"./modules/ethereum/nft/di/nftModuleFactory";import{proxyModuleFactory as s}from"./modules/ethereum/proxy/di/proxyModuleFactory";import{safeModuleFactory as F}from"./modules/ethereum/safe/di/safeModuleFactory";import{tokenModuleFactory as C}from"./modules/ethereum/token/di/tokenModuleFactory";import{trustedNameModuleFactory as g}from"./modules/ethereum/trusted-name/di/trustedNameModuleFactory";import{typedDataModuleFactory as k}from"./modules/ethereum/typed-data/di/typedDataModuleFactory";import{uniswapModuleFactory as h}from"./modules/ethereum/uniswap/di/uniswapModuleFactory";import{nanoPkiModuleFactory as t}from"./modules/multichain/pki/di/pkiModuleFactory";import{reporterModuleFactory as S}from"./modules/multichain/reporter/di/reporterModuleFactory";import{signReporterModuleFactory as m}from"./modules/multichain/sign-reporter/di/signReporterModuleFactory";import{ethereumTransactionCheckModuleFactory as x}from"./modules/multichain/transaction-check/di/ethereumTransactionCheckModuleFactory";import{solanaTransactionCheckModuleFactory as v}from"./modules/multichain/transaction-check/di/solanaTransactionCheckModuleFactory";import{altResolutionModuleFactory as w}from"./modules/solana/alt-resolution/di/altResolutionModuleFactory";import{enumVariantModuleFactory as T}from"./modules/solana/enum-variant/di/enumVariantModuleFactory";import{instructionInfoModuleFactory as b}from"./modules/solana/instruction-info/di/instructionInfoModuleFactory";import{lifiModuleFactory as L}from"./modules/solana/lifi/di/lifiModuleFactory";import{ownerInfoModuleFactory as I}from"./modules/solana/owner-info/di/ownerInfoModuleFactory";import{tokenModuleFactory as N}from"./modules/solana/token/di/tokenModuleFactory";import{tokenAccountStateModuleFactory as P}from"./modules/solana/token-account-state/di/tokenAccountStateModuleFactory";import{tokenInfoModuleFactory as A}from"./modules/solana/token-info/di/tokenInfoModuleFactory";import{solanaTrustedNameModuleFactory as D}from"./modules/solana/trusted-name/di/trustedNameModuleFactory";import{ContextModuleChainID as e}from"./shared/domain/ContextModuleChainID";import{networkModuleFactory as R}from"./shared/network/di/networkModuleFactory";const yo=({config:o})=>{const r=new i;r.bind(u.ContextModuleLoggerFactory).toConstantValue(o.loggerFactory);const{chain:a}=o;switch(r.loadSync(c(o),R(o)),a){case e.Ethereum:r.loadSync(t(),S(),m(),g(o.customTrustedNameDataSource),y(),p(),M(),s(o.datasource),F(),f(),C(),d(),k(),h(),x());break;case e.Solana:r.loadSync(t(),m(),I(),N(),L(),v(),b(),T(),A(),P(),w(),D());break;case e.Concordium:r.loadSync(t(),l());break;default:{const n=a}}return r};export{yo as makeContainer};
|
|
2
2
|
//# sourceMappingURL=di.js.map
|