@ledgerhq/context-module 0.0.0-z-intent-queue-7-20251204111630 → 0.0.0-zzz-solana-20251204140055

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.
@@ -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": "0.0.0-z-intent-queue-7-20251204111630"
61
+ "version": "0.0.0-zzz-solana-20251204140055"
62
62
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},l=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of p(t))!i.call(e,a)&&a!==n&&r(e,a,{get:()=>t[a],enumerable:!(o=S(t,a))||o.enumerable});return e};var x=e=>l(r({},"__esModule",{value:!0}),e);var y={};c(y,{SolanaContextTypes:()=>s});module.exports=x(y);var s=(o=>(o.SOLANA_TOKEN="solanaToken",o.SOLANA_LIFI="solanaLifi",o.ERROR="error",o))(s||{});0&&(module.exports={SolanaContextTypes});
1
+ "use strict";var r=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},c=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of p(t))!i.call(e,a)&&a!==n&&r(e,a,{get:()=>t[a],enumerable:!(o=S(t,a))||o.enumerable});return e};var x=e=>c(r({},"__esModule",{value:!0}),e);var C={};l(C,{SolanaContextTypes:()=>s});module.exports=x(C);var s=(o=>(o.SOLANA_TOKEN="solanaToken",o.SOLANA_LIFI="solanaLifi",o.ERROR="error",o))(s||{});0&&(module.exports={SolanaContextTypes});
2
2
  //# sourceMappingURL=SolanaContextTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/model/SolanaContextTypes.ts"],
4
- "sourcesContent": ["import type { PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nexport enum SolanaContextTypes {\n SOLANA_TOKEN = \"solanaToken\",\n SOLANA_LIFI = \"solanaLifi\",\n ERROR = \"error\",\n}\n\nexport type SolanaTransactionDescriptor = {\n data: string;\n descriptorType: string;\n descriptorVersion: string;\n signatures: {\n prod?: string;\n test?: string;\n };\n};\n\nexport type SolanaTransactionDescriptorList = Record<\n string,\n SolanaTransactionDescriptor\n>;\n\nexport type SolanaTokenData = {\n solanaTokenDescriptor: {\n data: string;\n signature: string;\n };\n};\n\nexport type SolanaContextSuccessType = Exclude<\n SolanaContextTypes,\n SolanaContextTypes.ERROR\n>;\n\n// map from Solana success type to payload\ntype SolanaContextSuccessPayloads = {\n [SolanaContextTypes.SOLANA_TOKEN]: {\n payload: SolanaTokenData;\n certificate?: PkiCertificate;\n };\n [SolanaContextTypes.SOLANA_LIFI]: {\n payload: SolanaTransactionDescriptorList;\n };\n};\n\nexport type SolanaContextSuccess<\n T extends SolanaContextSuccessType = SolanaContextSuccessType,\n> = {\n type: T;\n} & SolanaContextSuccessPayloads[T];\n\nexport type SolanaContextError = {\n type: SolanaContextTypes.ERROR;\n error: Error;\n};\n\nexport type SolanaContext = SolanaContextSuccess | SolanaContextError;\n\nexport type SolanaTokenContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_TOKEN>;\n\nexport type SolanaLifiContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_LIFI>;\n\nexport type SolanaTokenContextResult =\n | SolanaTokenContextSuccess\n | SolanaContextError;\n\nexport type SolanaLifiContextResult =\n | SolanaLifiContextSuccess\n | SolanaContextError;\n\n// TODO LIFI\nexport type LoaderResult = SolanaTokenContextResult; //| SolanaLifiContextResult;\n"],
4
+ "sourcesContent": ["import type { PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nexport enum SolanaContextTypes {\n SOLANA_TOKEN = \"solanaToken\",\n SOLANA_LIFI = \"solanaLifi\",\n ERROR = \"error\",\n}\n\nexport type SolanaTransactionDescriptor = {\n data: string;\n descriptorType: string;\n descriptorVersion: string;\n signatures: {\n prod?: string;\n test?: string;\n };\n};\n\nexport type SolanaTransactionDescriptorList = Record<\n string,\n SolanaTransactionDescriptor\n>;\n\nexport type SolanaTokenData = {\n solanaTokenDescriptor: {\n data: string;\n signature: string;\n };\n};\n\nexport type SolanaContextSuccessType = Exclude<\n SolanaContextTypes,\n SolanaContextTypes.ERROR\n>;\n\n// map from Solana success type to payload\ntype SolanaContextSuccessPayloads = {\n [SolanaContextTypes.SOLANA_TOKEN]: {\n payload: SolanaTokenData;\n certificate?: PkiCertificate;\n };\n [SolanaContextTypes.SOLANA_LIFI]: {\n payload: SolanaTransactionDescriptorList;\n };\n};\n\nexport type SolanaContextSuccess<\n T extends SolanaContextSuccessType = SolanaContextSuccessType,\n> = {\n type: T;\n} & SolanaContextSuccessPayloads[T];\n\nexport type SolanaContextError = {\n type: SolanaContextTypes.ERROR;\n error: Error;\n};\n\nexport type SolanaContext = SolanaContextSuccess | SolanaContextError;\n\nexport type SolanaTokenContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_TOKEN>;\n\nexport type SolanaLifiContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_LIFI>;\n\nexport type SolanaTokenContextResult =\n | SolanaTokenContextSuccess\n | SolanaContextError;\n\nexport type SolanaLifiContextResult =\n | SolanaLifiContextSuccess\n | SolanaContextError;\n\nexport type LoaderResult = SolanaTokenContextResult | SolanaLifiContextResult;\n"],
5
5
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAEO,IAAKE,OACVA,EAAA,aAAe,cACfA,EAAA,YAAc,aACdA,EAAA,MAAQ,QAHEA,OAAA",
6
6
  "names": ["SolanaContextTypes_exports", "__export", "SolanaContextTypes", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var E=(o,e)=>{for(var a in e)c(o,a,{get:e[a],enumerable:!0})},A=(o,e,a,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of x(e))!N.call(o,t)&&t!==a&&c(o,t,{get:()=>e[t],enumerable:!(r=u(e,t))||r.enumerable});return o};var O=o=>A(c({},"__esModule",{value:!0}),o),L=(o,e,a,r)=>{for(var t=r>1?void 0:r?u(e,a):e,s=o.length-1,l;s>=0;s--)(l=o[s])&&(t=(r?l(e,a,t):l(t))||t);return r&&t&&c(e,a,t),t},m=(o,e)=>(a,r)=>e(a,r,o);var R={};E(R,{DefaultSolanaContextLoader:()=>d});module.exports=O(R);var n=require("inversify"),S=require("purify-ts"),T=require("../../pki/di/pkiTypes"),y=require("../../pki/model/KeyUsage"),p=require("../../shared/model/SolanaContextTypes"),k=require("../../solana/di/solanaContextTypes"),C=require("../../solanaToken/di/solanaTokenTypes");let d=class{constructor(e,a,r){this._dataSource=e;this._certificateLoader=a;this._solanaTokenLoader=r}async load(e){const{deviceModelId:a}=e,r=await this._certificateLoader.loadCertificate({keyId:"domain_metadata_key",keyUsage:y.KeyUsage.TrustedName,targetDevice:a});if(!r)return(0,S.Left)(new Error("[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing"));const s=[{loader:this._solanaTokenLoader,expectedType:p.SolanaContextTypes.SOLANA_TOKEN}].map(({loader:i,expectedType:f})=>{if(i.canHandle(e,f))return i.loadField(e)}).filter(i=>i!==void 0),_=(await Promise.allSettled(s)).map(i=>i.status==="fulfilled"?i.value:void 0).filter(i=>i!==void 0).sort((i,f)=>{const P=i.type===p.SolanaContextTypes.SOLANA_TOKEN?0:1,v=f.type===p.SolanaContextTypes.SOLANA_TOKEN?0:1;return P-v});return(await this._dataSource.getOwnerInfo(e)).map(({tlvDescriptor:i})=>({trustedNamePKICertificate:r,tlvDescriptor:i,loadersResults:_}))}};d=L([(0,n.injectable)(),m(0,(0,n.inject)(k.solanaContextTypes.SolanaDataSource)),m(1,(0,n.inject)(T.pkiTypes.PkiCertificateLoader)),m(2,(0,n.inject)(C.solanaTokenTypes.SolanaTokenContextLoader))],d);0&&(module.exports={DefaultSolanaContextLoader});
1
+ "use strict";var p=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var E=(a,e)=>{for(var r in e)p(a,r,{get:e[r],enumerable:!0})},x=(a,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of N(e))!O.call(a,t)&&t!==r&&p(a,t,{get:()=>e[t],enumerable:!(i=L(e,t))||i.enumerable});return a};var P=a=>x(p({},"__esModule",{value:!0}),a),u=(a,e,r,i)=>{for(var t=i>1?void 0:i?L(e,r):e,s=a.length-1,f;s>=0;s--)(f=a[s])&&(t=(i?f(e,r,t):f(t))||t);return i&&t&&p(e,r,t),t},c=(a,e)=>(r,i)=>e(r,i,a);var K={};E(K,{DefaultSolanaContextLoader:()=>m});module.exports=P(K);var d=require("inversify"),S=require("purify-ts"),T=require("../../pki/di/pkiTypes"),y=require("../../pki/model/KeyUsage"),n=require("../../shared/model/SolanaContextTypes"),I=require("../../solana/di/solanaContextTypes"),_=require("../../solanaLifi/di/solanaLifiTypes"),k=require("../../solanaToken/di/solanaTokenTypes");let m=class{constructor(e,r,i,t){this._dataSource=e;this._certificateLoader=r;this._solanaTokenLoader=i;this._solanaLifiLoader=t}async load(e){const{deviceModelId:r}=e,i=await this._certificateLoader.loadCertificate({keyId:"domain_metadata_key",keyUsage:y.KeyUsage.TrustedName,targetDevice:r});if(!i)return(0,S.Left)(new Error("[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing"));const s=[{loader:this._solanaTokenLoader,expectedType:n.SolanaContextTypes.SOLANA_TOKEN},{loader:this._solanaLifiLoader,expectedType:n.SolanaContextTypes.SOLANA_LIFI}].map(({loader:o,expectedType:l})=>{if(o.canHandle(e,l)){if(l===n.SolanaContextTypes.SOLANA_TOKEN)return o.loadField({deviceModelId:e.deviceModelId,tokenInternalId:e.tokenInternalId});if(l===n.SolanaContextTypes.SOLANA_LIFI)return o.loadField({deviceModelId:e.deviceModelId,templateId:e.templateId})}}).filter(o=>o!==void 0),v=(await Promise.allSettled(s)).map(o=>o.status==="fulfilled"?o.value:void 0).filter(o=>o!==void 0).sort((o,l)=>{const A=o.type===n.SolanaContextTypes.SOLANA_TOKEN?0:1,C=l.type===n.SolanaContextTypes.SOLANA_TOKEN?0:1;return A-C});return(await this._dataSource.getOwnerInfo(e)).map(({tlvDescriptor:o})=>({trustedNamePKICertificate:i,tlvDescriptor:o,loadersResults:v}))}};m=u([(0,d.injectable)(),c(0,(0,d.inject)(I.solanaContextTypes.SolanaDataSource)),c(1,(0,d.inject)(T.pkiTypes.PkiCertificateLoader)),c(2,(0,d.inject)(k.solanaTokenTypes.SolanaTokenContextLoader)),c(3,(0,d.inject)(_.lifiTypes.SolanaLifiContextLoader))],m);0&&(module.exports={DefaultSolanaContextLoader});
2
2
  //# sourceMappingURL=DefaultSolanaContextLoader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/solana/domain/DefaultSolanaContextLoader.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LoaderResult,\n SolanaContextTypes,\n} from \"@/shared/model/SolanaContextTypes\";\nimport { type SolanaDataSource } from \"@/solana/data/SolanaDataSource\";\nimport { solanaContextTypes } from \"@/solana/di/solanaContextTypes\";\n// import { lifiTypes } from \"@/solanaLifi/di/solanaLifiTypes\";\n// import { SolanaLifiContextLoader } from \"@/solanaLifi/domain/SolanaLifiContextLoader\";\nimport { solanaTokenTypes } from \"@/solanaToken/di/solanaTokenTypes\";\nimport { SolanaTokenContextLoader } from \"@/solanaToken/domain/SolanaTokenContextLoader\";\n\nimport { type SolanaContextLoader } from \"./SolanaContextLoader\";\nimport {\n SolanaTransactionContext,\n SolanaTransactionContextResult,\n} from \"./solanaContextTypes\";\n\n@injectable()\nexport class DefaultSolanaContextLoader implements SolanaContextLoader {\n constructor(\n @inject(solanaContextTypes.SolanaDataSource)\n private readonly _dataSource: SolanaDataSource,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n @inject(solanaTokenTypes.SolanaTokenContextLoader)\n private readonly _solanaTokenLoader: SolanaTokenContextLoader,\n // @inject(lifiTypes.SolanaLifiContextLoader)\n // private readonly _solanaLifiLoader: SolanaLifiContextLoader,\n ) {}\n\n async load(\n solanaContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n const { deviceModelId } = solanaContext;\n\n const trustedNamePKICertificate =\n await this._certificateLoader.loadCertificate({\n keyId: \"domain_metadata_key\",\n keyUsage: KeyUsage.TrustedName,\n targetDevice: deviceModelId,\n });\n\n if (!trustedNamePKICertificate) {\n return Left(\n new Error(\n \"[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing\",\n ),\n );\n }\n\n const loaderEntries = [\n {\n loader: this._solanaTokenLoader,\n expectedType: SolanaContextTypes.SOLANA_TOKEN,\n },\n // TODO LIFI\n // Lifi loader currently disabled as WIP\n // {\n // loader: this._solanaLifiLoader,\n // expectedType: SolanaContextTypes.SOLANA_LIFI,\n // },\n ] as const;\n\n const loaderPromises: Promise<LoaderResult>[] = loaderEntries\n .map(({ loader, expectedType }) => {\n if (loader.canHandle(solanaContext, expectedType)) {\n return loader.loadField(solanaContext);\n }\n return undefined;\n })\n .filter((p): p is Promise<LoaderResult> => p !== undefined);\n\n const settledLoaders = await Promise.allSettled(loaderPromises);\n\n const loadersResults = settledLoaders\n .map((r) => (r.status === \"fulfilled\" ? r.value : undefined))\n .filter((v): v is LoaderResult => v !== undefined)\n // always sort with SOLANA_TOKEN first\n .sort((a, b) => {\n const A = a.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n const B = b.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n return A - B;\n });\n\n const tlvDescriptorEither =\n await this._dataSource.getOwnerInfo(solanaContext);\n\n return tlvDescriptorEither.map(({ tlvDescriptor }) => ({\n trustedNamePKICertificate,\n tlvDescriptor,\n loadersResults,\n }));\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAAqB,qBAErBC,EAAyB,6BAEzBC,EAAyB,gCACzBC,EAGO,6CAEPC,EAAmC,0CAGnCC,EAAiC,6CAU1B,IAAMC,EAAN,KAAgE,CACrE,YAEmBC,EAEAC,EAEAC,EAGjB,CAPiB,iBAAAF,EAEA,wBAAAC,EAEA,wBAAAC,CAGhB,CAEH,MAAM,KACJC,EACyC,CACzC,KAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EACJ,MAAM,KAAK,mBAAmB,gBAAgB,CAC5C,MAAO,sBACP,SAAU,WAAS,YACnB,aAAcD,CAChB,CAAC,EAEH,GAAI,CAACC,EACH,SAAO,QACL,IAAI,MACF,kFACF,CACF,EAgBF,MAAMC,EAbgB,CACpB,CACE,OAAQ,KAAK,mBACb,aAAc,qBAAmB,YACnC,CAOF,EAGG,IAAI,CAAC,CAAE,OAAAC,EAAQ,aAAAC,CAAa,IAAM,CACjC,GAAID,EAAO,UAAUJ,EAAeK,CAAY,EAC9C,OAAOD,EAAO,UAAUJ,CAAa,CAGzC,CAAC,EACA,OAAQM,GAAkCA,IAAM,MAAS,EAItDC,GAFiB,MAAM,QAAQ,WAAWJ,CAAc,GAG3D,IAAKK,GAAOA,EAAE,SAAW,YAAcA,EAAE,MAAQ,MAAU,EAC3D,OAAQC,GAAyBA,IAAM,MAAS,EAEhD,KAAK,CAACC,EAAGC,IAAM,CACd,MAAMC,EAAIF,EAAE,OAAS,qBAAmB,aAAe,EAAI,EACrDG,EAAIF,EAAE,OAAS,qBAAmB,aAAe,EAAI,EAC3D,OAAOC,EAAIC,CACb,CAAC,EAKH,OAFE,MAAM,KAAK,YAAY,aAAab,CAAa,GAExB,IAAI,CAAC,CAAE,cAAAc,CAAc,KAAO,CACrD,0BAAAZ,EACA,cAAAY,EACA,eAAAP,CACF,EAAE,CACJ,CACF,EA3EaX,EAANmB,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,qBAAmB,gBAAgB,GAE1CA,EAAA,eAAO,WAAS,oBAAoB,GAEpCA,EAAA,eAAO,mBAAiB,wBAAwB,IANxCpB",
6
- "names": ["DefaultSolanaContextLoader_exports", "__export", "DefaultSolanaContextLoader", "__toCommonJS", "import_inversify", "import_purify_ts", "import_pkiTypes", "import_KeyUsage", "import_SolanaContextTypes", "import_solanaContextTypes", "import_solanaTokenTypes", "DefaultSolanaContextLoader", "_dataSource", "_certificateLoader", "_solanaTokenLoader", "solanaContext", "deviceModelId", "trustedNamePKICertificate", "loaderPromises", "loader", "expectedType", "p", "loadersResults", "r", "v", "a", "b", "A", "B", "tlvDescriptor", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LoaderResult,\n SolanaContextTypes,\n} from \"@/shared/model/SolanaContextTypes\";\nimport { type SolanaDataSource } from \"@/solana/data/SolanaDataSource\";\nimport { solanaContextTypes } from \"@/solana/di/solanaContextTypes\";\nimport { lifiTypes } from \"@/solanaLifi/di/solanaLifiTypes\";\nimport { SolanaLifiContextLoader } from \"@/solanaLifi/domain/SolanaLifiContextLoader\";\nimport { solanaTokenTypes } from \"@/solanaToken/di/solanaTokenTypes\";\nimport { SolanaTokenContextLoader } from \"@/solanaToken/domain/SolanaTokenContextLoader\";\n\nimport { type SolanaContextLoader } from \"./SolanaContextLoader\";\nimport {\n SolanaTransactionContext,\n SolanaTransactionContextResult,\n} from \"./solanaContextTypes\";\n\n@injectable()\nexport class DefaultSolanaContextLoader implements SolanaContextLoader {\n constructor(\n @inject(solanaContextTypes.SolanaDataSource)\n private readonly _dataSource: SolanaDataSource,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n @inject(solanaTokenTypes.SolanaTokenContextLoader)\n private readonly _solanaTokenLoader: SolanaTokenContextLoader,\n @inject(lifiTypes.SolanaLifiContextLoader)\n private readonly _solanaLifiLoader: SolanaLifiContextLoader,\n ) {}\n\n async load(\n solanaContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n const { deviceModelId } = solanaContext;\n\n const trustedNamePKICertificate =\n await this._certificateLoader.loadCertificate({\n keyId: \"domain_metadata_key\",\n keyUsage: KeyUsage.TrustedName,\n targetDevice: deviceModelId,\n });\n\n if (!trustedNamePKICertificate) {\n return Left(\n new Error(\n \"[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing\",\n ),\n );\n }\n\n const loaderEntries = [\n {\n loader: this._solanaTokenLoader,\n expectedType: SolanaContextTypes.SOLANA_TOKEN,\n },\n {\n loader: this._solanaLifiLoader,\n expectedType: SolanaContextTypes.SOLANA_LIFI,\n },\n ] as const;\n\n const loaderPromises = loaderEntries\n .map(({ loader, expectedType }) => {\n if (loader.canHandle(solanaContext, expectedType)) {\n if (expectedType === SolanaContextTypes.SOLANA_TOKEN) {\n return loader.loadField({\n deviceModelId: solanaContext.deviceModelId,\n tokenInternalId: solanaContext.tokenInternalId!,\n });\n } else if (expectedType === SolanaContextTypes.SOLANA_LIFI) {\n return loader.loadField({\n deviceModelId: solanaContext.deviceModelId,\n templateId: solanaContext.templateId!,\n });\n }\n }\n return undefined;\n })\n .filter((p) => p !== undefined);\n\n const settledLoaders = await Promise.allSettled(loaderPromises);\n\n const loadersResults = settledLoaders\n .map((r) => (r.status === \"fulfilled\" ? r.value : undefined))\n .filter((v): v is LoaderResult => v !== undefined)\n // always sort with SOLANA_TOKEN first\n .sort((a, b) => {\n const A = a.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n const B = b.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n return A - B;\n });\n\n const tlvDescriptorEither =\n await this._dataSource.getOwnerInfo(solanaContext);\n\n return tlvDescriptorEither.map(({ tlvDescriptor }) => ({\n trustedNamePKICertificate,\n tlvDescriptor,\n loadersResults,\n }));\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAAqB,qBAErBC,EAAyB,6BAEzBC,EAAyB,gCACzBC,EAGO,6CAEPC,EAAmC,0CACnCC,EAA0B,2CAE1BC,EAAiC,6CAU1B,IAAMC,EAAN,KAAgE,CACrE,YAEmBC,EAEAC,EAEAC,EAEAC,EACjB,CAPiB,iBAAAH,EAEA,wBAAAC,EAEA,wBAAAC,EAEA,uBAAAC,CAChB,CAEH,MAAM,KACJC,EACyC,CACzC,KAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EACJ,MAAM,KAAK,mBAAmB,gBAAgB,CAC5C,MAAO,sBACP,SAAU,WAAS,YACnB,aAAcD,CAChB,CAAC,EAEH,GAAI,CAACC,EACH,SAAO,QACL,IAAI,MACF,kFACF,CACF,EAcF,MAAMC,EAXgB,CACpB,CACE,OAAQ,KAAK,mBACb,aAAc,qBAAmB,YACnC,EACA,CACE,OAAQ,KAAK,kBACb,aAAc,qBAAmB,WACnC,CACF,EAGG,IAAI,CAAC,CAAE,OAAAC,EAAQ,aAAAC,CAAa,IAAM,CACjC,GAAID,EAAO,UAAUJ,EAAeK,CAAY,EAAG,CACjD,GAAIA,IAAiB,qBAAmB,aACtC,OAAOD,EAAO,UAAU,CACtB,cAAeJ,EAAc,cAC7B,gBAAiBA,EAAc,eACjC,CAAC,EACI,GAAIK,IAAiB,qBAAmB,YAC7C,OAAOD,EAAO,UAAU,CACtB,cAAeJ,EAAc,cAC7B,WAAYA,EAAc,UAC5B,CAAC,CAEL,CAEF,CAAC,EACA,OAAQM,GAAMA,IAAM,MAAS,EAI1BC,GAFiB,MAAM,QAAQ,WAAWJ,CAAc,GAG3D,IAAKK,GAAOA,EAAE,SAAW,YAAcA,EAAE,MAAQ,MAAU,EAC3D,OAAQC,GAAyBA,IAAM,MAAS,EAEhD,KAAK,CAACC,EAAGC,IAAM,CACd,MAAM,EAAID,EAAE,OAAS,qBAAmB,aAAe,EAAI,EACrDE,EAAID,EAAE,OAAS,qBAAmB,aAAe,EAAI,EAC3D,OAAO,EAAIC,CACb,CAAC,EAKH,OAFE,MAAM,KAAK,YAAY,aAAaZ,CAAa,GAExB,IAAI,CAAC,CAAE,cAAAa,CAAc,KAAO,CACrD,0BAAAX,EACA,cAAAW,EACA,eAAAN,CACF,EAAE,CACJ,CACF,EAnFaZ,EAANmB,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,qBAAmB,gBAAgB,GAE1CA,EAAA,eAAO,WAAS,oBAAoB,GAEpCA,EAAA,eAAO,mBAAiB,wBAAwB,GAEhDA,EAAA,eAAO,YAAU,uBAAuB,IARhCpB",
6
+ "names": ["DefaultSolanaContextLoader_exports", "__export", "DefaultSolanaContextLoader", "__toCommonJS", "import_inversify", "import_purify_ts", "import_pkiTypes", "import_KeyUsage", "import_SolanaContextTypes", "import_solanaContextTypes", "import_solanaLifiTypes", "import_solanaTokenTypes", "DefaultSolanaContextLoader", "_dataSource", "_certificateLoader", "_solanaTokenLoader", "_solanaLifiLoader", "solanaContext", "deviceModelId", "trustedNamePKICertificate", "loaderPromises", "loader", "expectedType", "p", "loadersResults", "r", "v", "a", "b", "B", "tlvDescriptor", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -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": "0.0.0-z-intent-queue-7-20251204111630"
61
+ "version": "0.0.0-zzz-solana-20251204140055"
62
62
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/model/SolanaContextTypes.ts"],
4
- "sourcesContent": ["import type { PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nexport enum SolanaContextTypes {\n SOLANA_TOKEN = \"solanaToken\",\n SOLANA_LIFI = \"solanaLifi\",\n ERROR = \"error\",\n}\n\nexport type SolanaTransactionDescriptor = {\n data: string;\n descriptorType: string;\n descriptorVersion: string;\n signatures: {\n prod?: string;\n test?: string;\n };\n};\n\nexport type SolanaTransactionDescriptorList = Record<\n string,\n SolanaTransactionDescriptor\n>;\n\nexport type SolanaTokenData = {\n solanaTokenDescriptor: {\n data: string;\n signature: string;\n };\n};\n\nexport type SolanaContextSuccessType = Exclude<\n SolanaContextTypes,\n SolanaContextTypes.ERROR\n>;\n\n// map from Solana success type to payload\ntype SolanaContextSuccessPayloads = {\n [SolanaContextTypes.SOLANA_TOKEN]: {\n payload: SolanaTokenData;\n certificate?: PkiCertificate;\n };\n [SolanaContextTypes.SOLANA_LIFI]: {\n payload: SolanaTransactionDescriptorList;\n };\n};\n\nexport type SolanaContextSuccess<\n T extends SolanaContextSuccessType = SolanaContextSuccessType,\n> = {\n type: T;\n} & SolanaContextSuccessPayloads[T];\n\nexport type SolanaContextError = {\n type: SolanaContextTypes.ERROR;\n error: Error;\n};\n\nexport type SolanaContext = SolanaContextSuccess | SolanaContextError;\n\nexport type SolanaTokenContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_TOKEN>;\n\nexport type SolanaLifiContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_LIFI>;\n\nexport type SolanaTokenContextResult =\n | SolanaTokenContextSuccess\n | SolanaContextError;\n\nexport type SolanaLifiContextResult =\n | SolanaLifiContextSuccess\n | SolanaContextError;\n\n// TODO LIFI\nexport type LoaderResult = SolanaTokenContextResult; //| SolanaLifiContextResult;\n"],
4
+ "sourcesContent": ["import type { PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nexport enum SolanaContextTypes {\n SOLANA_TOKEN = \"solanaToken\",\n SOLANA_LIFI = \"solanaLifi\",\n ERROR = \"error\",\n}\n\nexport type SolanaTransactionDescriptor = {\n data: string;\n descriptorType: string;\n descriptorVersion: string;\n signatures: {\n prod?: string;\n test?: string;\n };\n};\n\nexport type SolanaTransactionDescriptorList = Record<\n string,\n SolanaTransactionDescriptor\n>;\n\nexport type SolanaTokenData = {\n solanaTokenDescriptor: {\n data: string;\n signature: string;\n };\n};\n\nexport type SolanaContextSuccessType = Exclude<\n SolanaContextTypes,\n SolanaContextTypes.ERROR\n>;\n\n// map from Solana success type to payload\ntype SolanaContextSuccessPayloads = {\n [SolanaContextTypes.SOLANA_TOKEN]: {\n payload: SolanaTokenData;\n certificate?: PkiCertificate;\n };\n [SolanaContextTypes.SOLANA_LIFI]: {\n payload: SolanaTransactionDescriptorList;\n };\n};\n\nexport type SolanaContextSuccess<\n T extends SolanaContextSuccessType = SolanaContextSuccessType,\n> = {\n type: T;\n} & SolanaContextSuccessPayloads[T];\n\nexport type SolanaContextError = {\n type: SolanaContextTypes.ERROR;\n error: Error;\n};\n\nexport type SolanaContext = SolanaContextSuccess | SolanaContextError;\n\nexport type SolanaTokenContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_TOKEN>;\n\nexport type SolanaLifiContextSuccess =\n SolanaContextSuccess<SolanaContextTypes.SOLANA_LIFI>;\n\nexport type SolanaTokenContextResult =\n | SolanaTokenContextSuccess\n | SolanaContextError;\n\nexport type SolanaLifiContextResult =\n | SolanaLifiContextSuccess\n | SolanaContextError;\n\nexport type LoaderResult = SolanaTokenContextResult | SolanaLifiContextResult;\n"],
5
5
  "mappings": "AAEO,IAAKA,OACVA,EAAA,aAAe,cACfA,EAAA,YAAc,aACdA,EAAA,MAAQ,QAHEA,OAAA",
6
6
  "names": ["SolanaContextTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var T=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var f=(i,t,a,o)=>{for(var r=o>1?void 0:o?y(t,a):t,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(o?s(t,a,r):s(r))||r);return o&&r&&T(t,a,r),r},d=(i,t)=>(a,o)=>t(a,o,i);import{inject as m,injectable as k}from"inversify";import{Left as C}from"purify-ts";import{pkiTypes as _}from"../../pki/di/pkiTypes";import{KeyUsage as P}from"../../pki/model/KeyUsage";import{SolanaContextTypes as p}from"../../shared/model/SolanaContextTypes";import{solanaContextTypes as v}from"../../solana/di/solanaContextTypes";import{solanaTokenTypes as x}from"../../solanaToken/di/solanaTokenTypes";let l=class{constructor(t,a,o){this._dataSource=t;this._certificateLoader=a;this._solanaTokenLoader=o}async load(t){const{deviceModelId:a}=t,o=await this._certificateLoader.loadCertificate({keyId:"domain_metadata_key",keyUsage:P.TrustedName,targetDevice:a});if(!o)return C(new Error("[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing"));const n=[{loader:this._solanaTokenLoader,expectedType:p.SOLANA_TOKEN}].map(({loader:e,expectedType:c})=>{if(e.canHandle(t,c))return e.loadField(t)}).filter(e=>e!==void 0),u=(await Promise.allSettled(n)).map(e=>e.status==="fulfilled"?e.value:void 0).filter(e=>e!==void 0).sort((e,c)=>{const L=e.type===p.SOLANA_TOKEN?0:1,S=c.type===p.SOLANA_TOKEN?0:1;return L-S});return(await this._dataSource.getOwnerInfo(t)).map(({tlvDescriptor:e})=>({trustedNamePKICertificate:o,tlvDescriptor:e,loadersResults:u}))}};l=f([k(),d(0,m(v.SolanaDataSource)),d(1,m(_.PkiCertificateLoader)),d(2,m(x.SolanaTokenContextLoader))],l);export{l as DefaultSolanaContextLoader};
1
+ var T=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var p=(n,e,r,o)=>{for(var a=o>1?void 0:o?y(e,r):e,d=n.length-1,c;d>=0;d--)(c=n[d])&&(a=(o?c(e,r,a):c(a))||a);return o&&a&&T(e,r,a),a},l=(n,e)=>(r,o)=>e(r,o,n);import{inject as m,injectable as I}from"inversify";import{Left as _}from"purify-ts";import{pkiTypes as k}from"../../pki/di/pkiTypes";import{KeyUsage as v}from"../../pki/model/KeyUsage";import{SolanaContextTypes as i}from"../../shared/model/SolanaContextTypes";import{solanaContextTypes as A}from"../../solana/di/solanaContextTypes";import{lifiTypes as C}from"../../solanaLifi/di/solanaLifiTypes";import{solanaTokenTypes as N}from"../../solanaToken/di/solanaTokenTypes";let f=class{constructor(e,r,o,a){this._dataSource=e;this._certificateLoader=r;this._solanaTokenLoader=o;this._solanaLifiLoader=a}async load(e){const{deviceModelId:r}=e,o=await this._certificateLoader.loadCertificate({keyId:"domain_metadata_key",keyUsage:v.TrustedName,targetDevice:r});if(!o)return _(new Error("[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing"));const d=[{loader:this._solanaTokenLoader,expectedType:i.SOLANA_TOKEN},{loader:this._solanaLifiLoader,expectedType:i.SOLANA_LIFI}].map(({loader:t,expectedType:s})=>{if(t.canHandle(e,s)){if(s===i.SOLANA_TOKEN)return t.loadField({deviceModelId:e.deviceModelId,tokenInternalId:e.tokenInternalId});if(s===i.SOLANA_LIFI)return t.loadField({deviceModelId:e.deviceModelId,templateId:e.templateId})}}).filter(t=>t!==void 0),L=(await Promise.allSettled(d)).map(t=>t.status==="fulfilled"?t.value:void 0).filter(t=>t!==void 0).sort((t,s)=>{const u=t.type===i.SOLANA_TOKEN?0:1,S=s.type===i.SOLANA_TOKEN?0:1;return u-S});return(await this._dataSource.getOwnerInfo(e)).map(({tlvDescriptor:t})=>({trustedNamePKICertificate:o,tlvDescriptor:t,loadersResults:L}))}};f=p([I(),l(0,m(A.SolanaDataSource)),l(1,m(k.PkiCertificateLoader)),l(2,m(N.SolanaTokenContextLoader)),l(3,m(C.SolanaLifiContextLoader))],f);export{f as DefaultSolanaContextLoader};
2
2
  //# sourceMappingURL=DefaultSolanaContextLoader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/solana/domain/DefaultSolanaContextLoader.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LoaderResult,\n SolanaContextTypes,\n} from \"@/shared/model/SolanaContextTypes\";\nimport { type SolanaDataSource } from \"@/solana/data/SolanaDataSource\";\nimport { solanaContextTypes } from \"@/solana/di/solanaContextTypes\";\n// import { lifiTypes } from \"@/solanaLifi/di/solanaLifiTypes\";\n// import { SolanaLifiContextLoader } from \"@/solanaLifi/domain/SolanaLifiContextLoader\";\nimport { solanaTokenTypes } from \"@/solanaToken/di/solanaTokenTypes\";\nimport { SolanaTokenContextLoader } from \"@/solanaToken/domain/SolanaTokenContextLoader\";\n\nimport { type SolanaContextLoader } from \"./SolanaContextLoader\";\nimport {\n SolanaTransactionContext,\n SolanaTransactionContextResult,\n} from \"./solanaContextTypes\";\n\n@injectable()\nexport class DefaultSolanaContextLoader implements SolanaContextLoader {\n constructor(\n @inject(solanaContextTypes.SolanaDataSource)\n private readonly _dataSource: SolanaDataSource,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n @inject(solanaTokenTypes.SolanaTokenContextLoader)\n private readonly _solanaTokenLoader: SolanaTokenContextLoader,\n // @inject(lifiTypes.SolanaLifiContextLoader)\n // private readonly _solanaLifiLoader: SolanaLifiContextLoader,\n ) {}\n\n async load(\n solanaContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n const { deviceModelId } = solanaContext;\n\n const trustedNamePKICertificate =\n await this._certificateLoader.loadCertificate({\n keyId: \"domain_metadata_key\",\n keyUsage: KeyUsage.TrustedName,\n targetDevice: deviceModelId,\n });\n\n if (!trustedNamePKICertificate) {\n return Left(\n new Error(\n \"[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing\",\n ),\n );\n }\n\n const loaderEntries = [\n {\n loader: this._solanaTokenLoader,\n expectedType: SolanaContextTypes.SOLANA_TOKEN,\n },\n // TODO LIFI\n // Lifi loader currently disabled as WIP\n // {\n // loader: this._solanaLifiLoader,\n // expectedType: SolanaContextTypes.SOLANA_LIFI,\n // },\n ] as const;\n\n const loaderPromises: Promise<LoaderResult>[] = loaderEntries\n .map(({ loader, expectedType }) => {\n if (loader.canHandle(solanaContext, expectedType)) {\n return loader.loadField(solanaContext);\n }\n return undefined;\n })\n .filter((p): p is Promise<LoaderResult> => p !== undefined);\n\n const settledLoaders = await Promise.allSettled(loaderPromises);\n\n const loadersResults = settledLoaders\n .map((r) => (r.status === \"fulfilled\" ? r.value : undefined))\n .filter((v): v is LoaderResult => v !== undefined)\n // always sort with SOLANA_TOKEN first\n .sort((a, b) => {\n const A = a.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n const B = b.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n return A - B;\n });\n\n const tlvDescriptorEither =\n await this._dataSource.getOwnerInfo(solanaContext);\n\n return tlvDescriptorEither.map(({ tlvDescriptor }) => ({\n trustedNamePKICertificate,\n tlvDescriptor,\n loadersResults,\n }));\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,QAAAC,MAAY,YAErB,OAAS,YAAAC,MAAgB,oBAEzB,OAAS,YAAAC,MAAgB,uBACzB,OAEE,sBAAAC,MACK,oCAEP,OAAS,sBAAAC,MAA0B,iCAGnC,OAAS,oBAAAC,MAAwB,oCAU1B,IAAMC,EAAN,KAAgE,CACrE,YAEmBC,EAEAC,EAEAC,EAGjB,CAPiB,iBAAAF,EAEA,wBAAAC,EAEA,wBAAAC,CAGhB,CAEH,MAAM,KACJC,EACyC,CACzC,KAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EACJ,MAAM,KAAK,mBAAmB,gBAAgB,CAC5C,MAAO,sBACP,SAAUC,EAAS,YACnB,aAAcF,CAChB,CAAC,EAEH,GAAI,CAACC,EACH,OAAOE,EACL,IAAI,MACF,kFACF,CACF,EAgBF,MAAMC,EAbgB,CACpB,CACE,OAAQ,KAAK,mBACb,aAAcC,EAAmB,YACnC,CAOF,EAGG,IAAI,CAAC,CAAE,OAAAC,EAAQ,aAAAC,CAAa,IAAM,CACjC,GAAID,EAAO,UAAUP,EAAeQ,CAAY,EAC9C,OAAOD,EAAO,UAAUP,CAAa,CAGzC,CAAC,EACA,OAAQS,GAAkCA,IAAM,MAAS,EAItDC,GAFiB,MAAM,QAAQ,WAAWL,CAAc,GAG3D,IAAKM,GAAOA,EAAE,SAAW,YAAcA,EAAE,MAAQ,MAAU,EAC3D,OAAQC,GAAyBA,IAAM,MAAS,EAEhD,KAAK,CAACC,EAAGC,IAAM,CACd,MAAMC,EAAIF,EAAE,OAASP,EAAmB,aAAe,EAAI,EACrDU,EAAIF,EAAE,OAASR,EAAmB,aAAe,EAAI,EAC3D,OAAOS,EAAIC,CACb,CAAC,EAKH,OAFE,MAAM,KAAK,YAAY,aAAahB,CAAa,GAExB,IAAI,CAAC,CAAE,cAAAiB,CAAc,KAAO,CACrD,0BAAAf,EACA,cAAAe,EACA,eAAAP,CACF,EAAE,CACJ,CACF,EA3Ead,EAANsB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAmB,gBAAgB,GAE1CF,EAAA,EAAAC,EAAOE,EAAS,oBAAoB,GAEpCH,EAAA,EAAAC,EAAOG,EAAiB,wBAAwB,IANxC5B",
6
- "names": ["inject", "injectable", "Left", "pkiTypes", "KeyUsage", "SolanaContextTypes", "solanaContextTypes", "solanaTokenTypes", "DefaultSolanaContextLoader", "_dataSource", "_certificateLoader", "_solanaTokenLoader", "solanaContext", "deviceModelId", "trustedNamePKICertificate", "KeyUsage", "Left", "loaderPromises", "SolanaContextTypes", "loader", "expectedType", "p", "loadersResults", "r", "v", "a", "b", "A", "B", "tlvDescriptor", "__decorateClass", "injectable", "__decorateParam", "inject", "solanaContextTypes", "pkiTypes", "solanaTokenTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LoaderResult,\n SolanaContextTypes,\n} from \"@/shared/model/SolanaContextTypes\";\nimport { type SolanaDataSource } from \"@/solana/data/SolanaDataSource\";\nimport { solanaContextTypes } from \"@/solana/di/solanaContextTypes\";\nimport { lifiTypes } from \"@/solanaLifi/di/solanaLifiTypes\";\nimport { SolanaLifiContextLoader } from \"@/solanaLifi/domain/SolanaLifiContextLoader\";\nimport { solanaTokenTypes } from \"@/solanaToken/di/solanaTokenTypes\";\nimport { SolanaTokenContextLoader } from \"@/solanaToken/domain/SolanaTokenContextLoader\";\n\nimport { type SolanaContextLoader } from \"./SolanaContextLoader\";\nimport {\n SolanaTransactionContext,\n SolanaTransactionContextResult,\n} from \"./solanaContextTypes\";\n\n@injectable()\nexport class DefaultSolanaContextLoader implements SolanaContextLoader {\n constructor(\n @inject(solanaContextTypes.SolanaDataSource)\n private readonly _dataSource: SolanaDataSource,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n @inject(solanaTokenTypes.SolanaTokenContextLoader)\n private readonly _solanaTokenLoader: SolanaTokenContextLoader,\n @inject(lifiTypes.SolanaLifiContextLoader)\n private readonly _solanaLifiLoader: SolanaLifiContextLoader,\n ) {}\n\n async load(\n solanaContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n const { deviceModelId } = solanaContext;\n\n const trustedNamePKICertificate =\n await this._certificateLoader.loadCertificate({\n keyId: \"domain_metadata_key\",\n keyUsage: KeyUsage.TrustedName,\n targetDevice: deviceModelId,\n });\n\n if (!trustedNamePKICertificate) {\n return Left(\n new Error(\n \"[ContextModule] DefaultSolanaContextLoader: trustedNamePKICertificate is missing\",\n ),\n );\n }\n\n const loaderEntries = [\n {\n loader: this._solanaTokenLoader,\n expectedType: SolanaContextTypes.SOLANA_TOKEN,\n },\n {\n loader: this._solanaLifiLoader,\n expectedType: SolanaContextTypes.SOLANA_LIFI,\n },\n ] as const;\n\n const loaderPromises = loaderEntries\n .map(({ loader, expectedType }) => {\n if (loader.canHandle(solanaContext, expectedType)) {\n if (expectedType === SolanaContextTypes.SOLANA_TOKEN) {\n return loader.loadField({\n deviceModelId: solanaContext.deviceModelId,\n tokenInternalId: solanaContext.tokenInternalId!,\n });\n } else if (expectedType === SolanaContextTypes.SOLANA_LIFI) {\n return loader.loadField({\n deviceModelId: solanaContext.deviceModelId,\n templateId: solanaContext.templateId!,\n });\n }\n }\n return undefined;\n })\n .filter((p) => p !== undefined);\n\n const settledLoaders = await Promise.allSettled(loaderPromises);\n\n const loadersResults = settledLoaders\n .map((r) => (r.status === \"fulfilled\" ? r.value : undefined))\n .filter((v): v is LoaderResult => v !== undefined)\n // always sort with SOLANA_TOKEN first\n .sort((a, b) => {\n const A = a.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n const B = b.type === SolanaContextTypes.SOLANA_TOKEN ? 0 : 1;\n return A - B;\n });\n\n const tlvDescriptorEither =\n await this._dataSource.getOwnerInfo(solanaContext);\n\n return tlvDescriptorEither.map(({ tlvDescriptor }) => ({\n trustedNamePKICertificate,\n tlvDescriptor,\n loadersResults,\n }));\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,QAAAC,MAAY,YAErB,OAAS,YAAAC,MAAgB,oBAEzB,OAAS,YAAAC,MAAgB,uBACzB,OAEE,sBAAAC,MACK,oCAEP,OAAS,sBAAAC,MAA0B,iCACnC,OAAS,aAAAC,MAAiB,kCAE1B,OAAS,oBAAAC,MAAwB,oCAU1B,IAAMC,EAAN,KAAgE,CACrE,YAEmBC,EAEAC,EAEAC,EAEAC,EACjB,CAPiB,iBAAAH,EAEA,wBAAAC,EAEA,wBAAAC,EAEA,uBAAAC,CAChB,CAEH,MAAM,KACJC,EACyC,CACzC,KAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EACJ,MAAM,KAAK,mBAAmB,gBAAgB,CAC5C,MAAO,sBACP,SAAUC,EAAS,YACnB,aAAcF,CAChB,CAAC,EAEH,GAAI,CAACC,EACH,OAAOE,EACL,IAAI,MACF,kFACF,CACF,EAcF,MAAMC,EAXgB,CACpB,CACE,OAAQ,KAAK,mBACb,aAAcC,EAAmB,YACnC,EACA,CACE,OAAQ,KAAK,kBACb,aAAcA,EAAmB,WACnC,CACF,EAGG,IAAI,CAAC,CAAE,OAAAC,EAAQ,aAAAC,CAAa,IAAM,CACjC,GAAID,EAAO,UAAUP,EAAeQ,CAAY,EAAG,CACjD,GAAIA,IAAiBF,EAAmB,aACtC,OAAOC,EAAO,UAAU,CACtB,cAAeP,EAAc,cAC7B,gBAAiBA,EAAc,eACjC,CAAC,EACI,GAAIQ,IAAiBF,EAAmB,YAC7C,OAAOC,EAAO,UAAU,CACtB,cAAeP,EAAc,cAC7B,WAAYA,EAAc,UAC5B,CAAC,CAEL,CAEF,CAAC,EACA,OAAQS,GAAMA,IAAM,MAAS,EAI1BC,GAFiB,MAAM,QAAQ,WAAWL,CAAc,GAG3D,IAAKM,GAAOA,EAAE,SAAW,YAAcA,EAAE,MAAQ,MAAU,EAC3D,OAAQC,GAAyBA,IAAM,MAAS,EAEhD,KAAK,CAACC,EAAGC,IAAM,CACd,MAAMC,EAAIF,EAAE,OAASP,EAAmB,aAAe,EAAI,EACrDU,EAAIF,EAAE,OAASR,EAAmB,aAAe,EAAI,EAC3D,OAAOS,EAAIC,CACb,CAAC,EAKH,OAFE,MAAM,KAAK,YAAY,aAAahB,CAAa,GAExB,IAAI,CAAC,CAAE,cAAAiB,CAAc,KAAO,CACrD,0BAAAf,EACA,cAAAe,EACA,eAAAP,CACF,EAAE,CACJ,CACF,EAnFaf,EAANuB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAmB,gBAAgB,GAE1CF,EAAA,EAAAC,EAAOE,EAAS,oBAAoB,GAEpCH,EAAA,EAAAC,EAAOG,EAAiB,wBAAwB,GAEhDJ,EAAA,EAAAC,EAAOI,EAAU,uBAAuB,IARhC9B",
6
+ "names": ["inject", "injectable", "Left", "pkiTypes", "KeyUsage", "SolanaContextTypes", "solanaContextTypes", "lifiTypes", "solanaTokenTypes", "DefaultSolanaContextLoader", "_dataSource", "_certificateLoader", "_solanaTokenLoader", "_solanaLifiLoader", "solanaContext", "deviceModelId", "trustedNamePKICertificate", "KeyUsage", "Left", "loaderPromises", "SolanaContextTypes", "loader", "expectedType", "p", "loadersResults", "r", "v", "a", "b", "A", "B", "tlvDescriptor", "__decorateClass", "injectable", "__decorateParam", "inject", "solanaContextTypes", "pkiTypes", "solanaTokenTypes", "lifiTypes"]
7
7
  }
@@ -42,6 +42,6 @@ export type SolanaTokenContextSuccess = SolanaContextSuccess<SolanaContextTypes.
42
42
  export type SolanaLifiContextSuccess = SolanaContextSuccess<SolanaContextTypes.SOLANA_LIFI>;
43
43
  export type SolanaTokenContextResult = SolanaTokenContextSuccess | SolanaContextError;
44
44
  export type SolanaLifiContextResult = SolanaLifiContextSuccess | SolanaContextError;
45
- export type LoaderResult = SolanaTokenContextResult;
45
+ export type LoaderResult = SolanaTokenContextResult | SolanaLifiContextResult;
46
46
  export {};
47
47
  //# sourceMappingURL=SolanaContextTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolanaContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/SolanaContextTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,oBAAY,kBAAkB;IAC5B,YAAY,gBAAgB;IAC5B,WAAW,eAAe;IAC1B,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAClD,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,qBAAqB,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,kBAAkB,EAClB,kBAAkB,CAAC,KAAK,CACzB,CAAC;AAGF,KAAK,4BAA4B,GAAG;IAClC,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE;QACjC,OAAO,EAAE,eAAe,CAAC;QACzB,WAAW,CAAC,EAAE,cAAc,CAAC;KAC9B,CAAC;IACF,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;QAChC,OAAO,EAAE,+BAA+B,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,wBAAwB,GAAG,wBAAwB,IAC3D;IACF,IAAI,EAAE,CAAC,CAAC;CACT,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAEtE,MAAM,MAAM,yBAAyB,GACnC,oBAAoB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAClC,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,wBAAwB,GAChC,yBAAyB,GACzB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,kBAAkB,CAAC;AAGvB,MAAM,MAAM,YAAY,GAAG,wBAAwB,CAAC"}
1
+ {"version":3,"file":"SolanaContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/SolanaContextTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,oBAAY,kBAAkB;IAC5B,YAAY,gBAAgB;IAC5B,WAAW,eAAe;IAC1B,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAClD,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,qBAAqB,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,kBAAkB,EAClB,kBAAkB,CAAC,KAAK,CACzB,CAAC;AAGF,KAAK,4BAA4B,GAAG;IAClC,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE;QACjC,OAAO,EAAE,eAAe,CAAC;QACzB,WAAW,CAAC,EAAE,cAAc,CAAC;KAC9B,CAAC;IACF,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;QAChC,OAAO,EAAE,+BAA+B,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,wBAAwB,GAAG,wBAAwB,IAC3D;IACF,IAAI,EAAE,CAAC,CAAC;CACT,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAEtE,MAAM,MAAM,yBAAyB,GACnC,oBAAoB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAClC,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,wBAAwB,GAChC,yBAAyB,GACzB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,YAAY,GAAG,wBAAwB,GAAG,uBAAuB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type PkiCertificateLoader } from "../../pki/domain/PkiCertificateLoader";
2
2
  import { type SolanaDataSource } from "../../solana/data/SolanaDataSource";
3
+ import { SolanaLifiContextLoader } from "../../solanaLifi/domain/SolanaLifiContextLoader";
3
4
  import { SolanaTokenContextLoader } from "../../solanaToken/domain/SolanaTokenContextLoader";
4
5
  import { type SolanaContextLoader } from "./SolanaContextLoader";
5
6
  import { SolanaTransactionContext, SolanaTransactionContextResult } from "./solanaContextTypes";
@@ -7,7 +8,8 @@ export declare class DefaultSolanaContextLoader implements SolanaContextLoader {
7
8
  private readonly _dataSource;
8
9
  private readonly _certificateLoader;
9
10
  private readonly _solanaTokenLoader;
10
- constructor(_dataSource: SolanaDataSource, _certificateLoader: PkiCertificateLoader, _solanaTokenLoader: SolanaTokenContextLoader);
11
+ private readonly _solanaLifiLoader;
12
+ constructor(_dataSource: SolanaDataSource, _certificateLoader: PkiCertificateLoader, _solanaTokenLoader: SolanaTokenContextLoader, _solanaLifiLoader: SolanaLifiContextLoader);
11
13
  load(solanaContext: SolanaTransactionContext): Promise<SolanaTransactionContextResult>;
12
14
  }
13
15
  //# sourceMappingURL=DefaultSolanaContextLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultSolanaContextLoader.d.ts","sourceRoot":"","sources":["../../../../../src/solana/domain/DefaultSolanaContextLoader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAM9E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAE9B,qBACa,0BAA2B,YAAW,mBAAmB;IAGlE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAJlB,WAAW,EAAE,gBAAgB,EAE7B,kBAAkB,EAAE,oBAAoB,EAExC,kBAAkB,EAAE,wBAAwB;IAKzD,IAAI,CACR,aAAa,EAAE,wBAAwB,GACtC,OAAO,CAAC,8BAA8B,CAAC;CA6D3C"}
1
+ {"version":3,"file":"DefaultSolanaContextLoader.d.ts","sourceRoot":"","sources":["../../../../../src/solana/domain/DefaultSolanaContextLoader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAM9E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAE9B,qBACa,0BAA2B,YAAW,mBAAmB;IAGlE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBANjB,WAAW,EAAE,gBAAgB,EAE7B,kBAAkB,EAAE,oBAAoB,EAExC,kBAAkB,EAAE,wBAAwB,EAE5C,iBAAiB,EAAE,uBAAuB;IAGvD,IAAI,CACR,aAAa,EAAE,wBAAwB,GACtC,OAAO,CAAC,8BAA8B,CAAC;CAqE3C"}