@ledgerhq/context-module 1.14.1 → 1.15.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 +2 -2
- package/lib/cjs/src/DefaultContextModule.js +1 -1
- package/lib/cjs/src/DefaultContextModule.js.map +3 -3
- package/lib/cjs/src/di.js +1 -1
- package/lib/cjs/src/di.js.map +3 -3
- package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js +1 -1
- package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +3 -3
- package/lib/cjs/src/gated-signing/data/GatedDescriptorDataSource.js +2 -0
- package/lib/cjs/src/gated-signing/data/GatedDescriptorDataSource.js.map +7 -0
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.js +2 -0
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.js.map +7 -0
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js +2 -0
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js.map +7 -0
- package/lib/cjs/src/gated-signing/data/dto/GatedDappsDto.js +2 -0
- package/lib/cjs/src/gated-signing/data/dto/GatedDappsDto.js.map +7 -0
- package/lib/cjs/src/gated-signing/di/gatedSigningModuleFactory.js +2 -0
- package/lib/cjs/src/gated-signing/di/gatedSigningModuleFactory.js.map +7 -0
- package/lib/cjs/src/gated-signing/di/gatedSigningTypes.js +2 -0
- package/lib/cjs/src/gated-signing/di/gatedSigningTypes.js.map +7 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningContextLoader.js +2 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningContextLoader.js.map +7 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningContextLoader.test.js +2 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningContextLoader.test.js.map +7 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningTypedDataContextLoader.js +2 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningTypedDataContextLoader.js.map +7 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningTypedDataContextLoader.test.js +2 -0
- package/lib/cjs/src/gated-signing/domain/GatedSigningTypedDataContextLoader.test.js.map +7 -0
- package/lib/cjs/src/index.js +1 -1
- package/lib/cjs/src/index.js.map +2 -2
- package/lib/cjs/src/pki/model/KeyId.js +1 -1
- package/lib/cjs/src/pki/model/KeyId.js.map +2 -2
- package/lib/cjs/src/pki/model/KeyUsage.js +1 -1
- package/lib/cjs/src/pki/model/KeyUsage.js.map +2 -2
- package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
- package/lib/cjs/src/shared/model/ClearSignContext.js.map +2 -2
- package/lib/cjs/src/shared/model/SolanaContextTypes.js +1 -1
- package/lib/cjs/src/shared/model/SolanaContextTypes.js.map +1 -1
- package/lib/cjs/src/shared/utils/KeyUsageMapper.js +1 -1
- package/lib/cjs/src/shared/utils/KeyUsageMapper.js.map +2 -2
- package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js +1 -1
- package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
- package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js +1 -1
- package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js.map +3 -3
- package/lib/cjs/src/solana/domain/solanaContextTypes.js.map +1 -1
- package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.js +1 -1
- package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.js.map +3 -3
- package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js +1 -1
- package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js.map +3 -3
- package/lib/cjs/src/solanaLifi/data/SolanaLifiDataSource.js +1 -1
- package/lib/cjs/src/solanaLifi/data/SolanaLifiDataSource.js.map +1 -1
- package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.js +1 -1
- package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.js.map +3 -3
- package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.test.js +1 -1
- package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.test.js.map +3 -3
- package/lib/cjs/src/solanaToken/domain/SolanaTokenContextLoader.js +1 -1
- package/lib/cjs/src/solanaToken/domain/SolanaTokenContextLoader.js.map +2 -2
- package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
- package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
- package/lib/cjs/src/typed-data/utils/getSchemaHash.js +2 -0
- package/lib/cjs/src/typed-data/utils/getSchemaHash.js.map +7 -0
- package/lib/cjs/src/typed-data/utils/getSchemaHash.test.js +2 -0
- package/lib/cjs/src/typed-data/utils/getSchemaHash.test.js.map +7 -0
- package/lib/esm/package.json +2 -2
- package/lib/esm/src/DefaultContextModule.js +1 -1
- package/lib/esm/src/DefaultContextModule.js.map +3 -3
- package/lib/esm/src/di.js +1 -1
- package/lib/esm/src/di.js.map +3 -3
- package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js +1 -1
- package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +3 -3
- package/lib/esm/src/gated-signing/data/GatedDescriptorDataSource.js +1 -0
- package/lib/esm/src/gated-signing/data/GatedDescriptorDataSource.js.map +7 -0
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.js +2 -0
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.js.map +7 -0
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js +2 -0
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js.map +7 -0
- package/lib/esm/src/gated-signing/data/dto/GatedDappsDto.js +1 -0
- package/lib/esm/src/gated-signing/data/dto/GatedDappsDto.js.map +7 -0
- package/lib/esm/src/gated-signing/di/gatedSigningModuleFactory.js +2 -0
- package/lib/esm/src/gated-signing/di/gatedSigningModuleFactory.js.map +7 -0
- package/lib/esm/src/gated-signing/di/gatedSigningTypes.js +2 -0
- package/lib/esm/src/gated-signing/di/gatedSigningTypes.js.map +7 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningContextLoader.js +2 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningContextLoader.js.map +7 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningContextLoader.test.js +2 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningContextLoader.test.js.map +7 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningTypedDataContextLoader.js +2 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningTypedDataContextLoader.js.map +7 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningTypedDataContextLoader.test.js +2 -0
- package/lib/esm/src/gated-signing/domain/GatedSigningTypedDataContextLoader.test.js.map +7 -0
- package/lib/esm/src/index.js +1 -1
- package/lib/esm/src/index.js.map +2 -2
- package/lib/esm/src/pki/model/KeyId.js +1 -1
- package/lib/esm/src/pki/model/KeyId.js.map +2 -2
- package/lib/esm/src/pki/model/KeyUsage.js +1 -1
- package/lib/esm/src/pki/model/KeyUsage.js.map +2 -2
- package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
- package/lib/esm/src/shared/model/ClearSignContext.js.map +2 -2
- package/lib/esm/src/shared/model/SolanaContextTypes.js.map +1 -1
- package/lib/esm/src/shared/utils/KeyUsageMapper.js +1 -1
- package/lib/esm/src/shared/utils/KeyUsageMapper.js.map +2 -2
- package/lib/esm/src/shared/utils/KeyUsageMapper.test.js +1 -1
- package/lib/esm/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
- package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js +1 -1
- package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js.map +3 -3
- package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.js +1 -1
- package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.js.map +3 -3
- package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js +1 -1
- package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js.map +3 -3
- package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.js +1 -1
- package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.js.map +3 -3
- package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.test.js +1 -1
- package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.test.js.map +3 -3
- package/lib/esm/src/solanaToken/domain/SolanaTokenContextLoader.js +1 -1
- package/lib/esm/src/solanaToken/domain/SolanaTokenContextLoader.js.map +2 -2
- package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
- package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
- package/lib/esm/src/typed-data/utils/getSchemaHash.js +2 -0
- package/lib/esm/src/typed-data/utils/getSchemaHash.js.map +7 -0
- package/lib/esm/src/typed-data/utils/getSchemaHash.test.js +2 -0
- package/lib/esm/src/typed-data/utils/getSchemaHash.test.js.map +7 -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/dynamic-network/domain/DynamicNetworkContextLoader.d.ts +2 -0
- package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts.map +1 -1
- package/lib/types/src/gated-signing/data/GatedDescriptorDataSource.d.ts +20 -0
- package/lib/types/src/gated-signing/data/GatedDescriptorDataSource.d.ts.map +1 -0
- package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.d.ts +13 -0
- package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.d.ts.map +1 -0
- package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.test.d.ts +2 -0
- package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.test.d.ts.map +1 -0
- package/lib/types/src/gated-signing/data/dto/GatedDappsDto.d.ts +15 -0
- package/lib/types/src/gated-signing/data/dto/GatedDappsDto.d.ts.map +1 -0
- package/lib/types/src/gated-signing/di/gatedSigningModuleFactory.d.ts +3 -0
- package/lib/types/src/gated-signing/di/gatedSigningModuleFactory.d.ts.map +1 -0
- package/lib/types/src/gated-signing/di/gatedSigningTypes.d.ts +6 -0
- package/lib/types/src/gated-signing/di/gatedSigningTypes.d.ts.map +1 -0
- package/lib/types/src/gated-signing/domain/GatedSigningContextLoader.d.ts +22 -0
- package/lib/types/src/gated-signing/domain/GatedSigningContextLoader.d.ts.map +1 -0
- package/lib/types/src/gated-signing/domain/GatedSigningContextLoader.test.d.ts +2 -0
- package/lib/types/src/gated-signing/domain/GatedSigningContextLoader.test.d.ts.map +1 -0
- package/lib/types/src/gated-signing/domain/GatedSigningTypedDataContextLoader.d.ts +27 -0
- package/lib/types/src/gated-signing/domain/GatedSigningTypedDataContextLoader.d.ts.map +1 -0
- package/lib/types/src/gated-signing/domain/GatedSigningTypedDataContextLoader.test.d.ts +2 -0
- package/lib/types/src/gated-signing/domain/GatedSigningTypedDataContextLoader.test.d.ts.map +1 -0
- package/lib/types/src/index.d.ts +5 -0
- package/lib/types/src/index.d.ts.map +1 -1
- package/lib/types/src/pki/model/KeyId.d.ts +3 -1
- package/lib/types/src/pki/model/KeyId.d.ts.map +1 -1
- package/lib/types/src/pki/model/KeyUsage.d.ts +3 -1
- package/lib/types/src/pki/model/KeyUsage.d.ts.map +1 -1
- package/lib/types/src/shared/model/ClearSignContext.d.ts +2 -1
- package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
- package/lib/types/src/shared/model/SolanaContextTypes.d.ts +33 -3
- package/lib/types/src/shared/model/SolanaContextTypes.d.ts.map +1 -1
- package/lib/types/src/shared/utils/KeyUsageMapper.d.ts.map +1 -1
- package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts +4 -1
- package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts.map +1 -1
- package/lib/types/src/solana/domain/solanaContextTypes.d.ts +2 -2
- package/lib/types/src/solana/domain/solanaContextTypes.d.ts.map +1 -1
- package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts +3 -1
- package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts.map +1 -1
- package/lib/types/src/solanaLifi/data/SolanaLifiDataSource.d.ts +2 -5
- package/lib/types/src/solanaLifi/data/SolanaLifiDataSource.d.ts.map +1 -1
- package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.d.ts +10 -8
- package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.d.ts.map +1 -1
- package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.d.ts +4 -9
- package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.d.ts.map +1 -1
- package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +0 -1
- package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
- package/lib/types/src/typed-data/utils/getSchemaHash.d.ts +12 -0
- package/lib/types/src/typed-data/utils/getSchemaHash.d.ts.map +1 -0
- package/lib/types/src/typed-data/utils/getSchemaHash.test.d.ts +2 -0
- package/lib/types/src/typed-data/utils/getSchemaHash.test.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/solanaToken/domain/SolanaTokenContextLoader.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { LoggerPublisherService } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { ContextFieldLoader } from \"@/shared/domain/ContextFieldLoader\";\nimport {\n SolanaContextTypes,\n SolanaTokenContextResult,\n SolanaTokenData,\n} from \"@/shared/model/SolanaContextTypes\";\nimport { SolanaTransactionContext } from \"@/solana/domain/solanaContextTypes\";\nimport {\n type SolanaTokenDataSource,\n type TokenDataResponse,\n} from \"@/solanaToken/data/SolanaTokenDataSource\";\nimport { solanaTokenTypes } from \"@/solanaToken/di/solanaTokenTypes\";\n\n@injectable()\nexport class SolanaTokenContextLoader\n implements\n ContextFieldLoader<\n SolanaTransactionContext,\n SolanaContextTypes,\n SolanaTokenContextResult\n >\n{\n private logger: LoggerPublisherService;\n\n constructor(\n @inject(solanaTokenTypes.SolanaTokenDataSource)\n private readonly dataSource: SolanaTokenDataSource,\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n @inject(configTypes.ContextModuleLoggerFactory)\n loggerFactory: (tag: string) => LoggerPublisherService,\n ) {\n this.logger = loggerFactory(\"SolanaTokenContextLoader\");\n }\n\n public canHandle(\n field: unknown,\n expectedType: SolanaContextTypes,\n ): field is SolanaTransactionContext {\n if (expectedType !== SolanaContextTypes.SOLANA_TOKEN) {\n return false;\n }\n\n if (\n typeof field !== \"object\" ||\n field === null ||\n !(\"tokenInternalId\" in field)\n ) {\n return false;\n }\n\n const tokenInternalId = (field as { tokenInternalId: unknown })\n .tokenInternalId;\n\n return typeof tokenInternalId === \"string\" && tokenInternalId.length > 0;\n }\n\n public async loadField(\n solanaTokenContextInput: SolanaTransactionContext,\n ): Promise<SolanaTokenContextResult> {\n this.logger.debug(\"[loadField] Loading solana token context\", {\n data: { input: solanaTokenContextInput },\n });\n const { tokenInternalId, deviceModelId } = solanaTokenContextInput;\n\n if (!tokenInternalId) {\n return {\n type: SolanaContextTypes.ERROR,\n error: new Error(\n \"[ContextModule] SolanaTokenContextLoader: tokenInternalId is missing\",\n ),\n };\n }\n\n const payload = await this.dataSource.getTokenInfosPayload({\n tokenInternalId,\n });\n\n const certificate: PkiCertificate | undefined =\n await this._certificateLoader.loadCertificate({\n keyId: \"token_metadata_key\",\n keyUsage: KeyUsage.CoinMeta,\n targetDevice: deviceModelId,\n });\n\n return payload.caseOf({\n Left: (error): SolanaTokenContextResult => {\n this.logger.error(\"[loadField] Error loading solana token context\", {\n data: { error },\n });\n\n return {\n type: SolanaContextTypes.ERROR,\n error,\n };\n },\n Right: (value): SolanaTokenContextResult => {\n this.logger.debug(\n \"[loadField] Successfully loaded solana token context\",\n {\n data: { payload: this.pluckTokenData(value), certificate },\n },\n );\n\n return {\n type: SolanaContextTypes.SOLANA_TOKEN,\n payload: this.pluckTokenData(value),\n certificate,\n };\n },\n });\n }\n\n private pluckTokenData(tokenData: TokenDataResponse): SolanaTokenData {\n const signatureKind = this.config.cal.mode || \"prod\";\n return {\n solanaTokenDescriptor: {\n data: tokenData.descriptor.data,\n signature: tokenData.descriptor.signatures[signatureKind],\n },\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "iOACA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAEnC,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,YAAAC,MAAgB,oBAEzB,OAAS,YAAAC,MAAgB,uBAGzB,OACE,sBAAAC,MAGK,oCAMP,OAAS,oBAAAC,MAAwB,oCAG1B,IAAMC,EAAN,KAOP,CAGE,YAEmBC,EAC4BC,EAE5BC,EAEjBC,EACA,CANiB,gBAAAH,EAC4B,YAAAC,EAE5B,wBAAAC,EAIjB,KAAK,OAASC,EAAc,0BAA0B,CACxD,CAZQ,OAcD,UACLC,EACAC,EACmC,CAKnC,GAJIA,IAAiBC,EAAmB,cAKtC,OAAOF,GAAU,UACjBA,IAAU,MACV,EAAE,oBAAqBA,GAEvB,MAAO,GAGT,MAAMG,EAAmBH,EACtB,gBAEH,OAAO,OAAOG,GAAoB,UAAYA,EAAgB,OAAS,CACzE,CAEA,MAAa,UACXC,EACmC,CACnC,KAAK,OAAO,MAAM,2CAA4C,CAC5D,KAAM,CAAE,MAAOA,CAAwB,CACzC,CAAC,EACD,KAAM,CAAE,gBAAAD,EAAiB,cAAAE,CAAc,EAAID,EAE3C,GAAI,CAACD,EACH,MAAO,CACL,KAAMD,EAAmB,MACzB,MAAO,IAAI,MACT,sEACF,CACF,EAGF,MAAMI,EAAU,MAAM,KAAK,WAAW,qBAAqB,CACzD,gBAAAH,CACF,CAAC,EAEKI,EACJ,MAAM,KAAK,mBAAmB,gBAAgB,CAC5C,MAAO,qBACP,SAAUC,EAAS,SACnB,aAAcH,CAChB,CAAC,EAEH,OAAOC,EAAQ,OAAO,CACpB,KAAOG,IACL,KAAK,OAAO,MAAM,iDAAkD,CAClE,KAAM,CAAE,MAAAA,CAAM,CAChB,CAAC,EAEM,CACL,KAAMP,EAAmB,MACzB,MAAAO,CACF,GAEF,MAAQC,IACN,KAAK,OAAO,MACV,uDACA,CACE,KAAM,CAAE,QAAS,KAAK,eAAeA,CAAK,EAAG,YAAAH,CAAY,CAC3D,CACF,EAEO,CACL,KAAML,EAAmB,aACzB,QAAS,KAAK,eAAeQ,CAAK,EAClC,YAAAH,CACF,EAEJ,CAAC,CACH,CAEQ,eAAeI,EAA+C,CACpE,MAAMC,EAAgB,KAAK,OAAO,IAAI,MAAQ,OAC9C,MAAO,CACL,sBAAuB,CACrB,KAAMD,EAAU,WAAW,KAC3B,UAAWA,EAAU,WAAW,WAAWC,CAAa,CAC1D,CACF,CACF,CACF,EA7GajB,EAANkB,EAAA,CADNC,EAAW,EAYPC,EAAA,EAAAC,EAAOC,EAAiB,qBAAqB,GAE7CF,EAAA,EAAAC,EAAOE,EAAY,MAAM,GACzBH,EAAA,EAAAC,EAAOG,EAAS,oBAAoB,GAEpCJ,EAAA,EAAAC,EAAOE,EAAY,0BAA0B,IAhBrCvB",
|
|
6
6
|
"names": ["inject", "injectable", "configTypes", "pkiTypes", "KeyUsage", "SolanaContextTypes", "solanaTokenTypes", "SolanaTokenContextLoader", "dataSource", "config", "_certificateLoader", "loggerFactory", "field", "expectedType", "SolanaContextTypes", "tokenInternalId", "solanaTokenContextInput", "deviceModelId", "payload", "certificate", "KeyUsage", "error", "value", "tokenData", "signatureKind", "__decorateClass", "injectable", "__decorateParam", "inject", "solanaTokenTypes", "configTypes", "pkiTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
var _=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var g=(c,e,n,i)=>{for(var o=i>1?void 0:i?h(e,n):e,r=c.length-1,s;r>=0;r--)(s=c[r])&&(o=(i?s(e,n,o):s(o))||o);return i&&o&&_(e,n,o),o},m=(c,e)=>(n,i)=>e(n,i,c);import C from"axios";import{inject as I,injectable as F}from"inversify";import{Left as f,Right as M}from"purify-ts";import{configTypes as x}from"../../config/di/configTypes";import{LEDGER_CLIENT_VERSION_HEADER as D,LEDGER_ORIGIN_TOKEN_HEADER as T}from"../../shared/constant/HttpHeaders";import{TypedDataCalldataParamPresence as u}from"../../shared/model/TypedDataClearSignContext";import{getSchemaHash as v}from"../../typed-data/utils/getSchemaHash";import b from"../../../package.json";let p=class{constructor(e){this.config=e}async getTypedDataFilters({chainId:e,address:n,schema:i,version:o}){let r;try{const s=await C.request({method:"GET",url:`${this.config.cal.url}/dapps`,params:{contracts:n,chain_id:e,output:"descriptors_eip712",descriptors_eip712_version:o,descriptors_eip712:"<set>",ref:`branch:${this.config.cal.branch}`},headers:{[D]:`context-module/${b.version}`,[T]:this.config.originToken}}),a=v(i);n=n.toLowerCase();const d=(s.data??[]).map(t=>t?.descriptors_eip712?.[n]?.[a]).find(Boolean);if(!d)return f(new Error(`[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${n} on chain ${e} for schema ${a}`));if(!Array.isArray(d.instructions))return f(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${n} on chain ${e} for schema ${a}`));const l=[],y={};for(const t of d.instructions)if(this.isInstructionContractInfo(t,this.config.cal.mode))r={displayName:t.display_name,signature:t.signatures[this.config.cal.mode],filtersCount:t.field_mappers_count};else if(o==="v1"&&this.isInstructionFieldV1(t,this.config.cal.mode))l.push({type:"raw",displayName:t.display_name,path:t.field_path,signature:t.signatures[this.config.cal.mode]});else if(this.isInstructionFieldV2(t,this.config.cal.mode))l.push({type:t.format,displayName:t.display_name,path:t.field_path,signature:t.signatures[this.config.cal.mode]});else if(this.isInstructionFieldV2WithCoinRef(t,this.config.cal.mode))l.push({type:t.format,displayName:t.display_name,path:t.field_path,signature:t.signatures[this.config.cal.mode],tokenIndex:t.coin_ref});else if(this.isInstructionFieldV2WithName(t,this.config.cal.mode))l.push({type:t.format,displayName:t.display_name,path:t.field_path,signature:t.signatures[this.config.cal.mode],types:t.name_types,sources:t.name_sources,typesAndSourcesPayload:this.formatTrustedNameTypesAndSources(t)});else if(this.isInstructionCalldataInfo(t,this.config.cal.mode))y[t.calldata_index]={displayName:t.display_name,calldataIndex:t.calldata_index,valueFlag:t.value_filter_flag,calleeFlag:this.convertCalldataPresenceFlag(t.callee_filter_flag),amountFlag:t.amount_filter_flag,spenderFlag:this.convertCalldataPresenceFlag(t.spender_filter_flag),chainIdFlag:t.chain_id_filter_flag,selectorFlag:t.selector_filter_flag,signature:t.signatures[this.config.cal.mode]};else if(this.isInstructionFieldV2Calldata(t,this.config.cal.mode))l.push({type:t.format,displayName:t.display_name,path:t.field_path,signature:t.signatures[this.config.cal.mode],calldataIndex:t.calldata_index});else return f(new Error(`[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${n} on chain ${e} for schema ${a}`));return r?M({messageInfo:r,filters:l,calldatasInfos:y}):f(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${n} on chain ${e} for schema ${a}`))}catch{return f(new Error("[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations"))}}convertCalldataPresenceFlag(e){switch(e){case"none":return u.None;case"present":return u.Present;case"verifying_contract":return u.VerifyingContract;default:{const n=e;throw new Error(`Unhandled flag: ${n}`)}}}formatTrustedNameTypesAndSources(e){const n=e.name_types.length,i=e.name_sources.length,o=e.descriptor.slice((n+i)*2*-1,i*2*-1),r=e.descriptor.slice(i*2*-1),s=n.toString(16).padStart(2,"0"),a=i.toString(16).padStart(2,"0");return s+o+a+r}isInstructionFieldV1(e,n){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[n]=="string"}isInstructionFieldV2(e,n){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[n]=="string"&&typeof e.format=="string"&&["raw","datetime"].includes(e.format)&&e.coin_ref===void 0}isInstructionFieldV2WithCoinRef(e,n){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[n]=="string"&&typeof e.format=="string"&&["token","amount"].includes(e.format)&&typeof e.coin_ref=="number"}isInstructionFieldV2WithName(e,n){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[n]=="string"&&typeof e.format=="string"&&e.format==="trusted-name"&&e.coin_ref===void 0&&Array.isArray(e.name_types)&&Array.isArray(e.name_sources)&&e.name_types.every(i=>typeof i=="string")&&e.name_sources.every(i=>typeof i=="string")}isInstructionContractInfo(e,n){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_mappers_count=="number"&&typeof e.signatures=="object"&&typeof e.signatures[n]=="string"&&e.field_path===void 0}isInstructionCalldataInfo(e,n){return typeof e=="object"&&typeof e.type=="string"&&e.type==="calldata"&&typeof e.display_name=="string"&&typeof e.calldata_index=="number"&&typeof e.value_filter_flag=="boolean"&&typeof e.chain_id_filter_flag=="boolean"&&typeof e.selector_filter_flag=="boolean"&&typeof e.amount_filter_flag=="boolean"&&["none","present","verifying_contract"].includes(e.callee_filter_flag)&&["none","present","verifying_contract"].includes(e.spender_filter_flag)&&typeof e.signatures=="object"&&typeof e.signatures[n]=="string"}isInstructionFieldV2Calldata(e,n){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[n]=="string"&&typeof e.format=="string"&&["calldata-value","calldata-callee","calldata-chain-id","calldata-selector","calldata-amount","calldata-spender"].includes(e.format)&&typeof e.calldata_index=="number"}};p=g([F(),m(0,I(x.Config))],p);export{p as HttpTypedDataDataSource};
|
|
2
2
|
//# sourceMappingURL=HttpTypedDataDataSource.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/typed-data/data/HttpTypedDataDataSource.ts"],
|
|
4
|
-
"sourcesContent": ["import axios from \"axios\";\nimport SHA224 from \"crypto-js/sha224\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type {\n ContextModuleCalMode,\n ContextModuleConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport type {\n TypedDataCalldataIndex,\n TypedDataFilter,\n TypedDataFilterCalldataInfo,\n TypedDataMessageInfo,\n} from \"@/shared/model/TypedDataClearSignContext\";\nimport { TypedDataCalldataParamPresence } from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataSchema } from \"@/shared/model/TypedDataContext\";\nimport PACKAGE from \"@root/package.json\";\n\nimport type {\n FiltersDto,\n InstructionCalldataInfo,\n InstructionCalldataParamPresence,\n InstructionContractInfo,\n InstructionField,\n InstructionFieldV1,\n InstructionFieldV2,\n InstructionFieldV2Calldata,\n InstructionFieldV2WithCoinRef,\n InstructionFieldV2WithName,\n} from \"./FiltersDto\";\nimport {\n GetTypedDataFiltersParams,\n GetTypedDataFiltersResult,\n TypedDataDataSource,\n} from \"./TypedDataDataSource\";\n\n@injectable()\nexport class HttpTypedDataDataSource implements TypedDataDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n public async getTypedDataFilters({\n chainId,\n address,\n schema,\n version,\n }: GetTypedDataFiltersParams): Promise<\n Either<Error, GetTypedDataFiltersResult>\n > {\n let messageInfo: TypedDataMessageInfo | undefined = undefined;\n\n try {\n const response = await axios.request<FiltersDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/dapps`,\n params: {\n contracts: address,\n chain_id: chainId,\n output: \"descriptors_eip712\",\n descriptors_eip712_version: version,\n descriptors_eip712: \"<set>\",\n ref: `branch:${this.config.cal.branch}`,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n\n // Try to get the filters JSON descriptor, from address and schema hash\n const schemaHash = SHA224(\n JSON.stringify(this.sortTypes(schema)).replace(\" \", \"\"),\n ).toString();\n address = address.toLowerCase();\n const dataArray = response.data ?? [];\n const filtersJson = dataArray\n .map((item) => item?.descriptors_eip712?.[address]?.[schemaHash])\n .find(Boolean);\n\n if (!filtersJson) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse the message type, if available\n if (!Array.isArray(filtersJson.instructions)) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse all the filters\n const filters: TypedDataFilter[] = [];\n const calldatasInfos: Record<\n TypedDataCalldataIndex,\n TypedDataFilterCalldataInfo\n > = {};\n for (const field of filtersJson.instructions) {\n if (this.isInstructionContractInfo(field, this.config.cal.mode)) {\n messageInfo = {\n displayName: field.display_name,\n signature: field.signatures[this.config.cal.mode],\n filtersCount: field.field_mappers_count,\n };\n } else if (\n version === \"v1\" &&\n this.isInstructionFieldV1(field, this.config.cal.mode)\n ) {\n filters.push({\n type: \"raw\",\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (this.isInstructionFieldV2(field, this.config.cal.mode)) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (\n this.isInstructionFieldV2WithCoinRef(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n tokenIndex: field.coin_ref,\n });\n } else if (\n this.isInstructionFieldV2WithName(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n types: field.name_types,\n sources: field.name_sources,\n typesAndSourcesPayload:\n this.formatTrustedNameTypesAndSources(field),\n });\n } else if (\n this.isInstructionCalldataInfo(field, this.config.cal.mode)\n ) {\n calldatasInfos[field.calldata_index] = {\n displayName: field.display_name,\n calldataIndex: field.calldata_index,\n valueFlag: field.value_filter_flag,\n calleeFlag: this.convertCalldataPresenceFlag(\n field.callee_filter_flag,\n ),\n amountFlag: field.amount_filter_flag,\n spenderFlag: this.convertCalldataPresenceFlag(\n field.spender_filter_flag,\n ),\n chainIdFlag: field.chain_id_filter_flag,\n selectorFlag: field.selector_filter_flag,\n signature: field.signatures[this.config.cal.mode],\n };\n } else if (\n this.isInstructionFieldV2Calldata(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n calldataIndex: field.calldata_index,\n });\n } else {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n }\n\n if (!messageInfo) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n return Right({ messageInfo, filters, calldatasInfos });\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations\",\n ),\n );\n }\n }\n\n private convertCalldataPresenceFlag(\n flag: InstructionCalldataParamPresence,\n ): TypedDataCalldataParamPresence {\n switch (flag) {\n case \"none\":\n return TypedDataCalldataParamPresence.None;\n case \"present\":\n return TypedDataCalldataParamPresence.Present;\n case \"verifying_contract\":\n return TypedDataCalldataParamPresence.VerifyingContract;\n default: {\n const uncoveredFlag: never = flag;\n throw new Error(`Unhandled flag: ${uncoveredFlag}`);\n }\n }\n }\n\n private formatTrustedNameTypesAndSources(\n field: InstructionFieldV2WithName,\n ): string {\n // Get number of types and sources\n const typesCount = field.name_types.length;\n const sourcesCount = field.name_sources.length;\n\n // Extract types and sources from the descriptor\n const types = field.descriptor.slice(\n (typesCount + sourcesCount) * 2 * -1,\n sourcesCount * 2 * -1,\n );\n const sources = field.descriptor.slice(sourcesCount * 2 * -1);\n\n // Convert counts into hex strings\n const typesCountHex = typesCount.toString(16).padStart(2, \"0\");\n const sourcesCountHex = sourcesCount.toString(16).padStart(2, \"0\");\n\n // Return the payload\n return typesCountHex + types + sourcesCountHex + sources;\n }\n\n private isInstructionFieldV1(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV1 & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n // NOTE: Currently the backend return the same structure for V1 and V2,\n // so we can't distinguish them here, but we can still check the required fields\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\"\n );\n }\n\n private isInstructionFieldV2(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2 & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"raw\", \"datetime\"].includes(data.format) &&\n data.coin_ref === undefined\n );\n }\n\n private isInstructionFieldV2WithCoinRef(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2WithCoinRef & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"token\", \"amount\"].includes(data.format) &&\n typeof data.coin_ref === \"number\"\n );\n }\n\n private isInstructionFieldV2WithName(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2WithName & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n data.format === \"trusted-name\" &&\n data.coin_ref === undefined &&\n Array.isArray(data.name_types) &&\n Array.isArray(data.name_sources) &&\n data.name_types.every((t) => typeof t === \"string\") &&\n data.name_sources.every((s) => typeof s === \"string\")\n );\n }\n\n private isInstructionContractInfo(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionContractInfo & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_mappers_count === \"number\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n data.field_path === undefined\n );\n }\n\n private isInstructionCalldataInfo(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionCalldataInfo & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.type === \"string\" &&\n data.type === \"calldata\" &&\n typeof data.display_name === \"string\" &&\n typeof data.calldata_index === \"number\" &&\n typeof data.value_filter_flag === \"boolean\" &&\n typeof data.chain_id_filter_flag === \"boolean\" &&\n typeof data.selector_filter_flag === \"boolean\" &&\n typeof data.amount_filter_flag === \"boolean\" &&\n [\"none\", \"present\", \"verifying_contract\"].includes(\n data.callee_filter_flag,\n ) &&\n [\"none\", \"present\", \"verifying_contract\"].includes(\n data.spender_filter_flag,\n ) &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\"\n );\n }\n\n private isInstructionFieldV2Calldata(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2Calldata & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\n \"calldata-value\",\n \"calldata-callee\",\n \"calldata-chain-id\",\n \"calldata-selector\",\n \"calldata-amount\",\n \"calldata-spender\",\n ].includes(data.format) &&\n typeof data.calldata_index === \"number\"\n );\n }\n\n private sortTypes(types: TypedDataSchema): TypedDataSchema {\n return Object.fromEntries(\n Object.entries(types)\n .sort(([aKey], [bKey]) => aKey.localeCompare(bKey))\n .map(([key, value]) => [\n key,\n value.map((v) => ({ name: v.name, type: v.type })),\n ]),\n );\n }\n}\n"],
|
|
5
|
-
"mappings": "iOAAA,OAAOA,MAAW,QAClB,
|
|
6
|
-
"names": ["axios", "
|
|
4
|
+
"sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type {\n ContextModuleCalMode,\n ContextModuleConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport type {\n TypedDataCalldataIndex,\n TypedDataFilter,\n TypedDataFilterCalldataInfo,\n TypedDataMessageInfo,\n} from \"@/shared/model/TypedDataClearSignContext\";\nimport { TypedDataCalldataParamPresence } from \"@/shared/model/TypedDataClearSignContext\";\nimport { getSchemaHash } from \"@/typed-data/utils/getSchemaHash\";\nimport PACKAGE from \"@root/package.json\";\n\nimport type {\n FiltersDto,\n InstructionCalldataInfo,\n InstructionCalldataParamPresence,\n InstructionContractInfo,\n InstructionField,\n InstructionFieldV1,\n InstructionFieldV2,\n InstructionFieldV2Calldata,\n InstructionFieldV2WithCoinRef,\n InstructionFieldV2WithName,\n} from \"./FiltersDto\";\nimport {\n GetTypedDataFiltersParams,\n GetTypedDataFiltersResult,\n TypedDataDataSource,\n} from \"./TypedDataDataSource\";\n\n@injectable()\nexport class HttpTypedDataDataSource implements TypedDataDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n public async getTypedDataFilters({\n chainId,\n address,\n schema,\n version,\n }: GetTypedDataFiltersParams): Promise<\n Either<Error, GetTypedDataFiltersResult>\n > {\n let messageInfo: TypedDataMessageInfo | undefined = undefined;\n\n try {\n const response = await axios.request<FiltersDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/dapps`,\n params: {\n contracts: address,\n chain_id: chainId,\n output: \"descriptors_eip712\",\n descriptors_eip712_version: version,\n descriptors_eip712: \"<set>\",\n ref: `branch:${this.config.cal.branch}`,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n\n // Try to get the filters JSON descriptor, from address and schema hash\n const schemaHash = getSchemaHash(schema);\n address = address.toLowerCase();\n const dataArray = response.data ?? [];\n const filtersJson = dataArray\n .map((item) => item?.descriptors_eip712?.[address]?.[schemaHash])\n .find(Boolean);\n\n if (!filtersJson) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse the message type, if available\n if (!Array.isArray(filtersJson.instructions)) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse all the filters\n const filters: TypedDataFilter[] = [];\n const calldatasInfos: Record<\n TypedDataCalldataIndex,\n TypedDataFilterCalldataInfo\n > = {};\n for (const field of filtersJson.instructions) {\n if (this.isInstructionContractInfo(field, this.config.cal.mode)) {\n messageInfo = {\n displayName: field.display_name,\n signature: field.signatures[this.config.cal.mode],\n filtersCount: field.field_mappers_count,\n };\n } else if (\n version === \"v1\" &&\n this.isInstructionFieldV1(field, this.config.cal.mode)\n ) {\n filters.push({\n type: \"raw\",\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (this.isInstructionFieldV2(field, this.config.cal.mode)) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (\n this.isInstructionFieldV2WithCoinRef(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n tokenIndex: field.coin_ref,\n });\n } else if (\n this.isInstructionFieldV2WithName(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n types: field.name_types,\n sources: field.name_sources,\n typesAndSourcesPayload:\n this.formatTrustedNameTypesAndSources(field),\n });\n } else if (\n this.isInstructionCalldataInfo(field, this.config.cal.mode)\n ) {\n calldatasInfos[field.calldata_index] = {\n displayName: field.display_name,\n calldataIndex: field.calldata_index,\n valueFlag: field.value_filter_flag,\n calleeFlag: this.convertCalldataPresenceFlag(\n field.callee_filter_flag,\n ),\n amountFlag: field.amount_filter_flag,\n spenderFlag: this.convertCalldataPresenceFlag(\n field.spender_filter_flag,\n ),\n chainIdFlag: field.chain_id_filter_flag,\n selectorFlag: field.selector_filter_flag,\n signature: field.signatures[this.config.cal.mode],\n };\n } else if (\n this.isInstructionFieldV2Calldata(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n calldataIndex: field.calldata_index,\n });\n } else {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n }\n\n if (!messageInfo) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n return Right({ messageInfo, filters, calldatasInfos });\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations\",\n ),\n );\n }\n }\n\n private convertCalldataPresenceFlag(\n flag: InstructionCalldataParamPresence,\n ): TypedDataCalldataParamPresence {\n switch (flag) {\n case \"none\":\n return TypedDataCalldataParamPresence.None;\n case \"present\":\n return TypedDataCalldataParamPresence.Present;\n case \"verifying_contract\":\n return TypedDataCalldataParamPresence.VerifyingContract;\n default: {\n const uncoveredFlag: never = flag;\n throw new Error(`Unhandled flag: ${uncoveredFlag}`);\n }\n }\n }\n\n private formatTrustedNameTypesAndSources(\n field: InstructionFieldV2WithName,\n ): string {\n // Get number of types and sources\n const typesCount = field.name_types.length;\n const sourcesCount = field.name_sources.length;\n\n // Extract types and sources from the descriptor\n const types = field.descriptor.slice(\n (typesCount + sourcesCount) * 2 * -1,\n sourcesCount * 2 * -1,\n );\n const sources = field.descriptor.slice(sourcesCount * 2 * -1);\n\n // Convert counts into hex strings\n const typesCountHex = typesCount.toString(16).padStart(2, \"0\");\n const sourcesCountHex = sourcesCount.toString(16).padStart(2, \"0\");\n\n // Return the payload\n return typesCountHex + types + sourcesCountHex + sources;\n }\n\n private isInstructionFieldV1(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV1 & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n // NOTE: Currently the backend return the same structure for V1 and V2,\n // so we can't distinguish them here, but we can still check the required fields\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\"\n );\n }\n\n private isInstructionFieldV2(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2 & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"raw\", \"datetime\"].includes(data.format) &&\n data.coin_ref === undefined\n );\n }\n\n private isInstructionFieldV2WithCoinRef(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2WithCoinRef & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"token\", \"amount\"].includes(data.format) &&\n typeof data.coin_ref === \"number\"\n );\n }\n\n private isInstructionFieldV2WithName(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2WithName & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n data.format === \"trusted-name\" &&\n data.coin_ref === undefined &&\n Array.isArray(data.name_types) &&\n Array.isArray(data.name_sources) &&\n data.name_types.every((t) => typeof t === \"string\") &&\n data.name_sources.every((s) => typeof s === \"string\")\n );\n }\n\n private isInstructionContractInfo(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionContractInfo & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_mappers_count === \"number\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n data.field_path === undefined\n );\n }\n\n private isInstructionCalldataInfo(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionCalldataInfo & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.type === \"string\" &&\n data.type === \"calldata\" &&\n typeof data.display_name === \"string\" &&\n typeof data.calldata_index === \"number\" &&\n typeof data.value_filter_flag === \"boolean\" &&\n typeof data.chain_id_filter_flag === \"boolean\" &&\n typeof data.selector_filter_flag === \"boolean\" &&\n typeof data.amount_filter_flag === \"boolean\" &&\n [\"none\", \"present\", \"verifying_contract\"].includes(\n data.callee_filter_flag,\n ) &&\n [\"none\", \"present\", \"verifying_contract\"].includes(\n data.spender_filter_flag,\n ) &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\"\n );\n }\n\n private isInstructionFieldV2Calldata(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2Calldata & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\n \"calldata-value\",\n \"calldata-callee\",\n \"calldata-chain-id\",\n \"calldata-selector\",\n \"calldata-amount\",\n \"calldata-spender\",\n ].includes(data.format) &&\n typeof data.calldata_index === \"number\"\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["axios", "inject", "injectable", "Left", "Right", "configTypes", "LEDGER_CLIENT_VERSION_HEADER", "LEDGER_ORIGIN_TOKEN_HEADER", "TypedDataCalldataParamPresence", "getSchemaHash", "PACKAGE", "HttpTypedDataDataSource", "config", "chainId", "address", "schema", "version", "messageInfo", "response", "axios", "LEDGER_CLIENT_VERSION_HEADER", "PACKAGE", "LEDGER_ORIGIN_TOKEN_HEADER", "schemaHash", "getSchemaHash", "filtersJson", "item", "Left", "filters", "calldatasInfos", "field", "Right", "flag", "TypedDataCalldataParamPresence", "uncoveredFlag", "typesCount", "sourcesCount", "types", "sources", "typesCountHex", "sourcesCountHex", "data", "mode", "t", "s", "__decorateClass", "injectable", "__decorateParam", "inject", "configTypes"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import m from"crypto-js/sha224";function o(a){return Object.fromEntries(Object.entries(a).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,t.map(r=>({name:r.name,type:r.type}))]))}function n(a){const e=o(a),t=JSON.stringify(e);return m(t).toString()}export{n as getSchemaHash};
|
|
2
|
+
//# sourceMappingURL=getSchemaHash.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/typed-data/utils/getSchemaHash.ts"],
|
|
4
|
+
"sourcesContent": ["import SHA224 from \"crypto-js/sha224\";\n\nimport type { TypedDataSchema } from \"@/shared/model/TypedDataContext\";\n\n/**\n * Schema hash is the SHA-224 hex digest of the compact JSON UTF-8 representation\n * of the EIP-712 schema (types object), with keys sorted for deterministic output.\n */\nexport type SchemaHash = string;\n\n/**\n * Sorts the schema by type name and normalizes each type's fields to { name, type }\n * for deterministic JSON serialization.\n */\nfunction sortSchema(schema: TypedDataSchema): TypedDataSchema {\n return Object.fromEntries(\n Object.entries(schema)\n .sort(([aKey], [bKey]) => aKey.localeCompare(bKey))\n .map(([key, value]) => [\n key,\n value.map((v) => ({ name: v.name, type: v.type })),\n ]),\n );\n}\n\n/**\n * Computes the schema hash of an EIP-712 schema.\n * Schema hash is SHA-224 of the compact JSON UTF-8 encoded representation of the schema.\n */\nexport function getSchemaHash(schema: TypedDataSchema): SchemaHash {\n const sortedSchema = sortSchema(schema);\n const schemaStr = JSON.stringify(sortedSchema);\n return SHA224(schemaStr).toString();\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAY,mBAcnB,SAASC,EAAWC,EAA0C,CAC5D,OAAO,OAAO,YACZ,OAAO,QAAQA,CAAM,EAClB,KAAK,CAAC,CAACC,CAAI,EAAG,CAACC,CAAI,IAAMD,EAAK,cAAcC,CAAI,CAAC,EACjD,IAAI,CAAC,CAACC,EAAKC,CAAK,IAAM,CACrBD,EACAC,EAAM,IAAKC,IAAO,CAAE,KAAMA,EAAE,KAAM,KAAMA,EAAE,IAAK,EAAE,CACnD,CAAC,CACL,CACF,CAMO,SAASC,EAAcN,EAAqC,CACjE,MAAMO,EAAeR,EAAWC,CAAM,EAChCQ,EAAY,KAAK,UAAUD,CAAY,EAC7C,OAAOT,EAAOU,CAAS,EAAE,SAAS,CACpC",
|
|
6
|
+
"names": ["SHA224", "sortSchema", "schema", "aKey", "bKey", "key", "value", "v", "getSchemaHash", "sortedSchema", "schemaStr"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{describe as s,expect as n,it as m}from"vitest";import{getSchemaHash as a}from"./getSchemaHash";s("getSchemaHash",()=>{m("returns SHA-224 hex digest of compact sorted JSON",()=>{const t=a({Mail:[{name:"from",type:"Person"},{name:"to",type:"Person"},{name:"contents",type:"string"}],Person:[{name:"name",type:"string"},{name:"wallet",type:"address"}]});n(t).toMatch(/^[a-f0-9]{56}$/),n(typeof t).toBe("string")}),m("is deterministic: same schema yields same hash",()=>{const e={EIP712Domain:[{name:"name",type:"string"},{name:"chainId",type:"uint256"}],Mail:[{name:"subject",type:"string"}]};n(a(e)).toBe(a(e))}),m("sorts schema by type name for canonical representation",()=>{const e={Mail:[{name:"x",type:"string"}],EIP712Domain:[{name:"y",type:"uint256"}]},t={EIP712Domain:[{name:"y",type:"uint256"}],Mail:[{name:"x",type:"string"}]};n(a(e)).toBe(a(t))})});
|
|
2
|
+
//# sourceMappingURL=getSchemaHash.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/typed-data/utils/getSchemaHash.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { describe, expect, it } from \"vitest\";\n\nimport type { TypedDataSchema } from \"@/shared/model/TypedDataContext\";\n\nimport { getSchemaHash } from \"./getSchemaHash\";\n\ndescribe(\"getSchemaHash\", () => {\n it(\"returns SHA-224 hex digest of compact sorted JSON\", () => {\n const schema: TypedDataSchema = {\n Mail: [\n { name: \"from\", type: \"Person\" },\n { name: \"to\", type: \"Person\" },\n { name: \"contents\", type: \"string\" },\n ],\n Person: [\n { name: \"name\", type: \"string\" },\n { name: \"wallet\", type: \"address\" },\n ],\n };\n const hash = getSchemaHash(schema);\n expect(hash).toMatch(/^[a-f0-9]{56}$/);\n expect(typeof hash).toBe(\"string\");\n });\n\n it(\"is deterministic: same schema yields same hash\", () => {\n const schema: TypedDataSchema = {\n EIP712Domain: [\n { name: \"name\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n ],\n Mail: [{ name: \"subject\", type: \"string\" }],\n };\n expect(getSchemaHash(schema)).toBe(getSchemaHash(schema));\n });\n\n it(\"sorts schema by type name for canonical representation\", () => {\n const schemaA: TypedDataSchema = {\n Mail: [{ name: \"x\", type: \"string\" }],\n EIP712Domain: [{ name: \"y\", type: \"uint256\" }],\n };\n const schemaB: TypedDataSchema = {\n EIP712Domain: [{ name: \"y\", type: \"uint256\" }],\n Mail: [{ name: \"x\", type: \"string\" }],\n };\n expect(getSchemaHash(schemaA)).toBe(getSchemaHash(schemaB));\n });\n});\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,YAAAA,EAAU,UAAAC,EAAQ,MAAAC,MAAU,SAIrC,OAAS,iBAAAC,MAAqB,kBAE9BH,EAAS,gBAAiB,IAAM,CAC9BE,EAAG,oDAAqD,IAAM,CAY5D,MAAME,EAAOD,EAXmB,CAC9B,KAAM,CACJ,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,KAAM,KAAM,QAAS,EAC7B,CAAE,KAAM,WAAY,KAAM,QAAS,CACrC,EACA,OAAQ,CACN,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,SAAU,KAAM,SAAU,CACpC,CACF,CACiC,EACjCF,EAAOG,CAAI,EAAE,QAAQ,gBAAgB,EACrCH,EAAO,OAAOG,CAAI,EAAE,KAAK,QAAQ,CACnC,CAAC,EAEDF,EAAG,iDAAkD,IAAM,CACzD,MAAMG,EAA0B,CAC9B,aAAc,CACZ,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,UAAW,KAAM,SAAU,CACrC,EACA,KAAM,CAAC,CAAE,KAAM,UAAW,KAAM,QAAS,CAAC,CAC5C,EACAJ,EAAOE,EAAcE,CAAM,CAAC,EAAE,KAAKF,EAAcE,CAAM,CAAC,CAC1D,CAAC,EAEDH,EAAG,yDAA0D,IAAM,CACjE,MAAMI,EAA2B,CAC/B,KAAM,CAAC,CAAE,KAAM,IAAK,KAAM,QAAS,CAAC,EACpC,aAAc,CAAC,CAAE,KAAM,IAAK,KAAM,SAAU,CAAC,CAC/C,EACMC,EAA2B,CAC/B,aAAc,CAAC,CAAE,KAAM,IAAK,KAAM,SAAU,CAAC,EAC7C,KAAM,CAAC,CAAE,KAAM,IAAK,KAAM,QAAS,CAAC,CACtC,EACAN,EAAOE,EAAcG,CAAO,CAAC,EAAE,KAAKH,EAAcI,CAAO,CAAC,CAC5D,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["describe", "expect", "it", "getSchemaHash", "hash", "schema", "schemaA", "schemaB"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultContextModule.d.ts","sourceRoot":"","sources":["../../../src/DefaultContextModule.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultContextModule.d.ts","sourceRoot":"","sources":["../../../src/DefaultContextModule.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAQ9E,OAAO,EACL,KAAK,gBAAgB,EACrB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAGxF,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAKzF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAgC;gBAEzC,IAAI,EAAE,mBAAmB;IAgBrC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,gBAAgB;IAiBX,WAAW,CACtB,KAAK,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,oBAAoB,EAAE,GACrC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAUjB,eAAe,CAAC,MAAM,EACjC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,gBAAgB,CAAC;IA4Bf,mBAAmB,CAC9B,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,yBAAyB,CAAC;IAIxB,gBAAgB,CAC3B,kBAAkB,EAAE,wBAAwB,GAC3C,OAAO,CAAC,8BAA8B,CAAC;CAG3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../src/di.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAKtC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../src/di.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAKtC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAiB9E,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,YAAY,iBAAiB,cA8B1D,CAAC"}
|
|
@@ -8,6 +8,8 @@ export type DynamicNetworkContextInput = {
|
|
|
8
8
|
chainId: number;
|
|
9
9
|
deviceModelId: DeviceModelId;
|
|
10
10
|
};
|
|
11
|
+
/** Context types produced by DynamicNetworkContextLoader (used for getContexts expectedTypes). */
|
|
12
|
+
export declare const DYNAMIC_NETWORK_CONTEXT_TYPES: ClearSignContextType[];
|
|
11
13
|
export declare class DynamicNetworkContextLoader implements ContextLoader<DynamicNetworkContextInput> {
|
|
12
14
|
private readonly _networkDataSource;
|
|
13
15
|
private readonly _config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicNetworkContextLoader.d.ts","sourceRoot":"","sources":["../../../../../src/dynamic-network/domain/DynamicNetworkContextLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAGhG,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;
|
|
1
|
+
{"version":3,"file":"DynamicNetworkContextLoader.d.ts","sourceRoot":"","sources":["../../../../../src/dynamic-network/domain/DynamicNetworkContextLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAGhG,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAIF,kGAAkG;AAClG,eAAO,MAAM,6BAA6B,EAAE,oBAAoB,EAG/D,CAAC;AAEF,qBACa,2BACX,YAAW,aAAa,CAAC,0BAA0B,CAAC;IAEpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,OAAO,CAAC,MAAM,CAAyB;gBAIrC,iBAAiB,EAAE,wBAAwB,EAE3C,MAAM,EAAE,mBAAmB,EAE3B,iBAAiB,EAAE,oBAAoB,EAEvC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB;IAQxD,SAAS,CACP,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,oBAAoB,EAAE,GACpC,KAAK,IAAI,0BAA0B;IAehC,IAAI,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAyD3E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type HexaString } from "@ledgerhq/device-management-kit";
|
|
2
|
+
import { type Either } from "purify-ts";
|
|
3
|
+
export type GetGatedDescriptorParams = {
|
|
4
|
+
contractAddress: HexaString;
|
|
5
|
+
selector: HexaString;
|
|
6
|
+
chainId: number;
|
|
7
|
+
};
|
|
8
|
+
export type GetGatedDescriptorForTypedDataParams = {
|
|
9
|
+
contractAddress: HexaString;
|
|
10
|
+
schemaHash: string;
|
|
11
|
+
chainId: number;
|
|
12
|
+
};
|
|
13
|
+
export type GetGatedDescriptorResponse = {
|
|
14
|
+
signedDescriptor: string;
|
|
15
|
+
};
|
|
16
|
+
export interface GatedDescriptorDataSource {
|
|
17
|
+
getGatedDescriptor(params: GetGatedDescriptorParams): Promise<Either<Error, GetGatedDescriptorResponse>>;
|
|
18
|
+
getGatedDescriptorForTypedData(params: GetGatedDescriptorForTypedDataParams): Promise<Either<Error, GetGatedDescriptorResponse>>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=GatedDescriptorDataSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatedDescriptorDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/data/GatedDescriptorDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,UAAU,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,eAAe,EAAE,UAAU,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,CAChB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAEtD,8BAA8B,CAC5B,MAAM,EAAE,oCAAoC,GAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC;CACvD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Either } from "purify-ts";
|
|
2
|
+
import { type ContextModuleConfig } from "../../config/model/ContextModuleConfig";
|
|
3
|
+
import { type GatedDescriptorDataSource, type GetGatedDescriptorForTypedDataParams, type GetGatedDescriptorParams, type GetGatedDescriptorResponse } from "./GatedDescriptorDataSource";
|
|
4
|
+
export declare class HttpGatedDescriptorDataSource implements GatedDescriptorDataSource {
|
|
5
|
+
private readonly config;
|
|
6
|
+
constructor(config: ContextModuleConfig);
|
|
7
|
+
getGatedDescriptor({ contractAddress, selector, chainId, }: GetGatedDescriptorParams): Promise<Either<Error, GetGatedDescriptorResponse>>;
|
|
8
|
+
getGatedDescriptorForTypedData({ contractAddress, schemaHash, chainId, }: GetGatedDescriptorForTypedDataParams): Promise<Either<Error, GetGatedDescriptorResponse>>;
|
|
9
|
+
private isGatedDappsDto;
|
|
10
|
+
private isGatedDappsResponseItemDto;
|
|
11
|
+
private isGatedDescriptorEntryDto;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=HttpGatedDescriptorDataSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpGatedDescriptorDataSource.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/data/HttpGatedDescriptorDataSource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAc9E,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,oCAAoC,EACzC,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAChC,MAAM,6BAA6B,CAAC;AAErC,qBACa,6BACX,YAAW,yBAAyB;IAGN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAGpE,kBAAkB,CAAC,EACvB,eAAe,EACf,QAAQ,EACR,OAAO,GACR,EAAE,wBAAwB,GAAG,OAAO,CACnC,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAC1C;IAkEK,8BAA8B,CAAC,EACnC,eAAe,EACf,UAAU,EACV,OAAO,GACR,EAAE,oCAAoC,GAAG,OAAO,CAC/C,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAC1C;IA4DD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,2BAA2B;IA6BnC,OAAO,CAAC,yBAAyB;CA8BlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpGatedDescriptorDataSource.test.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/data/HttpGatedDescriptorDataSource.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type GatedDescriptorEntryDto = {
|
|
2
|
+
network: string;
|
|
3
|
+
chain_id: number;
|
|
4
|
+
address: string;
|
|
5
|
+
selector: string;
|
|
6
|
+
version: string;
|
|
7
|
+
descriptor: string;
|
|
8
|
+
signatures?: Record<string, string>;
|
|
9
|
+
};
|
|
10
|
+
export type GatedDescriptorsByContractDto = Record<string, Record<string, GatedDescriptorEntryDto>>;
|
|
11
|
+
export type GatedDappsResponseItemDto = {
|
|
12
|
+
gated_descriptors: GatedDescriptorsByContractDto;
|
|
13
|
+
};
|
|
14
|
+
export type GatedDappsDto = GatedDappsResponseItemDto[];
|
|
15
|
+
//# sourceMappingURL=GatedDappsDto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatedDappsDto.d.ts","sourceRoot":"","sources":["../../../../../../src/gated-signing/data/dto/GatedDappsDto.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAChD,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CACxC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,iBAAiB,EAAE,6BAA6B,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gatedSigningModuleFactory.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/di/gatedSigningModuleFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAQ5C,eAAO,MAAM,yBAAyB,uBAWlC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gatedSigningTypes.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/di/gatedSigningTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;CAM7B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DeviceModelId, HexaString } from "@ledgerhq/device-management-kit";
|
|
2
|
+
import { type GatedDescriptorDataSource } from "../../gated-signing/data/GatedDescriptorDataSource";
|
|
3
|
+
import { type PkiCertificateLoader } from "../../pki/domain/PkiCertificateLoader";
|
|
4
|
+
import type { ProxyDataSource } from "../../proxy/data/ProxyDataSource";
|
|
5
|
+
import { ContextLoader } from "../../shared/domain/ContextLoader";
|
|
6
|
+
import { ClearSignContext, ClearSignContextType } from "../../shared/model/ClearSignContext";
|
|
7
|
+
export type GatedSigningContextInput = {
|
|
8
|
+
to: HexaString;
|
|
9
|
+
selector: HexaString;
|
|
10
|
+
chainId: number;
|
|
11
|
+
deviceModelId: DeviceModelId;
|
|
12
|
+
};
|
|
13
|
+
export declare class GatedSigningContextLoader implements ContextLoader<GatedSigningContextInput> {
|
|
14
|
+
private readonly _dataSource;
|
|
15
|
+
private readonly _certificateLoader;
|
|
16
|
+
private readonly _proxyDataSource;
|
|
17
|
+
constructor(_dataSource: GatedDescriptorDataSource, _certificateLoader: PkiCertificateLoader, _proxyDataSource: ProxyDataSource);
|
|
18
|
+
canHandle(input: unknown, expectedTypes: ClearSignContextType[]): input is GatedSigningContextInput;
|
|
19
|
+
load({ to, selector, chainId, deviceModelId, }: GatedSigningContextInput): Promise<ClearSignContext[]>;
|
|
20
|
+
private _loadGatedCertificate;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=GatedSigningContextLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatedSigningContextLoader.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/domain/GatedSigningContextLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EAEX,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAGhG,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAWF,qBACa,yBACX,YAAW,aAAa,CAAC,wBAAwB,CAAC;IAIhD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAJhB,WAAW,EAAE,yBAAyB,EAEtC,kBAAkB,EAAE,oBAAoB,EAExC,gBAAgB,EAAE,eAAe;IAGpD,SAAS,CACP,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,oBAAoB,EAAE,GACpC,KAAK,IAAI,wBAAwB;IAiB9B,IAAI,CAAC,EACT,EAAE,EACF,QAAQ,EACR,OAAO,EACP,aAAa,GACd,EAAE,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA2EzD,OAAO,CAAC,qBAAqB;CAO9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatedSigningContextLoader.test.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/domain/GatedSigningContextLoader.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DeviceModelId } from "@ledgerhq/device-management-kit";
|
|
2
|
+
import { type GatedDescriptorDataSource } from "../../gated-signing/data/GatedDescriptorDataSource";
|
|
3
|
+
import { type PkiCertificateLoader } from "../../pki/domain/PkiCertificateLoader";
|
|
4
|
+
import type { ProxyDataSource } from "../../proxy/data/ProxyDataSource";
|
|
5
|
+
import { ContextLoader } from "../../shared/domain/ContextLoader";
|
|
6
|
+
import { ClearSignContext, ClearSignContextType } from "../../shared/model/ClearSignContext";
|
|
7
|
+
import type { TypedDataSchema } from "../../shared/model/TypedDataContext";
|
|
8
|
+
export type GatedSigningTypedDataContextInput = {
|
|
9
|
+
data: {
|
|
10
|
+
types: TypedDataSchema;
|
|
11
|
+
domain?: {
|
|
12
|
+
verifyingContract?: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
chainId: number;
|
|
16
|
+
deviceModelId: DeviceModelId;
|
|
17
|
+
challenge: string;
|
|
18
|
+
};
|
|
19
|
+
export declare class GatedSigningTypedDataContextLoader implements ContextLoader<GatedSigningTypedDataContextInput> {
|
|
20
|
+
private readonly _dataSource;
|
|
21
|
+
private readonly _certificateLoader;
|
|
22
|
+
private readonly _proxyDataSource;
|
|
23
|
+
constructor(_dataSource: GatedDescriptorDataSource, _certificateLoader: PkiCertificateLoader, _proxyDataSource: ProxyDataSource);
|
|
24
|
+
canHandle(input: unknown, expectedTypes: ClearSignContextType[]): input is GatedSigningTypedDataContextInput;
|
|
25
|
+
load({ data, chainId, deviceModelId, challenge, }: GatedSigningTypedDataContextInput): Promise<ClearSignContext[]>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=GatedSigningTypedDataContextLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatedSigningTypedDataContextLoader.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/domain/GatedSigningTypedDataContextLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEd,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAGhG,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvE,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE;QACJ,KAAK,EAAE,eAAe,CAAC;QACvB,MAAM,CAAC,EAAE;YAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACzC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAqCF,qBACa,kCACX,YAAW,aAAa,CAAC,iCAAiC,CAAC;IAIzD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAJhB,WAAW,EAAE,yBAAyB,EAEtC,kBAAkB,EAAE,oBAAoB,EAExC,gBAAgB,EAAE,eAAe;IAGpD,SAAS,CACP,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,oBAAoB,EAAE,GACpC,KAAK,IAAI,iCAAiC;IAgBvC,IAAI,CAAC,EACT,IAAI,EACJ,OAAO,EACP,aAAa,EACb,SAAS,GACV,EAAE,iCAAiC,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAoGnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatedSigningTypedDataContextLoader.test.d.ts","sourceRoot":"","sources":["../../../../../src/gated-signing/domain/GatedSigningTypedDataContextLoader.test.ts"],"names":[],"mappings":""}
|
package/lib/types/src/index.d.ts
CHANGED
|
@@ -12,6 +12,10 @@ export * from "./dynamic-network/model/DynamicNetworkConfiguration";
|
|
|
12
12
|
export * from "./external-plugin/data/ExternalPluginDataSource";
|
|
13
13
|
export * from "./external-plugin/data/HttpExternalPluginDataSource";
|
|
14
14
|
export * from "./external-plugin/domain/ExternalPluginContextLoader";
|
|
15
|
+
export * from "./gated-signing/data/GatedDescriptorDataSource";
|
|
16
|
+
export * from "./gated-signing/data/HttpGatedDescriptorDataSource";
|
|
17
|
+
export * from "./gated-signing/domain/GatedSigningContextLoader";
|
|
18
|
+
export * from "./gated-signing/domain/GatedSigningTypedDataContextLoader";
|
|
15
19
|
export * from "./nft/data/HttpNftDataSource";
|
|
16
20
|
export * from "./nft/data/NftDataSource";
|
|
17
21
|
export * from "./nft/domain/NftContextFieldLoader";
|
|
@@ -53,6 +57,7 @@ export * from "./typed-data/data/HttpTypedDataDataSource";
|
|
|
53
57
|
export * from "./typed-data/data/TypedDataDataSource";
|
|
54
58
|
export * from "./typed-data/domain/DefaultTypedDataContextLoader";
|
|
55
59
|
export * from "./typed-data/domain/TypedDataContextLoader";
|
|
60
|
+
export * from "./typed-data/utils/getSchemaHash";
|
|
56
61
|
export * from "./uniswap/data/AbiDecoderDataSource";
|
|
57
62
|
export * from "./uniswap/data/CommandDecoderDataSource";
|
|
58
63
|
export * from "./uniswap/data/DefaultCommandDecoderDataSource";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,qDAAqD,CAAC;AACpE,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qDAAqD,CAAC;AACpE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC;AACtD,cAAc,mDAAmD,CAAC;AAClE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,qDAAqD,CAAC;AACpE,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qDAAqD,CAAC;AACpE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC;AACtD,cAAc,mDAAmD,CAAC;AAClE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC"}
|
|
@@ -9,6 +9,8 @@ export declare enum KeyId {
|
|
|
9
9
|
DomainMetadataKey = "domain_metadata_key",
|
|
10
10
|
CalCalldataKey = "cal_calldata_key",
|
|
11
11
|
CalTrustedNameKey = "cal_trusted_name_key",
|
|
12
|
-
CalNetwork = "cal_network"
|
|
12
|
+
CalNetwork = "cal_network",
|
|
13
|
+
CalGatedSigning = "cal_gated_signing",
|
|
14
|
+
SwapTemplateKey = "swap_template_key"
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=KeyId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyId.d.ts","sourceRoot":"","sources":["../../../../../src/pki/model/KeyId.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,YAAY,mBAAmB;IAC/B,iBAAiB,wBAAwB;IACzC,cAAc,qBAAqB;IACnC,kBAAkB,yBAAyB;IAC3C,gBAAgB,uBAAuB;IACvC,iBAAiB,wBAAwB;IACzC,cAAc,qBAAqB;IACnC,iBAAiB,yBAAyB;IAC1C,UAAU,gBAAgB;
|
|
1
|
+
{"version":3,"file":"KeyId.d.ts","sourceRoot":"","sources":["../../../../../src/pki/model/KeyId.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,YAAY,mBAAmB;IAC/B,iBAAiB,wBAAwB;IACzC,cAAc,qBAAqB;IACnC,kBAAkB,yBAAyB;IAC3C,gBAAgB,uBAAuB;IACvC,iBAAiB,wBAAwB;IACzC,cAAc,qBAAqB;IACnC,iBAAiB,yBAAyB;IAC1C,UAAU,gBAAgB;IAC1B,eAAe,sBAAsB;IACrC,eAAe,sBAAsB;CACtC"}
|
|
@@ -11,6 +11,8 @@ export declare enum KeyUsage {
|
|
|
11
11
|
TxSimulationSigner = "tx_simu_signer",
|
|
12
12
|
Calldata = "calldata",
|
|
13
13
|
Network = "network",
|
|
14
|
-
LESMultisig = "les_multisig"
|
|
14
|
+
LESMultisig = "les_multisig",
|
|
15
|
+
GatedSigning = "gated_signing",
|
|
16
|
+
SwapTemplate = "swap_template"
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=KeyUsage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyUsage.d.ts","sourceRoot":"","sources":["../../../../../src/pki/model/KeyUsage.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,YAAY,kBAAkB;IAC9B,eAAe,qBAAqB;IACpC,OAAO,aAAa;IACpB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,mBAAmB,yBAAyB;IAC5C,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;IACtB,UAAU,iBAAiB;IAC3B,kBAAkB,mBAAmB;IACrC,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,WAAW,iBAAiB;
|
|
1
|
+
{"version":3,"file":"KeyUsage.d.ts","sourceRoot":"","sources":["../../../../../src/pki/model/KeyUsage.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,YAAY,kBAAkB;IAC9B,eAAe,qBAAqB;IACpC,OAAO,aAAa;IACpB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,mBAAmB,yBAAyB;IAC5C,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;IACtB,UAAU,iBAAiB;IAC3B,kBAAkB,mBAAmB;IACrC,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;CAC/B"}
|
|
@@ -15,7 +15,8 @@ export declare enum ClearSignContextType {
|
|
|
15
15
|
DYNAMIC_NETWORK_ICON = "dynamicNetworkIcon",
|
|
16
16
|
ERROR = "error",
|
|
17
17
|
SAFE = "safe",
|
|
18
|
-
SIGNER = "signer"
|
|
18
|
+
SIGNER = "signer",
|
|
19
|
+
GATED_SIGNING = "gatedSigning"
|
|
19
20
|
}
|
|
20
21
|
export declare enum ClearSignContextReferenceType {
|
|
21
22
|
TOKEN = "token",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearSignContext.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/ClearSignContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,oBAAY,oBAAoB;IAC9B,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,eAAe,mBAAmB;IAClC,gBAAgB,oBAAoB;IACpC,UAAU,cAAc;IACxB,IAAI,SAAS;IACb,6BAA6B,gCAAgC;IAC7D,iBAAiB,qBAAqB;IACtC,eAAe,mBAAmB;IAClC,oBAAoB,uBAAuB;IAC3C,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"ClearSignContext.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/ClearSignContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export declare enum SolanaContextTypes {
|
|
|
4
4
|
SOLANA_LIFI = "solanaLifi",
|
|
5
5
|
ERROR = "error"
|
|
6
6
|
}
|
|
7
|
-
export type
|
|
7
|
+
export type SolanaTransactionDescriptorRaw = {
|
|
8
8
|
data: string;
|
|
9
9
|
descriptorType: string;
|
|
10
10
|
descriptorVersion: string;
|
|
@@ -13,7 +13,36 @@ export type SolanaTransactionDescriptor = {
|
|
|
13
13
|
test?: string;
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
+
export type SolanaTransactionDescriptor = {
|
|
17
|
+
data: string;
|
|
18
|
+
descriptorType: string;
|
|
19
|
+
descriptorVersion: string;
|
|
20
|
+
signature: string;
|
|
21
|
+
};
|
|
22
|
+
export type SolanaLifiDescriptorEntry = {
|
|
23
|
+
program_id: string;
|
|
24
|
+
discriminator_hex?: string;
|
|
25
|
+
descriptor: SolanaTransactionDescriptorRaw;
|
|
26
|
+
};
|
|
27
|
+
export type GetTransactionDescriptorsResponse = {
|
|
28
|
+
id: string;
|
|
29
|
+
chain_id: number;
|
|
30
|
+
instructions: Array<{
|
|
31
|
+
program_id: string;
|
|
32
|
+
discriminator?: number;
|
|
33
|
+
discriminator_hex?: string;
|
|
34
|
+
}>;
|
|
35
|
+
descriptors: SolanaLifiDescriptorEntry[];
|
|
36
|
+
};
|
|
16
37
|
export type SolanaTransactionDescriptorList = Record<string, SolanaTransactionDescriptor>;
|
|
38
|
+
export type SolanaLifiInstructionMeta = {
|
|
39
|
+
program_id: string;
|
|
40
|
+
discriminator_hex?: string;
|
|
41
|
+
};
|
|
42
|
+
export type SolanaLifiPayload = {
|
|
43
|
+
descriptors: SolanaTransactionDescriptorList;
|
|
44
|
+
instructions: SolanaLifiInstructionMeta[];
|
|
45
|
+
};
|
|
17
46
|
export type SolanaTokenData = {
|
|
18
47
|
solanaTokenDescriptor: {
|
|
19
48
|
data: string;
|
|
@@ -27,7 +56,8 @@ type SolanaContextSuccessPayloads = {
|
|
|
27
56
|
certificate?: PkiCertificate;
|
|
28
57
|
};
|
|
29
58
|
[SolanaContextTypes.SOLANA_LIFI]: {
|
|
30
|
-
payload:
|
|
59
|
+
payload: SolanaLifiPayload;
|
|
60
|
+
certificate?: PkiCertificate;
|
|
31
61
|
};
|
|
32
62
|
};
|
|
33
63
|
export type SolanaContextSuccess<T extends SolanaContextSuccessType = SolanaContextSuccessType> = {
|
|
@@ -42,6 +72,6 @@ export type SolanaTokenContextSuccess = SolanaContextSuccess<SolanaContextTypes.
|
|
|
42
72
|
export type SolanaLifiContextSuccess = SolanaContextSuccess<SolanaContextTypes.SOLANA_LIFI>;
|
|
43
73
|
export type SolanaTokenContextResult = SolanaTokenContextSuccess | SolanaContextError;
|
|
44
74
|
export type SolanaLifiContextResult = SolanaLifiContextSuccess | SolanaContextError;
|
|
45
|
-
export type LoaderResult = SolanaTokenContextResult;
|
|
75
|
+
export type LoaderResult = SolanaTokenContextResult | SolanaLifiContextResult;
|
|
46
76
|
export {};
|
|
47
77
|
//# sourceMappingURL=SolanaContextTypes.d.ts.map
|