@ledgerhq/context-module 1.15.0 → 1.17.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/README.md +10 -0
- package/lib/cjs/package.json +1 -2
- package/lib/cjs/src/ContextModule.js +1 -1
- package/lib/cjs/src/ContextModule.js.map +1 -1
- package/lib/cjs/src/ContextModuleBuilder.js +1 -1
- package/lib/cjs/src/ContextModuleBuilder.js.map +3 -3
- package/lib/cjs/src/ContextModuleBuilder.test.js +1 -1
- package/lib/cjs/src/ContextModuleBuilder.test.js.map +3 -3
- package/lib/cjs/src/DefaultContextModule.js +1 -1
- package/lib/cjs/src/DefaultContextModule.js.map +3 -3
- package/lib/cjs/src/DefaultContextModule.test.js +1 -1
- package/lib/cjs/src/DefaultContextModule.test.js.map +2 -2
- package/lib/cjs/src/account-ownership/data/AccountOwnershipDataSource.js +2 -0
- package/lib/cjs/src/account-ownership/data/AccountOwnershipDataSource.js.map +7 -0
- package/lib/cjs/src/account-ownership/data/AccountOwnershipError.js +2 -0
- package/lib/cjs/src/account-ownership/data/AccountOwnershipError.js.map +7 -0
- package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.js +2 -0
- package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.js.map +7 -0
- package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js +2 -0
- package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js.map +7 -0
- package/lib/cjs/src/account-ownership/data/dto/AccountOwnershipDto.js +2 -0
- package/lib/cjs/src/account-ownership/data/dto/AccountOwnershipDto.js.map +7 -0
- package/lib/cjs/src/account-ownership/di/accountOwnershipModuleFactory.js +2 -0
- package/lib/cjs/src/account-ownership/di/accountOwnershipModuleFactory.js.map +7 -0
- package/lib/cjs/src/account-ownership/di/accountOwnershipTypes.js +2 -0
- package/lib/cjs/src/account-ownership/di/accountOwnershipTypes.js.map +7 -0
- package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.js +2 -0
- package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.js.map +7 -0
- package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.test.js +2 -0
- package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.test.js.map +7 -0
- package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js +1 -1
- package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +3 -3
- package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +1 -1
- package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +3 -3
- package/lib/cjs/src/calldata/di/calldataModuleFactory.js +1 -1
- package/lib/cjs/src/calldata/di/calldataModuleFactory.js.map +3 -3
- package/lib/cjs/src/config/di/configModuleFactory.js +1 -1
- package/lib/cjs/src/config/di/configModuleFactory.js.map +2 -2
- package/lib/cjs/src/config/model/ContextModuleConfig.js +1 -1
- package/lib/cjs/src/config/model/ContextModuleConfig.js.map +1 -1
- package/lib/cjs/src/di.js +1 -1
- package/lib/cjs/src/di.js.map +3 -3
- package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +1 -1
- package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +3 -3
- package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +1 -1
- package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.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 +1 -1
- package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +1 -1
- package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
- package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
- package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
- package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.js +1 -1
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.js.map +3 -3
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js +1 -1
- package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js.map +3 -3
- package/lib/cjs/src/index.js +1 -1
- package/lib/cjs/src/index.js.map +2 -2
- package/lib/cjs/src/network/di/networkModuleFactory.js +2 -0
- package/lib/cjs/src/network/di/networkModuleFactory.js.map +7 -0
- package/lib/cjs/src/network/di/networkTypes.js +2 -0
- package/lib/cjs/src/network/di/networkTypes.js.map +7 -0
- package/lib/cjs/src/nft/data/HttpNftDataSource.js +1 -1
- package/lib/cjs/src/nft/data/HttpNftDataSource.js.map +3 -3
- package/lib/cjs/src/nft/data/HttpNftDataSource.test.js +1 -1
- package/lib/cjs/src/nft/data/HttpNftDataSource.test.js.map +3 -3
- package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js +1 -1
- package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js.map +3 -3
- package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.test.js +1 -1
- package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.test.js.map +3 -3
- package/lib/cjs/src/proxy/data/HttpProxyDataSource.js +1 -1
- package/lib/cjs/src/proxy/data/HttpProxyDataSource.js.map +3 -3
- package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js +1 -1
- package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js.map +3 -3
- package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js +1 -1
- package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js.map +3 -3
- package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js +1 -1
- package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js.map +3 -3
- package/lib/cjs/src/proxy/di/proxyModuleFactory.js +1 -1
- package/lib/cjs/src/proxy/di/proxyModuleFactory.js.map +3 -3
- package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js +1 -1
- package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js.map +3 -3
- package/lib/cjs/src/reporter/data/BlindSigningReporterDatasource.js +2 -0
- package/lib/cjs/src/reporter/data/BlindSigningReporterDatasource.js.map +7 -0
- package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.js +2 -0
- package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.js.map +7 -0
- package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.test.js +2 -0
- package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.test.js.map +7 -0
- package/lib/cjs/src/reporter/data/dto/BlindSigningEventDto.js +2 -0
- package/lib/cjs/src/reporter/data/dto/BlindSigningEventDto.js.map +7 -0
- package/lib/cjs/src/reporter/di/reporterModuleFactory.js +2 -0
- package/lib/cjs/src/reporter/di/reporterModuleFactory.js.map +7 -0
- package/lib/cjs/src/reporter/di/reporterTypes.js +2 -0
- package/lib/cjs/src/reporter/di/reporterTypes.js.map +7 -0
- package/lib/cjs/src/reporter/domain/BlindSigningReporter.js +2 -0
- package/lib/cjs/src/reporter/domain/BlindSigningReporter.js.map +7 -0
- package/lib/cjs/src/reporter/domain/DefaultBlindSigningReporter.js +2 -0
- package/lib/cjs/src/reporter/domain/DefaultBlindSigningReporter.js.map +7 -0
- package/lib/cjs/src/reporter/domain/DefaultBlindSigningReporter.test.js +2 -0
- package/lib/cjs/src/reporter/domain/DefaultBlindSigningReporter.test.js.map +7 -0
- package/lib/cjs/src/reporter/model/BlindSigningEvent.js +2 -0
- package/lib/cjs/src/reporter/model/BlindSigningEvent.js.map +7 -0
- package/lib/cjs/src/reporter/model/BlindSigningModelId.js +2 -0
- package/lib/cjs/src/reporter/model/BlindSigningModelId.js.map +7 -0
- package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js +1 -1
- package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js.map +3 -3
- package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js +1 -1
- package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js.map +3 -3
- 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/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
- package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +3 -3
- package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
- package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +3 -3
- package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js +1 -1
- package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.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/domain/SolanaLifiContextLoader.js.map +1 -1
- package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.test.js.map +1 -1
- package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.js +1 -1
- package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.js.map +3 -3
- package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.test.js +6 -6
- package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.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/solanaToken/domain/SolanaTokenContextLoader.test.js +1 -1
- package/lib/cjs/src/solanaToken/domain/SolanaTokenContextLoader.test.js.map +1 -1
- package/lib/cjs/src/token/data/HttpTokenDataSource.js +1 -1
- package/lib/cjs/src/token/data/HttpTokenDataSource.js.map +3 -3
- package/lib/cjs/src/token/data/HttpTokenDataSource.test.js +1 -1
- package/lib/cjs/src/token/data/HttpTokenDataSource.test.js.map +3 -3
- package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.js +1 -1
- package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.js.map +3 -3
- package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.test.js +1 -1
- package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.test.js.map +3 -3
- package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.js +1 -1
- package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.js.map +3 -3
- package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js +1 -1
- package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js.map +3 -3
- package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
- package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
- package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
- package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
- package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
- package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
- 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/data/HttpTypedDataDataSource.test.js +1 -1
- package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
- package/lib/esm/package.json +1 -2
- package/lib/esm/src/ContextModuleBuilder.js +1 -1
- package/lib/esm/src/ContextModuleBuilder.js.map +3 -3
- package/lib/esm/src/ContextModuleBuilder.test.js +1 -1
- package/lib/esm/src/ContextModuleBuilder.test.js.map +3 -3
- package/lib/esm/src/DefaultContextModule.js +1 -1
- package/lib/esm/src/DefaultContextModule.js.map +3 -3
- package/lib/esm/src/DefaultContextModule.test.js +1 -1
- package/lib/esm/src/DefaultContextModule.test.js.map +2 -2
- package/lib/esm/src/account-ownership/data/AccountOwnershipDataSource.js +1 -0
- package/lib/esm/src/account-ownership/data/AccountOwnershipDataSource.js.map +7 -0
- package/lib/esm/src/account-ownership/data/AccountOwnershipError.js +2 -0
- package/lib/esm/src/account-ownership/data/AccountOwnershipError.js.map +7 -0
- package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.js +2 -0
- package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.js.map +7 -0
- package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js +2 -0
- package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js.map +7 -0
- package/lib/esm/src/account-ownership/data/dto/AccountOwnershipDto.js +1 -0
- package/lib/esm/src/account-ownership/data/dto/AccountOwnershipDto.js.map +7 -0
- package/lib/esm/src/account-ownership/di/accountOwnershipModuleFactory.js +2 -0
- package/lib/esm/src/account-ownership/di/accountOwnershipModuleFactory.js.map +7 -0
- package/lib/esm/src/account-ownership/di/accountOwnershipTypes.js +2 -0
- package/lib/esm/src/account-ownership/di/accountOwnershipTypes.js.map +7 -0
- package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.js +2 -0
- package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.js.map +7 -0
- package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.test.js +2 -0
- package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.test.js.map +7 -0
- package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js +1 -1
- package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +3 -3
- package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +1 -1
- package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +3 -3
- package/lib/esm/src/calldata/di/calldataModuleFactory.js +1 -1
- package/lib/esm/src/calldata/di/calldataModuleFactory.js.map +3 -3
- package/lib/esm/src/config/di/configModuleFactory.js +1 -1
- package/lib/esm/src/config/di/configModuleFactory.js.map +2 -2
- package/lib/esm/src/di.js +1 -1
- package/lib/esm/src/di.js.map +3 -3
- package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +1 -1
- package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +3 -3
- package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +1 -1
- package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.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 +1 -1
- package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +1 -1
- package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
- package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
- package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
- package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.js +1 -1
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.js.map +3 -3
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js +1 -1
- package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js.map +3 -3
- package/lib/esm/src/index.js +1 -1
- package/lib/esm/src/index.js.map +2 -2
- package/lib/esm/src/network/di/networkModuleFactory.js +2 -0
- package/lib/esm/src/network/di/networkModuleFactory.js.map +7 -0
- package/lib/esm/src/network/di/networkTypes.js +2 -0
- package/lib/esm/src/network/di/networkTypes.js.map +7 -0
- package/lib/esm/src/nft/data/HttpNftDataSource.js +1 -1
- package/lib/esm/src/nft/data/HttpNftDataSource.js.map +3 -3
- package/lib/esm/src/nft/data/HttpNftDataSource.test.js +1 -1
- package/lib/esm/src/nft/data/HttpNftDataSource.test.js.map +3 -3
- package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js +1 -1
- package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js.map +3 -3
- package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.test.js +1 -1
- package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.test.js.map +3 -3
- package/lib/esm/src/proxy/data/HttpProxyDataSource.js +1 -1
- package/lib/esm/src/proxy/data/HttpProxyDataSource.js.map +3 -3
- package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js +1 -1
- package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js.map +3 -3
- package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js +1 -1
- package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js.map +3 -3
- package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js +1 -1
- package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js.map +3 -3
- package/lib/esm/src/proxy/di/proxyModuleFactory.js +1 -1
- package/lib/esm/src/proxy/di/proxyModuleFactory.js.map +3 -3
- package/lib/esm/src/proxy/di/proxyModuleFactory.test.js +1 -1
- package/lib/esm/src/proxy/di/proxyModuleFactory.test.js.map +3 -3
- package/lib/esm/src/reporter/data/BlindSigningReporterDatasource.js +1 -0
- package/lib/esm/src/reporter/data/BlindSigningReporterDatasource.js.map +7 -0
- package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.js +2 -0
- package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.js.map +7 -0
- package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.test.js +2 -0
- package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.test.js.map +7 -0
- package/lib/esm/src/reporter/data/dto/BlindSigningEventDto.js +1 -0
- package/lib/esm/src/reporter/data/dto/BlindSigningEventDto.js.map +7 -0
- package/lib/esm/src/reporter/di/reporterModuleFactory.js +2 -0
- package/lib/esm/src/reporter/di/reporterModuleFactory.js.map +7 -0
- package/lib/esm/src/reporter/di/reporterTypes.js +2 -0
- package/lib/esm/src/reporter/di/reporterTypes.js.map +7 -0
- package/lib/esm/src/reporter/domain/BlindSigningReporter.js +1 -0
- package/lib/esm/src/reporter/domain/BlindSigningReporter.js.map +7 -0
- package/lib/esm/src/reporter/domain/DefaultBlindSigningReporter.js +2 -0
- package/lib/esm/src/reporter/domain/DefaultBlindSigningReporter.js.map +7 -0
- package/lib/esm/src/reporter/domain/DefaultBlindSigningReporter.test.js +2 -0
- package/lib/esm/src/reporter/domain/DefaultBlindSigningReporter.test.js.map +7 -0
- package/lib/esm/src/reporter/model/BlindSigningEvent.js +2 -0
- package/lib/esm/src/reporter/model/BlindSigningEvent.js.map +7 -0
- package/lib/esm/src/reporter/model/BlindSigningModelId.js +2 -0
- package/lib/esm/src/reporter/model/BlindSigningModelId.js.map +7 -0
- package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js +1 -1
- package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js.map +3 -3
- package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js +1 -1
- package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js.map +3 -3
- 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/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
- package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +3 -3
- package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
- package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +3 -3
- package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js +1 -1
- package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js.map +1 -1
- 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.map +1 -1
- package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.test.js +1 -1
- package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.test.js.map +1 -1
- package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.js +1 -1
- package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.js.map +3 -3
- package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.test.js +6 -6
- package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.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/solanaToken/domain/SolanaTokenContextLoader.test.js +1 -1
- package/lib/esm/src/solanaToken/domain/SolanaTokenContextLoader.test.js.map +1 -1
- package/lib/esm/src/token/data/HttpTokenDataSource.js +1 -1
- package/lib/esm/src/token/data/HttpTokenDataSource.js.map +3 -3
- package/lib/esm/src/token/data/HttpTokenDataSource.test.js +1 -1
- package/lib/esm/src/token/data/HttpTokenDataSource.test.js.map +3 -3
- package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.js +1 -1
- package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.js.map +3 -3
- package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.test.js +1 -1
- package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.test.js.map +3 -3
- package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.js +1 -1
- package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.js.map +3 -3
- package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js +1 -1
- package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js.map +3 -3
- package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
- package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
- package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
- package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
- package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
- package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
- 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/data/HttpTypedDataDataSource.test.js +1 -1
- package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
- package/lib/types/src/ContextModule.d.ts +2 -0
- package/lib/types/src/ContextModule.d.ts.map +1 -1
- package/lib/types/src/ContextModuleBuilder.d.ts +30 -3
- package/lib/types/src/ContextModuleBuilder.d.ts.map +1 -1
- package/lib/types/src/DefaultContextModule.d.ts +6 -2
- package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
- package/lib/types/src/account-ownership/data/AccountOwnershipDataSource.d.ts +17 -0
- package/lib/types/src/account-ownership/data/AccountOwnershipDataSource.d.ts.map +1 -0
- package/lib/types/src/account-ownership/data/AccountOwnershipError.d.ts +17 -0
- package/lib/types/src/account-ownership/data/AccountOwnershipError.d.ts.map +1 -0
- package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.d.ts +30 -0
- package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.d.ts.map +1 -0
- package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.test.d.ts +2 -0
- package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.test.d.ts.map +1 -0
- package/lib/types/src/account-ownership/data/dto/AccountOwnershipDto.d.ts +6 -0
- package/lib/types/src/account-ownership/data/dto/AccountOwnershipDto.d.ts.map +1 -0
- package/lib/types/src/account-ownership/di/accountOwnershipModuleFactory.d.ts +3 -0
- package/lib/types/src/account-ownership/di/accountOwnershipModuleFactory.d.ts.map +1 -0
- package/lib/types/src/account-ownership/di/accountOwnershipTypes.d.ts +5 -0
- package/lib/types/src/account-ownership/di/accountOwnershipTypes.d.ts.map +1 -0
- package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.d.ts +20 -0
- package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.d.ts.map +1 -0
- package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.test.d.ts +2 -0
- package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.test.d.ts.map +1 -0
- package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.d.ts +4 -2
- package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.d.ts.map +1 -1
- package/lib/types/src/calldata/di/calldataModuleFactory.d.ts.map +1 -1
- package/lib/types/src/config/di/configModuleFactory.d.ts +2 -2
- package/lib/types/src/config/di/configModuleFactory.d.ts.map +1 -1
- package/lib/types/src/config/model/ContextModuleConfig.d.ts +14 -3
- package/lib/types/src/config/model/ContextModuleConfig.d.ts.map +1 -1
- package/lib/types/src/di.d.ts +2 -2
- package/lib/types/src/di.d.ts.map +1 -1
- package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts +4 -2
- package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts.map +1 -1
- package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts +2 -2
- package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts.map +1 -1
- package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts +4 -2
- package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -1
- package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.d.ts +4 -2
- package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.d.ts.map +1 -1
- package/lib/types/src/index.d.ts +11 -1
- package/lib/types/src/index.d.ts.map +1 -1
- package/lib/types/src/network/di/networkModuleFactory.d.ts +4 -0
- package/lib/types/src/network/di/networkModuleFactory.d.ts.map +1 -0
- package/lib/types/src/network/di/networkTypes.d.ts +4 -0
- package/lib/types/src/network/di/networkTypes.d.ts.map +1 -0
- package/lib/types/src/nft/data/HttpNftDataSource.d.ts +4 -2
- package/lib/types/src/nft/data/HttpNftDataSource.d.ts.map +1 -1
- package/lib/types/src/pki/data/HttpPkiCertificateDataSource.d.ts +5 -2
- package/lib/types/src/pki/data/HttpPkiCertificateDataSource.d.ts.map +1 -1
- package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts +4 -2
- package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts.map +1 -1
- package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts +4 -2
- package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts.map +1 -1
- package/lib/types/src/proxy/di/proxyModuleFactory.d.ts +2 -2
- package/lib/types/src/proxy/di/proxyModuleFactory.d.ts.map +1 -1
- package/lib/types/src/reporter/data/BlindSigningReporterDatasource.d.ts +29 -0
- package/lib/types/src/reporter/data/BlindSigningReporterDatasource.d.ts.map +1 -0
- package/lib/types/src/reporter/data/HttpBlindSigningReporterDatasource.d.ts +11 -0
- package/lib/types/src/reporter/data/HttpBlindSigningReporterDatasource.d.ts.map +1 -0
- package/lib/types/src/reporter/data/HttpBlindSigningReporterDatasource.test.d.ts +2 -0
- package/lib/types/src/reporter/data/HttpBlindSigningReporterDatasource.test.d.ts.map +1 -0
- package/lib/types/src/reporter/data/dto/BlindSigningEventDto.d.ts +26 -0
- package/lib/types/src/reporter/data/dto/BlindSigningEventDto.d.ts.map +1 -0
- package/lib/types/src/reporter/di/reporterModuleFactory.d.ts +3 -0
- package/lib/types/src/reporter/di/reporterModuleFactory.d.ts.map +1 -0
- package/lib/types/src/reporter/di/reporterTypes.d.ts +5 -0
- package/lib/types/src/reporter/di/reporterTypes.d.ts.map +1 -0
- package/lib/types/src/reporter/domain/BlindSigningReporter.d.ts +6 -0
- package/lib/types/src/reporter/domain/BlindSigningReporter.d.ts.map +1 -0
- package/lib/types/src/reporter/domain/DefaultBlindSigningReporter.d.ts +9 -0
- package/lib/types/src/reporter/domain/DefaultBlindSigningReporter.d.ts.map +1 -0
- package/lib/types/src/reporter/domain/DefaultBlindSigningReporter.test.d.ts +2 -0
- package/lib/types/src/reporter/domain/DefaultBlindSigningReporter.test.d.ts.map +1 -0
- package/lib/types/src/reporter/model/BlindSigningEvent.d.ts +21 -0
- package/lib/types/src/reporter/model/BlindSigningEvent.d.ts.map +1 -0
- package/lib/types/src/reporter/model/BlindSigningModelId.d.ts +12 -0
- package/lib/types/src/reporter/model/BlindSigningModelId.d.ts.map +1 -0
- package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts +4 -2
- package/lib/types/src/safe/data/HttpSafeAccountDataSource.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/solana/data/HttpSolanaOwnerInfoDataSource.d.ts +4 -2
- package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts.map +1 -1
- package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts +4 -3
- package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts.map +1 -1
- package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.d.ts +2 -2
- package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.d.ts.map +1 -1
- package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.d.ts +4 -2
- package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.d.ts.map +1 -1
- package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.d.ts +2 -2
- package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.d.ts.map +1 -1
- package/lib/types/src/token/data/HttpTokenDataSource.d.ts +4 -2
- package/lib/types/src/token/data/HttpTokenDataSource.d.ts.map +1 -1
- package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.d.ts +4 -2
- package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.d.ts.map +1 -1
- package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.d.ts +4 -2
- package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.d.ts.map +1 -1
- package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts +4 -2
- package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts.map +1 -1
- package/lib/types/src/trusted-name/di/trustedNameModuleFactory.d.ts +2 -2
- package/lib/types/src/trusted-name/di/trustedNameModuleFactory.d.ts.map +1 -1
- package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +4 -2
- package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
- package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +6 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{Left as d,Right as u}from"purify-ts";import{HttpGatedDescriptorDataSource as h}from"../../gated-signing/data/HttpGatedDescriptorDataSource";describe("HttpGatedDescriptorDataSource",()=>{const n={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",branch:"next",mode:"prod"},originToken:"test-origin-token"},e="0x1111111254fb6c44bac0bed2854e76f90643097d",c="0xa1251d75",o=1,p="010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735",l=[{gated_descriptors:{"0x1111111254fb6c44bac0bed2854e76f90643097d":{a1251d75:{network:"ethereum",chain_id:1,address:"0x1111111254fb6c44bac0bed2854e76f90643097d",selector:"a1251d75",version:"v1",descriptor:p,signatures:{prod:"00",test:"00"}}}}}],g=`${p}150100`;let r,a;beforeEach(()=>{vi.clearAllMocks(),r={get:vi.fn()},a=new h(n,r)}),describe("getGatedDescriptor",()=>{it("should return descriptor on successful request with correct URL and params",async()=>{r.get.mockResolvedValue(l);const t=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(r.get).toHaveBeenCalledWith(`${n.cal.url}/gated_dapps`,{params:{ref:"branch:next",output:"gated_descriptors,app,category",contracts:e,chain_id:o}}),expect(t).toEqual(u({signedDescriptor:g}))}),it("should find descriptor when API response has selector key without 0x prefix",async()=>{r.get.mockResolvedValue(l);const t=await a.getGatedDescriptor({contractAddress:e,selector:"0xa1251d75",chainId:o});expect(t).toEqual(u({signedDescriptor:g}))}),it("should return Left when response is not an array",async()=>{r.get.mockResolvedValue({gated_descriptors:{}});const t=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(t).toEqual(d(new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response")))}),it("should return Left when response is empty array",async()=>{r.get.mockResolvedValue([]);const t=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(t).toEqual(d(new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response")))}),it("should return Left when no descriptor matches contract and selector",async()=>{r.get.mockResolvedValue([{gated_descriptors:{"0xothercontract":{a1251d75:{descriptor:"some-descriptor",network:"ethereum",chain_id:1,address:"0xother",selector:"a1251d75",version:"v1"}}}}]);const t=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(t).toEqual(d(new Error("[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract 0x1111111254fb6c44bac0bed2854e76f90643097d and selector 0xa1251d75")))}),it("should return Left when http.get request fails",async()=>{r.get.mockRejectedValue(new Error("Network error"));const t=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(t).toEqual(d(new Error("[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error")))}),it("should use config.cal.branch in ref param",async()=>{const t={...n,cal:{...n.cal,branch:"main"}};r.get.mockResolvedValue(l),await new h(t,r).getGatedDescriptor({contractAddress:e,selector:c,chainId:o}),expect(r.get).toHaveBeenCalledWith(`${n.cal.url}/gated_dapps`,expect.objectContaining({params:expect.objectContaining({ref:"branch:main"})}))}),describe("when response fails DTO validation",()=>{const t=new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response");it("should return Left when array item has no gated_descriptors",async()=>{r.get.mockResolvedValue([{}]);const s=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(s).toEqual(d(t))}),it("should return Left when gated_descriptors is not an object",async()=>{r.get.mockResolvedValue([{gated_descriptors:"not-an-object"}]);const s=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(s).toEqual(d(t))}),it("should return Left when entry is missing required field (descriptor)",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:1,address:e,selector:"a1251d75",version:"v1"}}}}]);const s=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(s).toEqual(d(t))}),it("should return Left when entry has wrong type for chain_id",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:"1",address:e,selector:"a1251d75",version:"v1",descriptor:p,signatures:{prod:"00",test:"00"}}}}}]);const s=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(s).toEqual(d(t))}),it("should return Left when entry signatures contains non-string value",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:1,address:e,selector:"a1251d75",version:"v1",descriptor:p,signatures:{prod:123}}}}}]);const s=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(s).toEqual(d(t))}),it("should return Left when array item is null",async()=>{r.get.mockResolvedValue([null]);const s=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(s).toEqual(d(t))}),it("should return Left when selectors map value is not an object",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:"not-a-selectors-map"}}]);const s=await a.getGatedDescriptor({contractAddress:e,selector:c,chainId:o});expect(s).toEqual(d(t))})})}),describe("getGatedDescriptorForTypedData",()=>{const t="4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3",s="010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735",w=[{gated_descriptors:{[e]:{[t]:{network:"ethereum",chain_id:1,address:e,selector:"eip712",version:"v1",descriptor:s,signatures:{prod:"00",test:"00"}}}}}],m=`${s}150100`;it("should return descriptor on successful request when keyed by schema hash",async()=>{r.get.mockResolvedValue(w);const i=await a.getGatedDescriptorForTypedData({contractAddress:e,schemaHash:t,chainId:o});expect(r.get).toHaveBeenCalledWith(`${n.cal.url}/gated_dapps`,{params:{ref:"branch:next",output:"gated_descriptors",contracts:e,chain_id:o}}),expect(i).toEqual(u({signedDescriptor:m}))}),it("should return Left when no descriptor matches contract and schema hash",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{other_schema_hash:{descriptor:"some-descriptor",network:"ethereum",chain_id:1,address:e,selector:"eip712",version:"v1"}}}}]);const i=await a.getGatedDescriptorForTypedData({contractAddress:e,schemaHash:t,chainId:o});expect(i).toEqual(d(new Error(`[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract ${e} and schema hash ${t}`)))}),it("should return Left when http.get request fails",async()=>{r.get.mockRejectedValue(new Error("Network error"));const i=await a.getGatedDescriptorForTypedData({contractAddress:e,schemaHash:t,chainId:o});expect(i).toEqual(d(new Error("[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error")))})})});
|
|
2
2
|
//# sourceMappingURL=HttpGatedDescriptorDataSource.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/gated-signing/data/HttpGatedDescriptorDataSource.test.ts"],
|
|
4
|
-
"sourcesContent": ["import axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpGatedDescriptorDataSource } from \"@/gated-signing/data/HttpGatedDescriptorDataSource\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpGatedDescriptorDataSource\", () => {\n const config: ContextModuleConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n branch: \"next\",\n mode: \"prod\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleConfig;\n\n const contractAddress = \"0x1111111254fb6c44bac0bed2854e76f90643097d\";\n const selector = \"0xa1251d75\";\n const chainId = 1;\n\n const descriptorPayload =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validGatedDappsResponse = [\n {\n gated_descriptors: {\n \"0x1111111254fb6c44bac0bed2854e76f90643097d\": {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: \"0x1111111254fb6c44bac0bed2854e76f90643097d\",\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n // signedDescriptor = payload + SIGNATURE_TAG(\"15\") + length(01) + signature(\"00\")\n const expectedSignedDescriptor = `${descriptorPayload}150100`;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"getGatedDescriptor\", () => {\n it(\"should return descriptor on successful request with correct URL and params\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validGatedDappsResponse,\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(axios.request).toHaveBeenCalledWith({\n method: \"GET\",\n url: \"https://crypto-assets-service.api.ledger.com/v1/gated_dapps\",\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors,app,category\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: \"test-origin-token\",\n },\n });\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should find descriptor when API response has selector key without 0x prefix\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validGatedDappsResponse,\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector: \"0xa1251d75\",\n chainId,\n });\n\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should return Left when response is not an array\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: { gated_descriptors: {} },\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when response is empty array\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and selector\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n \"0xothercontract\": {\n a1251d75: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: \"0xother\",\n selector: \"a1251d75\",\n version: \"v1\",\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract 0x1111111254fb6c44bac0bed2854e76f90643097d and selector 0xa1251d75\",\n ),\n ),\n );\n });\n\n it(\"should return Left when axios request fails\", async () => {\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n\n it(\"should use config.cal.branch in ref param\", async () => {\n const configMain: ContextModuleConfig = {\n ...config,\n cal: { ...config.cal!, branch: \"main\" },\n } as ContextModuleConfig;\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validGatedDappsResponse,\n });\n\n await new HttpGatedDescriptorDataSource(configMain).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n params: expect.objectContaining({\n ref: \"branch:main\",\n }),\n }),\n );\n });\n\n describe(\"when response fails DTO validation\", () => {\n const invalidResponseError = new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n );\n\n it(\"should return Left when array item has no gated_descriptors\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [{}],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when gated_descriptors is not an object\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [{ gated_descriptors: \"not-an-object\" }],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry is missing required field (descriptor)\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n // descriptor missing\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry has wrong type for chain_id\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: \"1\", // string instead of number\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry signatures contains non-string value\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: 123 }, // number instead of string\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when array item is null\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [null],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when selectors map value is not an object\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: \"not-a-selectors-map\",\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n });\n });\n\n describe(\"getGatedDescriptorForTypedData\", () => {\n const schemaHash =\n \"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3\";\n const descriptorPayloadTypedData =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validTypedDataResponse = [\n {\n gated_descriptors: {\n [contractAddress]: {\n [schemaHash]: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n descriptor: descriptorPayloadTypedData,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n const expectedSignedDescriptorTypedData = `${descriptorPayloadTypedData}150100`;\n\n it(\"should return descriptor on successful request when keyed by schema hash\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validTypedDataResponse,\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(axios.request).toHaveBeenCalledWith({\n method: \"GET\",\n url: \"https://crypto-assets-service.api.ledger.com/v1/gated_dapps\",\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: \"test-origin-token\",\n },\n });\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptorTypedData,\n }),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and schema hash\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n other_schema_hash: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n `[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract ${contractAddress} and schema hash ${schemaHash}`,\n ),\n ),\n );\n });\n\n it(\"should return Left when axios request fails\", async () => {\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpGatedDescriptorDataSource } from \"@/gated-signing/data/HttpGatedDescriptorDataSource\";\n\ndescribe(\"HttpGatedDescriptorDataSource\", () => {\n const config: ContextModuleServiceConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n branch: \"next\",\n mode: \"prod\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleServiceConfig;\n\n const contractAddress = \"0x1111111254fb6c44bac0bed2854e76f90643097d\";\n const selector = \"0xa1251d75\";\n const chainId = 1;\n\n const descriptorPayload =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validGatedDappsResponse = [\n {\n gated_descriptors: {\n \"0x1111111254fb6c44bac0bed2854e76f90643097d\": {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: \"0x1111111254fb6c44bac0bed2854e76f90643097d\",\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n // signedDescriptor = payload + SIGNATURE_TAG(\"15\") + length(01) + signature(\"00\")\n const expectedSignedDescriptor = `${descriptorPayload}150100`;\n\n let httpMock: { get: ReturnType<typeof vi.fn> };\n let dataSource: HttpGatedDescriptorDataSource;\n\n beforeEach(() => {\n vi.clearAllMocks();\n httpMock = { get: vi.fn() };\n dataSource = new HttpGatedDescriptorDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"getGatedDescriptor\", () => {\n it(\"should return descriptor on successful request with correct URL and params\", async () => {\n httpMock.get.mockResolvedValue(validGatedDappsResponse);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.cal.url}/gated_dapps`,\n {\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors,app,category\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n },\n );\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should find descriptor when API response has selector key without 0x prefix\", async () => {\n httpMock.get.mockResolvedValue(validGatedDappsResponse);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector: \"0xa1251d75\",\n chainId,\n });\n\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should return Left when response is not an array\", async () => {\n httpMock.get.mockResolvedValue({ gated_descriptors: {} });\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when response is empty array\", async () => {\n httpMock.get.mockResolvedValue([]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and selector\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n \"0xothercontract\": {\n a1251d75: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: \"0xother\",\n selector: \"a1251d75\",\n version: \"v1\",\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract 0x1111111254fb6c44bac0bed2854e76f90643097d and selector 0xa1251d75\",\n ),\n ),\n );\n });\n\n it(\"should return Left when http.get request fails\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"Network error\"));\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n\n it(\"should use config.cal.branch in ref param\", async () => {\n const configMain: ContextModuleServiceConfig = {\n ...config,\n cal: { ...config.cal!, branch: \"main\" },\n } as ContextModuleServiceConfig;\n httpMock.get.mockResolvedValue(validGatedDappsResponse);\n\n const mainDataSource = new HttpGatedDescriptorDataSource(\n configMain,\n httpMock as unknown as DmkNetworkClient,\n );\n await mainDataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.cal.url}/gated_dapps`,\n expect.objectContaining({\n params: expect.objectContaining({ ref: \"branch:main\" }),\n }),\n );\n });\n\n describe(\"when response fails DTO validation\", () => {\n const invalidResponseError = new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n );\n\n it(\"should return Left when array item has no gated_descriptors\", async () => {\n httpMock.get.mockResolvedValue([{}]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when gated_descriptors is not an object\", async () => {\n httpMock.get.mockResolvedValue([\n { gated_descriptors: \"not-an-object\" },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry is missing required field (descriptor)\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n // descriptor missing\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry has wrong type for chain_id\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: \"1\", // string instead of number\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry signatures contains non-string value\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: 123 }, // number instead of string\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when array item is null\", async () => {\n httpMock.get.mockResolvedValue([null]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when selectors map value is not an object\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: \"not-a-selectors-map\",\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n });\n });\n\n describe(\"getGatedDescriptorForTypedData\", () => {\n const schemaHash =\n \"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3\";\n const descriptorPayloadTypedData =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validTypedDataResponse = [\n {\n gated_descriptors: {\n [contractAddress]: {\n [schemaHash]: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n descriptor: descriptorPayloadTypedData,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n const expectedSignedDescriptorTypedData = `${descriptorPayloadTypedData}150100`;\n\n it(\"should return descriptor on successful request when keyed by schema hash\", async () => {\n httpMock.get.mockResolvedValue(validTypedDataResponse);\n\n const result = await dataSource.getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.cal.url}/gated_dapps`,\n {\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n },\n );\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptorTypedData,\n }),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and schema hash\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n other_schema_hash: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n `[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract ${contractAddress} and schema hash ${schemaHash}`,\n ),\n ),\n );\n });\n\n it(\"should return Left when http.get request fails\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"Network error\"));\n\n const result = await dataSource.getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Left", "Right", "HttpGatedDescriptorDataSource", "config", "contractAddress", "selector", "chainId", "descriptorPayload", "validGatedDappsResponse", "expectedSignedDescriptor", "httpMock", "dataSource", "result", "configMain", "invalidResponseError", "schemaHash", "descriptorPayloadTypedData", "validTypedDataResponse", "expectedSignedDescriptorTypedData"]
|
|
7
7
|
}
|
package/lib/esm/src/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export*from"./
|
|
1
|
+
export*from"./account-ownership/data/AccountOwnershipDataSource";export*from"./account-ownership/data/AccountOwnershipError";export*from"./account-ownership/data/HttpAccountOwnershipDataSource";export*from"./account-ownership/domain/AccountOwnershipContextLoader";export*from"./calldata/data/CalldataDescriptorDataSource";export*from"./calldata/data/HttpCalldataDescriptorDataSource";export*from"./calldata/domain/CalldataContextLoader";export*from"./ContextModule";export*from"./ContextModuleBuilder";export*from"./DefaultContextModule";export*from"./dynamic-network/data/DynamicNetworkDataSource";export*from"./dynamic-network/data/HttpDynamicNetworkDataSource";export*from"./dynamic-network/domain/DynamicNetworkContextLoader";export*from"./dynamic-network/model/DynamicNetworkConfiguration";export*from"./external-plugin/data/ExternalPluginDataSource";export*from"./external-plugin/data/HttpExternalPluginDataSource";export*from"./external-plugin/domain/ExternalPluginContextLoader";export*from"./gated-signing/data/GatedDescriptorDataSource";export*from"./gated-signing/data/HttpGatedDescriptorDataSource";export*from"./gated-signing/domain/GatedSigningContextLoader";export*from"./gated-signing/domain/GatedSigningTypedDataContextLoader";export*from"./nft/data/HttpNftDataSource";export*from"./nft/data/NftDataSource";export*from"./nft/domain/NftContextFieldLoader";export*from"./nft/domain/NftContextLoader";export*from"./pki/data/HttpPkiCertificateDataSource";export*from"./pki/data/PkiCertificateDataSource";export*from"./pki/domain/DefaultPkiCertificateLoader";export*from"./pki/domain/PkiCertificateLoader";export*from"./pki/model/KeyId";export*from"./pki/model/KeyUsage";export*from"./pki/model/PkiCertificate";export*from"./pki/model/PkiCertificateInfo";export*from"./proxy/data/HttpProxyDataSource";export*from"./proxy/data/HttpSafeProxyDataSource";export*from"./proxy/data/ProxyDataSource";export*from"./proxy/domain/ProxyContextFieldLoader";export*from"./reporter/data/BlindSigningReporterDatasource";export*from"./reporter/data/HttpBlindSigningReporterDatasource";export*from"./reporter/domain/BlindSigningReporter";export*from"./reporter/domain/DefaultBlindSigningReporter";export*from"./reporter/model/BlindSigningEvent";export*from"./reporter/model/BlindSigningModelId";export*from"./shared/domain/ContextFieldLoader";export*from"./shared/domain/ContextLoader";export*from"./shared/model/ClearSignContext";export*from"./shared/model/GenericPath";export*from"./shared/model/SolanaContextTypes";export*from"./shared/model/TransactionSubset";export*from"./shared/model/TypedDataClearSignContext";export*from"./shared/model/TypedDataContext";export*from"./solana/data/HttpSolanaOwnerInfoDataSource";export*from"./solana/data/SolanaDataSource";export*from"./solana/domain/DefaultSolanaContextLoader";export*from"./solana/domain/SolanaContextLoader";export*from"./solana/domain/solanaContextTypes";export*from"./token/data/HttpTokenDataSource";export*from"./token/data/TokenDataSource";export*from"./token/domain/TokenContextFieldLoader";export*from"./token/domain/TokenContextLoader";export*from"./trusted-name/data/HttpTrustedNameDataSource";export*from"./trusted-name/data/TrustedNameDataSource";export*from"./trusted-name/domain/TrustedNameContextFieldLoader";export*from"./trusted-name/domain/TrustedNameContextLoader";export*from"./typed-data/data/HttpTypedDataDataSource";export*from"./typed-data/data/TypedDataDataSource";export*from"./typed-data/domain/DefaultTypedDataContextLoader";export*from"./typed-data/domain/TypedDataContextLoader";export*from"./typed-data/utils/getSchemaHash";export*from"./uniswap/data/AbiDecoderDataSource";export*from"./uniswap/data/CommandDecoderDataSource";export*from"./uniswap/data/DefaultCommandDecoderDataSource";export*from"./uniswap/data/EthersAbiDecoderDataSource";export*from"./uniswap/domain/UniswapContextLoader";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/src/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["export * from \"./calldata/data/CalldataDescriptorDataSource\";\nexport * from \"./calldata/data/HttpCalldataDescriptorDataSource\";\nexport * from \"./calldata/domain/CalldataContextLoader\";\nexport
|
|
5
|
-
"mappings": "AAAA,WAAc,+CACd,WAAc,mDACd,WAAc,
|
|
4
|
+
"sourcesContent": ["export * from \"./account-ownership/data/AccountOwnershipDataSource\";\nexport * from \"./account-ownership/data/AccountOwnershipError\";\nexport * from \"./account-ownership/data/HttpAccountOwnershipDataSource\";\nexport * from \"./account-ownership/domain/AccountOwnershipContextLoader\";\nexport * from \"./calldata/data/CalldataDescriptorDataSource\";\nexport * from \"./calldata/data/HttpCalldataDescriptorDataSource\";\nexport * from \"./calldata/domain/CalldataContextLoader\";\nexport type {\n ContextModuleCalBranch,\n ContextModuleCalConfig,\n ContextModuleCalMode,\n ContextModuleConfig,\n ContextModuleDatasourceConfig,\n ContextModuleMetadataServiceConfig,\n ContextModuleReporterConfig,\n ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nexport * from \"./ContextModule\";\nexport * from \"./ContextModuleBuilder\";\nexport * from \"./DefaultContextModule\";\nexport * from \"./dynamic-network/data/DynamicNetworkDataSource\";\nexport * from \"./dynamic-network/data/HttpDynamicNetworkDataSource\";\nexport * from \"./dynamic-network/domain/DynamicNetworkContextLoader\";\nexport * from \"./dynamic-network/model/DynamicNetworkConfiguration\";\nexport * from \"./external-plugin/data/ExternalPluginDataSource\";\nexport * from \"./external-plugin/data/HttpExternalPluginDataSource\";\nexport * from \"./external-plugin/domain/ExternalPluginContextLoader\";\nexport * from \"./gated-signing/data/GatedDescriptorDataSource\";\nexport * from \"./gated-signing/data/HttpGatedDescriptorDataSource\";\nexport * from \"./gated-signing/domain/GatedSigningContextLoader\";\nexport * from \"./gated-signing/domain/GatedSigningTypedDataContextLoader\";\nexport * from \"./nft/data/HttpNftDataSource\";\nexport * from \"./nft/data/NftDataSource\";\nexport * from \"./nft/domain/NftContextFieldLoader\";\nexport * from \"./nft/domain/NftContextLoader\";\nexport * from \"./pki/data/HttpPkiCertificateDataSource\";\nexport * from \"./pki/data/PkiCertificateDataSource\";\nexport * from \"./pki/domain/DefaultPkiCertificateLoader\";\nexport * from \"./pki/domain/PkiCertificateLoader\";\nexport * from \"./pki/model/KeyId\";\nexport * from \"./pki/model/KeyUsage\";\nexport * from \"./pki/model/PkiCertificate\";\nexport * from \"./pki/model/PkiCertificateInfo\";\nexport * from \"./proxy/data/HttpProxyDataSource\";\nexport * from \"./proxy/data/HttpSafeProxyDataSource\";\nexport * from \"./proxy/data/ProxyDataSource\";\nexport * from \"./proxy/domain/ProxyContextFieldLoader\";\nexport * from \"./reporter/data/BlindSigningReporterDatasource\";\nexport * from \"./reporter/data/HttpBlindSigningReporterDatasource\";\nexport * from \"./reporter/domain/BlindSigningReporter\";\nexport * from \"./reporter/domain/DefaultBlindSigningReporter\";\nexport * from \"./reporter/model/BlindSigningEvent\";\nexport * from \"./reporter/model/BlindSigningModelId\";\nexport * from \"./shared/domain/ContextFieldLoader\";\nexport * from \"./shared/domain/ContextLoader\";\nexport * from \"./shared/model/ClearSignContext\";\nexport * from \"./shared/model/GenericPath\";\nexport * from \"./shared/model/SolanaContextTypes\";\nexport * from \"./shared/model/TransactionSubset\";\nexport * from \"./shared/model/TypedDataClearSignContext\";\nexport * from \"./shared/model/TypedDataContext\";\nexport * from \"./solana/data/HttpSolanaOwnerInfoDataSource\";\nexport * from \"./solana/data/SolanaDataSource\";\nexport * from \"./solana/domain/DefaultSolanaContextLoader\";\nexport * from \"./solana/domain/SolanaContextLoader\";\nexport * from \"./solana/domain/solanaContextTypes\";\nexport * from \"./token/data/HttpTokenDataSource\";\nexport * from \"./token/data/TokenDataSource\";\nexport * from \"./token/domain/TokenContextFieldLoader\";\nexport * from \"./token/domain/TokenContextLoader\";\nexport * from \"./trusted-name/data/HttpTrustedNameDataSource\";\nexport * from \"./trusted-name/data/TrustedNameDataSource\";\nexport * from \"./trusted-name/domain/TrustedNameContextFieldLoader\";\nexport * from \"./trusted-name/domain/TrustedNameContextLoader\";\nexport * from \"./typed-data/data/HttpTypedDataDataSource\";\nexport * from \"./typed-data/data/TypedDataDataSource\";\nexport * from \"./typed-data/domain/DefaultTypedDataContextLoader\";\nexport * from \"./typed-data/domain/TypedDataContextLoader\";\nexport * from \"./typed-data/utils/getSchemaHash\";\nexport * from \"./uniswap/data/AbiDecoderDataSource\";\nexport * from \"./uniswap/data/CommandDecoderDataSource\";\nexport * from \"./uniswap/data/DefaultCommandDecoderDataSource\";\nexport * from \"./uniswap/data/EthersAbiDecoderDataSource\";\nexport * from \"./uniswap/domain/UniswapContextLoader\";\n"],
|
|
5
|
+
"mappings": "AAAA,WAAc,sDACd,WAAc,iDACd,WAAc,0DACd,WAAc,2DACd,WAAc,+CACd,WAAc,mDACd,WAAc,0CAWd,WAAc,kBACd,WAAc,yBACd,WAAc,yBACd,WAAc,kDACd,WAAc,sDACd,WAAc,uDACd,WAAc,sDACd,WAAc,kDACd,WAAc,sDACd,WAAc,uDACd,WAAc,iDACd,WAAc,qDACd,WAAc,mDACd,WAAc,4DACd,WAAc,+BACd,WAAc,2BACd,WAAc,qCACd,WAAc,gCACd,WAAc,0CACd,WAAc,sCACd,WAAc,2CACd,WAAc,oCACd,WAAc,oBACd,WAAc,uBACd,WAAc,6BACd,WAAc,iCACd,WAAc,mCACd,WAAc,uCACd,WAAc,+BACd,WAAc,yCACd,WAAc,iDACd,WAAc,qDACd,WAAc,yCACd,WAAc,gDACd,WAAc,qCACd,WAAc,uCACd,WAAc,qCACd,WAAc,gCACd,WAAc,kCACd,WAAc,6BACd,WAAc,oCACd,WAAc,mCACd,WAAc,2CACd,WAAc,kCACd,WAAc,8CACd,WAAc,iCACd,WAAc,6CACd,WAAc,sCACd,WAAc,qCACd,WAAc,mCACd,WAAc,+BACd,WAAc,yCACd,WAAc,oCACd,WAAc,gDACd,WAAc,4CACd,WAAc,sDACd,WAAc,iDACd,WAAc,4CACd,WAAc,wCACd,WAAc,oDACd,WAAc,6CACd,WAAc,mCACd,WAAc,sCACd,WAAc,0CACd,WAAc,iDACd,WAAc,4CACd,WAAc",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{DmkNetworkClient as t}from"@ledgerhq/device-management-kit";import{ContainerModule as r}from"inversify";import{networkTypes as n}from"../../network/di/networkTypes";import{LEDGER_CLIENT_VERSION_HEADER as i,LEDGER_ORIGIN_TOKEN_HEADER as m}from"../../shared/constant/HttpHeaders";import E from"../../../package.json";const w=o=>new r(({bind:e})=>{e(n.NetworkClient).toConstantValue(new t({headers:{[i]:`context-module/${E.version}`,...o.originToken&&{[m]:o.originToken}}}))});export{w as networkModuleFactory};
|
|
2
|
+
//# sourceMappingURL=networkModuleFactory.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/network/di/networkModuleFactory.ts"],
|
|
4
|
+
"sourcesContent": ["import { DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { ContainerModule } from \"inversify\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nexport const networkModuleFactory = (config: ContextModuleServiceConfig) =>\n new ContainerModule(({ bind }) => {\n bind<DmkNetworkClient>(networkTypes.NetworkClient).toConstantValue(\n new DmkNetworkClient({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n ...(config.originToken && {\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n }),\n },\n }),\n );\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,oBAAAA,MAAwB,kCACjC,OAAS,mBAAAC,MAAuB,YAGhC,OAAS,gBAAAC,MAAoB,4BAC7B,OACE,gCAAAC,EACA,8BAAAC,MACK,gCACP,OAAOC,MAAa,qBAEb,MAAMC,EAAwBC,GACnC,IAAIN,EAAgB,CAAC,CAAE,KAAAO,CAAK,IAAM,CAChCA,EAAuBN,EAAa,aAAa,EAAE,gBACjD,IAAIF,EAAiB,CACnB,QAAS,CACP,CAACG,CAA4B,EAAG,kBAAkBE,EAAQ,OAAO,GACjE,GAAIE,EAAO,aAAe,CACxB,CAACH,CAA0B,EAAGG,EAAO,WACvC,CACF,CACF,CAAC,CACH,CACF,CAAC",
|
|
6
|
+
"names": ["DmkNetworkClient", "ContainerModule", "networkTypes", "LEDGER_CLIENT_VERSION_HEADER", "LEDGER_ORIGIN_TOKEN_HEADER", "PACKAGE", "networkModuleFactory", "config", "bind"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/network/di/networkTypes.ts"],
|
|
4
|
+
"sourcesContent": ["export const networkTypes = {\n NetworkClient: Symbol.for(\"networkClient\"),\n};\n"],
|
|
5
|
+
"mappings": "AAAO,MAAMA,EAAe,CAC1B,cAAe,OAAO,IAAI,eAAe,CAC3C",
|
|
6
|
+
"names": ["networkTypes"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var d=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=(a,e,o,t)=>{for(var r=t>1?void 0:t?u(e,o):e,l=a.length-1,s;l>=0;l--)(s=a[l])&&(r=(t?s(e,o,r):s(r))||r);return t&&r&&d(e,o,r),r},m=(a,e)=>(o,t)=>e(o,t,a);import{inject as p,injectable as g}from"inversify";import{Left as n,Right as f}from"purify-ts";import{configTypes as y}from"../../config/di/configTypes";import{networkTypes as h}from"../../network/di/networkTypes";let i=class{constructor(e,o){this.config=e;this.http=o}async getSetPluginPayload({chainId:e,address:o,selector:t}){try{const r=await this.http.get(`${this.config.metadataServiceDomain.url}/v1/ethereum/${e}/contracts/${o}/plugin-selector/${t}`);return r.payload?f(r.payload):n(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}catch{return n(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}}async getNftInfosPayload({chainId:e,address:o}){try{const t=await this.http.get(`${this.config.metadataServiceDomain.url}/v1/ethereum/${e}/contracts/${o}`);return t.payload?f(t.payload):n(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}catch{return n(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}}};i=c([g(),m(0,p(y.Config)),m(1,p(h.NetworkClient))],i);export{i as HttpNftDataSource};
|
|
2
2
|
//# sourceMappingURL=HttpNftDataSource.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/nft/data/HttpNftDataSource.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\nimport {\n GetNftInformationsParams,\n GetSetPluginPayloadParams,\n NftDataSource,\n} from \"@/nft/data/NftDataSource\";\n\n@injectable()\nexport class HttpNftDataSource implements NftDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(networkTypes.NetworkClient)\n private readonly http: DmkNetworkClient,\n ) {}\n\n public async getSetPluginPayload({\n chainId,\n address,\n selector,\n }: GetSetPluginPayloadParams): Promise<Either<Error, string>> {\n try {\n const data = (await this.http.get(\n `${this.config.metadataServiceDomain.url}/v1/ethereum/${chainId}/contracts/${address}/plugin-selector/${selector}`,\n )) as { payload: string };\n\n return data.payload\n ? Right(data.payload)\n : Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n }\n }\n\n public async getNftInfosPayload({\n chainId,\n address,\n }: GetNftInformationsParams): Promise<Either<Error, string>> {\n try {\n const data = (await this.http.get(\n `${this.config.metadataServiceDomain.url}/v1/ethereum/${chainId}/contracts/${address}`,\n )) as { payload: string };\n\n return data.payload\n ? Right(data.payload)\n : Left(new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"));\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "iOACA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,MAAa,YAEpC,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,gBAAAC,MAAoB,4BAQtB,IAAMC,EAAN,KAAiD,CACtD,YAEmBC,EAEAC,EACjB,CAHiB,YAAAD,EAEA,UAAAC,CAChB,CAEH,MAAa,oBAAoB,CAC/B,QAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAA8D,CAC5D,GAAI,CACF,MAAMC,EAAQ,MAAM,KAAK,KAAK,IAC5B,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBH,CAAO,cAAcC,CAAO,oBAAoBC,CAAQ,EAClH,EAEA,OAAOC,EAAK,QACRC,EAAMD,EAAK,OAAO,EAClBE,EACE,IAAI,MACF,8DACF,CACF,CACN,MAAiB,CACf,OAAOA,EACL,IAAI,MACF,uEACF,CACF,CACF,CACF,CAEA,MAAa,mBAAmB,CAC9B,QAAAL,EACA,QAAAC,CACF,EAA6D,CAC3D,GAAI,CACF,MAAME,EAAQ,MAAM,KAAK,KAAK,IAC5B,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBH,CAAO,cAAcC,CAAO,EACtF,EAEA,OAAOE,EAAK,QACRC,EAAMD,EAAK,OAAO,EAClBE,EAAK,IAAI,MAAM,oDAAoD,CAAC,CAC1E,MAAiB,CACf,OAAOA,EACL,IAAI,MACF,qEACF,CACF,CACF,CACF,CACF,EAtDaR,EAANS,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAY,MAAM,GAEzBF,EAAA,EAAAC,EAAOE,EAAa,aAAa,IAJzBd",
|
|
6
|
+
"names": ["inject", "injectable", "Left", "Right", "configTypes", "networkTypes", "HttpNftDataSource", "config", "http", "chainId", "address", "selector", "data", "Right", "Left", "__decorateClass", "injectable", "__decorateParam", "inject", "configTypes", "networkTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{HttpNftDataSource as o}from"./HttpNftDataSource";const r={web3checks:{url:"web3checksUrl"},metadataServiceDomain:{url:"https://nft.api.live.ledger.com"},originToken:"originToken"};describe("HttpNftDataSource",()=>{let a,e;beforeEach(()=>{e={get:vi.fn()},a=new o(r,e)}),describe("getNftInfosPayload",()=>{it("should call the expected metadata service URL",async()=>{e.get.mockResolvedValue({payload:"payload"}),await a.getNftInfosPayload({address:"0x00",chainId:1}),expect(e.get).toHaveBeenCalledWith("https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00")}),it("should return an error when the network client throws",async()=>{e.get.mockRejectedValue(new Error("error"));const t=await a.getNftInfosPayload({address:"0x00",chainId:1});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}),it("should return an error when the response has no payload",async()=>{e.get.mockResolvedValue({});const t=await a.getNftInfosPayload({address:"0x00",chainId:1});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}),it("should return the payload",async()=>{e.get.mockResolvedValue({payload:"payload"});const t=await a.getNftInfosPayload({address:"0x00",chainId:1});expect(t.extract()).toEqual("payload")})}),describe("getSetPluginPayload",()=>{it("should call the expected metadata service URL",async()=>{e.get.mockResolvedValue({payload:"payload"}),await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"}),expect(e.get).toHaveBeenCalledWith("https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00/plugin-selector/0x00")}),it("should return an error when the network client throws",async()=>{e.get.mockRejectedValue(new Error("error"));const t=await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}),it("should return an error when the response has no payload",async()=>{e.get.mockResolvedValue({});const t=await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}),it("should return the payload",async()=>{e.get.mockResolvedValue({payload:"payload"});const t=await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(t.extract()).toEqual("payload")})})});
|
|
2
2
|
//# sourceMappingURL=HttpNftDataSource.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/nft/data/HttpNftDataSource.test.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\n\nimport { HttpNftDataSource } from \"./HttpNftDataSource\";\nimport { type NftDataSource } from \"./NftDataSource\";\n\nconst config = {\n web3checks: {\n url: \"web3checksUrl\",\n },\n metadataServiceDomain: {\n url: \"https://nft.api.live.ledger.com\",\n },\n originToken: \"originToken\",\n} as ContextModuleServiceConfig;\n\ndescribe(\"HttpNftDataSource\", () => {\n let datasource: NftDataSource;\n let httpMock: { get: ReturnType<typeof vi.fn> };\n\n beforeEach(() => {\n httpMock = { get: vi.fn() };\n datasource = new HttpNftDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"getNftInfosPayload\", () => {\n it(\"should call the expected metadata service URL\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n await datasource.getNftInfosPayload({ address: \"0x00\", chainId: 1 });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n \"https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00\",\n );\n });\n\n it(\"should return an error when the network client throws\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"error\"));\n\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n });\n\n it(\"should return an error when the response has no payload\", async () => {\n httpMock.get.mockResolvedValue({});\n\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n expect(result.extract()).toEqual(\n new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"),\n );\n });\n\n it(\"should return the payload\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n expect(result.extract()).toEqual(\"payload\");\n });\n });\n\n describe(\"getSetPluginPayload\", () => {\n it(\"should call the expected metadata service URL\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n \"https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00/plugin-selector/0x00\",\n );\n });\n\n it(\"should return an error when the network client throws\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"error\"));\n\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n });\n\n it(\"should return an error when the response has no payload\", async () => {\n httpMock.get.mockResolvedValue({});\n\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n });\n\n it(\"should return the payload\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(result.extract()).toEqual(\"payload\");\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAIA,OAAS,qBAAAA,MAAyB,sBAGlC,MAAMC,EAAS,CACb,WAAY,CACV,IAAK,eACP,EACA,sBAAuB,CACrB,IAAK,iCACP,EACA,YAAa,aACf,EAEA,SAAS,oBAAqB,IAAM,CAClC,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACfA,EAAW,CAAE,IAAK,GAAG,GAAG,CAAE,EAC1BD,EAAa,IAAIF,EACfC,EACAE,CACF,CACF,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,GAAG,gDAAiD,SAAY,CAC9DA,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMD,EAAW,mBAAmB,CAAE,QAAS,OAAQ,QAAS,CAAE,CAAC,EAEnE,OAAOC,EAAS,GAAG,EAAE,qBACnB,8DACF,CACF,CAAC,EAED,GAAG,wDAAyD,SAAY,CACtEA,EAAS,IAAI,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAEjD,MAAMC,EAAS,MAAMF,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,qEACF,CACF,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CACxED,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAEjC,MAAMC,EAAS,MAAMF,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MAAM,oDAAoD,CAChE,CACF,CAAC,EAED,GAAG,4BAA6B,SAAY,CAC1CD,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMC,EAAS,MAAMF,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QAAQ,SAAS,CAC5C,CAAC,CACH,CAAC,EAED,SAAS,sBAAuB,IAAM,CACpC,GAAG,gDAAiD,SAAY,CAC9DD,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMD,EAAW,oBAAoB,CACnC,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOC,EAAS,GAAG,EAAE,qBACnB,mFACF,CACF,CAAC,EAED,GAAG,wDAAyD,SAAY,CACtEA,EAAS,IAAI,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAEjD,MAAMC,EAAS,MAAMF,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,uEACF,CACF,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CACxED,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAEjC,MAAMC,EAAS,MAAMF,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8DACF,CACF,CACF,CAAC,EAED,GAAG,4BAA6B,SAAY,CAC1CD,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMC,EAAS,MAAMF,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QAAQ,SAAS,CAC5C,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["HttpNftDataSource", "config", "datasource", "httpMock", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var u=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=(o,e,r,t)=>{for(var i=t>1?void 0:t?l(e,r):e,a=o.length-1,n;a>=0;a--)(n=o[a])&&(i=(t?n(e,r,i):n(i))||i);return t&&i&&u(e,r,i),i},c=(o,e)=>(r,t)=>e(r,t,o);import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import{inject as d,injectable as g}from"inversify";import{Left as f,Right as y}from"purify-ts";import{configTypes as C}from"../../config/di/configTypes";import{networkTypes as k}from"../../network/di/networkTypes";import{SIGNATURE_TAG as h}from"../../shared/model/SignatureTags";import{HexStringUtils as P}from"../../shared/utils/HexStringUtils";import{KeyUsageMapper as _}from"../../shared/utils/KeyUsageMapper";let s=class{constructor(e,r){this.config=e;this.http=r}async fetchCertificate(e){const r={output:"descriptor",target_device:e.targetDevice,latest:!0,public_key_id:e.keyId,public_key_usage:e.keyUsage};try{const t=await this.http.get(`${this.config.cal.url}/certificates`,{params:{output:r.output,target_device:r.target_device,latest:r.latest,public_key_id:r.public_key_id,public_key_usage:r.public_key_usage}});if(Array.isArray(t)&&t.length>0&&this.isValidPkiCertificateResponse(t[0],this.config.cal.mode)){const i=m(P.appendSignatureToPayload(t[0].descriptor.data,t[0].descriptor.signatures[this.config.cal.mode],h));if(!i)return f(Error("[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate"));const a={payload:i,keyUsageNumber:_.mapKeyUsageForFirmware(e.keyUsage)};return y(a)}else return f(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor"))}catch{return f(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor"))}}isValidPkiCertificateResponse(e,r){if(!this.isRecord(e)||!this.isRecord(e.descriptor))return!1;const t=e.descriptor;return typeof t.data!="string"||!this.isRecord(t.signatures)?!1:typeof t.signatures[r]=="string"}isRecord(e){return typeof e=="object"&&e!==null}};s=p([g(),c(0,d(C.Config)),c(1,d(k.NetworkClient))],s);export{s as HttpPkiCertificateDataSource};
|
|
2
2
|
//# sourceMappingURL=HttpPkiCertificateDataSource.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/pki/data/HttpPkiCertificateDataSource.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "iOAAA,
|
|
6
|
-
"names": ["hexaStringToBuffer", "
|
|
4
|
+
"sourcesContent": ["import {\n DmkNetworkClient,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type {\n ContextModuleCalMode,\n ContextModuleServiceConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\nimport { PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\nimport { SIGNATURE_TAG } from \"@/shared/model/SignatureTags\";\nimport { HexStringUtils } from \"@/shared/utils/HexStringUtils\";\nimport { KeyUsageMapper } from \"@/shared/utils/KeyUsageMapper\";\n\nimport { type PkiCertificateDataSource } from \"./PkiCertificateDataSource\";\nimport {\n type PkiCertificateRequestDto,\n type PkiCertificateResponseDto,\n} from \"./pkiDataSourceTypes\";\n\n@injectable()\nexport class HttpPkiCertificateDataSource implements PkiCertificateDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(networkTypes.NetworkClient)\n private readonly http: DmkNetworkClient,\n ) {}\n\n async fetchCertificate(\n pkiCertificateInfo: PkiCertificateInfo,\n ): Promise<Either<Error, PkiCertificate | undefined>> {\n const requestDto: PkiCertificateRequestDto = {\n output: \"descriptor\",\n target_device: pkiCertificateInfo.targetDevice,\n latest: true,\n public_key_id: pkiCertificateInfo.keyId,\n public_key_usage: pkiCertificateInfo.keyUsage,\n };\n\n try {\n const data = await this.http.get(`${this.config.cal.url}/certificates`, {\n params: {\n output: requestDto.output,\n target_device: requestDto.target_device,\n latest: requestDto.latest,\n public_key_id: requestDto.public_key_id,\n public_key_usage: requestDto.public_key_usage,\n },\n });\n\n if (\n Array.isArray(data) &&\n data.length > 0 &&\n this.isValidPkiCertificateResponse(data[0], this.config.cal.mode)\n ) {\n const payload = hexaStringToBuffer(\n HexStringUtils.appendSignatureToPayload(\n data[0].descriptor.data,\n data[0].descriptor.signatures[this.config.cal.mode],\n SIGNATURE_TAG,\n ),\n );\n if (!payload) {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate\",\n ),\n );\n }\n const pkiCertificate: PkiCertificate = {\n payload: payload,\n keyUsageNumber: KeyUsageMapper.mapKeyUsageForFirmware(\n pkiCertificateInfo.keyUsage,\n ),\n };\n return Right(pkiCertificate);\n } else {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n );\n }\n } catch (_error) {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n );\n }\n }\n\n private isValidPkiCertificateResponse(\n value: unknown,\n mode: ContextModuleCalMode,\n ): value is PkiCertificateResponseDto {\n if (!this.isRecord(value) || !this.isRecord(value[\"descriptor\"])) {\n return false;\n }\n const descriptor = value[\"descriptor\"];\n if (\n typeof descriptor[\"data\"] !== \"string\" ||\n !this.isRecord(descriptor[\"signatures\"])\n ) {\n return false;\n }\n return typeof descriptor[\"signatures\"][mode] === \"string\";\n }\n\n private isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n }\n}\n"],
|
|
5
|
+
"mappings": "iOAAA,OAEE,sBAAAA,MACK,kCACP,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,MAAa,YAEpC,OAAS,eAAAC,MAAmB,0BAK5B,OAAS,gBAAAC,MAAoB,4BAG7B,OAAS,iBAAAC,MAAqB,+BAC9B,OAAS,kBAAAC,MAAsB,gCAC/B,OAAS,kBAAAC,MAAsB,gCASxB,IAAMC,EAAN,KAAuE,CAC5E,YAEmBC,EAEAC,EACjB,CAHiB,YAAAD,EAEA,UAAAC,CAChB,CAEH,MAAM,iBACJC,EACoD,CACpD,MAAMC,EAAuC,CAC3C,OAAQ,aACR,cAAeD,EAAmB,aAClC,OAAQ,GACR,cAAeA,EAAmB,MAClC,iBAAkBA,EAAmB,QACvC,EAEA,GAAI,CACF,MAAME,EAAO,MAAM,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,gBAAiB,CACtE,OAAQ,CACN,OAAQD,EAAW,OACnB,cAAeA,EAAW,cAC1B,OAAQA,EAAW,OACnB,cAAeA,EAAW,cAC1B,iBAAkBA,EAAW,gBAC/B,CACF,CAAC,EAED,GACE,MAAM,QAAQC,CAAI,GAClBA,EAAK,OAAS,GACd,KAAK,8BAA8BA,EAAK,CAAC,EAAG,KAAK,OAAO,IAAI,IAAI,EAChE,CACA,MAAMC,EAAUC,EACdC,EAAe,yBACbH,EAAK,CAAC,EAAE,WAAW,KACnBA,EAAK,CAAC,EAAE,WAAW,WAAW,KAAK,OAAO,IAAI,IAAI,EAClDI,CACF,CACF,EACA,GAAI,CAACH,EACH,OAAOI,EACL,MACE,oGACF,CACF,EAEF,MAAMC,EAAiC,CACrC,QAASL,EACT,eAAgBM,EAAe,uBAC7BT,EAAmB,QACrB,CACF,EACA,OAAOU,EAAMF,CAAc,CAC7B,KACE,QAAOD,EACL,MACE,wFACF,CACF,CAEJ,MAAiB,CACf,OAAOA,EACL,MACE,wFACF,CACF,CACF,CACF,CAEQ,8BACNI,EACAC,EACoC,CACpC,GAAI,CAAC,KAAK,SAASD,CAAK,GAAK,CAAC,KAAK,SAASA,EAAM,UAAa,EAC7D,MAAO,GAET,MAAME,EAAaF,EAAM,WACzB,OACE,OAAOE,EAAW,MAAY,UAC9B,CAAC,KAAK,SAASA,EAAW,UAAa,EAEhC,GAEF,OAAOA,EAAW,WAAcD,CAAI,GAAM,QACnD,CAEQ,SAASD,EAAkD,CACjE,OAAO,OAAOA,GAAU,UAAYA,IAAU,IAChD,CACF,EA5Fad,EAANiB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAY,MAAM,GAEzBF,EAAA,EAAAC,EAAOE,EAAa,aAAa,IAJzBtB",
|
|
6
|
+
"names": ["hexaStringToBuffer", "inject", "injectable", "Left", "Right", "configTypes", "networkTypes", "SIGNATURE_TAG", "HexStringUtils", "KeyUsageMapper", "HttpPkiCertificateDataSource", "config", "http", "pkiCertificateInfo", "requestDto", "data", "payload", "hexaStringToBuffer", "HexStringUtils", "SIGNATURE_TAG", "Left", "pkiCertificate", "KeyUsageMapper", "Right", "value", "mode", "descriptor", "__decorateClass", "injectable", "__decorateParam", "inject", "configTypes", "networkTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{Left as c,Right as n}from"purify-ts";import{HttpPkiCertificateDataSource as f}from"../../pki/data/HttpPkiCertificateDataSource";import{KeyUsage as r}from"../../pki/model/KeyUsage";describe("HttpPkiCertificateDataSource",()=>{const o={cal:{url:"https://cal.com",mode:"test",branch:"main"}};let t,i;beforeEach(()=>{vi.clearAllMocks(),t={get:vi.fn()},i=new f(o,t)}),describe("fetchCertificate",()=>{it("should return certificate",async()=>{const e={targetDevice:"targetDevice",keyUsage:r.Calldata,keyId:"keyId"};t.get.mockResolvedValue([{descriptor:{data:"01020304",signatures:{test:"05060708"}}}]);const a=await i.fetchCertificate(e);expect(a).toEqual(n({keyUsageNumber:11,payload:new Uint8Array([1,2,3,4,21,4,5,6,7,8])}))}),it("should call the network client with the expected URL and params",async()=>{const e={targetDevice:"targetDevice",keyUsage:r.Calldata,keyId:"keyId"};t.get.mockResolvedValue([]),await i.fetchCertificate(e),expect(t.get).toHaveBeenCalledWith("https://cal.com/certificates",{params:{output:"descriptor",target_device:"targetDevice",latest:!0,public_key_id:"keyId",public_key_usage:r.Calldata}})}),it("should return an error when certificate is not found",async()=>{const e={targetDevice:"targetDevice",keyUsage:r.Calldata,keyId:"keyId"};t.get.mockResolvedValue([]);const a=await i.fetchCertificate(e);expect(a).toEqual(c(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor")))}),it("should return an error when network client throws",async()=>{const e={targetDevice:"targetDevice",keyUsage:r.Calldata,keyId:"keyId"};t.get.mockRejectedValue(new Error("error"));const a=await i.fetchCertificate(e);expect(a).toEqual(c(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor")))}),it("should return an error when payload cannot be generated",async()=>{const e={targetDevice:"targetDevice",keyUsage:r.Calldata,keyId:"keyId"};t.get.mockResolvedValue([{descriptor:{data:"corrupteddata",signatures:{test:"05060708"}}}]);const a=await i.fetchCertificate(e);expect(a).toEqual(c(Error("[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate")))})})});
|
|
2
2
|
//# sourceMappingURL=HttpPkiCertificateDataSource.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/pki/data/HttpPkiCertificateDataSource.test.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpPkiCertificateDataSource } from \"@/pki/data/HttpPkiCertificateDataSource\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\n\ndescribe(\"HttpPkiCertificateDataSource\", () => {\n const config = {\n cal: {\n url: \"https://cal.com\",\n mode: \"test\",\n branch: \"main\",\n },\n } as ContextModuleServiceConfig;\n\n let httpMock: { get: ReturnType<typeof vi.fn> };\n let datasource: HttpPkiCertificateDataSource;\n\n beforeEach(() => {\n vi.clearAllMocks();\n httpMock = { get: vi.fn() };\n datasource = new HttpPkiCertificateDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"fetchCertificate\", () => {\n it(\"should return certificate\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([\n {\n descriptor: {\n data: \"01020304\",\n signatures: {\n test: \"05060708\",\n },\n },\n },\n ]);\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Right({\n keyUsageNumber: 11,\n payload: new Uint8Array([\n 0x01, 0x02, 0x03, 0x04, 0x15, 0x04, 0x05, 0x06, 0x07, 0x08,\n ]),\n }),\n );\n });\n\n it(\"should call the network client with the expected URL and params\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([]);\n\n // WHEN\n await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(httpMock.get).toHaveBeenCalledWith(\n \"https://cal.com/certificates\",\n {\n params: {\n output: \"descriptor\",\n target_device: \"targetDevice\",\n latest: true,\n public_key_id: \"keyId\",\n public_key_usage: KeyUsage.Calldata,\n },\n },\n );\n });\n\n it(\"should return an error when certificate is not found\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([]);\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n ),\n );\n });\n\n it(\"should return an error when network client throws\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n ),\n );\n });\n\n it(\"should return an error when payload cannot be generated\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([\n {\n descriptor: {\n data: \"corrupteddata\",\n signatures: {\n test: \"05060708\",\n },\n },\n },\n ]);\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate\",\n ),\n ),\n );\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,QAAAA,EAAM,SAAAC,MAAa,YAG5B,OAAS,gCAAAC,MAAoC,0CAC7C,OAAS,YAAAC,MAAgB,uBAGzB,SAAS,+BAAgC,IAAM,CAC7C,MAAMC,EAAS,CACb,IAAK,CACH,IAAK,kBACL,KAAM,OACN,OAAQ,MACV,CACF,EAEA,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBD,EAAW,CAAE,IAAK,GAAG,GAAG,CAAE,EAC1BC,EAAa,IAAIJ,EACfE,EACAC,CACF,CACF,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,GAAG,4BAA6B,SAAY,CAE1C,MAAME,EAAyC,CAC7C,aAAc,eACd,SAAUJ,EAAS,SACnB,MAAO,OACT,EACAE,EAAS,IAAI,kBAAkB,CAC7B,CACE,WAAY,CACV,KAAM,WACN,WAAY,CACV,KAAM,UACR,CACF,CACF,CACF,CAAC,EAGD,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,QACbP,EAAM,CACJ,eAAgB,GAChB,QAAS,IAAI,WAAW,CACtB,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,CACxD,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAED,GAAG,kEAAmE,SAAY,CAEhF,MAAMM,EAAyC,CAC7C,aAAc,eACd,SAAUJ,EAAS,SACnB,MAAO,OACT,EACAE,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAGjC,MAAMC,EAAW,iBAAiBC,CAAkB,EAGpD,OAAOF,EAAS,GAAG,EAAE,qBACnB,+BACA,CACE,OAAQ,CACN,OAAQ,aACR,cAAe,eACf,OAAQ,GACR,cAAe,QACf,iBAAkBF,EAAS,QAC7B,CACF,CACF,CACF,CAAC,EAED,GAAG,uDAAwD,SAAY,CAErE,MAAMI,EAAyC,CAC7C,aAAc,eACd,SAAUJ,EAAS,SACnB,MAAO,OACT,EACAE,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAGjC,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,QACbR,EACE,MACE,wFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMO,EAAyC,CAC7C,aAAc,eACd,SAAUJ,EAAS,SACnB,MAAO,OACT,EACAE,EAAS,IAAI,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAGjD,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,QACbR,EACE,MACE,wFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAMO,EAAyC,CAC7C,aAAc,eACd,SAAUJ,EAAS,SACnB,MAAO,OACT,EACAE,EAAS,IAAI,kBAAkB,CAC7B,CACE,WAAY,CACV,KAAM,gBACN,WAAY,CACV,KAAM,UACR,CACF,CACF,CACF,CAAC,EAGD,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,QACbR,EACE,MACE,oGACF,CACF,CACF,CACF,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["Left", "Right", "HttpPkiCertificateDataSource", "KeyUsage", "config", "httpMock", "datasource", "pkiCertificateInfo", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var y=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var d=(n,e,r,i)=>{for(var o=i>1?void 0:i?f(e,r):e,t=n.length-1,a;t>=0;t--)(a=n[t])&&(o=(i?a(e,r,o):a(o))||o);return i&&o&&y(e,r,o),o},l=(n,e)=>(r,i)=>e(r,i,n);import{inject as p,injectable as c}from"inversify";import{Left as s,Right as g}from"purify-ts";import{configTypes as x}from"../../config/di/configTypes";import{networkTypes as D}from"../../network/di/networkTypes";import{KeyId as u}from"../../pki/model/KeyId";import{KeyUsage as C}from"../../pki/model/KeyUsage";let m=class{constructor(e,r){this.config=e;this.http=r}async getProxyImplementationAddress({proxyAddress:e,chainId:r,challenge:i,calldata:o}){let t;try{t=await this.http.post(`${this.config.metadataServiceDomain.url}/v2/ethereum/${r}/contract/proxy/delegate`,{proxy:e,data:o,challenge:i})}catch{return s(new Error("[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy"))}return t?this.isProxyDelegateCallDto(t)?t.addresses[0]?g({implementationAddress:t.addresses[0],signedDescriptor:t.signedDescriptor,keyId:u.DomainMetadataKey,keyUsage:C.TrustedName}):s(new Error(`[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${e} on chain ${r}`)):s(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e} on chain ${r}`)):s(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e} on chain ${r}`))}isProxyDelegateCallDto(e){return typeof e=="object"&&e!==null&&"addresses"in e&&"signedDescriptor"in e&&Array.isArray(e.addresses)&&e.addresses.every(r=>typeof r=="string")&&typeof e.signedDescriptor=="string"}};m=d([c(),l(0,p(x.Config)),l(1,p(D.NetworkClient))],m);export{m as HttpProxyDataSource};
|
|
2
2
|
//# sourceMappingURL=HttpProxyDataSource.js.map
|