@ledgerhq/device-signer-kit-ethereum 0.0.0-signer-eth-20250122093657 → 0.0.0-transaction-unfunded-20250917151052
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 +80 -15
- 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/GetConfigCommandTypes.js +2 -0
- package/lib/cjs/api/app-binder/GetConfigCommandTypes.js.map +7 -0
- 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/SignPersonalMessageDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignPersonalMessageDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +3 -3
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +3 -3
- 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/index.js.map +1 -1
- 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/GetAddressCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
- 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/ProvideWeb3CheckCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.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 +2 -2
- 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/command/SignTransactionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.test.js.map +2 -2
- 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__/setupOpenAppDAMock.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
- 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/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/BuildSubContextTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/PreBuildContextTask.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/ProvideTransactionContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.test.js.map +2 -2
- 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/SendSignPersonalMessageTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendSignPersonalMessageTask.test.js.map +2 -2
- 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 +2 -0
- package/lib/cjs/internal/shared/utils/ApplicationChecker.js.map +7 -0
- package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js +2 -0
- package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
- 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/transaction/use-case/SignTransactionUseCase.test.js +1 -1
- package/lib/cjs/internal/transaction/use-case/SignTransactionUseCase.test.js.map +2 -2
- 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 +17 -18
- 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/GetConfigCommandTypes.js +1 -0
- package/lib/esm/api/app-binder/SignDelegationAuthorizationTypes.js +1 -0
- package/lib/esm/api/app-binder/SignDelegationAuthorizationTypes.js.map +7 -0
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -0
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +4 -4
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -0
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +4 -4
- package/lib/esm/api/index.js +1 -1
- package/lib/esm/api/index.js.map +3 -3
- 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/GetAddressCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
- 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/ProvideWeb3CheckCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.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 +2 -2
- 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/command/SignTransactionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/utils/ethAppErrors.test.js +1 -1
- package/lib/esm/internal/app-binder/command/utils/ethAppErrors.test.js.map +2 -2
- 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__/setupOpenAppDAMock.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
- 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/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/BuildSubContextTask.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/PreBuildContextTask.js +2 -0
- package/lib/esm/internal/app-binder/task/PreBuildContextTask.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/ProvideTransactionContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.test.js.map +2 -2
- 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/SendSignPersonalMessageTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SendSignPersonalMessageTask.test.js.map +2 -2
- 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 +2 -0
- package/lib/esm/internal/shared/utils/ApplicationChecker.js.map +7 -0
- package/lib/esm/internal/shared/utils/ApplicationChecker.test.js +2 -0
- package/lib/esm/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
- 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/transaction/use-case/SignTransactionUseCase.test.js +1 -1
- package/lib/esm/internal/transaction/use-case/SignTransactionUseCase.test.js.map +2 -2
- 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 +17 -18
- 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/GetConfigCommandTypes.d.ts +7 -0
- package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts.map +1 -0
- 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/SignPersonalMessageDeviceActionTypes.d.ts +1 -10
- package/lib/types/api/app-binder/SignPersonalMessageDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +24 -8
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +20 -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/GetAppConfigurationCommand.d.ts +10 -0
- package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts.map +1 -0
- 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/ProvideWeb3CheckCommand.d.ts +17 -0
- package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +8 -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/Web3CheckOptInCommand.d.ts +15 -0
- package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.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 +18 -30
- 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 +8 -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 +2 -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__/testDeviceActionStates.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
- package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +10 -5
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts +20 -0
- package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +15 -14
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +29 -0
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts +17 -0
- package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +7 -4
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +28 -21
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.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 +13 -0
- package/lib/types/internal/shared/utils/ApplicationChecker.d.ts.map +1 -0
- package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts +2 -0
- package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts.map +1 -0
- 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 +23 -24
- 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/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js.map +0 -7
- package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.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/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js +0 -2
- package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js.map +0 -7
- package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js +0 -2
- package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.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/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.d.ts +0 -18
- package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.d.ts.map +0 -1
- package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.d.ts +0 -2
- package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts +0 -73
- 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 -26
- 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/GetConfigCommandTypes.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=["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"];export{e as 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];\n"],
|
|
5
|
-
"mappings": "AAAO,MAAMA,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,OACF",
|
|
6
|
-
"names": ["ETHEREUM_PLUGINS"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{isSuccessCommandResult as i,OpenAppDeviceAction as o,UnknownDAError as p,UserInteractionRequired as a,XStateDeviceAction as g}from"@ledgerhq/device-management-kit";import{Left as l,Right as u}from"purify-ts";import{assign as t,fromPromise as c,setup as S}from"xstate";import{ETHEREUM_PLUGINS as M}from"../../../app-binder/constant/plugins";import{SendSignPersonalMessageTask as m}from"../../../app-binder/task/SendSignPersonalMessageTask";class E extends g{makeStateMachine(n){const{signPersonalMessage:s}=this.extractDependencies(n);return S({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new o({input:{appName:"Ethereum"}}).makeStateMachine(n),signPersonalMessage:c(s)},guards:{noInternalError:({context:e})=>e._internalState.error===null},actions:{assignErrorFromEvent:t({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"SignPersonalMessageDeviceAction",initial:"OpenAppDeviceAction",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:a.None},_internalState:{error:null,signature:null}}),states:{OpenAppDeviceAction:{exit:t({intermediateValue:{requiredUserInteraction:a.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Ethereum",compatibleAppNames:M},src:"openAppStateMachine",onSnapshot:{actions:t({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{actions:t({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:r=>({...e.context._internalState,error:r})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"SignPersonalMessage",guard:"noInternalError"},"Error"]},SignPersonalMessage:{entry:t({intermediateValue:{requiredUserInteraction:a.SignPersonalMessage}}),exit:t({intermediateValue:{requiredUserInteraction:a.None}}),invoke:{id:"signPersonalMessage",src:"signPersonalMessage",input:({context:e})=>({derivationPath:e.input.derivationPath,message:e.input.message}),onDone:{target:"SignPersonalMessageResultCheck",actions:[t({_internalState:({event:e,context:r})=>i(e.output)?{...r._internalState,signature:e.output.data}:{...r._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignPersonalMessageResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.signature?u(e._internalState.signature):l(e._internalState.error||new p("No error in final state"))})}extractDependencies(n){return{signPersonalMessage:async e=>new m(n,e.input).run()}}}export{E as SignPersonalMessageDeviceAction};
|
|
2
|
-
//# sourceMappingURL=SignPersonalMessageDeviceAction.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../src/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAInput,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAInternalState,\n type SignPersonalMessageDAOutput,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { ETHEREUM_PLUGINS } from \"@internal/app-binder/constant/plugins\";\nimport { SendSignPersonalMessageTask } from \"@internal/app-binder/task/SendSignPersonalMessageTask\";\n\nexport type MachineDependencies = {\n readonly signPersonalMessage: (arg0: {\n input: {\n derivationPath: string;\n message: string | Uint8Array;\n };\n }) => Promise<CommandResult<Signature, EthErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignPersonalMessageDeviceAction extends XStateDeviceAction<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAInput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue,\n SignPersonalMessageDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAInput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue,\n SignPersonalMessageDAInternalState\n > {\n type types = StateMachineTypes<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAInput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue,\n SignPersonalMessageDAInternalState\n >;\n\n const { signPersonalMessage } = this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Ethereum\" },\n }).makeStateMachine(internalApi),\n signPersonalMessage: fromPromise(signPersonalMessage),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignPersonalMessageDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n signature: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: {\n appName: \"Ethereum\",\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignPersonalMessageDAInternalState>(\n {\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n );\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"SignPersonalMessage\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n SignPersonalMessage: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signPersonalMessage\",\n src: \"signPersonalMessage\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n message: context.input.message,\n }),\n onDone: {\n target: \"SignPersonalMessageResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signature: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignPersonalMessageResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const signPersonalMessage = async (arg0: {\n input: {\n derivationPath: string;\n message: string | Uint8Array;\n };\n }) => new SendSignPersonalMessageTask(internalApi, arg0.input).run();\n\n return {\n signPersonalMessage,\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["isSuccessCommandResult", "OpenAppDeviceAction", "UnknownDAError", "UserInteractionRequired", "XStateDeviceAction", "Left", "Right", "assign", "fromPromise", "setup", "ETHEREUM_PLUGINS", "SendSignPersonalMessageTask", "SignPersonalMessageDeviceAction", "internalApi", "signPersonalMessage", "context", "_", "input", "error", "event", "arg0"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{CommandResultFactory as p,DeviceActionStatus as e,UnknownDeviceExchangeError as i,UserInteractionRequired as t}from"@ledgerhq/device-management-kit";import{UnknownDAError as P}from"@ledgerhq/device-management-kit";import{InvalidStatusWordError as g}from"@ledgerhq/device-management-kit";import{makeDeviceActionInternalApiMock as o}from"../../../app-binder/device-action/__test-utils__/makeInternalApi";import{setupOpenAppDAMock as c}from"../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock";import{testDeviceActionStates as d}from"../../../app-binder/device-action/__test-utils__/testDeviceActionStates";import{SignPersonalMessageDeviceAction as u}from"./SignPersonalMessageDeviceAction";jest.mock("@ledgerhq/device-management-kit",()=>({...jest.requireActual("@ledgerhq/device-management-kit"),OpenAppDeviceAction:jest.fn(()=>({makeStateMachine:jest.fn()}))}));describe("SignPersonalMessageDeviceAction",()=>{const s=jest.fn();function l(){return{signPersonalMessage:s}}beforeEach(()=>{jest.resetAllMocks()}),describe("Success case",()=>{it("should call external dependencies with the correct parameters",n=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),s.mockResolvedValueOnce(p({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}));const a=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignPersonalMessage},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}],{observable:m}=d(r,a,o(),n);m.subscribe({complete:()=>{expect(s).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}}))}})})}),describe("error cases",()=>{it("Error if the open app fails",n=>{c(new i("Mocked error"));const r=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Error,error:new i("Mocked error")}],a=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});d(a,r,o(),n)}),it("Error if the signPersonalMessage fails",n=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),s.mockResolvedValueOnce(p({error:new i("Mocked error")}));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new i("Mocked error")}];d(r,a,o(),n)}),it("Error if the signPersonalMessage throws an exception",n=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),s.mockRejectedValueOnce(new g("Mocked error"));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new g("Mocked error")}];d(r,a,o(),n)}),it("Error if signPersonalMessage return an error",n=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),s.mockResolvedValueOnce(p({error:new i("Mocked error")}));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new i("Mocked error")}];d(r,a,o(),n)}),it("Return a Left if the final state has no signature",n=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),s.mockResolvedValueOnce(p({data:void 0}));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new P("No error in final state")}];d(r,a,o(),n)})})});
|
|
2
|
-
//# sourceMappingURL=SignPersonalMessageDeviceAction.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../src/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { UnknownDAError } from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { type SignPersonalMessageDAState } from \"@api/index\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\n\nimport { SignPersonalMessageDeviceAction } from \"./SignPersonalMessageDeviceAction\";\n\njest.mock(\n \"@ledgerhq/device-management-kit\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n () => ({\n ...jest.requireActual(\"@ledgerhq/device-management-kit\"),\n OpenAppDeviceAction: jest.fn(() => ({\n makeStateMachine: jest.fn(),\n })),\n }),\n);\n\ndescribe(\"SignPersonalMessageDeviceAction\", () => {\n const signPersonalMessageMock = jest.fn();\n\n function extractDependenciesMock() {\n return {\n signPersonalMessage: signPersonalMessageMock,\n };\n }\n\n beforeEach(() => {\n jest.resetAllMocks();\n });\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> BuildContext -> ProvideContext -> SignTypedData\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n const { observable } = testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n\n // Verify mocks calls parameters\n observable.subscribe({\n complete: () => {\n expect(signPersonalMessageMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n }),\n );\n },\n });\n });\n });\n\n describe(\"error cases\", () => {\n it(\"Error if the open app fails\", (done) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if the signPersonalMessage fails\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if the signPersonalMessage throws an exception\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if signPersonalMessage return an error\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Return a Left if the final state has no signature\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"No error in final state\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["CommandResultFactory", "DeviceActionStatus", "UnknownDeviceExchangeError", "UserInteractionRequired", "UnknownDAError", "InvalidStatusWordError", "makeDeviceActionInternalApiMock", "setupOpenAppDAMock", "testDeviceActionStates", "SignPersonalMessageDeviceAction", "signPersonalMessageMock", "extractDependenciesMock", "done", "deviceAction", "expectedStates", "observable"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{ClearSignContextType as n}from"@ledgerhq/context-module";import{bufferToHexaString as u,CommandResultFactory as C,InvalidStatusWordError as m,isSuccessCommandResult as a}from"@ledgerhq/device-management-kit";import{Just as s,Nothing as d}from"purify-ts";import{GetChallengeCommand as p}from"../../app-binder/command/GetChallengeCommand";import{ProvideEnumCommand as l}from"../../app-binder/command/ProvideEnumCommand";import{ProvideNFTInformationCommand as T}from"../../app-binder/command/ProvideNFTInformationCommand";import{ProvideTokenInformationCommand as f}from"../../app-binder/command/ProvideTokenInformationCommand";import{ProvideTransactionFieldDescriptionCommand as h}from"../../app-binder/command/ProvideTransactionFieldDescriptionCommand";import{ProvideTrustedNameCommand as v}from"../../app-binder/command/ProvideTrustedNameCommand";import{SendPayloadInChunksTask as c}from"./SendPayloadInChunksTask";class w{constructor(e,t){this.api=e;this.args=t}async run(){const{field:e}=this.args;if(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 r=this.args.transactionParser.extractValue(this.args.serializedTransaction,e.reference.valuePath);if(r.isRight())for(const i of r.extract()){const o=await this.provideContextReference(e.reference,i);if(o.isJust())return o}}const t=await this.provideContext({...e});return a(t)?d:s(t)}async provideContextReference(e,t){if(e.type===n.ENUM)return this.provideEnumContextReference(e,t);const r=u(t.slice(Math.max(0,t.length-20)));return e.type===n.TRUSTED_NAME?this.provideTustedNameContextReference(e,r):this.getAndProvideContext({type:e.type,chainId:this.args.chainId,address:r})}async provideEnumContextReference(e,t){const r=t[t.length-1];if(!r)return d;const i=this.args.transactionEnums.find(o=>o.value===r&&o.id===e.id);if(i){const o=await this.provideContext(i);if(!a(o))return s(o)}return d}async provideTustedNameContextReference(e,t){const r=await this.api.sendCommand(new p);return a(r)?this.getAndProvideContext({type:e.type,chainId:this.args.chainId,address:t,challenge:r.data.challenge,types:e.types,sources:e.sources}):s(r)}async getAndProvideContext(e){const t=await this.args.contextModule.getContext(e);if(t.type!==n.ERROR){const r=await this.provideContext(t);if(!a(r))return s(r)}return d}async provideContext({type:e,payload:t}){switch(e){case n.NFT:return await this.api.sendCommand(new T({payload:t}));case n.TOKEN:return await this.api.sendCommand(new f({payload:t}));case n.TRUSTED_NAME:return new c(this.api,{payload:t,commandFactory:r=>new v({data:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();case n.ENUM:return new c(this.api,{payload:t,commandFactory:r=>new l({data:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();case n.TRANSACTION_FIELD_DESCRIPTION:return new c(this.api,{payload:t,commandFactory:r=>new h({data:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();case n.TRANSACTION_INFO:case n.PLUGIN:case n.EXTERNAL_PLUGIN:return C({error:new m(`The context type [${e}] is not valid as a transaction field or metadata`)});default:{const r=e;return C({error:new m(`The context type [${r}] is not covered`)})}}}}export{w as 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 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} 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 { 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 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 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 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 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": ["ClearSignContextType", "bufferToHexaString", "CommandResultFactory", "InvalidStatusWordError", "isSuccessCommandResult", "Just", "Nothing", "GetChallengeCommand", "ProvideEnumCommand", "ProvideNFTInformationCommand", "ProvideTokenInformationCommand", "ProvideTransactionFieldDescriptionCommand", "ProvideTrustedNameCommand", "SendPayloadInChunksTask", "ProvideTransactionFieldDescriptionTask", "api", "args", "field", "referenceValues", "value", "provideReferenceResult", "transactionFieldResult", "reference", "address", "enumValue", "enumDescriptor", "enumContext", "provideEnumResult", "getChallengeResult", "context", "type", "payload", "uncoveredType"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{ClearSignContextType as t,ContainerPath as i}from"@ledgerhq/context-module";import{CommandResultFactory as o,InvalidStatusWordError as p}from"@ledgerhq/device-management-kit";import{Left as k,Nothing as u,Right as x}from"purify-ts";import{GetChallengeCommand as O}from"../../app-binder/command/GetChallengeCommand";import{ProvideEnumCommand as T}from"../../app-binder/command/ProvideEnumCommand";import{ProvideNFTInformationCommand as S}from"../../app-binder/command/ProvideNFTInformationCommand";import{ProvideTokenInformationCommand as w}from"../../app-binder/command/ProvideTokenInformationCommand";import{ProvideTransactionFieldDescriptionCommand as m}from"../../app-binder/command/ProvideTransactionFieldDescriptionCommand";import{ProvideTrustedNameCommand as C}from"../../app-binder/command/ProvideTrustedNameCommand";import{ProvideTransactionFieldDescriptionTask as d}from"./ProvideTransactionFieldDescriptionTask";describe("ProvideTransactionFieldDescriptionTask",()=>{const s={extractValue:jest.fn()},n={getContext:jest.fn()},e={sendCommand:jest.fn()};beforeEach(()=>{jest.clearAllMocks()}),describe("should call the right provide command",()=>{it.each([{type:t.NFT,commandInstanceType:S},{type:t.TOKEN,commandInstanceType:w},{type:t.TRUSTED_NAME,commandInstanceType:C},{type:t.TRANSACTION_FIELD_DESCRIPTION,commandInstanceType:m}])("when type is $type",async({type:r,commandInstanceType:a})=>{jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"}));const c={type:r,payload:"0x01020304"};await new d(e,{field:c,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run(),expect(e.sendCommand.mock.calls[0][0]).toBeInstanceOf(a),expect(e.sendCommand).toHaveBeenCalledTimes(1)}),it("when type is transactionFieldDescription with a enum reference",async()=>{jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([1,2,3,4])]));const a={type:t.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:t.ENUM,valuePath:i.VALUE,id:66}};await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[{id:66,value:1,type:t.ENUM,payload:"0x060708"},{id:66,value:4,type:t.ENUM,payload:"0x080706"}]}).run(),expect(e.sendCommand).toHaveBeenCalledTimes(2),expect(e.sendCommand.mock.calls[0][0]).toBeInstanceOf(T),expect(e.sendCommand.mock.calls[0][0].args.data).toEqual(new Uint8Array([0,3,8,7,6])),expect(e.sendCommand.mock.calls[1][0]).toBeInstanceOf(m)})}),describe("should return nothing",()=>{it.each([t.NFT,t.TOKEN,t.TRUSTED_NAME,t.TRANSACTION_FIELD_DESCRIPTION])("when type is %s with no reference",async r=>{const l={type:r,payload:"0x01020304"};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"}));const y=await new d(e,{field:l,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(y).toEqual(u)})}),describe("should provide a reference context",()=>{it.each([t.NFT,t.TOKEN])("when type is %s with a reference",async r=>{const a="0x01020304",l={type:r,payload:a,reference:{type:t.TOKEN,valuePath:i.VALUE}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([1,2,3,4])])),jest.spyOn(n,"getContext").mockResolvedValueOnce({type:r,payload:a});const y=await new d(e,{field:l,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(n.getContext).toHaveBeenCalledTimes(1),expect(n.getContext).toHaveBeenCalledWith({type:t.TOKEN,chainId:1,address:"0x01020304"}),expect(y).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(2)}),it("when type is trustes-name with a reference",async()=>{const r="0x01020304",a="0x05060708",l=new Uint8Array([17,34,51,68]),c="0x11223344",y={type:t.TRUSTED_NAME,payload:r,reference:{type:t.TRUSTED_NAME,valuePath:i.VALUE,types:["type"],sources:["source"]}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:{challenge:66}})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce(x([l])),jest.spyOn(n,"getContext").mockResolvedValueOnce({type:t.TRUSTED_NAME,payload:a});const E=await new d(e,{field:y,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(n.getContext).toHaveBeenCalledTimes(1),expect(n.getContext).toHaveBeenCalledWith({type:t.TRUSTED_NAME,chainId:1,address:c,types:["type"],sources:["source"],challenge:66}),expect(E).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(3),expect(e.sendCommand).toHaveBeenNthCalledWith(1,new O),expect(e.sendCommand).toHaveBeenNthCalledWith(2,new C({data:new Uint8Array([0,4,5,6,7,8]),isFirstChunk:!0})),expect(e.sendCommand).toHaveBeenNthCalledWith(3,new C({data:new Uint8Array([0,4,1,2,3,4]),isFirstChunk:!0}))}),it("when type is token with a constant reference",async()=>{const a={type:t.TOKEN,payload:"0x01020304",reference:{type:t.TOKEN,value:"0x09080706"}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(n,"getContext").mockResolvedValueOnce({type:t.TOKEN,payload:"0x05060708"});const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(s.extractValue).not.toHaveBeenCalled(),expect(n.getContext).toHaveBeenCalledTimes(1),expect(n.getContext).toHaveBeenCalledWith({type:t.TOKEN,chainId:1,address:"0x09080706"}),expect(c).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(2)}),it("when type is a ntf with a constant reference",async()=>{const a={type:t.NFT,payload:"0x01020304",reference:{type:t.NFT,value:"0x09080706"}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(n,"getContext").mockResolvedValueOnce({type:t.NFT,payload:"0x05060708"});const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(s.extractValue).not.toHaveBeenCalled(),expect(n.getContext).toHaveBeenCalledTimes(1),expect(n.getContext).toHaveBeenCalledWith({type:t.NFT,chainId:1,address:"0x09080706"}),expect(c).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(2)})}),describe("should not provide a reference context",()=>{it("when the path is not found in transaction payload",async()=>{const a={type:t.TRUSTED_NAME,payload:"0x01020304",reference:{type:t.TRUSTED_NAME,valuePath:i.VALUE,types:["type"],sources:["source"]}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce(k(new Error("path not found")));const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(c).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(1),expect(n.getContext).not.toHaveBeenCalled()}),it("when getContext return a type error",async()=>{const a={type:t.TRUSTED_NAME,payload:"0x01020304",reference:{type:t.TRUSTED_NAME,valuePath:i.VALUE,types:["type"],sources:["source"]}};jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([17,34,51,68])])),jest.spyOn(n,"getContext").mockResolvedValueOnce({type:t.ERROR,error:new Error("getContext error")}),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:{challenge:66}})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"}));const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(c).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(2),expect(n.getContext).toHaveBeenCalledTimes(1)}),it("when no enum descriptor is found",async()=>{const a={type:t.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:t.ENUM,valuePath:i.VALUE,id:66}};jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([1,2,3,4])])),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"}));const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(c).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(1),expect(e.sendCommand.mock.calls[0][0]).toBeInstanceOf(m)}),it("when the enum reference path value is empty",async()=>{const a={type:t.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:t.ENUM,valuePath:i.VALUE,id:66}};jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([])])),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"}));const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[{id:66,value:1,type:t.ENUM,payload:"0x060708"},{id:66,value:4,type:t.ENUM,payload:"0x080706"}]}).run();expect(c).toEqual(u),expect(e.sendCommand).toHaveBeenCalledTimes(1),expect(e.sendCommand.mock.calls[0][0]).toBeInstanceOf(m)})}),describe("should return an error",()=>{it.each([t.TRANSACTION_INFO,t.PLUGIN,t.EXTERNAL_PLUGIN])("when type is %s",async r=>{const a=`payload-${r}`,l={type:r,payload:a},y=await new d(e,{field:l,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(y.extract()).toEqual(o({error:new p(`The context type [${r}] is not valid as a transaction field or metadata`)}))}),it("when type is unknown",async()=>{const a={type:"unknown",payload:"payload-unknown"},c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(c.extract()).toEqual(o({error:new p("The context type [unknown] is not covered")}))}),it("when getChallenge fails",async()=>{const a={type:t.TRUSTED_NAME,payload:"0x01020304",reference:{type:t.TRUSTED_NAME,valuePath:i.VALUE,types:["type"],sources:["source"]}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({error:new p("getChallenge error")})),jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([17,34,51,68])]));const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(c.extract()).toEqual(o({error:new p("getChallenge error")}))}),it("when provide reference with a token fails",async()=>{const a={type:t.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:t.TOKEN,valuePath:i.VALUE}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({error:new p("provide reference error")})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([17,34,51,68])])),jest.spyOn(n,"getContext").mockResolvedValueOnce({type:t.TOKEN,payload:"0x05060708"});const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(c.extract()).toEqual(o({error:new p("provide reference error")}))}),it("when provide reference with a trusted name fails",async()=>{const a={type:t.TRUSTED_NAME,payload:"0x01020304",reference:{type:t.TRUSTED_NAME,valuePath:i.VALUE,types:["type"],sources:["source"]}};jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({error:new p("provide reference error")})),jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([17,34,51,68])])),jest.spyOn(n,"getContext").mockResolvedValueOnce({type:t.TRUSTED_NAME,payload:"0x05060708"});const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[]}).run();expect(c.extract()).toEqual(o({error:new p("provide reference error")}))}),it("when provide reference with a enum reference fails",async()=>{const a={type:t.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:t.ENUM,valuePath:i.VALUE,id:66}};jest.spyOn(s,"extractValue").mockReturnValueOnce(x([new Uint8Array([1,2,3,4])])),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({error:new p("provide reference error")})),jest.spyOn(e,"sendCommand").mockResolvedValueOnce(o({data:"ok"}));const c=await new d(e,{field:a,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:n,transactionEnums:[{id:66,value:4,type:t.ENUM,payload:"0x080706"}]}).run();expect(c.extract()).toEqual(o({error:new p("provide reference error")})),expect(e.sendCommand).toHaveBeenCalledTimes(1),expect(e.sendCommand.mock.calls[0][0]).toBeInstanceOf(T)})})});
|
|
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: jest.fn(),\n } as unknown as TransactionParserService;\n const contextModuleMock = {\n getContext: jest.fn(),\n } as unknown as ContextModule;\n const apiMock: InternalApi = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n\n beforeEach(() => {\n jest.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 jest\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(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(commandInstanceType);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n });\n\n it(\"when type is transactionFieldDescription with a enum reference\", async () => {\n // GIVEN\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]));\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(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideEnumCommand);\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0].args.data,\n ).toEqual(new Uint8Array([0x00, 0x03, 0x08, 0x07, 0x06])); // length + value of the enum with id 0x42 and value 0x04\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[1][0],\n ).toBeInstanceOf(ProvideTransactionFieldDescriptionCommand);\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 jest\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 });\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 jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(\n Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]),\n );\n jest\n .spyOn(contextModuleMock, \"getContext\")\n .mockResolvedValueOnce({ type, payload });\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 // getChallenge\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { challenge: 0x42 } }),\n );\n // provide reference context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([extractedValue]));\n jest.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 // provide reference context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest.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 jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest.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 jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Left(new Error(\"path not found\")));\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 jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\n jest.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.ERROR,\n error: new Error(\"getContext error\"),\n });\n // getChallenge\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { challenge: 0x42 } }),\n );\n // provide context\n jest\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(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 jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]));\n jest\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(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideTransactionFieldDescriptionCommand);\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 jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([])])); // empty value\n jest\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(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideTransactionFieldDescriptionCommand);\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 jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"getChallenge error\"),\n }),\n );\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\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 jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n // provide field\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\n jest.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 jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide reference context\n jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\n jest.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 jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]));\n jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n jest.spyOn(apiMock, \"sendCommand\").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(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideEnumCommand);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["ClearSignContextType", "ContainerPath", "CommandResultFactory", "InvalidStatusWordError", "Left", "Nothing", "Right", "GetChallengeCommand", "ProvideEnumCommand", "ProvideNFTInformationCommand", "ProvideTokenInformationCommand", "ProvideTransactionFieldDescriptionCommand", "ProvideTrustedNameCommand", "ProvideTransactionFieldDescriptionTask", "transactionParserMock", "contextModuleMock", "apiMock", "type", "commandInstanceType", "field", "result", "payload", "payload1", "payload2", "extractedValue", "extractedValueAddress"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{ByteArrayBuilder as c,isSuccessCommandResult as i}from"@ledgerhq/device-management-kit";import{DerivationPathUtils as d}from"@ledgerhq/signer-utils";import{Just as s,Nothing as l}from"purify-ts";import{ProvideTransactionInformationCommand as u}from"../../app-binder/command/ProvideTransactionInformationCommand";import{StoreTransactionCommand as m}from"../../app-binder/command/StoreTransactionCommand";import{ProvideTransactionFieldDescriptionTask as p}from"./ProvideTransactionFieldDescriptionTask";import{SendCommandInChunksTask as C}from"./SendCommandInChunksTask";import{SendPayloadInChunksTask as y}from"./SendPayloadInChunksTask";class E{constructor(n,r){this.api=n;this.args=r}async run(){const n=d.splitPath(this.args.derivationPath),r=new c;r.add8BitUIntToData(n.length),n.forEach(t=>{r.add32BitUIntToData(t)}),r.addBufferToData(this.args.serializedTransaction);const a=await new C(this.api,{data:r.build(),commandFactory:t=>new m({serializedTransaction:t.chunkedData,isFirstChunk:t.isFirstChunk})}).run();if(!i(a))return s(a);const e=await new y(this.api,{payload:this.args.context.transactionInfo,commandFactory:t=>new u({data:t.chunkedData,isFirstChunk:t.isFirstChunk})}).run();if(!i(e))return s(e);for(const t of this.args.context.transactionFields){const o=await new p(this.api,{field:t,serializedTransaction:this.args.serializedTransaction,chainId:this.args.chainId,transactionParser:this.args.transactionParser,contextModule:this.args.contextModule,transactionEnums:this.args.context.transactionEnums}).run();if(o.isJust())return o}return l}}export{E as ProvideTransactionGenericContextTask};
|
|
2
|
-
//# sourceMappingURL=ProvideTransactionGenericContextTask.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionGenericContextTask.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n type ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n ByteArrayBuilder,\n type CommandErrorResult,\n type InternalApi,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { DerivationPathUtils } from \"@ledgerhq/signer-utils\";\nimport { Just, type Maybe, Nothing } from \"purify-ts\";\n\nimport { ProvideTransactionInformationCommand } from \"@internal/app-binder/command/ProvideTransactionInformationCommand\";\nimport { StoreTransactionCommand } from \"@internal/app-binder/command/StoreTransactionCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { ProvideTransactionFieldDescriptionTask } from \"./ProvideTransactionFieldDescriptionTask\";\nimport { SendCommandInChunksTask } from \"./SendCommandInChunksTask\";\nimport { SendPayloadInChunksTask } from \"./SendPayloadInChunksTask\";\n\nexport type GenericContext = {\n readonly transactionInfo: string;\n readonly transactionFields: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[];\n readonly transactionEnums: ClearSignContextSuccess<ClearSignContextType.ENUM>[];\n};\n\nexport type ProvideTransactionGenericContextTaskArgs = {\n readonly contextModule: ContextModule;\n readonly transactionParser: TransactionParserService;\n readonly chainId: number;\n readonly derivationPath: string;\n readonly serializedTransaction: Uint8Array;\n readonly context: GenericContext;\n};\n\nexport type ProvideTransactionGenericContextTaskErrorCodes =\n void | EthErrorCodes;\n\nexport class ProvideTransactionGenericContextTask {\n constructor(\n private api: InternalApi,\n private args: ProvideTransactionGenericContextTaskArgs,\n ) {}\n\n async run(): Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n > {\n // Store the transaction in the device memory\n const paths = DerivationPathUtils.splitPath(this.args.derivationPath);\n const builder = new ByteArrayBuilder();\n builder.add8BitUIntToData(paths.length);\n paths.forEach((path) => {\n builder.add32BitUIntToData(path);\n });\n builder.addBufferToData(this.args.serializedTransaction);\n const storeTransactionResult = await new SendCommandInChunksTask(this.api, {\n data: builder.build(),\n commandFactory: (args) =>\n new StoreTransactionCommand({\n serializedTransaction: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n\n if (!isSuccessCommandResult(storeTransactionResult)) {\n return Just(storeTransactionResult);\n }\n\n // Provide the transaction information\n const transactionInfoResult = await new SendPayloadInChunksTask(this.api, {\n payload: this.args.context.transactionInfo,\n commandFactory: (args) =>\n new ProvideTransactionInformationCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n\n if (!isSuccessCommandResult(transactionInfoResult)) {\n return Just(transactionInfoResult);\n }\n\n // Provide the transaction field description and according metadata reference\n for (const field of this.args.context.transactionFields) {\n const result = await new ProvideTransactionFieldDescriptionTask(\n this.api,\n {\n field,\n serializedTransaction: this.args.serializedTransaction,\n chainId: this.args.chainId,\n transactionParser: this.args.transactionParser,\n contextModule: this.args.contextModule,\n transactionEnums: this.args.context.transactionEnums,\n },\n ).run();\n\n if (result.isJust()) {\n return result;\n }\n }\n\n return Nothing;\n }\n}\n"],
|
|
5
|
-
"mappings": "AAMA,OACE,oBAAAA,EAGA,0BAAAC,MACK,kCACP,OAAS,uBAAAC,MAA2B,yBACpC,OAAS,QAAAC,EAAkB,WAAAC,MAAe,YAE1C,OAAS,wCAAAC,MAA4C,oEACrD,OAAS,2BAAAC,MAA+B,uDAIxC,OAAS,0CAAAC,MAA8C,2CACvD,OAAS,2BAAAC,MAA+B,4BACxC,OAAS,2BAAAC,MAA+B,4BAsBjC,MAAMC,CAAqC,CAChD,YACUC,EACAC,EACR,CAFQ,SAAAD,EACA,UAAAC,CACP,CAEH,MAAM,KAEJ,CAEA,MAAMC,EAAQX,EAAoB,UAAU,KAAK,KAAK,cAAc,EAC9DY,EAAU,IAAId,EACpBc,EAAQ,kBAAkBD,EAAM,MAAM,EACtCA,EAAM,QAASE,GAAS,CACtBD,EAAQ,mBAAmBC,CAAI,CACjC,CAAC,EACDD,EAAQ,gBAAgB,KAAK,KAAK,qBAAqB,EACvD,MAAME,EAAyB,MAAM,IAAIR,EAAwB,KAAK,IAAK,CACzE,KAAMM,EAAQ,MAAM,EACpB,eAAiBF,GACf,IAAIN,EAAwB,CAC1B,sBAAuBM,EAAK,YAC5B,aAAcA,EAAK,YACrB,CAAC,CACL,CAAC,EAAE,IAAI,EAEP,GAAI,CAACX,EAAuBe,CAAsB,EAChD,OAAOb,EAAKa,CAAsB,EAIpC,MAAMC,EAAwB,MAAM,IAAIR,EAAwB,KAAK,IAAK,CACxE,QAAS,KAAK,KAAK,QAAQ,gBAC3B,eAAiBG,GACf,IAAIP,EAAqC,CACvC,KAAMO,EAAK,YACX,aAAcA,EAAK,YACrB,CAAC,CACL,CAAC,EAAE,IAAI,EAEP,GAAI,CAACX,EAAuBgB,CAAqB,EAC/C,OAAOd,EAAKc,CAAqB,EAInC,UAAWC,KAAS,KAAK,KAAK,QAAQ,kBAAmB,CACvD,MAAMC,EAAS,MAAM,IAAIZ,EACvB,KAAK,IACL,CACE,MAAAW,EACA,sBAAuB,KAAK,KAAK,sBACjC,QAAS,KAAK,KAAK,QACnB,kBAAmB,KAAK,KAAK,kBAC7B,cAAe,KAAK,KAAK,cACzB,iBAAkB,KAAK,KAAK,QAAQ,gBACtC,CACF,EAAE,IAAI,EAEN,GAAIC,EAAO,OAAO,EAChB,OAAOA,CAEX,CAEA,OAAOf,CACT,CACF",
|
|
6
|
-
"names": ["ByteArrayBuilder", "isSuccessCommandResult", "DerivationPathUtils", "Just", "Nothing", "ProvideTransactionInformationCommand", "StoreTransactionCommand", "ProvideTransactionFieldDescriptionTask", "SendCommandInChunksTask", "SendPayloadInChunksTask", "ProvideTransactionGenericContextTask", "api", "args", "paths", "builder", "path", "storeTransactionResult", "transactionInfoResult", "field", "result"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{CommandResultFactory as e,InvalidStatusWordError as n}from"@ledgerhq/device-management-kit";import{Just as s,Nothing as u}from"purify-ts";import{ProvideTransactionFieldDescriptionTask as i}from"./ProvideTransactionFieldDescriptionTask";import{ProvideTransactionGenericContextTask as o}from"./ProvideTransactionGenericContextTask";import{SendCommandInChunksTask as a}from"./SendCommandInChunksTask";import{SendPayloadInChunksTask as c}from"./SendPayloadInChunksTask";describe("ProvideTransactionGenericContextTask",()=>{const d="44/60'/0'/0'/0/0",C=new Uint8Array([18,52]),l="0x5678",y=[],p=[],r={derivationPath:d,serializedTransaction:C,context:{transactionInfo:l,transactionFields:y,transactionEnums:p},chainId:1,transactionParser:{},contextModule:{}};describe("run",()=>{beforeEach(()=>{jest.resetAllMocks()}),describe("should return an error",()=>{it("when storeTransactionResult fail",async()=>{jest.spyOn(a.prototype,"run").mockResolvedValue(e({error:new n("storeTransactionError")}));const t=await new o({},r).run();expect(t).toEqual(s(e({error:new n("storeTransactionError")})))}),it("when provideTransactionInformationResult fail",async()=>{jest.spyOn(a.prototype,"run").mockResolvedValue(e({data:"0x1234"})),jest.spyOn(c.prototype,"run").mockResolvedValue(e({error:new n("provideTransactionInformationError")}));const t=await new o({},r).run();expect(t).toEqual(s(e({error:new n("provideTransactionInformationError")})))}),it("when ProvideTransactionGenericContextTask fail",async()=>{jest.spyOn(a.prototype,"run").mockResolvedValue(e({data:"0x1234"})),jest.spyOn(c.prototype,"run").mockResolvedValue(e({data:"0x5678"})),jest.spyOn(i.prototype,"run").mockResolvedValue(s(e({error:new n("provideTransactionGenericContextTaskError")})));const t=await new o({},{...r,context:{transactionInfo:l,transactionFields:[{}],transactionEnums:p}}).run();expect(t).toEqual(s(e({error:new n("provideTransactionGenericContextTaskError")})))})}),it("should call ProvideTransactionFieldDescriptionTask for each field",async()=>{const t=["field-1","field-2"];jest.spyOn(a.prototype,"run").mockResolvedValue(e({data:"0x1234"})),jest.spyOn(c.prototype,"run").mockResolvedValue(e({data:"0x5678"})),jest.spyOn(i.prototype,"run").mockResolvedValue(u),await new o({},{...r,context:{transactionInfo:l,transactionFields:t,transactionEnums:p}}).run(),expect(i.prototype.run).toHaveBeenCalledTimes(2)}),it("should return Nothing when all fields are provided",async()=>{jest.spyOn(a.prototype,"run").mockResolvedValue(e({data:"0x1234"})),jest.spyOn(c.prototype,"run").mockResolvedValue(e({data:"0x5678"})),jest.spyOn(i.prototype,"run").mockResolvedValue(u);const t=await new o({},r).run();expect(t).toEqual(u)})})});
|
|
2
|
-
//# sourceMappingURL=ProvideTransactionGenericContextTask.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionGenericContextTask.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n type ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { ProvideTransactionFieldDescriptionTask } from \"./ProvideTransactionFieldDescriptionTask\";\nimport {\n ProvideTransactionGenericContextTask,\n type ProvideTransactionGenericContextTaskArgs,\n} from \"./ProvideTransactionGenericContextTask\";\nimport { SendCommandInChunksTask } from \"./SendCommandInChunksTask\";\nimport { SendPayloadInChunksTask } from \"./SendPayloadInChunksTask\";\n\ndescribe(\"ProvideTransactionGenericContextTask\", () => {\n const derivationPath = \"44/60'/0'/0'/0/0\";\n const serializedTransaction = new Uint8Array([0x12, 0x34]);\n const transactionInfo = \"0x5678\";\n const transactionFields: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[] = [];\n const transactionEnums: ClearSignContextSuccess<ClearSignContextType.ENUM>[] =\n [];\n const chainId = 1;\n const transactionParser = {} as TransactionParserService;\n const contextModule = {} as ContextModule;\n\n const defaultArgs: ProvideTransactionGenericContextTaskArgs = {\n derivationPath,\n serializedTransaction,\n context: {\n transactionInfo,\n transactionFields,\n transactionEnums,\n },\n chainId,\n transactionParser,\n contextModule,\n };\n describe(\"run\", () => {\n beforeEach(() => {\n jest.resetAllMocks();\n });\n\n describe(\"should return an error\", () => {\n it(\"when storeTransactionResult fail\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"storeTransactionError\"),\n }),\n );\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n defaultArgs,\n ).run();\n\n // THEN\n expect(result).toEqual(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"storeTransactionError\"),\n }),\n ),\n );\n });\n\n it(\"when provideTransactionInformationResult fail\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionInformationError\",\n ),\n }),\n );\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n defaultArgs,\n ).run();\n\n // THEN\n expect(result).toEqual(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionInformationError\",\n ),\n }),\n ),\n );\n });\n\n it(\"when ProvideTransactionGenericContextTask fail\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x5678\",\n }),\n );\n jest\n .spyOn(ProvideTransactionFieldDescriptionTask.prototype, \"run\")\n .mockResolvedValue(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionGenericContextTaskError\",\n ),\n }) as CommandErrorResult,\n ),\n );\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n {\n ...defaultArgs,\n context: {\n transactionInfo,\n transactionFields: [\n {} as ClearSignContextSuccess<ClearSignContextType.TRANSACTION_INFO>,\n ],\n transactionEnums,\n },\n },\n ).run();\n\n // THEN\n expect(result).toEqual(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionGenericContextTaskError\",\n ),\n }),\n ),\n );\n });\n });\n\n it(\"should call ProvideTransactionFieldDescriptionTask for each field\", async () => {\n // GIVEN\n const fields: ClearSignContextSuccess<ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION>[] =\n [\n \"field-1\" as unknown as ClearSignContextSuccess<ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION>,\n \"field-2\" as unknown as ClearSignContextSuccess<ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION>,\n ];\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x5678\",\n }),\n );\n jest\n .spyOn(ProvideTransactionFieldDescriptionTask.prototype, \"run\")\n .mockResolvedValue(Nothing);\n\n // WHEN\n await new ProvideTransactionGenericContextTask({} as InternalApi, {\n ...defaultArgs,\n context: {\n transactionInfo,\n transactionFields: fields,\n transactionEnums,\n },\n }).run();\n\n // THEN\n expect(\n ProvideTransactionFieldDescriptionTask.prototype.run,\n ).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return Nothing when all fields are provided\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x5678\",\n }),\n );\n jest\n .spyOn(ProvideTransactionFieldDescriptionTask.prototype, \"run\")\n .mockResolvedValue(Nothing);\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n defaultArgs,\n ).run();\n\n // THEN\n expect(result).toEqual(Nothing);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["CommandResultFactory", "InvalidStatusWordError", "Just", "Nothing", "ProvideTransactionFieldDescriptionTask", "ProvideTransactionGenericContextTask", "SendCommandInChunksTask", "SendPayloadInChunksTask", "derivationPath", "serializedTransaction", "transactionInfo", "transactionFields", "transactionEnums", "defaultArgs", "result", "fields"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var p=(n,e,t,o)=>{for(var r=o>1?void 0:o?c(e,t):e,a=n.length-1,m;a>=0;a--)(m=n[a])&&(r=(o?m(e,t,r):m(r))||r);return o&&r&&s(e,t,r),r};import{bufferToHexaString as f}from"@ledgerhq/device-management-kit";import{ethers as u,getBytes as d}from"ethers";import{injectable as l}from"inversify";import{Just as y,Nothing as b}from"purify-ts";let i=class{map(e){try{const t=u.Transaction.from(f(e));return y({subset:{chainId:Number(t.chainId.toString()),to:t.to??void 0,data:t.data},serializedTransaction:d(t.unsignedSerialized),type:t.type||0})}catch{return b}}};i=p([l()],i);export{i as EthersRawTransactionMapper};
|
|
2
|
-
//# sourceMappingURL=EthersRawTransactionMapper.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../src/internal/transaction/service/mapper/EthersRawTransactionMapper.ts"],
|
|
4
|
-
"sourcesContent": ["import { bufferToHexaString } from \"@ledgerhq/device-management-kit\";\nimport { ethers, getBytes } from \"ethers\";\nimport { injectable } from \"inversify\";\nimport { Just, Maybe, Nothing } from \"purify-ts\";\n\nimport { TransactionMapperResult } from \"./model/TransactionMapperResult\";\nimport { TransactionMapper } from \"./TransactionMapper\";\n\n@injectable()\nexport class EthersRawTransactionMapper implements TransactionMapper {\n map(transaction: Uint8Array): Maybe<TransactionMapperResult> {\n try {\n const tx = ethers.Transaction.from(bufferToHexaString(transaction));\n return Just({\n subset: {\n chainId: Number(tx.chainId.toString()),\n to: tx.to ?? undefined,\n data: tx.data,\n },\n serializedTransaction: getBytes(tx.unsignedSerialized),\n type: tx.type || 0,\n });\n } catch (_error) {\n return Nothing;\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "wMAAA,OAAS,sBAAAA,MAA0B,kCACnC,OAAS,UAAAC,EAAQ,YAAAC,MAAgB,SACjC,OAAS,cAAAC,MAAkB,YAC3B,OAAS,QAAAC,EAAa,WAAAC,MAAe,YAM9B,IAAMC,EAAN,KAA8D,CACnE,IAAIC,EAAyD,CAC3D,GAAI,CACF,MAAMC,EAAKC,EAAO,YAAY,KAAKC,EAAmBH,CAAW,CAAC,EAClE,OAAOI,EAAK,CACV,OAAQ,CACN,QAAS,OAAOH,EAAG,QAAQ,SAAS,CAAC,EACrC,GAAIA,EAAG,IAAM,OACb,KAAMA,EAAG,IACX,EACA,sBAAuBI,EAASJ,EAAG,kBAAkB,EACrD,KAAMA,EAAG,MAAQ,CACnB,CAAC,CACH,MAAiB,CACf,OAAOK,CACT,CACF,CACF,EAjBaP,EAANQ,EAAA,CADNC,EAAW,GACCT",
|
|
6
|
-
"names": ["bufferToHexaString", "ethers", "getBytes", "injectable", "Just", "Nothing", "EthersRawTransactionMapper", "transaction", "tx", "ethers", "bufferToHexaString", "Just", "getBytes", "Nothing", "__decorateClass", "injectable"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{hexaStringToBuffer as n}from"@ledgerhq/device-management-kit";import{getBytes as r,Transaction as o}from"ethers";import{EthersRawTransactionMapper as s}from"./EthersRawTransactionMapper";describe("RawTransactionMapper",()=>{const a=new s;it("should return Nothing when empty raw transaction",()=>{const e=new Uint8Array(0),t=a.map(e);expect(t.isNothing()).toBeTruthy()}),it("should return Nothing when invalid raw transaction",()=>{const e=new Uint8Array(1),t=a.map(e);expect(t.isNothing()).toBeTruthy()}),it("should return a TransactionMapperResult",()=>{const e=n(o.from({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456"}).unsignedSerialized),t=a.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual(r(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456"}),expect(t.extract()?.type).toEqual(2)}),it("should return a TransactionMapperResult with undefined to",()=>{const e=n(o.from({chainId:1,data:"0x123456"}).unsignedSerialized),t=a.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual(r(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:void 0,data:"0x123456"}),expect(t.extract()?.type).toEqual(2)}),it("should return a TransactionMapperResult with empty data",()=>{const e=n(o.from({chainId:1,to:"0x1234567890123456789012345678901234567890"}).unsignedSerialized),t=a.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual(r(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x"}),expect(t.extract()?.type).toEqual(2)}),it("should return a TransactionMapperResult with a custom type",()=>{const e=n(o.from({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456",type:1}).unsignedSerialized),t=a.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual(r(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456"}),expect(t.extract()?.type).toEqual(1)})});
|
|
2
|
-
//# sourceMappingURL=EthersRawTransactionMapper.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../src/internal/transaction/service/mapper/EthersRawTransactionMapper.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport { getBytes, Transaction } from \"ethers\";\n\nimport { EthersRawTransactionMapper } from \"./EthersRawTransactionMapper\";\n\ndescribe(\"RawTransactionMapper\", () => {\n const mapper = new EthersRawTransactionMapper();\n\n it(\"should return Nothing when empty raw transaction\", () => {\n // GIVEN\n const transaction = new Uint8Array(0);\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isNothing()).toBeTruthy();\n });\n\n it(\"should return Nothing when invalid raw transaction\", () => {\n // GIVEN\n const transaction = new Uint8Array(1);\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isNothing()).toBeTruthy();\n });\n\n it(\"should return a TransactionMapperResult\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n });\n expect(result.extract()?.type).toEqual(2);\n });\n\n it(\"should return a TransactionMapperResult with undefined to\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n data: \"0x123456\",\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: undefined,\n data: \"0x123456\",\n });\n expect(result.extract()?.type).toEqual(2);\n });\n\n it(\"should return a TransactionMapperResult with empty data\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x\",\n });\n expect(result.extract()?.type).toEqual(2);\n });\n\n it(\"should return a TransactionMapperResult with a custom type\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n type: 1,\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n });\n expect(result.extract()?.type).toEqual(1);\n });\n});\n"],
|
|
5
|
-
"mappings": "AAAA,OAAS,sBAAAA,MAA0B,kCACnC,OAAS,YAAAC,EAAU,eAAAC,MAAmB,SAEtC,OAAS,8BAAAC,MAAkC,+BAE3C,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAAS,IAAID,EAEnB,GAAG,mDAAoD,IAAM,CAE3D,MAAME,EAAc,IAAI,WAAW,CAAC,EAG9BC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,UAAU,CAAC,EAAE,WAAW,CACxC,CAAC,EAED,GAAG,qDAAsD,IAAM,CAE7D,MAAMD,EAAc,IAAI,WAAW,CAAC,EAG9BC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,UAAU,CAAC,EAAE,WAAW,CACxC,CAAC,EAED,GAAG,0CAA2C,IAAM,CAElD,MAAMD,EAAcL,EAClBE,EAAY,KAAK,CACf,QAAS,EACT,GAAI,6CACJ,KAAM,UACR,CAAC,EAAE,kBACL,EAGMI,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,QAC9CL,EAASI,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,6CACJ,KAAM,UACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,EAED,GAAG,4DAA6D,IAAM,CAEpE,MAAMD,EAAcL,EAClBE,EAAY,KAAK,CACf,QAAS,EACT,KAAM,UACR,CAAC,EAAE,kBACL,EAGMI,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,QAC9CL,EAASI,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,OACJ,KAAM,UACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,EAED,GAAG,0DAA2D,IAAM,CAElE,MAAMD,EAAcL,EAClBE,EAAY,KAAK,CACf,QAAS,EACT,GAAI,4CACN,CAAC,EAAE,kBACL,EAGMI,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,QAC9CL,EAASI,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,6CACJ,KAAM,IACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,EAED,GAAG,6DAA8D,IAAM,CAErE,MAAMD,EAAcL,EAClBE,EAAY,KAAK,CACf,QAAS,EACT,GAAI,6CACJ,KAAM,WACN,KAAM,CACR,CAAC,EAAE,kBACL,EAGMI,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,QAC9CL,EAASI,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,6CACJ,KAAM,UACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,CACH,CAAC",
|
|
6
|
-
"names": ["hexaStringToBuffer", "getBytes", "Transaction", "EthersRawTransactionMapper", "mapper", "transaction", "result"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=TransactionMapper.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Just as s,Nothing as r,Right as p}from"purify-ts";import{TransactionMapperService as o}from"./TransactionMapperService";const t=a=>({map:jest.fn().mockReturnValue(a)});describe("TransactionMapperService",()=>{let a;beforeEach(()=>{jest.clearAllMocks()}),it("should return a TransactionSubset",()=>{const e=[t(s({data:"data"})),t(r)];a=new o(e);const n=a.mapTransactionToSubset(new Uint8Array(0));expect(e[0].map).toHaveBeenCalled(),expect(e[1].map).not.toHaveBeenCalled(),expect(n).toEqual(p({data:"data"}))}),it("should return a TransactionSubset for the second mapper",()=>{const e=[t(r),t(s({data:"data-2"}))];a=new o(e);const n=a.mapTransactionToSubset(new Uint8Array(0));expect(e[0].map).toHaveBeenCalled(),expect(e[1].map).toHaveBeenCalled(),expect(n).toEqual(p({data:"data-2"}))}),it("should return an error",()=>{const e=[t(r),t(r)];a=new o(e);const n=a.mapTransactionToSubset(new Uint8Array(0));expect(e[0].map).toHaveBeenCalled(),expect(e[1].map).toHaveBeenCalled(),expect(n.isLeft()).toBeTruthy()})});
|
|
2
|
-
//# sourceMappingURL=TransactionMapperService.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../src/internal/transaction/service/mapper/TransactionMapperService.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { type TransactionSubset } from \"@ledgerhq/context-module\";\nimport { Just, type Maybe, Nothing, Right } from \"purify-ts\";\n\nimport { TransactionMapperService } from \"./TransactionMapperService\";\n\nconst transactionMapperBuilder = (value?: Maybe<TransactionSubset>) => {\n const map = jest.fn().mockReturnValue(value);\n return { map };\n};\n\ndescribe(\"TransactionMapperService\", () => {\n let service: TransactionMapperService;\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it(\"should return a TransactionSubset\", () => {\n // GIVEN\n const mappers = [\n transactionMapperBuilder(Just({ data: \"data\" } as TransactionSubset)),\n transactionMapperBuilder(Nothing),\n ];\n service = new TransactionMapperService(mappers);\n\n // WHEN\n const result = service.mapTransactionToSubset(new Uint8Array(0));\n\n // THEN\n expect(mappers[0]!.map).toHaveBeenCalled();\n expect(mappers[1]!.map).not.toHaveBeenCalled();\n expect(result).toEqual(Right({ data: \"data\" }));\n });\n\n it(\"should return a TransactionSubset for the second mapper\", () => {\n // GIVEN\n const mappers = [\n transactionMapperBuilder(Nothing),\n transactionMapperBuilder(Just({ data: \"data-2\" } as TransactionSubset)),\n ];\n service = new TransactionMapperService(mappers);\n\n // WHEN\n const result = service.mapTransactionToSubset(new Uint8Array(0));\n\n // THEN\n expect(mappers[0]!.map).toHaveBeenCalled();\n expect(mappers[1]!.map).toHaveBeenCalled();\n expect(result).toEqual(Right({ data: \"data-2\" }));\n });\n\n it(\"should return an error\", () => {\n // GIVEN\n const mappers = [\n transactionMapperBuilder(Nothing),\n transactionMapperBuilder(Nothing),\n ];\n service = new TransactionMapperService(mappers);\n\n // WHEN\n const result = service.mapTransactionToSubset(new Uint8Array(0));\n\n // THEN\n expect(mappers[0]!.map).toHaveBeenCalled();\n expect(mappers[1]!.map).toHaveBeenCalled();\n expect(result.isLeft()).toBeTruthy();\n });\n});\n"],
|
|
5
|
-
"mappings": "AACA,OAAS,QAAAA,EAAkB,WAAAC,EAAS,SAAAC,MAAa,YAEjD,OAAS,4BAAAC,MAAgC,6BAEzC,MAAMC,EAA4BC,IAEzB,CAAE,IADG,KAAK,GAAG,EAAE,gBAAgBA,CAAK,CAC9B,GAGf,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EAEJ,WAAW,IAAM,CACf,KAAK,cAAc,CACrB,CAAC,EAED,GAAG,oCAAqC,IAAM,CAE5C,MAAMC,EAAU,CACdH,EAAyBJ,EAAK,CAAE,KAAM,MAAO,CAAsB,CAAC,EACpEI,EAAyBH,CAAO,CAClC,EACAK,EAAU,IAAIH,EAAyBI,CAAO,EAG9C,MAAMC,EAASF,EAAQ,uBAAuB,IAAI,WAAW,CAAC,CAAC,EAG/D,OAAOC,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOA,EAAQ,CAAC,EAAG,GAAG,EAAE,IAAI,iBAAiB,EAC7C,OAAOC,CAAM,EAAE,QAAQN,EAAM,CAAE,KAAM,MAAO,CAAC,CAAC,CAChD,CAAC,EAED,GAAG,0DAA2D,IAAM,CAElE,MAAMK,EAAU,CACdH,EAAyBH,CAAO,EAChCG,EAAyBJ,EAAK,CAAE,KAAM,QAAS,CAAsB,CAAC,CACxE,EACAM,EAAU,IAAIH,EAAyBI,CAAO,EAG9C,MAAMC,EAASF,EAAQ,uBAAuB,IAAI,WAAW,CAAC,CAAC,EAG/D,OAAOC,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOA,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOC,CAAM,EAAE,QAAQN,EAAM,CAAE,KAAM,QAAS,CAAC,CAAC,CAClD,CAAC,EAED,GAAG,yBAA0B,IAAM,CAEjC,MAAMK,EAAU,CACdH,EAAyBH,CAAO,EAChCG,EAAyBH,CAAO,CAClC,EACAK,EAAU,IAAIH,EAAyBI,CAAO,EAG9C,MAAMC,EAASF,EAAQ,uBAAuB,IAAI,WAAW,CAAC,CAAC,EAG/D,OAAOC,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOA,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,CACrC,CAAC,CACH,CAAC",
|
|
6
|
-
"names": ["Just", "Nothing", "Right", "TransactionMapperService", "transactionMapperBuilder", "value", "service", "mappers", "result"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/constant/plugins.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,EA+CpC,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type CommandResult, type DeviceActionStateMachine, type InternalApi, XStateDeviceAction } from "@ledgerhq/device-management-kit";
|
|
2
|
-
import { type SignPersonalMessageDAError, type SignPersonalMessageDAInput, type SignPersonalMessageDAIntermediateValue, type SignPersonalMessageDAInternalState, type SignPersonalMessageDAOutput } from "../../../../api/app-binder/SignPersonalMessageDeviceActionTypes";
|
|
3
|
-
import { type Signature } from "../../../../api/model/Signature";
|
|
4
|
-
import { type EthErrorCodes } from "../../../app-binder/command/utils/ethAppErrors";
|
|
5
|
-
export type MachineDependencies = {
|
|
6
|
-
readonly signPersonalMessage: (arg0: {
|
|
7
|
-
input: {
|
|
8
|
-
derivationPath: string;
|
|
9
|
-
message: string | Uint8Array;
|
|
10
|
-
};
|
|
11
|
-
}) => Promise<CommandResult<Signature, EthErrorCodes>>;
|
|
12
|
-
};
|
|
13
|
-
export type ExtractMachineDependencies = (internalApi: InternalApi) => MachineDependencies;
|
|
14
|
-
export declare class SignPersonalMessageDeviceAction extends XStateDeviceAction<SignPersonalMessageDAOutput, SignPersonalMessageDAInput, SignPersonalMessageDAError, SignPersonalMessageDAIntermediateValue, SignPersonalMessageDAInternalState> {
|
|
15
|
-
makeStateMachine(internalApi: InternalApi): DeviceActionStateMachine<SignPersonalMessageDAOutput, SignPersonalMessageDAInput, SignPersonalMessageDAError, SignPersonalMessageDAIntermediateValue, SignPersonalMessageDAInternalState>;
|
|
16
|
-
extractDependencies(internalApi: InternalApi): MachineDependencies;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=SignPersonalMessageDeviceAction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignPersonalMessageDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAMhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,sCAAsC,EAC3C,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EACjC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAIrF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE;QACnC,KAAK,EAAE;YACL,cAAc,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;SAC9B,CAAC;KACH,KAAK,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,CACvC,WAAW,EAAE,WAAW,KACrB,mBAAmB,CAAC;AAEzB,qBAAa,+BAAgC,SAAQ,kBAAkB,CACrE,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,sCAAsC,EACtC,kCAAkC,CACnC;IACC,gBAAgB,CACd,WAAW,EAAE,WAAW,GACvB,wBAAwB,CACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,sCAAsC,EACtC,kCAAkC,CACnC;IAoKD,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CAYnE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignPersonalMessageDeviceAction.test.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.ts"],"names":[],"mappings":""}
|