@ledgerhq/device-signer-kit-ethereum 0.0.0-rnble-transport-20250404160243 → 0.0.0-rnble-scan-permission-issue-20250929081059
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 +53 -0
- package/lib/cjs/api/SignerEth.js +1 -1
- package/lib/cjs/api/SignerEth.js.map +1 -1
- package/lib/cjs/api/SignerEthBuilder.js +1 -1
- package/lib/cjs/api/SignerEthBuilder.js.map +3 -3
- package/lib/cjs/api/SignerEthBuilder.test.js +1 -1
- package/lib/cjs/api/SignerEthBuilder.test.js.map +3 -3
- package/lib/cjs/api/app-binder/SignDelegationAuthorizationTypes.js +2 -0
- package/lib/cjs/api/app-binder/SignDelegationAuthorizationTypes.js.map +7 -0
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
- package/lib/cjs/api/index.js +1 -1
- package/lib/cjs/api/index.js.map +3 -3
- package/lib/cjs/api/model/AddressOptions.js +1 -1
- package/lib/cjs/api/model/AddressOptions.js.map +1 -1
- package/lib/cjs/api/model/ClearSigningType.js +2 -0
- package/lib/cjs/api/model/ClearSigningType.js.map +7 -0
- package/lib/cjs/api/model/MessageOptions.js +2 -0
- package/lib/cjs/api/model/MessageOptions.js.map +7 -0
- package/lib/cjs/api/model/TransactionOptions.js +1 -1
- package/lib/cjs/api/model/TransactionOptions.js.map +1 -1
- package/lib/cjs/api/model/TypedDataOptions.js +2 -0
- package/lib/cjs/api/model/TypedDataOptions.js.map +7 -0
- package/lib/cjs/internal/DefaultSignerEth.js +1 -1
- package/lib/cjs/internal/DefaultSignerEth.js.map +3 -3
- package/lib/cjs/internal/DefaultSignerEth.test.js +1 -1
- package/lib/cjs/internal/DefaultSignerEth.test.js.map +3 -3
- package/lib/cjs/internal/address/di/addressModule.js +1 -1
- package/lib/cjs/internal/address/di/addressModule.js.map +3 -3
- package/lib/cjs/internal/address/di/addressModule.test.js +1 -1
- package/lib/cjs/internal/address/di/addressModule.test.js.map +2 -2
- package/lib/cjs/internal/address/use-case/GetAddressUseCase.js +1 -1
- package/lib/cjs/internal/address/use-case/GetAddressUseCase.js.map +2 -2
- package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js +1 -1
- package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/EthAppBinder.js +1 -1
- package/lib/cjs/internal/app-binder/EthAppBinder.js.map +3 -3
- package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
- package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js.map +7 -0
- package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
- package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
- package/lib/cjs/internal/di.js +1 -1
- package/lib/cjs/internal/di.js.map +3 -3
- package/lib/cjs/internal/eip7702/di/eip7702Module.js +2 -0
- package/lib/cjs/internal/eip7702/di/eip7702Module.js.map +7 -0
- package/lib/cjs/internal/eip7702/di/eip7702Module.test.js +2 -0
- package/lib/cjs/internal/eip7702/di/eip7702Module.test.js.map +7 -0
- package/lib/cjs/internal/eip7702/di/eip7702Types.js +2 -0
- package/lib/cjs/internal/eip7702/di/eip7702Types.js.map +7 -0
- package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
- package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
- package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
- package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
- package/lib/cjs/internal/message/di/messageModule.js +1 -1
- package/lib/cjs/internal/message/di/messageModule.js.map +3 -3
- package/lib/cjs/internal/message/di/messageModule.test.js +1 -1
- package/lib/cjs/internal/message/di/messageModule.test.js.map +2 -2
- package/lib/cjs/internal/message/use-case/SignMessageUseCase.js +1 -1
- package/lib/cjs/internal/message/use-case/SignMessageUseCase.js.map +3 -3
- package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js +1 -1
- package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
- package/lib/cjs/internal/shared/utils/ApplicationChecker.js +1 -1
- package/lib/cjs/internal/shared/utils/ApplicationChecker.js.map +3 -3
- package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js +1 -1
- package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js.map +2 -2
- package/lib/cjs/internal/transaction/di/transactionModule.js +1 -1
- package/lib/cjs/internal/transaction/di/transactionModule.js.map +3 -3
- package/lib/cjs/internal/transaction/di/transactionModule.test.js +1 -1
- package/lib/cjs/internal/transaction/di/transactionModule.test.js.map +2 -2
- package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
- package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
- package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
- package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
- package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js +1 -1
- package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js.map +3 -3
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js +1 -1
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
- package/lib/cjs/internal/typed-data/di/typedDataModule.js +1 -1
- package/lib/cjs/internal/typed-data/di/typedDataModule.js.map +3 -3
- package/lib/cjs/internal/typed-data/di/typedDataModule.test.js +1 -1
- package/lib/cjs/internal/typed-data/di/typedDataModule.test.js.map +2 -2
- package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
- package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
- package/lib/cjs/internal/typed-data/service/TypedDataParser.js +1 -1
- package/lib/cjs/internal/typed-data/service/TypedDataParser.js.map +3 -3
- package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js +1 -1
- package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
- package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
- package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
- package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
- package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
- package/lib/cjs/package.json +13 -14
- package/lib/esm/api/SignerEthBuilder.js +1 -1
- package/lib/esm/api/SignerEthBuilder.js.map +3 -3
- package/lib/esm/api/SignerEthBuilder.test.js +1 -1
- package/lib/esm/api/SignerEthBuilder.test.js.map +3 -3
- package/lib/esm/api/app-binder/SignDelegationAuthorizationTypes.js +1 -0
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
- package/lib/esm/api/index.js +1 -1
- package/lib/esm/api/index.js.map +2 -2
- package/lib/esm/api/model/ClearSigningType.js +2 -0
- package/lib/esm/api/model/ClearSigningType.js.map +7 -0
- package/lib/esm/api/model/MessageOptions.js +1 -0
- package/lib/esm/api/model/MessageOptions.js.map +7 -0
- package/lib/esm/api/model/TypedDataOptions.js +1 -0
- package/lib/esm/api/model/TypedDataOptions.js.map +7 -0
- package/lib/esm/internal/DefaultSignerEth.js +1 -1
- package/lib/esm/internal/DefaultSignerEth.js.map +3 -3
- package/lib/esm/internal/DefaultSignerEth.test.js +1 -1
- package/lib/esm/internal/DefaultSignerEth.test.js.map +3 -3
- package/lib/esm/internal/address/di/addressModule.js +1 -1
- package/lib/esm/internal/address/di/addressModule.js.map +3 -3
- package/lib/esm/internal/address/di/addressModule.test.js +1 -1
- package/lib/esm/internal/address/di/addressModule.test.js.map +2 -2
- package/lib/esm/internal/address/use-case/GetAddressUseCase.js +1 -1
- package/lib/esm/internal/address/use-case/GetAddressUseCase.js.map +2 -2
- package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js +1 -1
- package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
- package/lib/esm/internal/app-binder/EthAppBinder.js +1 -1
- package/lib/esm/internal/app-binder/EthAppBinder.js.map +3 -3
- package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
- package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js +2 -0
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js.map +7 -0
- package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
- package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +1 -1
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
- package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
- package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js +1 -1
- package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
- package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
- package/lib/esm/internal/di.js +1 -1
- package/lib/esm/internal/di.js.map +3 -3
- package/lib/esm/internal/eip7702/di/eip7702Module.js +2 -0
- package/lib/esm/internal/eip7702/di/eip7702Module.js.map +7 -0
- package/lib/esm/internal/eip7702/di/eip7702Module.test.js +2 -0
- package/lib/esm/internal/eip7702/di/eip7702Module.test.js.map +7 -0
- package/lib/esm/internal/eip7702/di/eip7702Types.js +2 -0
- package/lib/esm/internal/eip7702/di/eip7702Types.js.map +7 -0
- package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
- package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
- package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
- package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
- package/lib/esm/internal/message/di/messageModule.js +1 -1
- package/lib/esm/internal/message/di/messageModule.js.map +3 -3
- package/lib/esm/internal/message/di/messageModule.test.js +1 -1
- package/lib/esm/internal/message/di/messageModule.test.js.map +2 -2
- package/lib/esm/internal/message/use-case/SignMessageUseCase.js +1 -1
- package/lib/esm/internal/message/use-case/SignMessageUseCase.js.map +3 -3
- package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js +1 -1
- package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
- package/lib/esm/internal/shared/utils/ApplicationChecker.js +1 -1
- package/lib/esm/internal/shared/utils/ApplicationChecker.js.map +3 -3
- package/lib/esm/internal/shared/utils/ApplicationChecker.test.js +1 -1
- package/lib/esm/internal/shared/utils/ApplicationChecker.test.js.map +2 -2
- package/lib/esm/internal/transaction/di/transactionModule.js +1 -1
- package/lib/esm/internal/transaction/di/transactionModule.js.map +3 -3
- package/lib/esm/internal/transaction/di/transactionModule.test.js +1 -1
- package/lib/esm/internal/transaction/di/transactionModule.test.js.map +2 -2
- package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
- package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
- package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
- package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
- package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js +0 -1
- package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js.map +4 -4
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.js +1 -1
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
- package/lib/esm/internal/typed-data/di/typedDataModule.js +1 -1
- package/lib/esm/internal/typed-data/di/typedDataModule.js.map +3 -3
- package/lib/esm/internal/typed-data/di/typedDataModule.test.js +1 -1
- package/lib/esm/internal/typed-data/di/typedDataModule.test.js.map +2 -2
- package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
- package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
- package/lib/esm/internal/typed-data/service/TypedDataParser.js +1 -1
- package/lib/esm/internal/typed-data/service/TypedDataParser.js.map +3 -3
- package/lib/esm/internal/typed-data/service/TypedDataParser.test.js +1 -1
- package/lib/esm/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
- package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
- package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
- package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
- package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
- package/lib/esm/package.json +13 -14
- package/lib/types/api/SignerEth.d.ts +8 -4
- package/lib/types/api/SignerEth.d.ts.map +1 -1
- package/lib/types/api/SignerEthBuilder.d.ts +4 -2
- package/lib/types/api/SignerEthBuilder.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts +19 -0
- package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts.map +1 -0
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +17 -12
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +11 -1
- package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/index.d.ts +5 -4
- package/lib/types/api/index.d.ts.map +1 -1
- package/lib/types/api/model/AddressOptions.d.ts +1 -0
- package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
- package/lib/types/api/model/ClearSigningType.d.ts +5 -0
- package/lib/types/api/model/ClearSigningType.d.ts.map +1 -0
- package/lib/types/api/model/MessageOptions.d.ts +4 -0
- package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
- package/lib/types/api/model/TransactionOptions.d.ts +1 -0
- package/lib/types/api/model/TransactionOptions.d.ts.map +1 -1
- package/lib/types/api/model/TypedDataOptions.d.ts +4 -0
- package/lib/types/api/model/TypedDataOptions.d.ts.map +1 -0
- package/lib/types/internal/DefaultSignerEth.d.ts +7 -3
- package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
- package/lib/types/internal/address/di/addressModule.d.ts.map +1 -1
- package/lib/types/internal/address/use-case/GetAddressUseCase.d.ts.map +1 -1
- package/lib/types/internal/app-binder/EthAppBinder.d.ts +13 -3
- package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts +28 -0
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts +20 -0
- package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +29 -1
- package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts +29 -0
- package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/utils/ethAppErrors.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +15 -36
- package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.d.ts +6 -0
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.d.ts.map +1 -0
- package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts +49 -0
- package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildBaseContexts.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildBaseContexts.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +8 -1
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.d.ts +39 -0
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.d.ts +28 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +2 -3
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.d.ts +21 -0
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ParseTransactionTask.d.ts +17 -0
- package/lib/types/internal/app-binder/task/ParseTransactionTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ParseTransactionTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/ParseTransactionTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideContextsTask.d.ts +44 -0
- package/lib/types/internal/app-binder/task/ProvideContextsTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideContextsTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/ProvideContextsTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +14 -5
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts +2 -2
- package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts +18 -0
- package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts +2 -1
- package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts +12 -0
- package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts.map +1 -0
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/eip7702/di/eip7702Module.d.ts +3 -0
- package/lib/types/internal/eip7702/di/eip7702Module.d.ts.map +1 -0
- package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts +2 -0
- package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts.map +1 -0
- package/lib/types/internal/eip7702/di/eip7702Types.d.ts +4 -0
- package/lib/types/internal/eip7702/di/eip7702Types.d.ts.map +1 -0
- package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts +8 -0
- package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts.map +1 -0
- package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts +2 -0
- package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts.map +1 -0
- package/lib/types/internal/message/di/messageModule.d.ts.map +1 -1
- package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts +2 -1
- package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts.map +1 -1
- package/lib/types/internal/shared/utils/ApplicationChecker.d.ts.map +1 -1
- package/lib/types/internal/transaction/di/transactionModule.d.ts.map +1 -1
- package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts +8 -0
- package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts.map +1 -0
- package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts +2 -0
- package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts.map +1 -0
- package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts +4 -7
- package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts.map +1 -1
- package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts +2 -2
- package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts.map +1 -1
- package/lib/types/internal/typed-data/di/typedDataModule.d.ts.map +1 -1
- package/lib/types/internal/typed-data/service/TypedDataParser.d.ts +4 -2
- package/lib/types/internal/typed-data/service/TypedDataParser.d.ts.map +1 -1
- package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts +2 -1
- package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +18 -19
- package/lib/cjs/internal/app-binder/constant/plugins.js +0 -2
- package/lib/cjs/internal/app-binder/constant/plugins.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
- package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
- package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
- package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
- package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
- package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js +0 -2
- package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js.map +0 -7
- package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
- package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
- package/lib/esm/internal/app-binder/constant/plugins.js +0 -2
- package/lib/esm/internal/app-binder/constant/plugins.js.map +0 -7
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +0 -2
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
- package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
- package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
- package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
- package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
- package/lib/esm/internal/transaction/service/mapper/TransactionMapper.js +0 -1
- package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
- package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
- package/lib/types/internal/app-binder/constant/plugins.d.ts +0 -2
- package/lib/types/internal/app-binder/constant/plugins.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +0 -32
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +0 -38
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts +0 -80
- package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts +0 -28
- package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts.map +0 -1
- package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts +0 -7
- package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts.map +0 -1
- package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts +0 -2
- package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts.map +0 -1
- package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts +0 -6
- package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts.map +0 -1
- package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts +0 -2
- package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts.map +0 -1
- /package/lib/esm/{internal/transaction/service/mapper/TransactionMapper.js.map → api/app-binder/SignDelegationAuthorizationTypes.js.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/device-signer-kit-ethereum",
|
|
3
|
-
"version": "0.0.0-rnble-
|
|
3
|
+
"version": "0.0.0-rnble-scan-permission-issue-20250929081059",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"exports": {
|
|
@@ -19,36 +19,35 @@
|
|
|
19
19
|
"./lib"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"ethers": "6.
|
|
23
|
-
"inversify": "
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"@ledgerhq/signer-utils": "0.0.0-rnble-transport-20250404160243"
|
|
22
|
+
"ethers": "6.14.1",
|
|
23
|
+
"inversify": "7.5.1",
|
|
24
|
+
"purify-ts": "2.1.0",
|
|
25
|
+
"reflect-metadata": "0.2.2",
|
|
26
|
+
"semver": "7.7.2",
|
|
27
|
+
"xstate": "5.19.2",
|
|
28
|
+
"@ledgerhq/signer-utils": "0.0.0-rnble-scan-permission-issue-20250929081059"
|
|
30
29
|
},
|
|
31
30
|
"devDependencies": {
|
|
32
|
-
"@types/semver": "
|
|
33
|
-
"rxjs": "
|
|
34
|
-
"ts-node": "
|
|
35
|
-
"@ledgerhq/
|
|
36
|
-
"@ledgerhq/device-management-kit": "0.0.0-rnble-transport-20250404160243",
|
|
37
|
-
"@ledgerhq/esbuild-tools": "0.0.2",
|
|
31
|
+
"@types/semver": "7.7.0",
|
|
32
|
+
"rxjs": "7.8.2",
|
|
33
|
+
"ts-node": "10.9.2",
|
|
34
|
+
"@ledgerhq/device-management-kit": "0.0.0-rnble-scan-permission-issue-20250929081059",
|
|
38
35
|
"@ledgerhq/eslint-config-dsdk": "0.0.2",
|
|
36
|
+
"@ledgerhq/ldmk-tool": "0.0.1",
|
|
39
37
|
"@ledgerhq/prettier-config-dsdk": "0.0.2",
|
|
38
|
+
"@ledgerhq/context-module": "0.0.0-rnble-scan-permission-issue-20250929081059",
|
|
40
39
|
"@ledgerhq/tsconfig-dsdk": "1.0.1",
|
|
41
40
|
"@ledgerhq/vitest-config-dmk": "0.0.0"
|
|
42
41
|
},
|
|
43
42
|
"peerDependencies": {
|
|
44
|
-
"@ledgerhq/context-module": "0.0.0-rnble-
|
|
45
|
-
"@ledgerhq/device-management-kit": "0.0.0-rnble-
|
|
43
|
+
"@ledgerhq/context-module": "0.0.0-rnble-scan-permission-issue-20250929081059",
|
|
44
|
+
"@ledgerhq/device-management-kit": "0.0.0-rnble-scan-permission-issue-20250929081059"
|
|
46
45
|
},
|
|
47
46
|
"scripts": {
|
|
48
47
|
"prebuild": "rimraf lib",
|
|
49
|
-
"build": "pnpm
|
|
48
|
+
"build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
50
49
|
"dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
|
|
51
|
-
"watch:builds": "pnpm
|
|
50
|
+
"watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
52
51
|
"watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
|
|
53
52
|
"lint": "eslint",
|
|
54
53
|
"lint:fix": "pnpm lint --fix",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var n=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(a,e)=>{for(var o in e)n(a,o,{get:e[o],enumerable:!0})},p=(a,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of s(e))!l.call(a,i)&&i!==o&&n(a,i,{get:()=>e[i],enumerable:!(r=t(e,i))||r.enumerable});return a};var S=a=>p(n({},"__esModule",{value:!0}),a);var A={};c(A,{ETHEREUM_PLUGINS:()=>k});module.exports=S(A);const k=["1inch","Aave","Alkemi","Angle","APWine","ArtBlocks","Brick Towers","capsa","cBridge","ChorusOne","CIAN","Coinbase","Cometh","Compound","DODO","EigenLayer","ENS","Figment","Harvest","Kelp","Kiln","Lens","libertify","Lido","[ L ] Market","Midas","Morpho","Nested","OKX Web3","OpenSea","P2P.org","Paraswap","POAP","QuickSwap","Rarible","Ribbon","Ricochet","Rocket Pool","Spool","Squid","Staderlabs","StakeDAO","StakeKit","Swell","Thales","Yearn","Uniswap","Exchange"];0&&(module.exports={ETHEREUM_PLUGINS});
|
|
2
|
-
//# sourceMappingURL=plugins.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/constant/plugins.ts"],
|
|
4
|
-
"sourcesContent": ["export const ETHEREUM_PLUGINS: string[] = [\n \"1inch\",\n \"Aave\",\n \"Alkemi\",\n \"Angle\",\n \"APWine\",\n \"ArtBlocks\",\n \"Brick Towers\",\n \"capsa\",\n \"cBridge\",\n \"ChorusOne\",\n \"CIAN\",\n \"Coinbase\",\n \"Cometh\",\n \"Compound\",\n \"DODO\",\n \"EigenLayer\",\n \"ENS\",\n \"Figment\",\n \"Harvest\",\n \"Kelp\",\n \"Kiln\",\n \"Lens\",\n \"libertify\",\n \"Lido\",\n \"[ L ] Market\",\n \"Midas\",\n \"Morpho\",\n \"Nested\",\n \"OKX Web3\",\n \"OpenSea\",\n \"P2P.org\",\n \"Paraswap\",\n \"POAP\",\n \"QuickSwap\",\n \"Rarible\",\n \"Ribbon\",\n \"Ricochet\",\n \"Rocket Pool\",\n \"Spool\",\n \"Squid\",\n \"Staderlabs\",\n \"StakeDAO\",\n \"StakeKit\",\n \"Swell\",\n \"Thales\",\n \"Yearn\",\n \"Uniswap\",\n \"Exchange\", // Not a plugin, but a compatible app during exchange flows\n];\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAA6B,CACxC,QACA,OACA,SACA,QACA,SACA,YACA,eACA,QACA,UACA,YACA,OACA,WACA,SACA,WACA,OACA,aACA,MACA,UACA,UACA,OACA,OACA,OACA,YACA,OACA,eACA,QACA,SACA,SACA,WACA,UACA,UACA,WACA,OACA,YACA,UACA,SACA,WACA,cACA,QACA,QACA,aACA,WACA,WACA,QACA,SACA,QACA,UACA,UACF",
|
|
6
|
-
"names": ["plugins_exports", "__export", "ETHEREUM_PLUGINS", "__toCommonJS"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var w=(i,e)=>{for(var n in e)d(i,n,{get:e[n],enumerable:!0})},G=(i,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of M(e))!b.call(i,a)&&a!==n&&d(i,a,{get:()=>e[a],enumerable:!(r=R(e,a))||r.enumerable});return i};var O=i=>G(d({},"__esModule",{value:!0}),i);var _={};w(_,{BuildTransactionContextTask:()=>D});module.exports=O(_);var o=require("@ledgerhq/context-module"),l=require("@ledgerhq/device-management-kit"),x=require("../../app-binder/command/GetChallengeCommand"),h=require("../../app-binder/task/GetWeb3CheckTask"),I=require("../../shared/utils/ApplicationChecker");class D{constructor(e,n,r=(a,c)=>new h.GetWeb3CheckTask(a,c)){this.api=e;this.args=n;this.getWeb3ChecksFactory=r}async run(){const{contextModule:e,mapper:n,transaction:r,options:a,appConfig:c,derivationPath:k}=this.args,y=this.api.getDeviceSessionState(),S=n.mapTransactionToSubset(r);S.ifLeft(t=>{throw t});const{subset:T,serializedTransaction:A,type:E}=S.unsafeCoerce();let u=null;c.web3ChecksEnabled&&(u=(await this.getWeb3ChecksFactory(this.api,{contextModule:e,derivationPath:k,mapper:n,transaction:r}).run()).web3Check);let g;const m=await this.api.sendCommand(new x.GetChallengeCommand);(0,l.isSuccessCommandResult)(m)&&(g=m.data.challenge);const f=await e.getContexts({challenge:g,domain:a.domain,deviceModelId:y.deviceModelId,...T}),p=f.filter(t=>t.type!==o.ClearSignContextType.ERROR&&t.type!==o.ClearSignContextType.ENUM),N=f.filter(t=>t.type===o.ClearSignContextType.ENUM);let C=[];const s=p.find(t=>t.type===o.ClearSignContextType.TRANSACTION_INFO);if(s&&!s.certificate)throw new Error("Transaction info certificate is missing");if(!this.supportsGenericParser(y,c)||s===void 0)C=p.filter(t=>t.type!==o.ClearSignContextType.TRANSACTION_INFO&&t.type!==o.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION);else{const t=p.filter(v=>v.type===o.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION);C={transactionInfo:s.payload,transactionInfoCertificate:s.certificate,transactionFields:t,transactionEnums:N}}return{clearSignContexts:C,serializedTransaction:A,chainId:T.chainId,transactionType:E,web3Check:u}}supportsGenericParser(e,n){return new I.ApplicationChecker(e,n).withMinVersionExclusive("1.14.0").excludeDeviceModel(l.DeviceModelId.NANO_S).check()}}0&&(module.exports={BuildTransactionContextTask});
|
|
2
|
-
//# sourceMappingURL=BuildTransactionContextTask.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/BuildTransactionContextTask.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n DeviceModelId,\n type DeviceSessionState,\n type InternalApi,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { GetChallengeCommand } from \"@internal/app-binder/command/GetChallengeCommand\";\nimport {\n GetWeb3CheckTask,\n type GetWeb3CheckTaskArgs,\n} from \"@internal/app-binder/task/GetWeb3CheckTask\";\nimport { ApplicationChecker } from \"@internal/shared/utils/ApplicationChecker\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\n\nimport { type GenericContext } from \"./ProvideTransactionGenericContextTask\";\n\nexport type BuildTransactionTaskResult = {\n readonly clearSignContexts: ClearSignContextSuccess[] | GenericContext;\n readonly serializedTransaction: Uint8Array;\n readonly chainId: number;\n readonly transactionType: TransactionType;\n readonly web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n};\n\nexport type BuildTransactionContextTaskArgs = {\n readonly contextModule: ContextModule;\n readonly mapper: TransactionMapperService;\n readonly transaction: Uint8Array;\n readonly options: TransactionOptions;\n readonly appConfig: GetConfigCommandResponse;\n readonly derivationPath: string;\n};\n\nexport class BuildTransactionContextTask {\n constructor(\n private readonly api: InternalApi,\n private readonly args: BuildTransactionContextTaskArgs,\n private readonly getWeb3ChecksFactory = (\n api: InternalApi,\n args: GetWeb3CheckTaskArgs,\n ) => new GetWeb3CheckTask(api, args),\n ) {}\n\n async run(): Promise<BuildTransactionTaskResult> {\n const {\n contextModule,\n mapper,\n transaction,\n options,\n appConfig,\n derivationPath,\n } = this.args;\n const deviceState = this.api.getDeviceSessionState();\n\n // Parse transaction\n const parsed = mapper.mapTransactionToSubset(transaction);\n parsed.ifLeft((err) => {\n throw err;\n });\n const { subset, serializedTransaction, type } = parsed.unsafeCoerce();\n\n // Run the web3checks if needed\n let web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null =\n null;\n if (appConfig.web3ChecksEnabled) {\n web3Check = (\n await this.getWeb3ChecksFactory(this.api, {\n contextModule,\n derivationPath,\n mapper,\n transaction,\n }).run()\n ).web3Check;\n }\n\n // Get challenge\n let challenge: string | undefined = undefined;\n const challengeRes = await this.api.sendCommand(new GetChallengeCommand());\n if (isSuccessCommandResult(challengeRes)) {\n challenge = challengeRes.data.challenge;\n }\n\n // Get the clear sign contexts\n const clearSignContexts = await contextModule.getContexts({\n challenge: challenge,\n domain: options.domain,\n deviceModelId: deviceState.deviceModelId,\n ...subset,\n });\n\n // NOTE: we need to filter out the ENUM and ERROR types\n // ENUM are handled differently\n // ERROR are not handled at all for now\n const clearSignContextsSuccess: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[] = clearSignContexts.filter(\n (context) =>\n context.type !== ClearSignContextType.ERROR &&\n context.type !== ClearSignContextType.ENUM,\n );\n\n // Retrieve all ENUM contexts\n const transactionEnums: ClearSignContextSuccess<ClearSignContextType.ENUM>[] =\n clearSignContexts.filter(\n (context) => context.type === ClearSignContextType.ENUM,\n );\n\n let filteredContexts: ClearSignContextSuccess[] | GenericContext = [];\n const transactionInfo = clearSignContextsSuccess.find(\n (ctx) => ctx.type === ClearSignContextType.TRANSACTION_INFO,\n );\n\n if (transactionInfo && !transactionInfo.certificate) {\n throw new Error(\"Transaction info certificate is missing\");\n }\n\n // If the device does not support the generic parser,\n // we need to filter out the transaction info and transaction field description\n // as they are not supported by the device\n if (\n !this.supportsGenericParser(deviceState, appConfig) ||\n transactionInfo === undefined\n ) {\n filteredContexts = clearSignContextsSuccess.filter(\n (ctx) =>\n ctx.type !== ClearSignContextType.TRANSACTION_INFO &&\n ctx.type !== ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n );\n } else {\n const transactionFields = clearSignContextsSuccess.filter(\n (ctx) =>\n ctx.type === ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n );\n filteredContexts = {\n transactionInfo: transactionInfo.payload,\n transactionInfoCertificate: transactionInfo.certificate!,\n transactionFields,\n transactionEnums,\n };\n }\n\n return {\n clearSignContexts: filteredContexts,\n serializedTransaction,\n chainId: subset.chainId,\n transactionType: type,\n web3Check,\n };\n }\n\n private supportsGenericParser(\n deviceState: DeviceSessionState,\n appConfig: GetConfigCommandResponse,\n ): boolean {\n return new ApplicationChecker(deviceState, appConfig)\n .withMinVersionExclusive(\"1.14.0\")\n .excludeDeviceModel(DeviceModelId.NANO_S)\n .check();\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAKO,oCACPC,EAKO,2CAKPC,EAAoC,4DACpCC,EAGO,sDACPC,EAAmC,qDAsB5B,MAAMN,CAA4B,CACvC,YACmBO,EACAC,EACAC,EAAuB,CACtCF,EACAC,IACG,IAAI,mBAAiBD,EAAKC,CAAI,EACnC,CANiB,SAAAD,EACA,UAAAC,EACA,0BAAAC,CAIhB,CAEH,MAAM,KAA2C,CAC/C,KAAM,CACJ,cAAAC,EACA,OAAAC,EACA,YAAAC,EACA,QAAAC,EACA,UAAAC,EACA,eAAAC,CACF,EAAI,KAAK,KACHC,EAAc,KAAK,IAAI,sBAAsB,EAG7CC,EAASN,EAAO,uBAAuBC,CAAW,EACxDK,EAAO,OAAQC,GAAQ,CACrB,MAAMA,CACR,CAAC,EACD,KAAM,CAAE,OAAAC,EAAQ,sBAAAC,EAAuB,KAAAC,CAAK,EAAIJ,EAAO,aAAa,EAGpE,IAAIK,EACF,KACER,EAAU,oBACZQ,GACE,MAAM,KAAK,qBAAqB,KAAK,IAAK,CACxC,cAAAZ,EACA,eAAAK,EACA,OAAAJ,EACA,YAAAC,CACF,CAAC,EAAE,IAAI,GACP,WAIJ,IAAIW,EACJ,MAAMC,EAAe,MAAM,KAAK,IAAI,YAAY,IAAI,qBAAqB,KACrE,0BAAuBA,CAAY,IACrCD,EAAYC,EAAa,KAAK,WAIhC,MAAMC,EAAoB,MAAMf,EAAc,YAAY,CACxD,UAAWa,EACX,OAAQV,EAAQ,OAChB,cAAeG,EAAY,cAC3B,GAAGG,CACL,CAAC,EAKKO,EAEAD,EAAkB,OACrBE,GACCA,EAAQ,OAAS,uBAAqB,OACtCA,EAAQ,OAAS,uBAAqB,IAC1C,EAGMC,EACJH,EAAkB,OACfE,GAAYA,EAAQ,OAAS,uBAAqB,IACrD,EAEF,IAAIE,EAA+D,CAAC,EACpE,MAAMC,EAAkBJ,EAAyB,KAC9CK,GAAQA,EAAI,OAAS,uBAAqB,gBAC7C,EAEA,GAAID,GAAmB,CAACA,EAAgB,YACtC,MAAM,IAAI,MAAM,yCAAyC,EAM3D,GACE,CAAC,KAAK,sBAAsBd,EAAaF,CAAS,GAClDgB,IAAoB,OAEpBD,EAAmBH,EAAyB,OACzCK,GACCA,EAAI,OAAS,uBAAqB,kBAClCA,EAAI,OAAS,uBAAqB,6BACtC,MACK,CACL,MAAMC,EAAoBN,EAAyB,OAChDK,GACCA,EAAI,OAAS,uBAAqB,6BACtC,EACAF,EAAmB,CACjB,gBAAiBC,EAAgB,QACjC,2BAA4BA,EAAgB,YAC5C,kBAAAE,EACA,iBAAAJ,CACF,CACF,CAEA,MAAO,CACL,kBAAmBC,EACnB,sBAAAT,EACA,QAASD,EAAO,QAChB,gBAAiBE,EACjB,UAAAC,CACF,CACF,CAEQ,sBACNN,EACAF,EACS,CACT,OAAO,IAAI,qBAAmBE,EAAaF,CAAS,EACjD,wBAAwB,QAAQ,EAChC,mBAAmB,gBAAc,MAAM,EACvC,MAAM,CACX,CACF",
|
|
6
|
-
"names": ["BuildTransactionContextTask_exports", "__export", "BuildTransactionContextTask", "__toCommonJS", "import_context_module", "import_device_management_kit", "import_GetChallengeCommand", "import_GetWeb3CheckTask", "import_ApplicationChecker", "api", "args", "getWeb3ChecksFactory", "contextModule", "mapper", "transaction", "options", "appConfig", "derivationPath", "deviceState", "parsed", "err", "subset", "serializedTransaction", "type", "web3Check", "challenge", "challengeRes", "clearSignContexts", "clearSignContextsSuccess", "context", "transactionEnums", "filteredContexts", "transactionInfo", "ctx", "transactionFields"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var a=require("@ledgerhq/context-module"),e=require("@ledgerhq/device-management-kit"),x=require("ethers"),u=require("purify-ts"),m=require("../../app-binder/device-action/__test-utils__/makeInternalApi"),p=require("./BuildTransactionContextTask");describe("BuildTransactionContextTask",()=>{const r={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn()},l={mapTransactionToSubset:vi.fn()},h={domain:"domain-name.eth"},S=(0,e.hexaStringToBuffer)(x.Transaction.from({chainId:1n,nonce:0,data:"0x"}).unsignedSerialized),C={keyUsageNumber:1,payload:new Uint8Array([1,2,3])};let d;const o=(0,m.makeDeviceActionInternalApiMock)(),i=vi.fn();function y(n){return{blindSigningEnabled:!1,web3ChecksEnabled:n,web3ChecksOptIn:!1,version:"1.13.0"}}beforeEach(()=>{vi.resetAllMocks(),o.sendCommand.mockResolvedValue((0,e.CommandResultFactory)({data:{challenge:"challenge"}})),i.mockReturnValue({run:async()=>({web3Check:null})}),d={contextModule:r,mapper:l,transaction:S,options:h,appConfig:y(!1),derivationPath:"44'/60'/0'/0/0"}}),it("should build the transaction context without clear sign contexts",async()=>{const n=new Uint8Array([1,2,3]),t=[],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,{...d,appConfig:y(!0)},i).run();expect(c).toEqual({clearSignContexts:t,serializedTransaction:n,chainId:1,transactionType:0,web3Check:null})}),it("should build the transaction context with web3checks",async()=>{const n=new Uint8Array([1,2,3]),t=[],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0},c="web3Check";i.mockReturnValueOnce({run:async()=>({web3Check:c})}),l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const T=await new p.BuildTransactionContextTask(o,{...d,appConfig:y(!0)},i).run();expect(T).toEqual({clearSignContexts:t,serializedTransaction:n,chainId:1,transactionType:0,web3Check:c})}),it("should build the transaction context with clear sign contexts",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.NFT,payload:"payload-2"}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:2},c="web3Check";i.mockReturnValueOnce({run:async()=>({web3Check:c})}),l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const T=await new p.BuildTransactionContextTask(o,d,i).run();expect(T).toEqual({clearSignContexts:t,serializedTransaction:n,chainId:1,transactionType:2,web3Check:null})}),it("should build the transaction context with generic-parser context",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1",certificate:C},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-2"},{type:a.ClearSignContextType.ENUM,payload:"payload-3",id:1,value:2,certificate:C},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-4"}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:2};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.15.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:{transactionInfo:"payload-1",transactionInfoCertificate:C,transactionFields:[t[1],t[3]],transactionEnums:[t[2]]},serializedTransaction:n,chainId:1,transactionType:2,web3Check:null})}),it("should call the mapper with the transaction",async()=>{const n=new Uint8Array([1,2,3]),t=[],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1}),await new p.BuildTransactionContextTask(o,d,i).run(),expect(l.mapTransactionToSubset).toHaveBeenCalledWith(S)}),it("should call the web3checks factory with correct parameters",async()=>{const n=new Uint8Array([1,2,3]),t=[],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1}),await new p.BuildTransactionContextTask(o,{...d,appConfig:y(!0)},i).run(),expect(i).toHaveBeenCalledWith(o,{contextModule:r,derivationPath:"44'/60'/0'/0/0",mapper:l,transaction:S})}),it("should call the context module with the correct parameters",async()=>{const n=new Uint8Array([1,2,3]),t=[],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1}),await new p.BuildTransactionContextTask(o,d,i).run(),expect(r.getContexts).toHaveBeenCalledWith({deviceModelId:e.DeviceModelId.FLEX,challenge:"challenge",domain:"domain-name.eth",...s.subset})}),it("should call the context module without context on error",async()=>{const n=new Uint8Array([1,2,3]),t=[],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1}),o.sendCommand.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError})),await new p.BuildTransactionContextTask(o,d,i).run(),expect(r.getContexts).toHaveBeenCalledWith({deviceModelId:e.DeviceModelId.FLEX,challenge:void 0,domain:"domain-name.eth",...s.subset})}),it("should throw an error if the mapper returns an error",async()=>{const n=new Error("error");l.mapTransactionToSubset.mockReturnValueOnce((0,u.Left)(n)),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const t=new p.BuildTransactionContextTask(o,d,i);await expect(t.run()).rejects.toThrow(n)}),it("should exclude error contexts from the result",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.ERROR,error:new Error("error")},{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.ERROR,error:new Error("error")},{type:a.ClearSignContextType.NFT,payload:"payload-2"}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:[t[1],t[3]],serializedTransaction:n,chainId:1,transactionType:0,web3Check:null})}),it("should exclude generic-parser contexts from the result on old apps",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TRANSACTION_INFO,payload:"transaction_info",certificate:C},{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"transaction_field"},{type:a.ClearSignContextType.NFT,payload:"payload-2"},{type:a.ClearSignContextType.ENUM,payload:"enum",id:1,value:2,certificate:C}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:[t[1],t[3]],serializedTransaction:n,chainId:1,transactionType:0,web3Check:null})}),it("should exclude generic-parser contexts from the result if no transaction_info was found",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"transaction_field"},{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.ENUM,payload:"enum",id:1,value:2},{type:a.ClearSignContextType.NFT,payload:"payload-2"}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:0};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.14.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:[t[1],t[3]],serializedTransaction:n,chainId:1,transactionType:0,web3Check:null})}),it("should exclude legacy contexts from the result for generic-parser transactions",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.TRANSACTION_INFO,payload:"payload-2",certificate:C},{type:a.ClearSignContextType.EXTERNAL_PLUGIN,payload:"payload-3"},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-4"},{type:a.ClearSignContextType.ENUM,payload:"payload-5",id:1,value:2,certificate:C}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:2};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.15.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:{transactionInfo:"payload-2",transactionInfoCertificate:C,transactionFields:[t[3]],transactionEnums:[t[4]]},serializedTransaction:n,chainId:1,transactionType:2,web3Check:null})}),it("should exclude generic-parser contexts with a nano s device",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.TRANSACTION_INFO,payload:"payload-2",certificate:C},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-3"},{type:a.ClearSignContextType.ENUM,payload:"payload-4",id:1,value:2,certificate:C}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:2};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.14.0"},deviceModelId:e.DeviceModelId.NANO_S,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:[t[0]],serializedTransaction:n,chainId:1,transactionType:2,web3Check:null})}),it("should exclude generic-parser contexts with an old app version",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.TRANSACTION_INFO,payload:"payload-2",certificate:C},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-3"},{type:a.ClearSignContextType.ENUM,payload:"payload-4",id:1,value:2,certificate:C}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:2};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.12.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:[t[0]],serializedTransaction:n,chainId:1,transactionType:2,web3Check:null})}),it("should exclude generic-parser contexts with a non ready device",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TOKEN,payload:"payload-1"},{type:a.ClearSignContextType.TRANSACTION_INFO,payload:"payload-2",certificate:C},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-3"},{type:a.ClearSignContextType.ENUM,payload:"payload-4",id:1,value:2,certificate:C}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:2};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.Connected,deviceStatus:e.DeviceStatus.NOT_CONNECTED,deviceModelId:e.DeviceModelId.FLEX});const c=await new p.BuildTransactionContextTask(o,d,i).run();expect(c).toEqual({clearSignContexts:[t[0]],serializedTransaction:n,chainId:1,transactionType:2,web3Check:null})}),it("should return an error if the transaction info certificate is missing",async()=>{const n=new Uint8Array([1,2,3]),t=[{type:a.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"},{type:a.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-2"},{type:a.ClearSignContextType.ENUM,payload:"payload-3",id:1,value:2}],s={subset:{chainId:1,to:void 0,data:"0x"},serializedTransaction:n,type:2};l.mapTransactionToSubset.mockReturnValueOnce((0,u.Right)(s)),r.getContexts.mockResolvedValueOnce(t),o.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:"1.14.0"},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1});const c=new p.BuildTransactionContextTask(o,d,i);await expect(c.run()).rejects.toThrow("Transaction info certificate is missing")})});
|
|
2
|
-
//# sourceMappingURL=BuildTransactionContextTask.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/BuildTransactionContextTask.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContext,\n type ClearSignContextSuccess,\n ClearSignContextType,\n type PkiCertificate,\n} from \"@ledgerhq/context-module\";\nimport {\n CommandResultFactory,\n DeviceModelId,\n DeviceSessionStateType,\n DeviceStatus,\n hexaStringToBuffer,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Transaction } from \"ethers\";\nimport { Left, Right } from \"purify-ts\";\n\nimport type { GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { type TransactionMapperResult } from \"@internal/transaction/service/mapper/model/TransactionMapperResult\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\n\nimport {\n BuildTransactionContextTask,\n type BuildTransactionContextTaskArgs,\n} from \"./BuildTransactionContextTask\";\n\ndescribe(\"BuildTransactionContextTask\", () => {\n const contextModuleMock = {\n getContext: vi.fn(),\n getContexts: vi.fn(),\n getTypedDataFilters: vi.fn(),\n getWeb3Checks: vi.fn(),\n };\n const mapperMock = {\n mapTransactionToSubset: vi.fn(),\n };\n const defaultOptions = {\n domain: \"domain-name.eth\",\n };\n const defaultTransaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n chainId: 1n,\n nonce: 0,\n data: \"0x\",\n }).unsignedSerialized,\n )!;\n const defaultCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([0x01, 0x02, 0x03]),\n };\n\n let defaultArgs: BuildTransactionContextTaskArgs;\n const apiMock = makeDeviceActionInternalApiMock();\n const getWeb3ChecksFactoryMock = vi.fn();\n\n function createAppConfig(\n web3ChecksEnabled: boolean,\n ): GetConfigCommandResponse {\n return {\n blindSigningEnabled: false,\n web3ChecksEnabled,\n web3ChecksOptIn: false,\n version: \"1.13.0\",\n };\n }\n\n beforeEach(() => {\n vi.resetAllMocks();\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: { challenge: \"challenge\" } }),\n );\n getWeb3ChecksFactoryMock.mockReturnValue({\n run: async () => ({ web3Check: null }),\n });\n\n defaultArgs = {\n contextModule: contextModuleMock,\n mapper: mapperMock as unknown as TransactionMapperService,\n transaction: defaultTransaction,\n options: defaultOptions,\n appConfig: createAppConfig(false),\n derivationPath: \"44'/60'/0'/0/0\",\n };\n });\n\n it(\"should build the transaction context without clear sign contexts\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n { ...defaultArgs, appConfig: createAppConfig(true) },\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts,\n serializedTransaction,\n chainId: 1,\n transactionType: 0,\n web3Check: null,\n });\n });\n\n it(\"should build the transaction context with web3checks\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n const expectedWeb3Check =\n \"web3Check\" as unknown as ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK>;\n getWeb3ChecksFactoryMock.mockReturnValueOnce({\n run: async () => ({ web3Check: expectedWeb3Check }),\n });\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n { ...defaultArgs, appConfig: createAppConfig(true) },\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts,\n serializedTransaction,\n chainId: 1,\n transactionType: 0,\n web3Check: expectedWeb3Check,\n });\n });\n\n it(\"should build the transaction context with clear sign contexts\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.NFT,\n payload: \"payload-2\",\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 2,\n };\n const expectedWeb3Check =\n \"web3Check\" as unknown as ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK>;\n getWeb3ChecksFactoryMock.mockReturnValueOnce({\n run: async () => ({ web3Check: expectedWeb3Check }),\n });\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts,\n serializedTransaction,\n chainId: 1,\n transactionType: 2,\n web3Check: null,\n });\n });\n\n it(\"should build the transaction context with generic-parser context\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TRANSACTION_INFO,\n payload: \"payload-1\",\n certificate: defaultCertificate,\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"payload-2\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"payload-3\",\n id: 1,\n value: 2,\n certificate: defaultCertificate,\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"payload-4\",\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 2,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.15.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: {\n transactionInfo: \"payload-1\",\n transactionInfoCertificate: defaultCertificate,\n transactionFields: [clearSignContexts[1], clearSignContexts[3]],\n transactionEnums: [clearSignContexts[2]],\n },\n serializedTransaction,\n chainId: 1,\n transactionType: 2,\n web3Check: null,\n });\n });\n\n it(\"should call the mapper with the transaction\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(mapperMock.mapTransactionToSubset).toHaveBeenCalledWith(\n defaultTransaction,\n );\n });\n\n it(\"should call the web3checks factory with correct parameters\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n await new BuildTransactionContextTask(\n apiMock,\n { ...defaultArgs, appConfig: createAppConfig(true) },\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(getWeb3ChecksFactoryMock).toHaveBeenCalledWith(apiMock, {\n contextModule: contextModuleMock,\n derivationPath: \"44'/60'/0'/0/0\",\n mapper: mapperMock,\n transaction: defaultTransaction,\n });\n });\n\n it(\"should call the context module with the correct parameters\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(contextModuleMock.getContexts).toHaveBeenCalledWith({\n deviceModelId: DeviceModelId.FLEX,\n challenge: \"challenge\",\n domain: \"domain-name.eth\",\n ...mapperResult.subset,\n });\n });\n\n it(\"should call the context module without context on error\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({ error: new UnknownDeviceExchangeError() }),\n );\n\n // WHEN\n await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(contextModuleMock.getContexts).toHaveBeenCalledWith({\n deviceModelId: DeviceModelId.FLEX,\n challenge: undefined,\n domain: \"domain-name.eth\",\n ...mapperResult.subset,\n });\n });\n\n it(\"should throw an error if the mapper returns an error\", async () => {\n // GIVEN\n const error = new Error(\"error\");\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Left(error));\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const task = new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n );\n\n // THEN\n await expect(task.run()).rejects.toThrow(error);\n });\n\n it(\"should exclude error contexts from the result\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"error\"),\n },\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"error\"),\n },\n {\n type: ClearSignContextType.NFT,\n payload: \"payload-2\",\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: [clearSignContexts[1], clearSignContexts[3]],\n serializedTransaction,\n chainId: 1,\n transactionType: 0,\n web3Check: null,\n });\n });\n\n it(\"should exclude generic-parser contexts from the result on old apps\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TRANSACTION_INFO,\n payload: \"transaction_info\",\n certificate: defaultCertificate,\n },\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"transaction_field\",\n },\n {\n type: ClearSignContextType.NFT,\n payload: \"payload-2\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"enum\",\n id: 1,\n value: 2,\n certificate: defaultCertificate,\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: [clearSignContexts[1], clearSignContexts[3]],\n serializedTransaction,\n chainId: 1,\n transactionType: 0,\n web3Check: null,\n });\n });\n\n it(\"should exclude generic-parser contexts from the result if no transaction_info was found\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"transaction_field\",\n },\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"enum\",\n id: 1,\n value: 2,\n },\n {\n type: ClearSignContextType.NFT,\n payload: \"payload-2\",\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 0,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.14.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: [clearSignContexts[1], clearSignContexts[3]],\n serializedTransaction,\n chainId: 1,\n transactionType: 0,\n web3Check: null,\n });\n });\n\n it(\"should exclude legacy contexts from the result for generic-parser transactions\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.TRANSACTION_INFO,\n payload: \"payload-2\",\n certificate: defaultCertificate,\n },\n {\n type: ClearSignContextType.EXTERNAL_PLUGIN,\n payload: \"payload-3\",\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"payload-4\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"payload-5\",\n id: 1,\n value: 2,\n certificate: defaultCertificate,\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 2,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.15.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: {\n transactionInfo: \"payload-2\",\n transactionInfoCertificate: defaultCertificate,\n transactionFields: [clearSignContexts[3]],\n transactionEnums: [clearSignContexts[4]],\n },\n serializedTransaction,\n chainId: 1,\n transactionType: 2,\n web3Check: null,\n });\n });\n\n it(\"should exclude generic-parser contexts with a nano s device\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.TRANSACTION_INFO,\n payload: \"payload-2\",\n certificate: defaultCertificate,\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"payload-3\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"payload-4\",\n id: 1,\n value: 2,\n certificate: defaultCertificate,\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 2,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.14.0\" },\n deviceModelId: DeviceModelId.NANO_S,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: [clearSignContexts[0]],\n serializedTransaction,\n chainId: 1,\n transactionType: 2,\n web3Check: null,\n });\n });\n\n it(\"should exclude generic-parser contexts with an old app version\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.TRANSACTION_INFO,\n payload: \"payload-2\",\n certificate: defaultCertificate,\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"payload-3\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"payload-4\",\n id: 1,\n value: 2,\n certificate: defaultCertificate,\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 2,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.12.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: [clearSignContexts[0]],\n serializedTransaction,\n chainId: 1,\n transactionType: 2,\n web3Check: null,\n });\n });\n\n it(\"should exclude generic-parser contexts with a non ready device\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TOKEN,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.TRANSACTION_INFO,\n payload: \"payload-2\",\n certificate: defaultCertificate,\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"payload-3\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"payload-4\",\n id: 1,\n value: 2,\n certificate: defaultCertificate,\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 2,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.NOT_CONNECTED,\n deviceModelId: DeviceModelId.FLEX,\n });\n\n // WHEN\n const result = await new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n ).run();\n\n // THEN\n expect(result).toEqual({\n clearSignContexts: [clearSignContexts[0]],\n serializedTransaction,\n chainId: 1,\n transactionType: 2,\n web3Check: null,\n });\n });\n\n it(\"should return an error if the transaction info certificate is missing\", async () => {\n // GIVEN\n const serializedTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n const clearSignContexts: ClearSignContext[] = [\n {\n type: ClearSignContextType.TRANSACTION_INFO,\n payload: \"payload-1\",\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload: \"payload-2\",\n },\n {\n type: ClearSignContextType.ENUM,\n payload: \"payload-3\",\n id: 1,\n value: 2,\n },\n ];\n const mapperResult: TransactionMapperResult = {\n subset: { chainId: 1, to: undefined, data: \"0x\" },\n serializedTransaction,\n type: 2,\n };\n mapperMock.mapTransactionToSubset.mockReturnValueOnce(Right(mapperResult));\n contextModuleMock.getContexts.mockResolvedValueOnce(clearSignContexts);\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Ethereum\", version: \"1.14.0\" },\n deviceModelId: DeviceModelId.FLEX,\n isSecureConnectionAllowed: false,\n });\n\n // WHEN\n const task = new BuildTransactionContextTask(\n apiMock,\n defaultArgs,\n getWeb3ChecksFactoryMock,\n );\n\n // THEN\n await expect(task.run()).rejects.toThrow(\n \"Transaction info certificate is missing\",\n );\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_context_module", "import_device_management_kit", "import_ethers", "import_purify_ts", "import_makeInternalApi", "import_BuildTransactionContextTask", "contextModuleMock", "mapperMock", "defaultOptions", "defaultTransaction", "defaultCertificate", "defaultArgs", "apiMock", "getWeb3ChecksFactoryMock", "createAppConfig", "web3ChecksEnabled", "serializedTransaction", "clearSignContexts", "mapperResult", "result", "expectedWeb3Check", "error", "task"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var m=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var w=(a,e)=>{for(var t in e)m(a,t,{get:e[t],enumerable:!0})},S=(a,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!f.call(a,r)&&r!==t&&m(a,r,{get:()=>e[r],enumerable:!(i=E(e,r))||i.enumerable});return a};var k=a=>S(m({},"__esModule",{value:!0}),a);var x={};w(x,{ProvideTransactionContextTask:()=>v});module.exports=k(x);var o=require("@ledgerhq/context-module"),n=require("@ledgerhq/device-management-kit"),s=require("purify-ts"),d=require("../../app-binder/command/ProvideNFTInformationCommand"),c=require("../../app-binder/command/ProvideTokenInformationCommand"),u=require("../../app-binder/command/ProvideTrustedNameCommand"),p=require("../../app-binder/command/ProvideWeb3CheckCommand"),h=require("../../app-binder/command/SetExternalPluginCommand"),T=require("../../app-binder/command/SetPluginCommand"),C=require("./SendPayloadInChunksTask");class v{constructor(e,t){this.api=e;this.args=t}async run(){for(const e of this.args.clearSignContexts){const t=await this.provideContext(e);if(!(0,n.isSuccessCommandResult)(t))return(0,s.Just)(t)}if(this.args.web3Check){const e=await this.provideContext(this.args.web3Check);if(!(0,n.isSuccessCommandResult)(e))return(0,s.Just)(e)}return s.Nothing}async provideContext({type:e,payload:t,certificate:i}){switch(i&&await this.api.sendCommand(new n.LoadCertificateCommand({keyUsage:i.keyUsageNumber,certificate:i.payload})),e){case o.ClearSignContextType.PLUGIN:return await this.api.sendCommand(new T.SetPluginCommand({payload:t}));case o.ClearSignContextType.EXTERNAL_PLUGIN:return await this.api.sendCommand(new h.SetExternalPluginCommand({payload:t}));case o.ClearSignContextType.NFT:return await this.api.sendCommand(new d.ProvideNFTInformationCommand({payload:t}));case o.ClearSignContextType.TOKEN:return await this.api.sendCommand(new c.ProvideTokenInformationCommand({payload:t}));case o.ClearSignContextType.TRUSTED_NAME:return new C.SendPayloadInChunksTask(this.api,{payload:t,commandFactory:r=>new u.ProvideTrustedNameCommand({data:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();case o.ClearSignContextType.ENUM:case o.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION:case o.ClearSignContextType.TRANSACTION_INFO:return(0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("The context type [EXTERNAL_PLUGIN] is not valid here")});case o.ClearSignContextType.WEB3_CHECK:return new C.SendPayloadInChunksTask(this.api,{payload:t,commandFactory:r=>new p.ProvideWeb3CheckCommand({payload:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();default:{const r=e;return(0,n.CommandResultFactory)({error:new n.InvalidStatusWordError(`The context type [${r}] is not covered`)})}}}}0&&(module.exports={ProvideTransactionContextTask});
|
|
2
|
-
//# sourceMappingURL=ProvideTransactionContextTask.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionContextTask.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n ClearSignContextType,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type CommandResult,\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n isSuccessCommandResult,\n LoadCertificateCommand,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, type Maybe, Nothing } from \"purify-ts\";\n\nimport { ProvideNFTInformationCommand } from \"@internal/app-binder/command/ProvideNFTInformationCommand\";\nimport {\n ProvideTokenInformationCommand,\n type ProvideTokenInformationCommandResponse,\n} from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { ProvideTrustedNameCommand } from \"@internal/app-binder/command/ProvideTrustedNameCommand\";\nimport { ProvideWeb3CheckCommand } from \"@internal/app-binder/command/ProvideWeb3CheckCommand\";\nimport { SetExternalPluginCommand } from \"@internal/app-binder/command/SetExternalPluginCommand\";\nimport { SetPluginCommand } from \"@internal/app-binder/command/SetPluginCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\n\nimport { SendPayloadInChunksTask } from \"./SendPayloadInChunksTask\";\n\nexport type ProvideTransactionContextTaskArgs = {\n /**\n * The valid clear sign contexts offerred by the `BuildTrancationContextTask`.\n */\n clearSignContexts: ClearSignContextSuccess[];\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n};\n\n/**\n * This task is responsible for providing the transaction context to the device.\n * It will send the 5 necessary commands:\n * - `SetPluginCommand` (single command)\n * - `SetExternalPluginCommand` (single command)\n * - `ProvideNFTInformationCommand` (single command)\n * - `ProvideTokenInformationCommand` (single command)\n * - `ProvideTrustedNameCommand` (__mulpitle commands__)\n *\n * The method `provideTrustedNameTask` is dedicated to send the multiple `ProvideTrustedNameCommand`.\n */\nexport class ProvideTransactionContextTask {\n constructor(\n private api: InternalApi,\n private args: ProvideTransactionContextTaskArgs,\n ) {}\n\n async run(): Promise<Maybe<CommandErrorResult<EthErrorCodes>>> {\n for (const context of this.args.clearSignContexts) {\n const res = await this.provideContext(context);\n if (!isSuccessCommandResult(res)) {\n return Just(res);\n }\n }\n if (this.args.web3Check) {\n const res = await this.provideContext(this.args.web3Check);\n if (!isSuccessCommandResult(res)) {\n return Just(res);\n }\n }\n return Nothing;\n }\n\n /**\n * This method will send a command according to the clear sign context type and return the command result if only one command\n * is sent, otherwise it will return the result of the `provideTrustedNameTask`.\n *\n * @param context The clear sign context to provide.\n * @returns A promise that resolves when the command is sent or result of the `provideTrustedNameTask`.\n */\n async provideContext({\n type,\n payload,\n certificate,\n }: ClearSignContextSuccess): Promise<\n CommandResult<void | ProvideTokenInformationCommandResponse, EthErrorCodes>\n > {\n // if a certificate is provided, we load it before sending the command\n if (certificate) {\n await this.api.sendCommand(\n new LoadCertificateCommand({\n keyUsage: certificate.keyUsageNumber,\n certificate: certificate.payload,\n }),\n );\n }\n\n switch (type) {\n case ClearSignContextType.PLUGIN: {\n return await this.api.sendCommand(new SetPluginCommand({ payload }));\n }\n case ClearSignContextType.EXTERNAL_PLUGIN: {\n return await this.api.sendCommand(\n new SetExternalPluginCommand({ payload }),\n );\n }\n case ClearSignContextType.NFT: {\n return await this.api.sendCommand(\n new ProvideNFTInformationCommand({ payload }),\n );\n }\n case ClearSignContextType.TOKEN: {\n return await this.api.sendCommand(\n new ProvideTokenInformationCommand({ payload }),\n );\n }\n case ClearSignContextType.TRUSTED_NAME: {\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideTrustedNameCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n }\n case ClearSignContextType.ENUM:\n case ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION:\n case ClearSignContextType.TRANSACTION_INFO: {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"The context type [EXTERNAL_PLUGIN] is not valid here\",\n ),\n });\n }\n case ClearSignContextType.WEB3_CHECK:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideWeb3CheckCommand({\n payload: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n default: {\n const uncoveredType: never = type;\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [${uncoveredType}] is not covered`,\n ),\n });\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAGO,oCACPC,EAQO,2CACPC,EAA0C,qBAE1CC,EAA6C,qEAC7CC,EAGO,uEACPC,EAA0C,kEAC1CC,EAAwC,gEACxCC,EAAyC,iEACzCC,EAAiC,yDAGjCC,EAAwC,qCAqBjC,MAAMX,CAA8B,CACzC,YACUY,EACAC,EACR,CAFQ,SAAAD,EACA,UAAAC,CACP,CAEH,MAAM,KAAyD,CAC7D,UAAWC,KAAW,KAAK,KAAK,kBAAmB,CACjD,MAAMC,EAAM,MAAM,KAAK,eAAeD,CAAO,EAC7C,GAAI,IAAC,0BAAuBC,CAAG,EAC7B,SAAO,QAAKA,CAAG,CAEnB,CACA,GAAI,KAAK,KAAK,UAAW,CACvB,MAAMA,EAAM,MAAM,KAAK,eAAe,KAAK,KAAK,SAAS,EACzD,GAAI,IAAC,0BAAuBA,CAAG,EAC7B,SAAO,QAAKA,CAAG,CAEnB,CACA,OAAO,SACT,CASA,MAAM,eAAe,CACnB,KAAAC,EACA,QAAAC,EACA,YAAAC,CACF,EAEE,CAWA,OATIA,GACF,MAAM,KAAK,IAAI,YACb,IAAI,yBAAuB,CACzB,SAAUA,EAAY,eACtB,YAAaA,EAAY,OAC3B,CAAC,CACH,EAGMF,EAAM,CACZ,KAAK,uBAAqB,OACxB,OAAO,MAAM,KAAK,IAAI,YAAY,IAAI,mBAAiB,CAAE,QAAAC,CAAQ,CAAC,CAAC,EAErE,KAAK,uBAAqB,gBACxB,OAAO,MAAM,KAAK,IAAI,YACpB,IAAI,2BAAyB,CAAE,QAAAA,CAAQ,CAAC,CAC1C,EAEF,KAAK,uBAAqB,IACxB,OAAO,MAAM,KAAK,IAAI,YACpB,IAAI,+BAA6B,CAAE,QAAAA,CAAQ,CAAC,CAC9C,EAEF,KAAK,uBAAqB,MACxB,OAAO,MAAM,KAAK,IAAI,YACpB,IAAI,iCAA+B,CAAE,QAAAA,CAAQ,CAAC,CAChD,EAEF,KAAK,uBAAqB,aACxB,OAAO,IAAI,0BAAwB,KAAK,IAAK,CAC3C,QAAAA,EACA,eAAiBJ,GACf,IAAI,4BAA0B,CAC5B,KAAMA,EAAK,YACX,aAAcA,EAAK,YACrB,CAAC,CACL,CAAC,EAAE,IAAI,EAET,KAAK,uBAAqB,KAC1B,KAAK,uBAAqB,8BAC1B,KAAK,uBAAqB,iBACxB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sDACF,CACF,CAAC,EAEH,KAAK,uBAAqB,WACxB,OAAO,IAAI,0BAAwB,KAAK,IAAK,CAC3C,QAAAI,EACA,eAAiBJ,GACf,IAAI,0BAAwB,CAC1B,QAASA,EAAK,YACd,aAAcA,EAAK,YACrB,CAAC,CACL,CAAC,EAAE,IAAI,EACT,QAAS,CACP,MAAMM,EAAuBH,EAC7B,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,qBAAqBG,CAAa,kBACpC,CACF,CAAC,CACH,CACF,CACF,CACF",
|
|
6
|
-
"names": ["ProvideTransactionContextTask_exports", "__export", "ProvideTransactionContextTask", "__toCommonJS", "import_context_module", "import_device_management_kit", "import_purify_ts", "import_ProvideNFTInformationCommand", "import_ProvideTokenInformationCommand", "import_ProvideTrustedNameCommand", "import_ProvideWeb3CheckCommand", "import_SetExternalPluginCommand", "import_SetPluginCommand", "import_SendPayloadInChunksTask", "api", "args", "context", "res", "type", "payload", "certificate", "uncoveredType"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var n=require("@ledgerhq/context-module"),a=require("@ledgerhq/device-management-kit"),i=require("../../app-binder/command/ProvideNFTInformationCommand"),s=require("../../app-binder/command/ProvideTokenInformationCommand"),c=require("../../app-binder/command/SetExternalPluginCommand"),m=require("../../app-binder/command/SetPluginCommand"),l=require("../../app-binder/device-action/__test-utils__/makeInternalApi"),r=require("./ProvideTransactionContextTask");describe("ProvideTransactionContextTask",()=>{const e=(0,l.makeDeviceActionInternalApiMock)(),p=(0,a.CommandResultFactory)({data:void 0}),d=(0,a.CommandResultFactory)({data:void 0,error:{}});beforeEach(()=>{vi.resetAllMocks()}),describe("run",()=>{const o={clearSignContexts:[{type:n.ClearSignContextType.PLUGIN,payload:"706c7567696e"},{type:n.ClearSignContextType.EXTERNAL_PLUGIN,payload:"65787465726e616c506c7567696e"},{type:n.ClearSignContextType.NFT,payload:"6e6674"},{type:n.ClearSignContextType.TOKEN,payload:"746f6b656e"}],web3Check:null};afterEach(()=>{vi.restoreAllMocks()}),it("should send relative commands when receiving ClearSignContexts of type not trustedName",async()=>{e.sendCommand.mockResolvedValue(p),await new r.ProvideTransactionContextTask(e,o).run(),expect(e.sendCommand).toHaveBeenCalledTimes(4),expect(e.sendCommand).toHaveBeenNthCalledWith(o.clearSignContexts.findIndex(t=>t.type===n.ClearSignContextType.PLUGIN)+1,expect.objectContaining(new m.SetPluginCommand({payload:"706c7567696e"}))),expect(e.sendCommand).toHaveBeenNthCalledWith(o.clearSignContexts.findIndex(t=>t.type===n.ClearSignContextType.EXTERNAL_PLUGIN)+1,expect.objectContaining(new c.SetExternalPluginCommand({payload:"65787465726e616c506c7567696e"}))),expect(e.sendCommand).toHaveBeenNthCalledWith(o.clearSignContexts.findIndex(t=>t.type===n.ClearSignContextType.NFT)+1,expect.objectContaining(new i.ProvideNFTInformationCommand({payload:"6e6674"}))),expect(e.sendCommand).toHaveBeenNthCalledWith(o.clearSignContexts.findIndex(t=>t.type===n.ClearSignContextType.TOKEN)+1,expect.objectContaining(new s.ProvideTokenInformationCommand({payload:"746f6b656e"})))}),it("should return the command error result and stop when the command fails",async()=>{e.sendCommand.mockReset(),e.sendCommand.mockResolvedValueOnce(d);const t=await new r.ProvideTransactionContextTask(e,o).run();expect(e.sendCommand).toHaveBeenCalledTimes(1),expect(t.isJust()).toBe(!0),expect(t.extract()).toStrictEqual(d)})})});
|
|
2
|
-
//# sourceMappingURL=ProvideTransactionContextTask.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionContextTask.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { ClearSignContextType } from \"@ledgerhq/context-module\";\nimport {\n CommandResultFactory,\n type UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { ProvideNFTInformationCommand } from \"@internal/app-binder/command/ProvideNFTInformationCommand\";\nimport { ProvideTokenInformationCommand } from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { SetExternalPluginCommand } from \"@internal/app-binder/command/SetExternalPluginCommand\";\nimport { SetPluginCommand } from \"@internal/app-binder/command/SetPluginCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\n\nimport {\n ProvideTransactionContextTask,\n type ProvideTransactionContextTaskArgs,\n} from \"./ProvideTransactionContextTask\";\n\ndescribe(\"ProvideTransactionContextTask\", () => {\n const api = makeDeviceActionInternalApiMock();\n const successResult = CommandResultFactory<void, EthErrorCodes>({\n data: undefined,\n });\n const errorResult = CommandResultFactory<void, EthErrorCodes>({\n data: undefined,\n error: {} as UnknownDeviceExchangeError,\n });\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"run\", () => {\n const args: ProvideTransactionContextTaskArgs = {\n clearSignContexts: [\n {\n type: ClearSignContextType.PLUGIN,\n payload: \"706c7567696e\", // \"plugin\"\n },\n {\n type: ClearSignContextType.EXTERNAL_PLUGIN,\n payload: \"65787465726e616c506c7567696e\", // \"externalPlugin\"\n },\n {\n type: ClearSignContextType.NFT,\n payload: \"6e6674\", // \"nft\"\n },\n {\n type: ClearSignContextType.TOKEN,\n payload: \"746f6b656e\", // \"token\"\n },\n ],\n web3Check: null,\n };\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should send relative commands when receiving ClearSignContexts of type not trustedName\", async () => {\n api.sendCommand.mockResolvedValue(successResult);\n // GIVEN\n const task = new ProvideTransactionContextTask(api, args);\n // WHEN\n await task.run();\n // THEN\n expect(api.sendCommand).toHaveBeenCalledTimes(4);\n expect(api.sendCommand).toHaveBeenNthCalledWith(\n args.clearSignContexts.findIndex(\n (c) => c.type === ClearSignContextType.PLUGIN,\n ) + 1,\n expect.objectContaining(\n new SetPluginCommand({ payload: \"706c7567696e\" }),\n ),\n );\n expect(api.sendCommand).toHaveBeenNthCalledWith(\n args.clearSignContexts.findIndex(\n (c) => c.type === ClearSignContextType.EXTERNAL_PLUGIN,\n ) + 1,\n expect.objectContaining(\n new SetExternalPluginCommand({\n payload: \"65787465726e616c506c7567696e\",\n }),\n ),\n );\n expect(api.sendCommand).toHaveBeenNthCalledWith(\n args.clearSignContexts.findIndex(\n (c) => c.type === ClearSignContextType.NFT,\n ) + 1,\n expect.objectContaining(\n new ProvideNFTInformationCommand({ payload: \"6e6674\" }),\n ),\n );\n expect(api.sendCommand).toHaveBeenNthCalledWith(\n args.clearSignContexts.findIndex(\n (c) => c.type === ClearSignContextType.TOKEN,\n ) + 1,\n expect.objectContaining(\n new ProvideTokenInformationCommand({ payload: \"746f6b656e\" }),\n ),\n );\n });\n it(\"should return the command error result and stop when the command fails\", async () => {\n api.sendCommand.mockReset();\n api.sendCommand.mockResolvedValueOnce(errorResult);\n // GIVEN\n const task = new ProvideTransactionContextTask(api, args);\n // WHEN\n const result = await task.run();\n // THEN\n expect(api.sendCommand).toHaveBeenCalledTimes(1);\n expect(result.isJust()).toBe(true);\n expect(result.extract()).toStrictEqual(errorResult);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAAqC,oCACrCC,EAGO,2CAEPC,EAA6C,qEAC7CC,EAA+C,uEAC/CC,EAAyC,iEACzCC,EAAiC,yDAEjCC,EAAgD,6EAEhDC,EAGO,2CAEP,SAAS,gCAAiC,IAAM,CAC9C,MAAMC,KAAM,mCAAgC,EACtCC,KAAgB,wBAA0C,CAC9D,KAAM,MACR,CAAC,EACKC,KAAc,wBAA0C,CAC5D,KAAM,OACN,MAAO,CAAC,CACV,CAAC,EAED,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,SAAS,MAAO,IAAM,CACpB,MAAMC,EAA0C,CAC9C,kBAAmB,CACjB,CACE,KAAM,uBAAqB,OAC3B,QAAS,cACX,EACA,CACE,KAAM,uBAAqB,gBAC3B,QAAS,8BACX,EACA,CACE,KAAM,uBAAqB,IAC3B,QAAS,QACX,EACA,CACE,KAAM,uBAAqB,MAC3B,QAAS,YACX,CACF,EACA,UAAW,IACb,EACA,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,yFAA0F,SAAY,CACvGH,EAAI,YAAY,kBAAkBC,CAAa,EAI/C,MAFa,IAAI,gCAA8BD,EAAKG,CAAI,EAE7C,IAAI,EAEf,OAAOH,EAAI,WAAW,EAAE,sBAAsB,CAAC,EAC/C,OAAOA,EAAI,WAAW,EAAE,wBACtBG,EAAK,kBAAkB,UACpBC,GAAMA,EAAE,OAAS,uBAAqB,MACzC,EAAI,EACJ,OAAO,iBACL,IAAI,mBAAiB,CAAE,QAAS,cAAe,CAAC,CAClD,CACF,EACA,OAAOJ,EAAI,WAAW,EAAE,wBACtBG,EAAK,kBAAkB,UACpBC,GAAMA,EAAE,OAAS,uBAAqB,eACzC,EAAI,EACJ,OAAO,iBACL,IAAI,2BAAyB,CAC3B,QAAS,8BACX,CAAC,CACH,CACF,EACA,OAAOJ,EAAI,WAAW,EAAE,wBACtBG,EAAK,kBAAkB,UACpBC,GAAMA,EAAE,OAAS,uBAAqB,GACzC,EAAI,EACJ,OAAO,iBACL,IAAI,+BAA6B,CAAE,QAAS,QAAS,CAAC,CACxD,CACF,EACA,OAAOJ,EAAI,WAAW,EAAE,wBACtBG,EAAK,kBAAkB,UACpBC,GAAMA,EAAE,OAAS,uBAAqB,KACzC,EAAI,EACJ,OAAO,iBACL,IAAI,iCAA+B,CAAE,QAAS,YAAa,CAAC,CAC9D,CACF,CACF,CAAC,EACD,GAAG,yEAA0E,SAAY,CACvFJ,EAAI,YAAY,UAAU,EAC1BA,EAAI,YAAY,sBAAsBE,CAAW,EAIjD,MAAMG,EAAS,MAFF,IAAI,gCAA8BL,EAAKG,CAAI,EAE9B,IAAI,EAE9B,OAAOH,EAAI,WAAW,EAAE,sBAAsB,CAAC,EAC/C,OAAOK,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,cAAcH,CAAW,CACpD,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
-
"names": ["import_context_module", "import_device_management_kit", "import_ProvideNFTInformationCommand", "import_ProvideTokenInformationCommand", "import_SetExternalPluginCommand", "import_SetPluginCommand", "import_makeInternalApi", "import_ProvideTransactionContextTask", "api", "successResult", "errorResult", "args", "c", "result"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var C=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var E=(s,e)=>{for(var r in e)C(s,r,{get:e[r],enumerable:!0})},P=(s,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of y(e))!x.call(s,o)&&o!==r&&C(s,o,{get:()=>e[o],enumerable:!(t=v(e,o))||t.enumerable});return s};var g=s=>P(C({},"__esModule",{value:!0}),s);var S={};E(S,{ProvideTransactionFieldDescriptionTask:()=>R});module.exports=g(S);var i=require("@ledgerhq/context-module"),n=require("@ledgerhq/device-management-kit"),a=require("purify-ts"),m=require("../../app-binder/command/GetChallengeCommand"),u=require("../../app-binder/command/ProvideEnumCommand"),p=require("../../app-binder/command/ProvideNFTInformationCommand"),l=require("../../app-binder/command/ProvideTokenInformationCommand"),f=require("../../app-binder/command/ProvideTransactionFieldDescriptionCommand"),h=require("../../app-binder/command/ProvideTrustedNameCommand"),T=require("../../app-binder/command/ProvideWeb3CheckCommand"),c=require("./SendPayloadInChunksTask");class R{constructor(e,r){this.api=e;this.args=r}async run(){const{field:e}=this.args;if(await this.loadCertificate(e.certificate),e.reference!==void 0&&"value"in e.reference&&e.reference.value!==void 0&&await this.getAndProvideContext({type:e.reference.type,chainId:this.args.chainId,address:e.reference.value}),e.reference!==void 0&&e.reference.valuePath!==void 0){const t=this.args.transactionParser.extractValue(this.args.serializedTransaction,e.reference.valuePath);if(t.isRight())for(const o of t.extract()){const d=await this.provideContextReference(e.reference,o);if(d.isJust())return d}}const r=await this.provideContext({...e});return(0,n.isSuccessCommandResult)(r)?a.Nothing:(0,a.Just)(r)}async loadCertificate(e){e&&await this.api.sendCommand(new n.LoadCertificateCommand({keyUsage:e.keyUsageNumber,certificate:e.payload}))}async provideContextReference(e,r){if(e.type===i.ClearSignContextType.ENUM)return this.provideEnumContextReference(e,r);const t=(0,n.bufferToHexaString)(r.slice(Math.max(0,r.length-20)));return e.type===i.ClearSignContextType.TRUSTED_NAME?this.provideTustedNameContextReference(e,t):this.getAndProvideContext({type:e.type,chainId:this.args.chainId,address:t})}async provideEnumContextReference(e,r){const t=r[r.length-1];if(!t)return a.Nothing;const o=this.args.transactionEnums.find(d=>d.value===t&&d.id===e.id);if(o){await this.loadCertificate(o.certificate);const d=await this.provideContext(o);if(!(0,n.isSuccessCommandResult)(d))return(0,a.Just)(d)}return a.Nothing}async provideTustedNameContextReference(e,r){const t=await this.api.sendCommand(new m.GetChallengeCommand);return(0,n.isSuccessCommandResult)(t)?this.getAndProvideContext({type:e.type,chainId:this.args.chainId,address:r,challenge:t.data.challenge,types:e.types,sources:e.sources}):(0,a.Just)(t)}async getAndProvideContext(e){const r=await this.args.contextModule.getContext(e);if(r.type!==i.ClearSignContextType.ERROR){const t=await this.provideContext(r);if(!(0,n.isSuccessCommandResult)(t))return(0,a.Just)(t)}return a.Nothing}async provideContext({type:e,payload:r}){switch(e){case i.ClearSignContextType.NFT:return await this.api.sendCommand(new p.ProvideNFTInformationCommand({payload:r}));case i.ClearSignContextType.TOKEN:return await this.api.sendCommand(new l.ProvideTokenInformationCommand({payload:r}));case i.ClearSignContextType.TRUSTED_NAME:return new c.SendPayloadInChunksTask(this.api,{payload:r,commandFactory:t=>new h.ProvideTrustedNameCommand({data:t.chunkedData,isFirstChunk:t.isFirstChunk})}).run();case i.ClearSignContextType.ENUM:return new c.SendPayloadInChunksTask(this.api,{payload:r,commandFactory:t=>new u.ProvideEnumCommand({data:t.chunkedData,isFirstChunk:t.isFirstChunk})}).run();case i.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION:return new c.SendPayloadInChunksTask(this.api,{payload:r,commandFactory:t=>new f.ProvideTransactionFieldDescriptionCommand({data:t.chunkedData,isFirstChunk:t.isFirstChunk})}).run();case i.ClearSignContextType.TRANSACTION_INFO:case i.ClearSignContextType.PLUGIN:case i.ClearSignContextType.EXTERNAL_PLUGIN:return(0,n.CommandResultFactory)({error:new n.InvalidStatusWordError(`The context type [${e}] is not valid as a transaction field or metadata`)});case i.ClearSignContextType.WEB3_CHECK:return new c.SendPayloadInChunksTask(this.api,{payload:r,commandFactory:t=>new T.ProvideWeb3CheckCommand({payload:t.chunkedData,isFirstChunk:t.isFirstChunk})}).run();default:{const t=e;return(0,n.CommandResultFactory)({error:new n.InvalidStatusWordError(`The context type [${t}] is not covered`)})}}}}0&&(module.exports={ProvideTransactionFieldDescriptionTask});
|
|
2
|
-
//# sourceMappingURL=ProvideTransactionFieldDescriptionTask.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContextReference,\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n ClearSignContextType,\n type ContextModule,\n type PkiCertificate,\n type TransactionFieldContext,\n} from \"@ledgerhq/context-module\";\nimport {\n bufferToHexaString,\n type CommandErrorResult,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n type InternalApi,\n InvalidStatusWordError,\n isSuccessCommandResult,\n LoadCertificateCommand,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, type Maybe, Nothing } from \"purify-ts\";\n\nimport { GetChallengeCommand } from \"@internal/app-binder/command/GetChallengeCommand\";\nimport { ProvideEnumCommand } from \"@internal/app-binder/command/ProvideEnumCommand\";\nimport { ProvideNFTInformationCommand } from \"@internal/app-binder/command/ProvideNFTInformationCommand\";\nimport {\n ProvideTokenInformationCommand,\n type ProvideTokenInformationCommandResponse,\n} from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { ProvideTransactionFieldDescriptionCommand } from \"@internal/app-binder/command/ProvideTransactionFieldDescriptionCommand\";\nimport { ProvideTrustedNameCommand } from \"@internal/app-binder/command/ProvideTrustedNameCommand\";\nimport { ProvideWeb3CheckCommand } from \"@internal/app-binder/command/ProvideWeb3CheckCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { type ProvideTransactionGenericContextTaskErrorCodes } from \"./ProvideTransactionGenericContextTask\";\nimport { SendPayloadInChunksTask } from \"./SendPayloadInChunksTask\";\n\nexport type ProvideTransactionFieldDescriptionTaskArgs = {\n field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionParser: TransactionParserService;\n contextModule: ContextModule;\n transactionEnums: ClearSignContextSuccess<ClearSignContextType.ENUM>[];\n};\n\nexport type ProvideTransactionFieldDescriptionTaskErrorCodes =\n void | EthErrorCodes;\n\n/**\n * This task is responsible for providing the transaction context to the device.\n *\n */\nexport class ProvideTransactionFieldDescriptionTask {\n constructor(\n private api: InternalApi,\n private args: ProvideTransactionFieldDescriptionTaskArgs,\n ) {}\n\n async run(): Promise<\n Maybe<\n CommandErrorResult<\n ProvideTransactionFieldDescriptionTaskErrorCodes | EthErrorCodes\n >\n >\n > {\n const { field } = this.args;\n\n // If a certificate is provided, start by loading it to the device\n await this.loadCertificate(field.certificate);\n\n // if the reference is a string, it means it is a direct address\n // and we don't need to extract the value from the transaction\n // as it is already provided in the reference\n if (\n field.reference !== undefined &&\n \"value\" in field.reference &&\n field.reference.value !== undefined\n ) {\n await this.getAndProvideContext({\n type: field.reference.type,\n chainId: this.args.chainId,\n address: field.reference.value,\n });\n }\n\n // if the reference is a path, it means we need to extract the value\n // from the transaction and provide it to the device\n if (\n field.reference !== undefined &&\n field.reference.valuePath !== undefined\n ) {\n // iterate on each reference and provide the context\n const referenceValues = this.args.transactionParser.extractValue(\n this.args.serializedTransaction,\n field.reference.valuePath,\n );\n\n if (referenceValues.isRight()) {\n for (const value of referenceValues.extract()) {\n const provideReferenceResult = await this.provideContextReference(\n field.reference,\n value,\n );\n if (provideReferenceResult.isJust()) {\n return provideReferenceResult;\n }\n }\n }\n }\n\n const transactionFieldResult = await this.provideContext({ ...field });\n if (!isSuccessCommandResult(transactionFieldResult)) {\n return Just(transactionFieldResult);\n }\n\n return Nothing;\n }\n\n /**\n * This method will load the certificate to the device if it is provided.\n *\n * @param {PkiCertificate | undefined} certificate The certificate to load to the device.\n * @returns A promise that resolves when the certificate is loaded.\n */\n private async loadCertificate(\n certificate: PkiCertificate | undefined,\n ): Promise<void> {\n if (!certificate) return;\n\n await this.api.sendCommand(\n new LoadCertificateCommand({\n keyUsage: certificate.keyUsageNumber,\n certificate: certificate.payload,\n }),\n );\n }\n\n /**\n * This method will provide the context reference to the device.\n *\n * @param {ClearSignContextReference} reference The reference to provide.\n * @param {Uint8Array} value The value of the reference.\n * @returns A promise that resolves when the context is provided.\n */\n private async provideContextReference(\n reference: ClearSignContextReference,\n value: Uint8Array,\n ): Promise<\n Maybe<\n CommandErrorResult<\n ProvideTransactionGenericContextTaskErrorCodes | EthErrorCodes\n >\n >\n > {\n if (reference.type === ClearSignContextType.ENUM) {\n return this.provideEnumContextReference(reference, value);\n }\n\n const address = bufferToHexaString(\n value.slice(Math.max(0, value.length - 20)),\n );\n\n if (reference.type === ClearSignContextType.TRUSTED_NAME) {\n return this.provideTustedNameContextReference(reference, address);\n }\n\n return this.getAndProvideContext({\n type: reference.type,\n chainId: this.args.chainId,\n address,\n });\n }\n\n /**\n * This method will provide the enum context reference to the device\n * if the enum value is found in the transaction enums mapping.\n *\n * Note: We do not need to call the context module to get the enum context\n * as it is already provided with transactionEnums mapping.\n *\n * @param {ClearSignContextReference<ClearSignContextType.ENUM>} reference The enum reference to provide.\n * @param {Uint8Array} value The value of the enum.\n * @returns A promise that resolves when the context is provided.\n */\n private async provideEnumContextReference(\n reference: ClearSignContextReference<ClearSignContextType.ENUM>,\n value: Uint8Array,\n ): Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n > {\n const enumValue = value[value.length - 1];\n if (!enumValue) return Nothing;\n\n const enumDescriptor = this.args.transactionEnums.find(\n (enumContext) =>\n enumContext.value === enumValue && enumContext.id === reference.id,\n );\n if (enumDescriptor) {\n await this.loadCertificate(enumDescriptor.certificate);\n\n const provideEnumResult = await this.provideContext(enumDescriptor);\n if (!isSuccessCommandResult(provideEnumResult)) {\n return Just(provideEnumResult);\n }\n }\n return Nothing;\n }\n\n /**\n * This method will provide the trusted name context reference to the device.\n *\n * Note: We need to call the context module to get the trusted name context\n * with a challenge to ensure the trusted name is valid.\n *\n * @param {ClearSignContextReference<ClearSignContextType.TRUSTED_NAME>} reference The trusted name reference to provide.\n * @param {HexaString} address The address of the trusted name.\n * @returns A promise that resolves when the context is provided.\n */\n private async provideTustedNameContextReference(\n reference: ClearSignContextReference<ClearSignContextType.TRUSTED_NAME>,\n address: HexaString,\n ): Promise<\n Maybe<\n CommandErrorResult<\n ProvideTransactionGenericContextTaskErrorCodes | EthErrorCodes\n >\n >\n > {\n const getChallengeResult = await this.api.sendCommand(\n new GetChallengeCommand(),\n );\n if (!isSuccessCommandResult(getChallengeResult)) {\n return Just(getChallengeResult);\n }\n\n return this.getAndProvideContext({\n type: reference.type,\n chainId: this.args.chainId,\n address,\n challenge: getChallengeResult.data.challenge,\n types: reference.types,\n sources: reference.sources,\n });\n }\n\n /**\n * This method will get the context from the context module\n * and provide it to the device.\n *\n * @param {TransactionFieldContext} field The field to provide.\n * @returns A promise that resolves when the context is provided.\n */\n private async getAndProvideContext(\n field: TransactionFieldContext,\n ): Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n > {\n const context = await this.args.contextModule.getContext(field);\n if (context.type !== ClearSignContextType.ERROR) {\n const provideReferenceResult = await this.provideContext(context);\n if (!isSuccessCommandResult(provideReferenceResult)) {\n return Just(provideReferenceResult);\n }\n }\n return Nothing;\n }\n\n /**\n * This method will send a command according to the clear sign context type\n * and return the command result if only one command is sent,\n * otherwise it will return the result of the command.\n *\n * @param {ClearSignContextSuccess} context The clear sign context to provide.\n * @returns A promise that resolves when the command return a command response.\n */\n private async provideContext({\n type,\n payload,\n }: ClearSignContextSuccess): Promise<\n CommandResult<\n void | ProvideTokenInformationCommandResponse,\n ProvideTransactionGenericContextTaskErrorCodes\n >\n > {\n switch (type) {\n case ClearSignContextType.NFT:\n return await this.api.sendCommand(\n new ProvideNFTInformationCommand({ payload }),\n );\n case ClearSignContextType.TOKEN:\n return await this.api.sendCommand(\n new ProvideTokenInformationCommand({ payload }),\n );\n case ClearSignContextType.TRUSTED_NAME:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideTrustedNameCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n case ClearSignContextType.ENUM:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideEnumCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n case ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideTransactionFieldDescriptionCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n case ClearSignContextType.TRANSACTION_INFO:\n case ClearSignContextType.PLUGIN:\n case ClearSignContextType.EXTERNAL_PLUGIN:\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [${type}] is not valid as a transaction field or metadata`,\n ),\n });\n case ClearSignContextType.WEB3_CHECK:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideWeb3CheckCommand({\n payload: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n default: {\n const uncoveredType: never = type;\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [${uncoveredType}] is not covered`,\n ),\n });\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["ProvideTransactionFieldDescriptionTask_exports", "__export", "ProvideTransactionFieldDescriptionTask", "__toCommonJS", "import_context_module", "import_device_management_kit", "import_purify_ts", "import_GetChallengeCommand", "import_ProvideEnumCommand", "import_ProvideNFTInformationCommand", "import_ProvideTokenInformationCommand", "import_ProvideTransactionFieldDescriptionCommand", "import_ProvideTrustedNameCommand", "import_ProvideWeb3CheckCommand", "import_SendPayloadInChunksTask", "api", "args", "field", "referenceValues", "value", "provideReferenceResult", "transactionFieldResult", "certificate", "reference", "address", "enumValue", "enumDescriptor", "enumContext", "provideEnumResult", "getChallengeResult", "context", "type", "payload", "uncoveredType"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("@ledgerhq/context-module"),t=require("@ledgerhq/device-management-kit"),l=require("purify-ts"),m=require("../../app-binder/command/GetChallengeCommand"),y=require("../../app-binder/command/ProvideEnumCommand"),C=require("../../app-binder/command/ProvideNFTInformationCommand"),T=require("../../app-binder/command/ProvideTokenInformationCommand"),x=require("../../app-binder/command/ProvideTransactionFieldDescriptionCommand"),u=require("../../app-binder/command/ProvideTrustedNameCommand"),d=require("./ProvideTransactionFieldDescriptionTask");describe("ProvideTransactionFieldDescriptionTask",()=>{const s={extractValue:vi.fn()},a={getContext:vi.fn()},n={sendCommand:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),describe("should call the right provide command",()=>{it.each([{type:e.ClearSignContextType.NFT,commandInstanceType:C.ProvideNFTInformationCommand},{type:e.ClearSignContextType.TOKEN,commandInstanceType:T.ProvideTokenInformationCommand},{type:e.ClearSignContextType.TRUSTED_NAME,commandInstanceType:u.ProvideTrustedNameCommand},{type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,commandInstanceType:x.ProvideTransactionFieldDescriptionCommand}])("when type is $type",async({type:c,commandInstanceType:o})=>{const r=vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),p={type:c,payload:"0x01020304"};await new d.ProvideTransactionFieldDescriptionTask(n,{field:p,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run(),expect(r.mock.calls[0][0]).toBeInstanceOf(o),expect(n.sendCommand).toHaveBeenCalledTimes(1)}),it("when type is transactionFieldDescription with a enum reference",async()=>{const c=vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})).mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"}));vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])]));const r={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};await new d.ProvideTransactionFieldDescriptionTask(n,{field:r,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[{id:66,value:1,type:e.ClearSignContextType.ENUM,payload:"0x060708"},{id:66,value:4,type:e.ClearSignContextType.ENUM,payload:"0x080706"}]}).run(),expect(n.sendCommand).toHaveBeenCalledTimes(2),expect(c.mock.calls[0][0]).toBeInstanceOf(y.ProvideEnumCommand),expect(c.mock.calls[0][0].args.data).toEqual(new Uint8Array([0,3,8,7,6])),expect(c.mock.calls[1][0]).toBeInstanceOf(x.ProvideTransactionFieldDescriptionCommand)})}),describe("should return nothing",()=>{it.each([e.ClearSignContextType.NFT,e.ClearSignContextType.TOKEN,e.ClearSignContextType.TRUSTED_NAME,e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION])("when type is %s with no reference",async c=>{const r={type:c,payload:"0x01020304"};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"}));const p=await new d.ProvideTransactionFieldDescriptionTask(n,{field:r,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(p).toEqual(l.Nothing)})}),describe("should provide a reference context",()=>{it.each([e.ClearSignContextType.NFT,e.ClearSignContextType.TOKEN])("when type is %s with a reference",async c=>{const o="0x01020304",r={type:c,payload:o,reference:{type:e.ClearSignContextType.TOKEN,valuePath:e.ContainerPath.VALUE}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])])),vi.spyOn(a,"getContext").mockResolvedValueOnce({type:c,payload:o});const p=await new d.ProvideTransactionFieldDescriptionTask(n,{field:r,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.TOKEN,chainId:1,address:"0x01020304"}),expect(p).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(2)}),it("when type is trustes-name with a reference",async()=>{const c="0x01020304",o="0x05060708",r=new Uint8Array([17,34,51,68]),i="0x11223344",p={type:e.ClearSignContextType.TRUSTED_NAME,payload:c,reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:{challenge:66}})).mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})).mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([r])),vi.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TRUSTED_NAME,payload:o});const v=await new d.ProvideTransactionFieldDescriptionTask(n,{field:p,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.TRUSTED_NAME,chainId:1,address:i,types:["type"],sources:["source"],challenge:66}),expect(v).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(3),expect(n.sendCommand).toHaveBeenNthCalledWith(1,new m.GetChallengeCommand),expect(n.sendCommand).toHaveBeenNthCalledWith(2,new u.ProvideTrustedNameCommand({data:new Uint8Array([0,4,5,6,7,8]),isFirstChunk:!0})),expect(n.sendCommand).toHaveBeenNthCalledWith(3,new u.ProvideTrustedNameCommand({data:new Uint8Array([0,4,1,2,3,4]),isFirstChunk:!0}))}),it("when type is token with a constant reference",async()=>{const o={type:e.ClearSignContextType.TOKEN,payload:"0x01020304",reference:{type:e.ClearSignContextType.TOKEN,value:"0x09080706"}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})).mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TOKEN,payload:"0x05060708"});const i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(s.extractValue).not.toHaveBeenCalled(),expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.TOKEN,chainId:1,address:"0x09080706"}),expect(i).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(2)}),it("when type is a ntf with a constant reference",async()=>{const o={type:e.ClearSignContextType.NFT,payload:"0x01020304",reference:{type:e.ClearSignContextType.NFT,value:"0x09080706"}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.NFT,payload:"0x05060708"});const i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(s.extractValue).not.toHaveBeenCalled(),expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.NFT,chainId:1,address:"0x09080706"}),expect(i).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(2)})}),describe("should not provide a reference context",()=>{it("when the path is not found in transaction payload",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Left)(new Error("path not found")));const i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(i).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(1),expect(a.getContext).not.toHaveBeenCalled()}),it("when getContext return a type error",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])])),vi.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.ERROR,error:new Error("getContext error")}),vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:{challenge:66}})),vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"}));const i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(i).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(2),expect(a.getContext).toHaveBeenCalledTimes(1)}),it("when no enum descriptor is found",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])]));const r=vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),p=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(p).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(1),expect(r.mock.calls[0][0]).toBeInstanceOf(x.ProvideTransactionFieldDescriptionCommand)}),it("when the enum reference path value is empty",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([])]));const r=vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),p=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[{id:66,value:1,type:e.ClearSignContextType.ENUM,payload:"0x060708"},{id:66,value:4,type:e.ClearSignContextType.ENUM,payload:"0x080706"}]}).run();expect(p).toEqual(l.Nothing),expect(n.sendCommand).toHaveBeenCalledTimes(1),expect(r.mock.calls[0][0]).toBeInstanceOf(x.ProvideTransactionFieldDescriptionCommand)})}),describe("should return an error",()=>{it.each([e.ClearSignContextType.TRANSACTION_INFO,e.ClearSignContextType.PLUGIN,e.ClearSignContextType.EXTERNAL_PLUGIN])("when type is %s",async c=>{const o=`payload-${c}`,r={type:c,payload:o},p=await new d.ProvideTransactionFieldDescriptionTask(n,{field:r,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(p.extract()).toEqual((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError(`The context type [${c}] is not valid as a transaction field or metadata`)}))}),it("when type is unknown",async()=>{const o={type:"unknown",payload:"payload-unknown"},i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(i.extract()).toEqual((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("The context type [unknown] is not covered")}))}),it("when getChallenge fails",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("getChallenge error")})),vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])]));const i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(i.extract()).toEqual((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("getChallenge error")}))}),it("when provide reference with a token fails",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.TOKEN,valuePath:e.ContainerPath.VALUE}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("provide reference error")})),vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])])),vi.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TOKEN,payload:"0x05060708"});const i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(i.extract()).toEqual((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("provide reference error")}))}),it("when provide reference with a trusted name fails",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("provide reference error")})),vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])])),vi.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x05060708"});const i=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(i.extract()).toEqual((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("provide reference error")}))}),it("when provide reference with a enum reference fails",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};vi.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])]));const r=vi.spyOn(n,"sendCommand").mockResolvedValueOnce((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("provide reference error")})).mockResolvedValueOnce((0,t.CommandResultFactory)({data:"ok"})),p=await new d.ProvideTransactionFieldDescriptionTask(n,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[{id:66,value:4,type:e.ClearSignContextType.ENUM,payload:"0x080706"}]}).run();expect(p.extract()).toEqual((0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("provide reference error")})),expect(n.sendCommand).toHaveBeenCalledTimes(1),expect(r.mock.calls[0][0]).toBeInstanceOf(y.ProvideEnumCommand)})})});
|
|
2
|
-
//# sourceMappingURL=ProvideTransactionFieldDescriptionTask.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n ClearSignContextType,\n ContainerPath,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Nothing, Right } from \"purify-ts\";\n\nimport { GetChallengeCommand } from \"@internal/app-binder/command/GetChallengeCommand\";\nimport { ProvideEnumCommand } from \"@internal/app-binder/command/ProvideEnumCommand\";\nimport { ProvideNFTInformationCommand } from \"@internal/app-binder/command/ProvideNFTInformationCommand\";\nimport { ProvideTokenInformationCommand } from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { ProvideTransactionFieldDescriptionCommand } from \"@internal/app-binder/command/ProvideTransactionFieldDescriptionCommand\";\nimport { ProvideTrustedNameCommand } from \"@internal/app-binder/command/ProvideTrustedNameCommand\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { ProvideTransactionFieldDescriptionTask } from \"./ProvideTransactionFieldDescriptionTask\";\n\ndescribe(\"ProvideTransactionFieldDescriptionTask\", () => {\n const transactionParserMock = {\n extractValue: vi.fn(),\n } as unknown as TransactionParserService;\n const contextModuleMock = {\n getContext: vi.fn(),\n } as unknown as ContextModule;\n const apiMock: InternalApi = {\n sendCommand: vi.fn(),\n } as unknown as InternalApi;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"should call the right provide command\", () => {\n it.each<{\n type: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"];\n commandInstanceType: unknown;\n }>([\n {\n type: ClearSignContextType.NFT,\n commandInstanceType: ProvideNFTInformationCommand,\n },\n {\n type: ClearSignContextType.TOKEN,\n commandInstanceType: ProvideTokenInformationCommand,\n },\n {\n type: ClearSignContextType.TRUSTED_NAME,\n commandInstanceType: ProvideTrustedNameCommand,\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n commandInstanceType: ProvideTransactionFieldDescriptionCommand,\n },\n ])(\"when type is $type\", async ({ type, commandInstanceType }) => {\n // GIVEN\n const spy = vi\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type,\n payload,\n };\n\n // WHEN\n await new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n }).run();\n\n // THEN\n expect(spy.mock.calls[0]![0]).toBeInstanceOf(commandInstanceType);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n });\n\n it(\"when type is transactionFieldDescription with a enum reference\", async () => {\n // GIVEN\n const spy = vi\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }))\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]),\n );\n\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n\n // WHEN\n await new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [\n {\n id: 0x42,\n value: 0x01,\n type: ClearSignContextType.ENUM,\n payload: \"0x060708\",\n },\n {\n id: 0x42,\n value: 0x04,\n type: ClearSignContextType.ENUM,\n payload: \"0x080706\",\n },\n ],\n }).run();\n\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect(spy.mock.calls[0]![0]).toBeInstanceOf(ProvideEnumCommand);\n // @ts-expect-error args exists\n expect(spy.mock.calls[0]![0].args.data).toEqual(\n new Uint8Array([0x00, 0x03, 0x08, 0x07, 0x06]),\n ); // length + value of the enum with id 0x42 and value 0x04\n expect(spy.mock.calls[1]![0]).toBeInstanceOf(\n ProvideTransactionFieldDescriptionCommand,\n );\n });\n });\n\n describe(\"should return nothing\", () => {\n it.each<\n ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"]\n >([\n ClearSignContextType.NFT,\n ClearSignContextType.TOKEN,\n ClearSignContextType.TRUSTED_NAME,\n ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n ])(\"when type is %s with no reference\", async (type) => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type,\n payload,\n };\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n });\n });\n\n describe(\"should provide a reference context\", () => {\n it.each<\n ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"]\n >([ClearSignContextType.NFT, ClearSignContextType.TOKEN])(\n \"when type is %s with a reference\",\n async (type) => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type,\n payload,\n reference: {\n type: ClearSignContextType.TOKEN,\n valuePath: ContainerPath.VALUE,\n },\n };\n // provide reference context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n // provide context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]),\n );\n vi.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type,\n payload,\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.TOKEN,\n chainId: 1,\n address: \"0x01020304\",\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n },\n );\n\n it(\"when type is trustes-name with a reference\", async () => {\n // GIVEN\n const payload1 = `0x01020304`;\n const payload2 = `0x05060708`;\n const extractedValue = new Uint8Array([0x11, 0x22, 0x33, 0x44]);\n const extractedValueAddress = \"0x11223344\";\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload: payload1,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n\n vi.spyOn(apiMock, \"sendCommand\")\n // getChallenge\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { challenge: 0x42 } }),\n )\n // provide reference context\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }))\n // provide context\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([extractedValue]),\n );\n\n vi.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TRUSTED_NAME,\n payload: payload2,\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n // getContext for the extracted value address\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.TRUSTED_NAME,\n chainId: 1,\n address: extractedValueAddress,\n types: [\"type\"],\n sources: [\"source\"],\n challenge: 0x42,\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(3);\n expect(apiMock.sendCommand).toHaveBeenNthCalledWith(\n 1,\n new GetChallengeCommand(),\n );\n expect(apiMock.sendCommand).toHaveBeenNthCalledWith(\n 2,\n new ProvideTrustedNameCommand({\n data: new Uint8Array([0x00, 0x04, 0x05, 0x06, 0x07, 0x08]),\n isFirstChunk: true,\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenNthCalledWith(\n 3,\n new ProvideTrustedNameCommand({\n data: new Uint8Array([0x00, 0x04, 0x01, 0x02, 0x03, 0x04]),\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"when type is token with a constant reference\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TOKEN,\n payload,\n reference: {\n type: ClearSignContextType.TOKEN,\n value: \"0x09080706\",\n },\n };\n vi.spyOn(apiMock, \"sendCommand\")\n // provide reference context\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }))\n // provide context\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n vi.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TOKEN,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(transactionParserMock.extractValue).not.toHaveBeenCalled();\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.TOKEN,\n chainId: 1,\n address: \"0x09080706\",\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n });\n\n it(\"when type is a ntf with a constant reference\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.NFT,\n payload,\n reference: {\n type: ClearSignContextType.NFT,\n value: \"0x09080706\",\n },\n };\n // provide reference context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n // provide context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n vi.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.NFT,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(transactionParserMock.extractValue).not.toHaveBeenCalled();\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.NFT,\n chainId: 1,\n address: \"0x09080706\",\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n });\n });\n\n describe(\"should not provide a reference context\", () => {\n it(\"when the path is not found in transaction payload\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n // provide context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Left(new Error(\"path not found\")),\n );\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).not.toHaveBeenCalled();\n });\n\n it(\"when getContext return a type error\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]),\n );\n vi.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.ERROR,\n error: new Error(\"getContext error\"),\n });\n // getChallenge\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: { challenge: 0x42 } }),\n );\n // provide context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n });\n\n it(\"when no enum descriptor is found\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]),\n );\n\n const spy = vi\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0]![0]).toBeInstanceOf(\n ProvideTransactionFieldDescriptionCommand,\n );\n });\n\n it(\"when the enum reference path value is empty\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([])]),\n ); // empty value\n\n const spy = vi\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [\n {\n id: 0x42,\n value: 0x01,\n type: ClearSignContextType.ENUM,\n payload: \"0x060708\",\n },\n {\n id: 0x42,\n value: 0x04,\n type: ClearSignContextType.ENUM,\n payload: \"0x080706\",\n },\n ],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0]![0]).toBeInstanceOf(\n ProvideTransactionFieldDescriptionCommand,\n );\n });\n });\n\n describe(\"should return an error\", () => {\n it.each<\n ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"]\n >([\n ClearSignContextType.TRANSACTION_INFO,\n ClearSignContextType.PLUGIN,\n ClearSignContextType.EXTERNAL_PLUGIN,\n ])(\"when type is %s\", async (type) => {\n // GIVEN\n const payload = `payload-${type}`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type,\n payload,\n };\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [${type}] is not valid as a transaction field or metadata`,\n ),\n }),\n );\n });\n\n it(\"when type is unknown\", async () => {\n // GIVEN\n const payload = `payload-unknown`;\n const field = {\n type: \"unknown\" as ClearSignContextType,\n payload,\n } as ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >;\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [unknown] is not covered`,\n ),\n }),\n );\n });\n\n it(\"when getChallenge fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"getChallenge error\"),\n }),\n );\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]),\n );\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"getChallenge error\"),\n }),\n );\n });\n\n it(\"when provide reference with a token fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.TOKEN,\n valuePath: ContainerPath.VALUE,\n },\n };\n // provide reference context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n // provide field\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]),\n );\n vi.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TOKEN,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n });\n\n it(\"when provide reference with a trusted name fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n // getChallenge\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({ data: \"ok\" }),\n );\n // provide reference context\n vi.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]),\n );\n vi.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TRUSTED_NAME,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n });\n\n it(\"when provide reference with a enum reference fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n\n vi.spyOn(transactionParserMock, \"extractValue\").mockReturnValueOnce(\n Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]),\n );\n\n const spy = vi\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: \"ok\",\n }),\n );\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [\n {\n id: 0x42,\n value: 0x04,\n type: ClearSignContextType.ENUM,\n payload: \"0x080706\",\n },\n ],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0]![0]).toBeInstanceOf(ProvideEnumCommand);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAMO,oCACPC,EAIO,2CACPC,EAAqC,qBAErCC,EAAoC,4DACpCC,EAAmC,2DACnCC,EAA6C,qEAC7CC,EAA+C,uEAC/CC,EAA0D,kFAC1DC,EAA0C,kEAG1CC,EAAuD,oDAEvD,SAAS,yCAA0C,IAAM,CACvD,MAAMC,EAAwB,CAC5B,aAAc,GAAG,GAAG,CACtB,EACMC,EAAoB,CACxB,WAAY,GAAG,GAAG,CACpB,EACMC,EAAuB,CAC3B,YAAa,GAAG,GAAG,CACrB,EAEA,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,SAAS,wCAAyC,IAAM,CACtD,GAAG,KAKA,CACD,CACE,KAAM,uBAAqB,IAC3B,oBAAqB,8BACvB,EACA,CACE,KAAM,uBAAqB,MAC3B,oBAAqB,gCACvB,EACA,CACE,KAAM,uBAAqB,aAC3B,oBAAqB,2BACvB,EACA,CACE,KAAM,uBAAqB,8BAC3B,oBAAqB,2CACvB,CACF,CAAC,EAAE,qBAAsB,MAAO,CAAE,KAAAC,EAAM,oBAAAC,CAAoB,IAAM,CAEhE,MAAMC,EAAM,GACT,MAAMH,EAAS,aAAa,EAC5B,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAEvDI,EAAiC,CACrC,KAAAH,EACA,QAHc,YAIhB,EAGA,MAAM,IAAI,yCAAuCD,EAAS,CACxD,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EAAE,IAAI,EAGP,OAAOI,EAAI,KAAK,MAAM,CAAC,EAAG,CAAC,CAAC,EAAE,eAAeD,CAAmB,EAChE,OAAOF,EAAQ,WAAW,EAAE,sBAAsB,CAAC,CACrD,CAAC,EAED,GAAG,iEAAkE,SAAY,CAE/E,MAAMG,EAAM,GACT,MAAMH,EAAS,aAAa,EAC5B,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAC1D,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAE7D,GAAG,MAAMF,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAAC,CAAC,CAClD,EAGA,MAAMM,EAAiC,CACrC,KAAM,uBAAqB,8BAC3B,QAHc,aAId,UAAW,CACT,KAAM,uBAAqB,KAC3B,UAAW,gBAAc,MACzB,GAAI,EACN,CACF,EAGA,MAAM,IAAI,yCAAuCJ,EAAS,CACxD,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAChB,CACE,GAAI,GACJ,MAAO,EACP,KAAM,uBAAqB,KAC3B,QAAS,UACX,EACA,CACE,GAAI,GACJ,MAAO,EACP,KAAM,uBAAqB,KAC3B,QAAS,UACX,CACF,CACF,CAAC,EAAE,IAAI,EAEP,OAAOC,EAAQ,WAAW,EAAE,sBAAsB,CAAC,EACnD,OAAOG,EAAI,KAAK,MAAM,CAAC,EAAG,CAAC,CAAC,EAAE,eAAe,oBAAkB,EAE/D,OAAOA,EAAI,KAAK,MAAM,CAAC,EAAG,CAAC,EAAE,KAAK,IAAI,EAAE,QACtC,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,EACA,OAAOA,EAAI,KAAK,MAAM,CAAC,EAAG,CAAC,CAAC,EAAE,eAC5B,2CACF,CACF,CAAC,CACH,CAAC,EAED,SAAS,wBAAyB,IAAM,CACtC,GAAG,KAID,CACA,uBAAqB,IACrB,uBAAqB,MACrB,uBAAqB,aACrB,uBAAqB,6BACvB,CAAC,EAAE,oCAAqC,MAAOF,GAAS,CAGtD,MAAMG,EAAiC,CACrC,KAAAH,EACA,QAHc,YAIhB,EACA,GAAG,MAAMD,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EAWA,MAAMK,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,CAAM,EAAE,QAAQ,SAAO,CAChC,CAAC,CACH,CAAC,EAED,SAAS,qCAAsC,IAAM,CACnD,GAAG,KAID,CAAC,uBAAqB,IAAK,uBAAqB,KAAK,CAAC,EACtD,mCACA,MAAOJ,GAAS,CAEd,MAAMK,EAAU,aACVF,EAAiC,CACrC,KAAAH,EACA,QAAAK,EACA,UAAW,CACT,KAAM,uBAAqB,MAC3B,UAAW,gBAAc,KAC3B,CACF,EAEA,GAAG,MAAMN,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EAEA,GAAG,MAAMA,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EACA,GAAG,MAAMF,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAAC,CAAC,CAClD,EACA,GAAG,MAAMC,EAAmB,YAAY,EAAE,sBAAsB,CAC9D,KAAAE,EACA,QAAAK,CACF,CAAC,EAWD,MAAMD,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOA,EAAkB,UAAU,EAAE,sBAAsB,CAAC,EAC5D,OAAOA,EAAkB,UAAU,EAAE,qBAAqB,CACxD,KAAM,uBAAqB,MAC3B,QAAS,EACT,QAAS,YACX,CAAC,EACD,OAAOM,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,CACrD,CACF,EAEA,GAAG,6CAA8C,SAAY,CAE3D,MAAMO,EAAW,aACXC,EAAW,aACXC,EAAiB,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,EACxDC,EAAwB,aACxBN,EAEF,CACF,KAAM,uBAAqB,aAC3B,QAASG,EACT,UAAW,CACT,KAAM,uBAAqB,aAC3B,UAAW,gBAAc,MACzB,MAAO,CAAC,MAAM,EACd,QAAS,CAAC,QAAQ,CACpB,CACF,EAEA,GAAG,MAAMP,EAAS,aAAa,EAE5B,yBACC,wBAAqB,CAAE,KAAM,CAAE,UAAW,EAAK,CAAE,CAAC,CACpD,EAEC,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAE1D,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAE7D,GAAG,MAAMF,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAACW,CAAc,CAAC,CACxB,EAEA,GAAG,MAAMV,EAAmB,YAAY,EAAE,sBAAsB,CAC9D,KAAM,uBAAqB,aAC3B,QAASS,CACX,CAAC,EAWD,MAAMH,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOA,EAAkB,UAAU,EAAE,sBAAsB,CAAC,EAE5D,OAAOA,EAAkB,UAAU,EAAE,qBAAqB,CACxD,KAAM,uBAAqB,aAC3B,QAAS,EACT,QAASW,EACT,MAAO,CAAC,MAAM,EACd,QAAS,CAAC,QAAQ,EAClB,UAAW,EACb,CAAC,EACD,OAAOL,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,EACnD,OAAOA,EAAQ,WAAW,EAAE,wBAC1B,EACA,IAAI,qBACN,EACA,OAAOA,EAAQ,WAAW,EAAE,wBAC1B,EACA,IAAI,4BAA0B,CAC5B,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EACzD,aAAc,EAChB,CAAC,CACH,EACA,OAAOA,EAAQ,WAAW,EAAE,wBAC1B,EACA,IAAI,4BAA0B,CAC5B,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EACzD,aAAc,EAChB,CAAC,CACH,CACF,CAAC,EAED,GAAG,+CAAgD,SAAY,CAG7D,MAAMI,EAAiC,CACrC,KAAM,uBAAqB,MAC3B,QAHc,aAId,UAAW,CACT,KAAM,uBAAqB,MAC3B,MAAO,YACT,CACF,EACA,GAAG,MAAMJ,EAAS,aAAa,EAE5B,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAE1D,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAE7D,GAAG,MAAMD,EAAmB,YAAY,EAAE,sBAAsB,CAC9D,KAAM,uBAAqB,MAC3B,QAAS,YACX,CAAC,EAWD,MAAMM,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOD,EAAsB,YAAY,EAAE,IAAI,iBAAiB,EAChE,OAAOC,EAAkB,UAAU,EAAE,sBAAsB,CAAC,EAC5D,OAAOA,EAAkB,UAAU,EAAE,qBAAqB,CACxD,KAAM,uBAAqB,MAC3B,QAAS,EACT,QAAS,YACX,CAAC,EACD,OAAOM,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,CACrD,CAAC,EAED,GAAG,+CAAgD,SAAY,CAG7D,MAAMI,EAAiC,CACrC,KAAM,uBAAqB,IAC3B,QAHc,aAId,UAAW,CACT,KAAM,uBAAqB,IAC3B,MAAO,YACT,CACF,EAEA,GAAG,MAAMJ,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EAEA,GAAG,MAAMA,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EACA,GAAG,MAAMD,EAAmB,YAAY,EAAE,sBAAsB,CAC9D,KAAM,uBAAqB,IAC3B,QAAS,YACX,CAAC,EAWD,MAAMM,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOD,EAAsB,YAAY,EAAE,IAAI,iBAAiB,EAChE,OAAOC,EAAkB,UAAU,EAAE,sBAAsB,CAAC,EAC5D,OAAOA,EAAkB,UAAU,EAAE,qBAAqB,CACxD,KAAM,uBAAqB,IAC3B,QAAS,EACT,QAAS,YACX,CAAC,EACD,OAAOM,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,CACrD,CAAC,CACH,CAAC,EAED,SAAS,yCAA0C,IAAM,CACvD,GAAG,oDAAqD,SAAY,CAGlE,MAAMI,EAEF,CACF,KAAM,uBAAqB,aAC3B,QALc,aAMd,UAAW,CACT,KAAM,uBAAqB,aAC3B,UAAW,gBAAc,MACzB,MAAO,CAAC,MAAM,EACd,QAAS,CAAC,QAAQ,CACpB,CACF,EAEA,GAAG,MAAMJ,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EAEA,GAAG,MAAMF,EAAuB,cAAc,EAAE,uBAC9C,QAAK,IAAI,MAAM,gBAAgB,CAAC,CAClC,EAWA,MAAMO,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,EACnD,OAAOD,EAAkB,UAAU,EAAE,IAAI,iBAAiB,CAC5D,CAAC,EAED,GAAG,sCAAuC,SAAY,CAGpD,MAAMK,EAEF,CACF,KAAM,uBAAqB,aAC3B,QALc,aAMd,UAAW,CACT,KAAM,uBAAqB,aAC3B,UAAW,gBAAc,MACzB,MAAO,CAAC,MAAM,EACd,QAAS,CAAC,QAAQ,CACpB,CACF,EACA,GAAG,MAAMN,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,CAAC,CAAC,CAClD,EACA,GAAG,MAAMC,EAAmB,YAAY,EAAE,sBAAsB,CAC9D,KAAM,uBAAqB,MAC3B,MAAO,IAAI,MAAM,kBAAkB,CACrC,CAAC,EAED,GAAG,MAAMC,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,CAAE,UAAW,EAAK,CAAE,CAAC,CACpD,EAEA,GAAG,MAAMA,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EAWA,MAAMK,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,EACnD,OAAOD,EAAkB,UAAU,EAAE,sBAAsB,CAAC,CAC9D,CAAC,EAED,GAAG,mCAAoC,SAAY,CAGjD,MAAMK,EAAiC,CACrC,KAAM,uBAAqB,8BAC3B,QAHc,aAId,UAAW,CACT,KAAM,uBAAqB,KAC3B,UAAW,gBAAc,MACzB,GAAI,EACN,CACF,EAEA,GAAG,MAAMN,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAAC,CAAC,CAClD,EAEA,MAAMK,EAAM,GACT,MAAMH,EAAS,aAAa,EAC5B,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAWvDK,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,EACnD,OAAOG,EAAI,KAAK,MAAM,CAAC,EAAG,CAAC,CAAC,EAAE,eAC5B,2CACF,CACF,CAAC,EAED,GAAG,8CAA+C,SAAY,CAG5D,MAAMC,EAAiC,CACrC,KAAM,uBAAqB,8BAC3B,QAHc,aAId,UAAW,CACT,KAAM,uBAAqB,KAC3B,UAAW,gBAAc,MACzB,GAAI,EACN,CACF,EAEA,GAAG,MAAMN,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAC5B,EAEA,MAAMK,EAAM,GACT,MAAMH,EAAS,aAAa,EAC5B,yBAAsB,wBAAqB,CAAE,KAAM,IAAK,CAAC,CAAC,EAwBvDK,EAAS,MArBF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAChB,CACE,GAAI,GACJ,MAAO,EACP,KAAM,uBAAqB,KAC3B,QAAS,UACX,EACA,CACE,GAAI,GACJ,MAAO,EACP,KAAM,uBAAqB,KAC3B,QAAS,UACX,CACF,CACF,CAAC,EACyB,IAAI,EAG9B,OAAOM,CAAM,EAAE,QAAQ,SAAO,EAC9B,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,EACnD,OAAOG,EAAI,KAAK,MAAM,CAAC,EAAG,CAAC,CAAC,EAAE,eAC5B,2CACF,CACF,CAAC,CACH,CAAC,EAED,SAAS,yBAA0B,IAAM,CACvC,GAAG,KAID,CACA,uBAAqB,iBACrB,uBAAqB,OACrB,uBAAqB,eACvB,CAAC,EAAE,kBAAmB,MAAOF,GAAS,CAEpC,MAAMK,EAAU,WAAWL,CAAI,GACzBG,EAEF,CACF,KAAAH,EACA,QAAAK,CACF,EAWMD,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,EAAO,QAAQ,CAAC,EAAE,WACvB,wBAAqB,CACnB,MAAO,IAAI,yBACT,qBAAqBJ,CAAI,mDAC3B,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,uBAAwB,SAAY,CAGrC,MAAMG,EAAQ,CACZ,KAAM,UACN,QAHc,iBAIhB,EAaMC,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,EAAO,QAAQ,CAAC,EAAE,WACvB,wBAAqB,CACnB,MAAO,IAAI,yBACT,2CACF,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,0BAA2B,SAAY,CAGxC,MAAMD,EAEF,CACF,KAAM,uBAAqB,aAC3B,QALc,aAMd,UAAW,CACT,KAAM,uBAAqB,aAC3B,UAAW,gBAAc,MACzB,MAAO,CAAC,MAAM,EACd,QAAS,CAAC,QAAQ,CACpB,CACF,EACA,GAAG,MAAMJ,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,oBAAoB,CACxD,CAAC,CACH,EACA,GAAG,MAAMF,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,CAAC,CAAC,CAClD,EAWA,MAAMO,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,EAAO,QAAQ,CAAC,EAAE,WACvB,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,oBAAoB,CACxD,CAAC,CACH,CACF,CAAC,EAED,GAAG,4CAA6C,SAAY,CAG1D,MAAMD,EAEF,CACF,KAAM,uBAAqB,8BAC3B,QALc,aAMd,UAAW,CACT,KAAM,uBAAqB,MAC3B,UAAW,gBAAc,KAC3B,CACF,EAEA,GAAG,MAAMJ,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,CACH,EAEA,GAAG,MAAMA,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EACA,GAAG,MAAMF,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,CAAC,CAAC,CAClD,EACA,GAAG,MAAMC,EAAmB,YAAY,EAAE,sBAAsB,CAC9D,KAAM,uBAAqB,MAC3B,QAAS,YACX,CAAC,EAWD,MAAMM,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,EAAO,QAAQ,CAAC,EAAE,WACvB,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,CACH,CACF,CAAC,EAED,GAAG,mDAAoD,SAAY,CAGjE,MAAMD,EAEF,CACF,KAAM,uBAAqB,aAC3B,QALc,aAMd,UAAW,CACT,KAAM,uBAAqB,aAC3B,UAAW,gBAAc,MACzB,MAAO,CAAC,MAAM,EACd,QAAS,CAAC,QAAQ,CACpB,CACF,EAEA,GAAG,MAAMJ,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CAAE,KAAM,IAAK,CAAC,CACrC,EAEA,GAAG,MAAMA,EAAS,aAAa,EAAE,yBAC/B,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,CACH,EACA,GAAG,MAAMF,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,CAAC,CAAC,CAClD,EACA,GAAG,MAAMC,EAAmB,YAAY,EAAE,sBAAsB,CAC9D,KAAM,uBAAqB,aAC3B,QAAS,YACX,CAAC,EAWD,MAAMM,EAAS,MARF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAAC,CACrB,CAAC,EACyB,IAAI,EAG9B,OAAOM,EAAO,QAAQ,CAAC,EAAE,WACvB,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,CACH,CACF,CAAC,EAED,GAAG,qDAAsD,SAAY,CAGnE,MAAMD,EAAiC,CACrC,KAAM,uBAAqB,8BAC3B,QAHc,aAId,UAAW,CACT,KAAM,uBAAqB,KAC3B,UAAW,gBAAc,MACzB,GAAI,EACN,CACF,EAEA,GAAG,MAAMN,EAAuB,cAAc,EAAE,uBAC9C,SAAM,CAAC,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAAC,CAAC,CAClD,EAEA,MAAMK,EAAM,GACT,MAAMH,EAAS,aAAa,EAC5B,yBACC,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,CACH,EACC,yBACC,wBAAqB,CACnB,KAAM,IACR,CAAC,CACH,EAkBIK,EAAS,MAfF,IAAI,yCAAuCL,EAAS,CAC/D,MAAAI,EACA,sBAAuB,IAAI,WAC3B,QAAS,EACT,kBAAmBN,EACnB,cAAeC,EACf,iBAAkB,CAChB,CACE,GAAI,GACJ,MAAO,EACP,KAAM,uBAAqB,KAC3B,QAAS,UACX,CACF,CACF,CAAC,EACyB,IAAI,EAG9B,OAAOM,EAAO,QAAQ,CAAC,EAAE,WACvB,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,CACH,EACA,OAAOL,EAAQ,WAAW,EAAE,sBAAsB,CAAC,EACnD,OAAOG,EAAI,KAAK,MAAM,CAAC,EAAG,CAAC,CAAC,EAAE,eAAe,oBAAkB,CACjE,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
-
"names": ["import_context_module", "import_device_management_kit", "import_purify_ts", "import_GetChallengeCommand", "import_ProvideEnumCommand", "import_ProvideNFTInformationCommand", "import_ProvideTokenInformationCommand", "import_ProvideTransactionFieldDescriptionCommand", "import_ProvideTrustedNameCommand", "import_ProvideTransactionFieldDescriptionTask", "transactionParserMock", "contextModuleMock", "apiMock", "type", "commandInstanceType", "spy", "field", "result", "payload", "payload1", "payload2", "extractedValue", "extractedValueAddress"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var g=(a,t)=>{for(var n in t)d(a,n,{get:t[n],enumerable:!0})},k=(a,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of x(t))!T.call(a,r)&&r!==n&&d(a,r,{get:()=>t[r],enumerable:!(o=f(t,r))||o.enumerable});return a};var S=a=>k(d({},"__esModule",{value:!0}),a);var E={};g(E,{ProvideTransactionGenericContextTask:()=>P});module.exports=S(E);var i=require("@ledgerhq/device-management-kit"),l=require("@ledgerhq/signer-utils"),s=require("purify-ts"),C=require("../../app-binder/command/ProvideTransactionInformationCommand"),m=require("../../app-binder/command/StoreTransactionCommand"),p=require("./ProvideTransactionFieldDescriptionTask"),u=require("./SendCommandInChunksTask"),y=require("./SendPayloadInChunksTask");class P{constructor(t,n){this.api=t;this.args=n}async run(){const t=l.DerivationPathUtils.splitPath(this.args.derivationPath),n=new i.ByteArrayBuilder;n.add8BitUIntToData(t.length),t.forEach(e=>{n.add32BitUIntToData(e)}),n.addBufferToData(this.args.serializedTransaction);const o=await new u.SendCommandInChunksTask(this.api,{data:n.build(),commandFactory:e=>new m.StoreTransactionCommand({serializedTransaction:e.chunkedData,isFirstChunk:e.isFirstChunk})}).run();if(!(0,i.isSuccessCommandResult)(o))return(0,s.Just)(o);if(this.args.context.transactionInfoCertificate){const{keyUsageNumber:e,payload:c}=this.args.context.transactionInfoCertificate;await this.api.sendCommand(new i.LoadCertificateCommand({keyUsage:e,certificate:c}))}const r=await new y.SendPayloadInChunksTask(this.api,{payload:this.args.context.transactionInfo,commandFactory:e=>new C.ProvideTransactionInformationCommand({data:e.chunkedData,isFirstChunk:e.isFirstChunk})}).run();if(!(0,i.isSuccessCommandResult)(r))return(0,s.Just)(r);const h=this.args.web3Check?[...this.args.context.transactionFields,this.args.web3Check]:this.args.context.transactionFields;for(const e of h){const c=await new p.ProvideTransactionFieldDescriptionTask(this.api,{field:e,serializedTransaction:this.args.serializedTransaction,chainId:this.args.chainId,transactionParser:this.args.transactionParser,contextModule:this.args.contextModule,transactionEnums:this.args.context.transactionEnums}).run();if(c.isJust())return c}return s.Nothing}}0&&(module.exports={ProvideTransactionGenericContextTask});
|
|
2
|
-
//# sourceMappingURL=ProvideTransactionGenericContextTask.js.map
|