@ledgerhq/device-signer-kit-ethereum 0.0.0-web-ble-29-08---20250829104351 → 0.0.0-wrong-error-when-in-experimental-provider-20251021162636
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 +59 -1
- package/lib/cjs/api/SignerEth.js +1 -1
- package/lib/cjs/api/SignerEth.js.map +1 -1
- package/lib/cjs/api/SignerEthBuilder.test.js +1 -1
- package/lib/cjs/api/SignerEthBuilder.test.js.map +2 -2
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
- package/lib/cjs/api/app-binder/VerifySafeAddressDeviceActionTypes.js +2 -0
- package/lib/cjs/api/app-binder/VerifySafeAddressDeviceActionTypes.js.map +7 -0
- package/lib/cjs/api/index.js +1 -1
- package/lib/cjs/api/index.js.map +3 -3
- package/lib/cjs/api/model/SafeAddressOptions.js +2 -0
- package/lib/cjs/api/model/SafeAddressOptions.js.map +7 -0
- package/lib/cjs/internal/DefaultSignerEth.js +1 -1
- package/lib/cjs/internal/DefaultSignerEth.js.map +3 -3
- package/lib/cjs/internal/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 +2 -2
- 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/ProvideSafeAccountCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/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 +2 -2
- 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/VerifySafeAddress/VerifySafeAddress.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/ParseTransactionTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.test.js.map +7 -0
- 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/di.js +1 -1
- package/lib/cjs/internal/di.js.map +3 -3
- package/lib/cjs/internal/safe/di/safeModule.js +2 -0
- package/lib/cjs/internal/safe/di/safeModule.js.map +7 -0
- package/lib/cjs/internal/safe/di/safeModule.test.js +2 -0
- package/lib/cjs/internal/safe/di/safeModule.test.js.map +7 -0
- package/lib/cjs/internal/safe/di/safeTypes.js +2 -0
- package/lib/cjs/internal/safe/di/safeTypes.js.map +7 -0
- package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.js +2 -0
- package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.js.map +7 -0
- package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.test.js +2 -0
- package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.test.js.map +7 -0
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js +1 -1
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js.map +2 -2
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
- package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js.map +2 -2
- package/lib/cjs/package.json +1 -1
- package/lib/esm/api/SignerEthBuilder.test.js +1 -1
- package/lib/esm/api/SignerEthBuilder.test.js.map +2 -2
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
- package/lib/esm/api/app-binder/VerifySafeAddressDeviceActionTypes.js +2 -0
- package/lib/esm/api/app-binder/VerifySafeAddressDeviceActionTypes.js.map +7 -0
- package/lib/esm/api/index.js +1 -1
- package/lib/esm/api/index.js.map +2 -2
- package/lib/esm/api/model/SafeAddressOptions.js +1 -0
- package/lib/esm/api/model/SafeAddressOptions.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/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 +2 -2
- 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/ProvideSafeAccountCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/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 +2 -2
- 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/VerifySafeAddress/VerifySafeAddress.js +2 -0
- package/lib/esm/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js +2 -0
- package/lib/esm/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js +2 -0
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildFullContextsTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/ParseTransactionTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ProvideContextTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ProvideContextTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ProvideContextTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/ProvideContextTask.test.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.test.js.map +7 -0
- 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/di.js +1 -1
- package/lib/esm/internal/di.js.map +3 -3
- package/lib/esm/internal/safe/di/safeModule.js +2 -0
- package/lib/esm/internal/safe/di/safeModule.js.map +7 -0
- package/lib/esm/internal/safe/di/safeModule.test.js +2 -0
- package/lib/esm/internal/safe/di/safeModule.test.js.map +7 -0
- package/lib/esm/internal/safe/di/safeTypes.js +2 -0
- package/lib/esm/internal/safe/di/safeTypes.js.map +7 -0
- package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.js +2 -0
- package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.js.map +7 -0
- package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.test.js +2 -0
- package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.test.js.map +7 -0
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.js +1 -1
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.js.map +2 -2
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
- package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js.map +2 -2
- package/lib/esm/package.json +1 -1
- package/lib/types/api/SignerEth.d.ts +3 -0
- package/lib/types/api/SignerEth.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +9 -8
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +4 -0
- package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/VerifySafeAddressDeviceActionTypes.d.ts +30 -0
- package/lib/types/api/app-binder/VerifySafeAddressDeviceActionTypes.d.ts.map +1 -0
- package/lib/types/api/index.d.ts +5 -9
- package/lib/types/api/index.d.ts.map +1 -1
- package/lib/types/api/model/SafeAddressOptions.d.ts +5 -0
- package/lib/types/api/model/SafeAddressOptions.d.ts.map +1 -0
- package/lib/types/internal/DefaultSignerEth.d.ts +3 -0
- package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
- package/lib/types/internal/app-binder/EthAppBinder.d.ts +6 -0
- package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts +28 -0
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.d.ts +34 -0
- package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +29 -1
- package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +14 -18
- 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 +4 -0
- package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.d.ts +20 -0
- package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.d.ts +2 -0
- package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.d.ts +6 -0
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts +51 -0
- package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildBaseContexts.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildBaseContexts.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +8 -1
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.d.ts +39 -0
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildFullContextsTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.d.ts +19 -0
- package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.d.ts +28 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/BuildSubcontextsTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.d.ts +21 -0
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/{PreBuildContextTask.d.ts → ParseTransactionTask.d.ts} +6 -6
- package/lib/types/internal/app-binder/task/ParseTransactionTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ParseTransactionTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/ParseTransactionTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideContextTask.d.ts +22 -0
- package/lib/types/internal/app-binder/task/ProvideContextTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideContextTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/ProvideContextTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +14 -3
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.d.ts +36 -0
- package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts +1 -0
- package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts.map +1 -1
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/safe/di/safeModule.d.ts +3 -0
- package/lib/types/internal/safe/di/safeModule.d.ts.map +1 -0
- package/lib/types/internal/safe/di/safeModule.test.d.ts +2 -0
- package/lib/types/internal/safe/di/safeModule.test.d.ts.map +1 -0
- package/lib/types/internal/safe/di/safeTypes.d.ts +4 -0
- package/lib/types/internal/safe/di/safeTypes.d.ts.map +1 -0
- package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.d.ts +9 -0
- package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.d.ts.map +1 -0
- package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.test.d.ts +2 -0
- package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.test.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +0 -7
- package/lib/esm/internal/app-binder/task/BuildSubContextTask.js +0 -2
- package/lib/esm/internal/app-binder/task/BuildSubContextTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js.map +0 -7
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +0 -2
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +0 -7
- package/lib/esm/internal/app-binder/task/PreBuildContextTask.js +0 -2
- package/lib/esm/internal/app-binder/task/PreBuildContextTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +0 -7
- package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts +0 -20
- package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +0 -28
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +0 -44
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/transaction/service/parser/TransactionParserService.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n ContainerPath,\n type DataPathElement,\n type TransactionSubset,\n} from \"@ledgerhq/context-module\";\nimport {\n bufferToHexaString,\n ByteArrayBuilder,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { TransactionParserService } from \"./TransactionParserService\";\n\ndescribe(\"TransactionParserService\", () => {\n const parser = new TransactionParserService();\n\n const TO = hexaStringToBuffer(\"0x3f32cF0B1DF94157EE1c3876c49BE3732C92a98f\")!;\n const VALUE = 81818275935222000n;\n const VALUE_BIN = new ByteArrayBuilder()\n .add256BitUIntToData(81818275935222000n)\n .build();\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"Container paths\", () => {\n it(\"should extract TO of the container\", () => {\n // GIVEN\n const subset = {\n chainId: 1,\n data: \"0x\",\n selector: \"0x\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n // WHEN\n const value = parser.extractValue(subset, ContainerPath.TO);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([TO]);\n });\n\n it(\"should extract VALUE of the container\", () => {\n // GIVEN\n\n const subset = {\n chainId: 1,\n data: \"0x\",\n selector: \"0x\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n // WHEN\n const value = parser.extractValue(subset, ContainerPath.VALUE);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([VALUE_BIN]);\n });\n\n it(\"Unavailable container fields\", () => {\n // GIVEN\n const subset = {\n chainId: 1,\n data: \"0x\",\n selector: \"0x\",\n to: undefined,\n from: undefined,\n value: VALUE,\n };\n\n // WHEN\n const from = parser.extractValue(subset, ContainerPath.FROM);\n const to = parser.extractValue(subset, ContainerPath.TO);\n\n // THEN\n expect(from.isRight()).toStrictEqual(false);\n expect(to.isRight()).toStrictEqual(false);\n });\n\n it(\"invalid transaction format\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n \"0xdeadbeef\",\n ) as unknown as TransactionSubset;\n\n // WHEN\n const from = parser.extractValue(transaction, ContainerPath.FROM);\n\n // THEN\n expect(from.isRight()).toStrictEqual(false);\n });\n });\n\n describe(\"Data paths in a calldata with static elements\", () => {\n // Example from abi specification:\n // https://docs.soliditylang.org/en/latest/abi-spec.html\n //\n // function baz(uint32 x, bool y)\n // parameters: x = 69\n // y = true\n // calldata:\n // 0xcdcd77c0\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000045\n // [1] 0x0000000000000000000000000000000000000000000000000000000000000001\n const subset = {\n chainId: 1,\n data: \"0xcdcd77c000000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000001\",\n selector: \"0xcdcd77c\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n it(\"Extract the first element\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000045\",\n )!,\n ]);\n });\n\n it(\"Extract the second element\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n ]);\n });\n\n it(\"Slice the static leaf\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: -4,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x00000045\")!,\n ]);\n });\n\n it(\"Out of bounds\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 2,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n });\n\n describe(\"Data paths in a calldata with dynamic elements\", () => {\n // Example from abi specification:\n // https://docs.soliditylang.org/en/latest/abi-spec.html\n //\n // function g(uint256[][] x, string[] x)\n // parameters: x = [[1, 2], [3]]\n // y = [\"one\", \"two\", \"three\"]\n // calldata:\n // 0x2289b18c\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000040: offset of x\n // [1] 0x0000000000000000000000000000000000000000000000000000000000000140: offset of y\n // [2] 0x0000000000000000000000000000000000000000000000000000000000000002: length of x\n // [3] 0x0000000000000000000000000000000000000000000000000000000000000040: offset of x[0]\n // [4] 0x00000000000000000000000000000000000000000000000000000000000000a0: offset of x[1]\n // [5] 0x0000000000000000000000000000000000000000000000000000000000000002: length of x[0]\n // [6] 0x0000000000000000000000000000000000000000000000000000000000000001: value of x[0][0] = 1\n // [7] 0x0000000000000000000000000000000000000000000000000000000000000002: value of x[0][1] = 2\n // [8] 0x0000000000000000000000000000000000000000000000000000000000000001: length of x[1]\n // [9] 0x0000000000000000000000000000000000000000000000000000000000000003: value of x[1][0] = 3\n // [10] 0x0000000000000000000000000000000000000000000000000000000000000003: length of y\n // [11] 0x0000000000000000000000000000000000000000000000000000000000000060: offset of y[0]\n // [12] 0x00000000000000000000000000000000000000000000000000000000000000a0: offset of y[1]\n // [13] 0x00000000000000000000000000000000000000000000000000000000000000e0: offset of y[2]\n // [14] 0x0000000000000000000000000000000000000000000000000000000000000003: length of y[0]\n // [15] 0x6f6e650000000000000000000000000000000000000000000000000000000000: value of y[0] = \"one\"\n // [16] 0x0000000000000000000000000000000000000000000000000000000000000003: length of y[1]\n // [17] 0x74776f0000000000000000000000000000000000000000000000000000000000: value of y[1] = \"two\"\n // [18] 0x0000000000000000000000000000000000000000000000000000000000000005: length of y[2]\n // [19] 0x7468726565000000000000000000000000000000000000000000000000000000: value of y[2] = \"three\"\n const subset = {\n to: bufferToHexaString(TO),\n value: VALUE,\n chainId: 1,\n data: \"0x2289b18c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000036f6e650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000374776f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057468726565000000000000000000000000000000000000000000000000000000\",\n selector: \"0x2289b18c\",\n };\n it(\"Extract all the elements of x, concatenated together\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n )!,\n ]);\n });\n\n it(\"Extract all the elements of x[0]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 0,\n end: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n ]);\n });\n\n it(\"Extract all the elements of x[0:-1][-1:]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 0,\n end: -1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: -1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n ]);\n });\n\n it(\"Array out of bounds\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 0,\n end: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Extract all the elements of x[1]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x6f6e65\")!,\n hexaStringToBuffer(\"0x74776f\")!,\n hexaStringToBuffer(\"0x7468726565\")!,\n ]);\n });\n\n it(\"Extract all the elements of x[1][:2]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n end: 2,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x6f6e65\")!,\n hexaStringToBuffer(\"0x74776f\")!,\n ]);\n });\n\n it(\"Slice the dynamic leaf with [1:-2]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: 1,\n end: -2,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x6872\")!,\n ]);\n });\n\n it(\"Slice the dynamic leaf with [-1:]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: -1,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([hexaStringToBuffer(\"0x65\")!]);\n });\n\n it(\"Slice the dynamic leaf with [:1]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n end: 1,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([hexaStringToBuffer(\"0x74\")!]);\n });\n\n it(\"Error no leaf\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Error slice not at the end\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"SLICE\",\n start: 0,\n end: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Error empty slice\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: 0,\n end: 0,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n });\n\n describe(\"Array of tuples, with bigger itemSize\", () => {\n // Example constructed with an array of tuples just for the tests\n //\n // function baz((uint32, uint32) myTuple[])\n // parameters: myTuple = [ (1, 2), (3, 4), (5, 6) ]\n // calldata:\n // 0xcdcd77c0\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000020\n // [1] 0x0000000000000000000000000000000000000000000000000000000000000003\n // [2] 0x0000000000000000000000000000000000000000000000000000000000000001\n // [3] 0x0000000000000000000000000000000000000000000000000000000000000002\n // [4] 0x0000000000000000000000000000000000000000000000000000000000000003\n // [5] 0x0000000000000000000000000000000000000000000000000000000000000004\n // [6] 0x0000000000000000000000000000000000000000000000000000000000000005\n // [7] 0x0000000000000000000000000000000000000000000000000000000000000006\n const subset = {\n chainId: 1,\n data: \"0xcdcd77c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006\",\n selector: \"0xcdcd77c\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n it(\"Extract the first tuple element of all array elements\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 2,\n },\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n )!,\n ]);\n });\n\n it(\"Extract the second tuple element of all array elements\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 2,\n },\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n )!,\n ]);\n });\n });\n\n describe(\"Malformed calldata\", () => {\n // Example constructed with invalid data just for the tests\n //\n // calldata:\n // 0x2289b18c\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000080\n // [1] 0xf000000000000000000000000000000000000000000000000000000000000140\n // [2] 0xf000000000000000000000000000000000000000000000000000000000000002\n const subset = {\n chainId: 1,\n data: \"0x2289b18c0000000000000000000000000000000000000000000000000000000000000080f000000000000000000000000000000000000000000000000000000000000140f000000000000000000000000000000000000000000000000000000000000002\",\n selector: \"0x2289b18c\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n it(\"Dynamic leaf length overflow\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Calldata smaller than dynamic leaf\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Array length overflow\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Calldata smaller than array length\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Ref out of bounds\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import {\n ContainerPath,\n type DataPathElement,\n type TransactionSubset,\n} from \"@ledgerhq/context-module\";\nimport {\n bufferToHexaString,\n ByteArrayBuilder,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { TransactionParserService } from \"./TransactionParserService\";\n\ndescribe(\"TransactionParserService\", () => {\n const parser = new TransactionParserService();\n\n const TO = hexaStringToBuffer(\"0x3f32cF0B1DF94157EE1c3876c49BE3732C92a98f\")!;\n const VALUE = 81818275935222000n;\n const VALUE_BIN = new ByteArrayBuilder()\n .add256BitUIntToData(81818275935222000n)\n .build();\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"Container paths\", () => {\n it(\"should extract TO of the container\", () => {\n // GIVEN\n const subset = {\n chainId: 1,\n data: \"0x\",\n selector: \"0x\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n // WHEN\n const value = parser.extractValue(subset, ContainerPath.TO);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([TO]);\n });\n\n it(\"should extract VALUE of the container\", () => {\n // GIVEN\n\n const subset = {\n chainId: 1,\n data: \"0x\",\n selector: \"0x\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n // WHEN\n const value = parser.extractValue(subset, ContainerPath.VALUE);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([VALUE_BIN]);\n });\n\n it(\"Unavailable container fields\", () => {\n // GIVEN\n const subset = {\n chainId: 1,\n data: \"0x\",\n selector: \"0x\",\n to: undefined,\n from: undefined,\n value: VALUE,\n };\n\n // WHEN\n const from = parser.extractValue(subset, ContainerPath.FROM);\n const to = parser.extractValue(subset, ContainerPath.TO);\n\n // THEN\n expect(from.isRight()).toStrictEqual(false);\n expect(to.isRight()).toStrictEqual(false);\n });\n\n it(\"invalid transaction format\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n \"0xdeadbeef\",\n ) as unknown as TransactionSubset;\n\n // WHEN\n const from = parser.extractValue(transaction, ContainerPath.FROM);\n\n // THEN\n expect(from.isRight()).toStrictEqual(false);\n });\n });\n\n describe(\"Data paths in a calldata with static elements\", () => {\n // Example from abi specification:\n // https://docs.soliditylang.org/en/latest/abi-spec.html\n //\n // function baz(uint32 x, bool y)\n // parameters: x = 69\n // y = true\n // calldata:\n // 0xcdcd77c0\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000045\n // [1] 0x0000000000000000000000000000000000000000000000000000000000000001\n const subset = {\n chainId: 1,\n data: \"0xcdcd77c000000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000001\",\n selector: \"0xcdcd77c\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n it(\"Extract the first element\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000045\",\n )!,\n ]);\n });\n\n it(\"Extract the second element\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n ]);\n });\n\n it(\"Slice the static leaf\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: -4,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x00000045\")!,\n ]);\n });\n\n it(\"Out of bounds\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 2,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n });\n\n describe(\"Data paths in a calldata with dynamic elements\", () => {\n // Example from abi specification:\n // https://docs.soliditylang.org/en/latest/abi-spec.html\n //\n // function g(uint256[][] x, string[] x)\n // parameters: x = [[1, 2], [3]]\n // y = [\"one\", \"two\", \"three\"]\n // calldata:\n // 0x2289b18c\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000040: offset of x\n // [1] 0x0000000000000000000000000000000000000000000000000000000000000140: offset of y\n // [2] 0x0000000000000000000000000000000000000000000000000000000000000002: length of x\n // [3] 0x0000000000000000000000000000000000000000000000000000000000000040: offset of x[0]\n // [4] 0x00000000000000000000000000000000000000000000000000000000000000a0: offset of x[1]\n // [5] 0x0000000000000000000000000000000000000000000000000000000000000002: length of x[0]\n // [6] 0x0000000000000000000000000000000000000000000000000000000000000001: value of x[0][0] = 1\n // [7] 0x0000000000000000000000000000000000000000000000000000000000000002: value of x[0][1] = 2\n // [8] 0x0000000000000000000000000000000000000000000000000000000000000001: length of x[1]\n // [9] 0x0000000000000000000000000000000000000000000000000000000000000003: value of x[1][0] = 3\n // [10] 0x0000000000000000000000000000000000000000000000000000000000000003: length of y\n // [11] 0x0000000000000000000000000000000000000000000000000000000000000060: offset of y[0]\n // [12] 0x00000000000000000000000000000000000000000000000000000000000000a0: offset of y[1]\n // [13] 0x00000000000000000000000000000000000000000000000000000000000000e0: offset of y[2]\n // [14] 0x0000000000000000000000000000000000000000000000000000000000000003: length of y[0]\n // [15] 0x6f6e650000000000000000000000000000000000000000000000000000000000: value of y[0] = \"one\"\n // [16] 0x0000000000000000000000000000000000000000000000000000000000000003: length of y[1]\n // [17] 0x74776f0000000000000000000000000000000000000000000000000000000000: value of y[1] = \"two\"\n // [18] 0x0000000000000000000000000000000000000000000000000000000000000005: length of y[2]\n // [19] 0x7468726565000000000000000000000000000000000000000000000000000000: value of y[2] = \"three\"\n const subset = {\n to: bufferToHexaString(TO),\n value: VALUE,\n chainId: 1,\n data: \"0x2289b18c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000036f6e650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000374776f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057468726565000000000000000000000000000000000000000000000000000000\",\n selector: \"0x2289b18c\",\n };\n it(\"Extract all the elements of x, concatenated together\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n )!,\n ]);\n });\n\n it(\"Extract all the elements of x[0]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 0,\n end: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n ]);\n });\n\n it(\"Extract all the elements of x[0:-1][-1:]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 0,\n end: -1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: -1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n ]);\n });\n\n it(\"Array out of bounds\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 0,\n end: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Extract all the elements of x[1]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x6f6e65\")!,\n hexaStringToBuffer(\"0x74776f\")!,\n hexaStringToBuffer(\"0x7468726565\")!,\n ]);\n });\n\n it(\"Extract all the elements of x[1][:2]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n end: 2,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x6f6e65\")!,\n hexaStringToBuffer(\"0x74776f\")!,\n ]);\n });\n\n it(\"Slice the dynamic leaf with [1:-2]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: 1,\n end: -2,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\"0x6872\")!,\n ]);\n });\n\n it(\"Slice the dynamic leaf with [-1:]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: -1,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([hexaStringToBuffer(\"0x65\")!]);\n });\n\n it(\"Slice the dynamic leaf with [:1]\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n start: 2,\n end: 3,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n end: 1,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([hexaStringToBuffer(\"0x74\")!]);\n });\n\n it(\"Error no leaf\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Error slice not at the end\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"SLICE\",\n start: 0,\n end: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Error empty slice\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n {\n type: \"SLICE\",\n start: 0,\n end: 0,\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n });\n\n describe(\"Array of tuples, with bigger itemSize\", () => {\n // Example constructed with an array of tuples just for the tests\n //\n // function baz((uint32, uint32) myTuple[])\n // parameters: myTuple = [ (1, 2), (3, 4), (5, 6) ]\n // calldata:\n // 0xcdcd77c0\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000020\n // [1] 0x0000000000000000000000000000000000000000000000000000000000000003\n // [2] 0x0000000000000000000000000000000000000000000000000000000000000001\n // [3] 0x0000000000000000000000000000000000000000000000000000000000000002\n // [4] 0x0000000000000000000000000000000000000000000000000000000000000003\n // [5] 0x0000000000000000000000000000000000000000000000000000000000000004\n // [6] 0x0000000000000000000000000000000000000000000000000000000000000005\n // [7] 0x0000000000000000000000000000000000000000000000000000000000000006\n const subset = {\n chainId: 1,\n data: \"0xcdcd77c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006\",\n selector: \"0xcdcd77c\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n it(\"Extract the first tuple element of all array elements\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 2,\n },\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n )!,\n ]);\n });\n\n it(\"Extract the second tuple element of all array elements\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"REF\",\n },\n {\n type: \"ARRAY\",\n itemSize: 2,\n },\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(true);\n expect(value.unsafeCoerce()).toStrictEqual([\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n )!,\n hexaStringToBuffer(\n \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n )!,\n ]);\n });\n });\n\n describe(\"Malformed calldata\", () => {\n // Example constructed with invalid data just for the tests\n //\n // calldata:\n // 0x2289b18c\n // [0] 0x0000000000000000000000000000000000000000000000000000000000000080\n // [1] 0xf000000000000000000000000000000000000000000000000000000000000140\n // [2] 0xf000000000000000000000000000000000000000000000000000000000000002\n const subset = {\n chainId: 1,\n data: \"0x2289b18c0000000000000000000000000000000000000000000000000000000000000080f000000000000000000000000000000000000000000000000000000000000140f000000000000000000000000000000000000000000000000000000000000002\",\n selector: \"0x2289b18c\",\n to: bufferToHexaString(TO),\n value: VALUE,\n };\n\n it(\"Dynamic leaf length overflow\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Calldata smaller than dynamic leaf\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"LEAF\",\n leafType: \"DYNAMIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Array length overflow\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Calldata smaller than array length\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 0,\n },\n {\n type: \"ARRAY\",\n itemSize: 1,\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Ref out of bounds\", () => {\n // GIVEN\n const path: DataPathElement[] = [\n {\n type: \"TUPLE\",\n offset: 1,\n },\n {\n type: \"REF\",\n },\n {\n type: \"LEAF\",\n leafType: \"STATIC_LEAF\",\n },\n ];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n\n it(\"Empty array\", () => {\n // GIVEN\n const path: DataPathElement[] = [];\n\n // WHEN\n const value = parser.extractValue(subset, path);\n\n // THEN\n expect(value.isRight()).toStrictEqual(false);\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_context_module", "import_device_management_kit", "import_TransactionParserService", "parser", "TO", "VALUE", "VALUE_BIN", "subset", "value", "from", "to", "transaction", "path"]
|
|
7
7
|
}
|
package/lib/cjs/package.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{SignerEthBuilder as
|
|
1
|
+
import{SignerEthBuilder as o}from"./SignerEthBuilder";import{DefaultSignerEth as s}from"../internal/DefaultSignerEth";import{externalTypes as c}from"../internal/externalTypes";describe("SignerEthBuilder",()=>{const i={dmk:{},sessionId:"",originToken:"test"};test("should be an instance of SignerEth",()=>{const e=new o(i);e.build(),expect(e).toBeInstanceOf(o)}),test("should instanciate with default context module",()=>{const t=new o(i).build(),n=t._container.get(c.ContextModule);expect(t).toBeInstanceOf(s),expect(n).toBeDefined()}),test("should instanciate with custom context module",()=>{const e=new o(i),t={},n=e.withContextModule(t).build();expect(n).toBeInstanceOf(s),expect(n._container.get(c.ContextModule)).toBe(t)})});
|
|
2
2
|
//# sourceMappingURL=SignerEthBuilder.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api/SignerEthBuilder.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { SignerEthBuilder } from \"@api/SignerEthBuilder\";\nimport { DefaultSignerEth } from \"@internal/DefaultSignerEth\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\ndescribe(\"SignerEthBuilder\", () => {\n const dmk: DeviceManagementKit = {} as DeviceManagementKit;\n const defaultConstructorArgs = { dmk, sessionId: \"\", originToken: \"test\" };\n\n test(\"should be an instance of SignerEth\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n builder.build();\n\n // THEN\n expect(builder).toBeInstanceOf(SignerEthBuilder);\n });\n\n test(\"should instanciate with default context module\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n const signer = builder.build();\n const contextModule = signer[\"_container\"].get<ContextModule>(\n externalTypes.ContextModule,\n );\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(contextModule).toBeDefined();\n
|
|
5
|
-
"mappings": "AAGA,OAAS,oBAAAA,MAAwB,wBACjC,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,iBAAAC,MAAqB,0BAE9B,SAAS,mBAAoB,IAAM,CAEjC,MAAMC,EAAyB,CAAE,IADA,CAAC,EACI,UAAW,GAAI,YAAa,MAAO,EAEzE,KAAK,qCAAsC,IAAM,CAE/C,MAAMC,EAAU,IAAIJ,EAAiBG,CAAsB,EAG3DC,EAAQ,MAAM,EAGd,OAAOA,CAAO,EAAE,eAAeJ,CAAgB,CACjD,CAAC,EAED,KAAK,iDAAkD,IAAM,CAK3D,MAAMK,EAHU,IAAIL,EAAiBG,CAAsB,EAGpC,MAAM,EACvBG,EAAgBD,EAAO,WAAc,IACzCH,EAAc,aAChB,EAGA,OAAOG,CAAM,EAAE,eAAeJ,CAAgB,EAC9C,OAAOK,CAAa,EAAE,YAAY,
|
|
4
|
+
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { SignerEthBuilder } from \"@api/SignerEthBuilder\";\nimport { DefaultSignerEth } from \"@internal/DefaultSignerEth\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\ndescribe(\"SignerEthBuilder\", () => {\n const dmk: DeviceManagementKit = {} as DeviceManagementKit;\n const defaultConstructorArgs = { dmk, sessionId: \"\", originToken: \"test\" };\n\n test(\"should be an instance of SignerEth\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n builder.build();\n\n // THEN\n expect(builder).toBeInstanceOf(SignerEthBuilder);\n });\n\n test(\"should instanciate with default context module\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n const signer = builder.build();\n const contextModule = signer[\"_container\"].get<ContextModule>(\n externalTypes.ContextModule,\n );\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(contextModule).toBeDefined();\n });\n\n test(\"should instanciate with custom context module\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n const contextModule = {} as ContextModule;\n\n // WHEN\n const signer = builder.withContextModule(contextModule).build();\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(\n signer[\"_container\"].get<ContextModule>(externalTypes.ContextModule),\n ).toBe(contextModule);\n });\n});\n"],
|
|
5
|
+
"mappings": "AAGA,OAAS,oBAAAA,MAAwB,wBACjC,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,iBAAAC,MAAqB,0BAE9B,SAAS,mBAAoB,IAAM,CAEjC,MAAMC,EAAyB,CAAE,IADA,CAAC,EACI,UAAW,GAAI,YAAa,MAAO,EAEzE,KAAK,qCAAsC,IAAM,CAE/C,MAAMC,EAAU,IAAIJ,EAAiBG,CAAsB,EAG3DC,EAAQ,MAAM,EAGd,OAAOA,CAAO,EAAE,eAAeJ,CAAgB,CACjD,CAAC,EAED,KAAK,iDAAkD,IAAM,CAK3D,MAAMK,EAHU,IAAIL,EAAiBG,CAAsB,EAGpC,MAAM,EACvBG,EAAgBD,EAAO,WAAc,IACzCH,EAAc,aAChB,EAGA,OAAOG,CAAM,EAAE,eAAeJ,CAAgB,EAC9C,OAAOK,CAAa,EAAE,YAAY,CACpC,CAAC,EAED,KAAK,gDAAiD,IAAM,CAE1D,MAAMF,EAAU,IAAIJ,EAAiBG,CAAsB,EACrDG,EAAgB,CAAC,EAGjBD,EAASD,EAAQ,kBAAkBE,CAAa,EAAE,MAAM,EAG9D,OAAOD,CAAM,EAAE,eAAeJ,CAAgB,EAC9C,OACEI,EAAO,WAAc,IAAmBH,EAAc,aAAa,CACrE,EAAE,KAAKI,CAAa,CACtB,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["SignerEthBuilder", "DefaultSignerEth", "externalTypes", "defaultConstructorArgs", "builder", "signer", "contextModule"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t=(e=>(e.OPEN_APP="signer.eth.steps.openApp",e.GET_APP_CONFIG="signer.eth.steps.getAppConfig",e.WEB3_CHECKS_OPT_IN="signer.eth.steps.web3ChecksOptIn",e.WEB3_CHECKS_OPT_IN_RESULT="signer.eth.steps.web3ChecksOptInResult",e.
|
|
1
|
+
var t=(e=>(e.OPEN_APP="signer.eth.steps.openApp",e.GET_APP_CONFIG="signer.eth.steps.getAppConfig",e.WEB3_CHECKS_OPT_IN="signer.eth.steps.web3ChecksOptIn",e.WEB3_CHECKS_OPT_IN_RESULT="signer.eth.steps.web3ChecksOptInResult",e.PARSE_TRANSACTION="signer.eth.steps.parseTransaction",e.BUILD_CONTEXTS="signer.eth.steps.buildContexts",e.PROVIDE_CONTEXTS="signer.eth.steps.provideContexts",e.SIGN_TRANSACTION="signer.eth.steps.signTransaction",e.BLIND_SIGN_TRANSACTION_FALLBACK="signer.eth.steps.blindSignTransactionFallback",e))(t||{});export{t as SignTransactionDAStep};
|
|
2
2
|
//# sourceMappingURL=SignTransactionDeviceActionTypes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/app-binder/SignTransactionDeviceActionTypes.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type
|
|
5
|
-
"mappings": "AAuBO,IAAKA,OACVA,EAAA,SAAW,2BACXA,EAAA,eAAiB,gCACjBA,EAAA,mBAAqB,mCACrBA,EAAA,0BAA4B,yCAC5BA,EAAA,kBAAoB,
|
|
4
|
+
"sourcesContent": ["import {\n type ContextModule,\n type TransactionSubset,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport { type ClearSigningType } from \"@api/model/ClearSigningType\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { type ContextWithSubContexts } from \"@internal/app-binder/task/BuildFullContextsTask\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nexport enum SignTransactionDAStep {\n OPEN_APP = \"signer.eth.steps.openApp\",\n GET_APP_CONFIG = \"signer.eth.steps.getAppConfig\",\n WEB3_CHECKS_OPT_IN = \"signer.eth.steps.web3ChecksOptIn\",\n WEB3_CHECKS_OPT_IN_RESULT = \"signer.eth.steps.web3ChecksOptInResult\",\n PARSE_TRANSACTION = \"signer.eth.steps.parseTransaction\",\n BUILD_CONTEXTS = \"signer.eth.steps.buildContexts\",\n PROVIDE_CONTEXTS = \"signer.eth.steps.provideContexts\",\n SIGN_TRANSACTION = \"signer.eth.steps.signTransaction\",\n BLIND_SIGN_TRANSACTION_FALLBACK = \"signer.eth.steps.blindSignTransactionFallback\",\n}\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAInput = {\n readonly derivationPath: string;\n readonly transaction: Uint8Array;\n readonly mapper: TransactionMapperService;\n readonly parser: TransactionParserService;\n readonly contextModule: ContextModule;\n readonly options: TransactionOptions;\n};\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.Web3ChecksOptIn\n | UserInteractionRequired.SignTransaction;\n\nexport type SignTransactionDAIntermediateValue =\n | {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n step: Exclude<\n SignTransactionDAStep,\n SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT\n >;\n }\n | {\n requiredUserInteraction: UserInteractionRequired.None;\n step: SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT;\n result: boolean;\n };\n\nexport type SignTransactionDAState = DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n\nexport type SignTransactionDAInternalState = {\n readonly error: SignTransactionDAError | null;\n readonly appConfig: GetConfigCommandResponse | null;\n readonly subset: TransactionSubset | null;\n readonly contexts: ContextWithSubContexts[];\n readonly clearSigningType: ClearSigningType | null;\n readonly transactionType: TransactionType | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
|
|
5
|
+
"mappings": "AAuBO,IAAKA,OACVA,EAAA,SAAW,2BACXA,EAAA,eAAiB,gCACjBA,EAAA,mBAAqB,mCACrBA,EAAA,0BAA4B,yCAC5BA,EAAA,kBAAoB,oCACpBA,EAAA,eAAiB,iCACjBA,EAAA,iBAAmB,mCACnBA,EAAA,iBAAmB,mCACnBA,EAAA,gCAAkC,gDATxBA,OAAA",
|
|
6
6
|
"names": ["SignTransactionDAStep"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var r=(e=>(e.OPEN_APP="signer.eth.steps.openApp",e.GET_APP_CONFIG="signer.eth.steps.getAppConfig",e.WEB3_CHECKS_OPT_IN="signer.eth.steps.web3ChecksOptIn",e.WEB3_CHECKS_OPT_IN_RESULT="signer.eth.steps.web3ChecksOptInResult",e.BUILD_CONTEXT="signer.eth.steps.buildContext",e.PROVIDE_CONTEXT="signer.eth.steps.provideContext",e.PROVIDE_GENERIC_CONTEXT="signer.eth.steps.provideGenericContext",e.SIGN_TYPED_DATA="signer.eth.steps.signTypedData",e.SIGN_TYPED_DATA_LEGACY="signer.eth.steps.signTypedDataLegacy",e))(r||{});export{r as SignTypedDataDAStateStep};
|
|
2
2
|
//# sourceMappingURL=SignTypedDataDeviceActionTypes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/app-binder/SignTypedDataDeviceActionTypes.ts"],
|
|
4
|
-
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport type { ProvideEIP712ContextTaskArgs } from \"@internal/app-binder/task/ProvideEIP712ContextTask\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nexport enum SignTypedDataDAStateStep {\n OPEN_APP = \"signer.eth.steps.openApp\",\n GET_APP_CONFIG = \"signer.eth.steps.getAppConfig\",\n WEB3_CHECKS_OPT_IN = \"signer.eth.steps.web3ChecksOptIn\",\n WEB3_CHECKS_OPT_IN_RESULT = \"signer.eth.steps.web3ChecksOptInResult\",\n BUILD_CONTEXT = \"signer.eth.steps.buildContext\",\n PROVIDE_CONTEXT = \"signer.eth.steps.provideContext\",\n PROVIDE_GENERIC_CONTEXT = \"signer.eth.steps.provideGenericContext\",\n SIGN_TYPED_DATA = \"signer.eth.steps.signTypedData\",\n SIGN_TYPED_DATA_LEGACY = \"signer.eth.steps.signTypedDataLegacy\",\n}\n\nexport type SignTypedDataDAOutput = Signature;\n\nexport type SignTypedDataDAInput = {\n readonly derivationPath: string;\n readonly data: TypedData;\n readonly parser: TypedDataParserService;\n readonly contextModule: ContextModule;\n readonly skipOpenApp: boolean;\n};\n\nexport type SignTypedDataDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype SignTypedDataDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.Web3ChecksOptIn\n | UserInteractionRequired.SignTypedData;\n\nexport type SignTypedDataDAIntermediateValue =\n | {\n requiredUserInteraction: SignTypedDataDARequiredInteraction;\n step: Exclude<\n SignTypedDataDAStateStep,\n SignTypedDataDAStateStep.WEB3_CHECKS_OPT_IN_RESULT\n >;\n }\n | {\n requiredUserInteraction: UserInteractionRequired.None;\n step: SignTypedDataDAStateStep.WEB3_CHECKS_OPT_IN_RESULT;\n result: boolean;\n };\n\nexport type SignTypedDataDAState = DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n\nexport type SignTypedDataDAInternalState = {\n readonly error: SignTypedDataDAError | null;\n readonly appConfig: GetConfigCommandResponse | null;\n readonly typedDataContext: ProvideEIP712ContextTaskArgs | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTypedDataDAReturnType = ExecuteDeviceActionReturnType<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport type { ProvideEIP712ContextTaskArgs } from \"@internal/app-binder/task/ProvideEIP712ContextTask\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nexport enum SignTypedDataDAStateStep {\n OPEN_APP = \"signer.eth.steps.openApp\",\n GET_APP_CONFIG = \"signer.eth.steps.getAppConfig\",\n WEB3_CHECKS_OPT_IN = \"signer.eth.steps.web3ChecksOptIn\",\n WEB3_CHECKS_OPT_IN_RESULT = \"signer.eth.steps.web3ChecksOptInResult\",\n BUILD_CONTEXT = \"signer.eth.steps.buildContext\",\n PROVIDE_CONTEXT = \"signer.eth.steps.provideContext\",\n PROVIDE_GENERIC_CONTEXT = \"signer.eth.steps.provideGenericContext\",\n SIGN_TYPED_DATA = \"signer.eth.steps.signTypedData\",\n SIGN_TYPED_DATA_LEGACY = \"signer.eth.steps.signTypedDataLegacy\",\n}\n\nexport type SignTypedDataDAOutput = Signature;\n\nexport type SignTypedDataDAInput = {\n readonly derivationPath: string;\n readonly data: TypedData;\n readonly parser: TypedDataParserService;\n readonly transactionMapper: TransactionMapperService;\n readonly transactionParser: TransactionParserService;\n readonly contextModule: ContextModule;\n readonly skipOpenApp: boolean;\n};\n\nexport type SignTypedDataDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype SignTypedDataDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.Web3ChecksOptIn\n | UserInteractionRequired.SignTypedData;\n\nexport type SignTypedDataDAIntermediateValue =\n | {\n requiredUserInteraction: SignTypedDataDARequiredInteraction;\n step: Exclude<\n SignTypedDataDAStateStep,\n SignTypedDataDAStateStep.WEB3_CHECKS_OPT_IN_RESULT\n >;\n }\n | {\n requiredUserInteraction: UserInteractionRequired.None;\n step: SignTypedDataDAStateStep.WEB3_CHECKS_OPT_IN_RESULT;\n result: boolean;\n };\n\nexport type SignTypedDataDAState = DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n\nexport type SignTypedDataDAInternalState = {\n readonly error: SignTypedDataDAError | null;\n readonly appConfig: GetConfigCommandResponse | null;\n readonly typedDataContext: ProvideEIP712ContextTaskArgs | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTypedDataDAReturnType = ExecuteDeviceActionReturnType<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n"],
|
|
5
|
+
"mappings": "AAmBO,IAAKA,OACVA,EAAA,SAAW,2BACXA,EAAA,eAAiB,gCACjBA,EAAA,mBAAqB,mCACrBA,EAAA,0BAA4B,yCAC5BA,EAAA,cAAgB,gCAChBA,EAAA,gBAAkB,kCAClBA,EAAA,wBAA0B,yCAC1BA,EAAA,gBAAkB,iCAClBA,EAAA,uBAAyB,uCATfA,OAAA",
|
|
6
6
|
"names": ["SignTypedDataDAStateStep"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var r=(e=>(e.OPEN_APP="signer.eth.steps.openApp",e.BUILD_CONTEXTS="signer.eth.steps.buildContexts",e.PROVIDE_CONTEXTS="signer.eth.steps.provideContexts",e.VERIFY_SAFE_ADDRESS="signer.eth.steps.verifySafeAddress",e))(r||{});export{r as VerifySafeAddressDAStep};
|
|
2
|
+
//# sourceMappingURL=VerifySafeAddressDeviceActionTypes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/api/app-binder/VerifySafeAddressDeviceActionTypes.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type SafeAddressOptions } from \"@api/model/SafeAddressOptions\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\n\nexport enum VerifySafeAddressDAStep {\n OPEN_APP = \"signer.eth.steps.openApp\",\n BUILD_CONTEXTS = \"signer.eth.steps.buildContexts\",\n PROVIDE_CONTEXTS = \"signer.eth.steps.provideContexts\",\n VERIFY_SAFE_ADDRESS = \"signer.eth.steps.verifySafeAddress\",\n}\n\nexport type VerifySafeAddressDAOutput = void;\n\nexport type VerifySafeAddressDAInput = {\n readonly safeContractAddress: string;\n readonly contextModule: ContextModule;\n readonly options: SafeAddressOptions;\n};\n\nexport type VerifySafeAddressDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype VerifySafeAddressDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.VerifySafeAddress;\n\nexport type VerifySafeAddressDAIntermediateValue = {\n requiredUserInteraction: VerifySafeAddressDARequiredInteraction;\n step: VerifySafeAddressDAStep;\n};\n\nexport type VerifySafeAddressDAState = DeviceActionState<\n VerifySafeAddressDAOutput,\n VerifySafeAddressDAError,\n VerifySafeAddressDAIntermediateValue\n>;\n\nexport type VerifySafeAddressDAInternalState = {\n readonly error: VerifySafeAddressDAError | null;\n readonly contexts: ClearSignContextSuccess[];\n};\n\nexport type VerifySafeAddressDAReturnType = ExecuteDeviceActionReturnType<\n VerifySafeAddressDAOutput,\n VerifySafeAddressDAError,\n VerifySafeAddressDAIntermediateValue\n>;\n"],
|
|
5
|
+
"mappings": "AAgBO,IAAKA,OACVA,EAAA,SAAW,2BACXA,EAAA,eAAiB,iCACjBA,EAAA,iBAAmB,mCACnBA,EAAA,oBAAsB,qCAJZA,OAAA",
|
|
6
|
+
"names": ["VerifySafeAddressDAStep"]
|
|
7
|
+
}
|
package/lib/esm/api/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import{SignTransactionDAStep as n}from"./app-binder/SignTransactionDeviceActionTypes";import{SignTypedDataDAStateStep as a}from"./app-binder/SignTypedDataDeviceActionTypes";export*from"./model/Address";export*from"./model/AddressOptions";export*from"./model/Signature";export*from"./model/TransactionOptions";export*from"./model/TransactionType";export*from"./model/TypedData";export*from"./SignerEth";export*from"./SignerEthBuilder";export{n as SignTransactionDAStep,a as SignTypedDataDAStateStep};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/api/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api/index.ts"],
|
|
4
|
-
"sourcesContent": ["export
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["export {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type GetAddressDAReturnType,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nexport {\n type SignDelegationAuthorizationDAError,\n type SignDelegationAuthorizationDAInput,\n type SignDelegationAuthorizationDAIntermediateValue,\n type SignDelegationAuthorizationDAOutput,\n type SignDelegationAuthorizationDAReturnType,\n type SignDelegationAuthorizationDAState,\n} from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nexport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n type SignPersonalMessageDAReturnType,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nexport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n type SignTransactionDAReturnType,\n type SignTransactionDAState,\n SignTransactionDAStep,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport {\n type SignTypedDataDAError,\n type SignTypedDataDAInput,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAInternalState,\n type SignTypedDataDAOutput,\n type SignTypedDataDAReturnType,\n type SignTypedDataDAState,\n SignTypedDataDAStateStep,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nexport * from \"@api/model/Address\";\nexport * from \"@api/model/AddressOptions\";\nexport * from \"@api/model/Signature\";\nexport * from \"@api/model/TransactionOptions\";\nexport * from \"@api/model/TransactionType\";\nexport * from \"@api/model/TypedData\";\nexport * from \"@api/SignerEth\";\nexport * from \"@api/SignerEthBuilder\";\n"],
|
|
5
|
+
"mappings": "AAoBA,OAQE,yBAAAA,MACK,mDACP,OAQE,4BAAAC,MACK,iDACP,WAAc,qBACd,WAAc,4BACd,WAAc,uBACd,WAAc,gCACd,WAAc,6BACd,WAAc,uBACd,WAAc,iBACd,WAAc",
|
|
6
6
|
"names": ["SignTransactionDAStep", "SignTypedDataDAStateStep"]
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=SafeAddressOptions.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{addressTypes as i}from"./address/di/addressTypes";import{makeContainer as
|
|
1
|
+
import{addressTypes as i}from"./address/di/addressTypes";import{makeContainer as n}from"./di";import{messageTypes as o}from"./message/di/messageTypes";import{safeTypes as a}from"./safe/di/safeTypes";import{transactionTypes as p}from"./transaction/di/transactionTypes";import{typedDataTypes as m}from"./typed-data/di/typedDataTypes";import{eip7702Types as g}from"./eip7702/di/eip7702Types";class c{_container;constructor({dmk:e,sessionId:t,contextModule:r}){this._container=n({dmk:e,sessionId:t,contextModule:r})}signTransaction(e,t,r){return this._container.get(p.SignTransactionUseCase).execute(e,t,r)}signMessage(e,t,r){return this._container.get(o.SignMessageUseCase).execute(e,t,r)}signTypedData(e,t,r){return this._container.get(m.SignTypedDataUseCase).execute(e,t,r)}getAddress(e,t){return this._container.get(i.GetAddressUseCase).execute(e,t)}verifySafeAddress(e,t){return this._container.get(a.VerifySafeAddressUseCase).execute(e,t)}signDelegationAuthorization(e,t,r,s){return this._container.get(g.SignDelegationAuthorizationUseCase).execute(e,s,r,t)}}export{c as DefaultSignerEth};
|
|
2
2
|
//# sourceMappingURL=DefaultSignerEth.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/internal/DefaultSignerEth.ts"],
|
|
4
|
-
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type SignDelegationAuthorizationDAReturnType } from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TypedDataOptions } from \"@api/model/TypedDataOptions\";\nimport { type SignerEth } from \"@api/SignerEth\";\nimport { addressTypes } from \"@internal/address/di/addressTypes\";\nimport { type GetAddressUseCase } from \"@internal/address/use-case/GetAddressUseCase\";\nimport { makeContainer } from \"@internal/di\";\nimport { messageTypes } from \"@internal/message/di/messageTypes\";\nimport { type SignMessageUseCase } from \"@internal/message/use-case/SignMessageUseCase\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { type SignTransactionUseCase } from \"@internal/transaction/use-case/SignTransactionUseCase\";\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { type SignTypedDataUseCase } from \"@internal/typed-data/use-case/SignTypedDataUseCase\";\n\nimport { eip7702Types } from \"./eip7702/di/eip7702Types\";\nimport { type SignDelegationAuthorizationUseCase } from \"./eip7702/use-case/SignDelegationAuthorizationUseCase\";\n\ntype DefaultSignerConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n contextModule: ContextModule;\n};\n\nexport class DefaultSignerEth implements SignerEth {\n private _container: Container;\n\n constructor({ dmk, sessionId, contextModule }: DefaultSignerConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId, contextModule });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(transactionTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string | Uint8Array,\n options?: MessageOptions,\n ): SignPersonalMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(messageTypes.SignMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n signTypedData(\n derivationPath: string,\n typedData: TypedData,\n options?: TypedDataOptions,\n ): SignTypedDataDAReturnType {\n return this._container\n .get<SignTypedDataUseCase>(typedDataTypes.SignTypedDataUseCase)\n .execute(derivationPath, typedData, options);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(addressTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n signDelegationAuthorization(\n derivationPath: string,\n chainId: number,\n contractAddress: string,\n nonce: number,\n ): SignDelegationAuthorizationDAReturnType {\n return this._container\n .get<SignDelegationAuthorizationUseCase>(\n eip7702Types.SignDelegationAuthorizationUseCase,\n )\n .execute(derivationPath, nonce, contractAddress, chainId);\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["addressTypes", "makeContainer", "messageTypes", "transactionTypes", "typedDataTypes", "eip7702Types", "DefaultSignerEth", "dmk", "sessionId", "contextModule", "derivationPath", "transaction", "options", "message", "typedData", "chainId", "contractAddress", "nonce"]
|
|
4
|
+
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type SignDelegationAuthorizationDAReturnType } from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type VerifySafeAddressDAReturnType } from \"@api/app-binder/VerifySafeAddressDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type SafeAddressOptions } from \"@api/model/SafeAddressOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TypedDataOptions } from \"@api/model/TypedDataOptions\";\nimport { type SignerEth } from \"@api/SignerEth\";\nimport { addressTypes } from \"@internal/address/di/addressTypes\";\nimport { type GetAddressUseCase } from \"@internal/address/use-case/GetAddressUseCase\";\nimport { makeContainer } from \"@internal/di\";\nimport { messageTypes } from \"@internal/message/di/messageTypes\";\nimport { type SignMessageUseCase } from \"@internal/message/use-case/SignMessageUseCase\";\nimport { safeTypes } from \"@internal/safe/di/safeTypes\";\nimport { type VerifySafeAddressUseCase } from \"@internal/safe/use-case/VerifySafeAddressUseCase\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { type SignTransactionUseCase } from \"@internal/transaction/use-case/SignTransactionUseCase\";\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { type SignTypedDataUseCase } from \"@internal/typed-data/use-case/SignTypedDataUseCase\";\n\nimport { eip7702Types } from \"./eip7702/di/eip7702Types\";\nimport { type SignDelegationAuthorizationUseCase } from \"./eip7702/use-case/SignDelegationAuthorizationUseCase\";\n\ntype DefaultSignerConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n contextModule: ContextModule;\n};\n\nexport class DefaultSignerEth implements SignerEth {\n private _container: Container;\n\n constructor({ dmk, sessionId, contextModule }: DefaultSignerConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId, contextModule });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(transactionTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string | Uint8Array,\n options?: MessageOptions,\n ): SignPersonalMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(messageTypes.SignMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n signTypedData(\n derivationPath: string,\n typedData: TypedData,\n options?: TypedDataOptions,\n ): SignTypedDataDAReturnType {\n return this._container\n .get<SignTypedDataUseCase>(typedDataTypes.SignTypedDataUseCase)\n .execute(derivationPath, typedData, options);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(addressTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n verifySafeAddress(\n safeContractAddress: string,\n options?: SafeAddressOptions,\n ): VerifySafeAddressDAReturnType {\n return this._container\n .get<VerifySafeAddressUseCase>(safeTypes.VerifySafeAddressUseCase)\n .execute(safeContractAddress, options);\n }\n\n signDelegationAuthorization(\n derivationPath: string,\n chainId: number,\n contractAddress: string,\n nonce: number,\n ): SignDelegationAuthorizationDAReturnType {\n return this._container\n .get<SignDelegationAuthorizationUseCase>(\n eip7702Types.SignDelegationAuthorizationUseCase,\n )\n .execute(derivationPath, nonce, contractAddress, chainId);\n }\n}\n"],
|
|
5
|
+
"mappings": "AAoBA,OAAS,gBAAAA,MAAoB,oCAE7B,OAAS,iBAAAC,MAAqB,eAC9B,OAAS,gBAAAC,MAAoB,oCAE7B,OAAS,aAAAC,MAAiB,8BAE1B,OAAS,oBAAAC,MAAwB,4CAEjC,OAAS,kBAAAC,MAAsB,yCAG/B,OAAS,gBAAAC,MAAoB,4BAStB,MAAMC,CAAsC,CACzC,WAER,YAAY,CAAE,IAAAC,EAAK,UAAAC,EAAW,cAAAC,CAAc,EAAiC,CAC3E,KAAK,WAAaT,EAAc,CAAE,IAAAO,EAAK,UAAAC,EAAW,cAAAC,CAAc,CAAC,CACnE,CAEA,gBACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4BT,EAAiB,sBAAsB,EACnE,QAAQO,EAAgBC,EAAaC,CAAO,CACjD,CAEA,YACEF,EACAG,EACAD,EACiC,CACjC,OAAO,KAAK,WACT,IAAwBX,EAAa,kBAAkB,EACvD,QAAQS,EAAgBG,EAASD,CAAO,CAC7C,CAEA,cACEF,EACAI,EACAF,EAC2B,CAC3B,OAAO,KAAK,WACT,IAA0BR,EAAe,oBAAoB,EAC7D,QAAQM,EAAgBI,EAAWF,CAAO,CAC/C,CAEA,WACEF,EACAE,EACwB,CACxB,OAAO,KAAK,WACT,IAAuBb,EAAa,iBAAiB,EACrD,QAAQW,EAAgBE,CAAO,CACpC,CAEA,kBACEG,EACAH,EAC+B,CAC/B,OAAO,KAAK,WACT,IAA8BV,EAAU,wBAAwB,EAChE,QAAQa,EAAqBH,CAAO,CACzC,CAEA,4BACEF,EACAM,EACAC,EACAC,EACyC,CACzC,OAAO,KAAK,WACT,IACCb,EAAa,kCACf,EACC,QAAQK,EAAgBQ,EAAOD,EAAiBD,CAAO,CAC5D,CACF",
|
|
6
|
+
"names": ["addressTypes", "makeContainer", "messageTypes", "safeTypes", "transactionTypes", "typedDataTypes", "eip7702Types", "DefaultSignerEth", "dmk", "sessionId", "contextModule", "derivationPath", "transaction", "options", "message", "typedData", "safeContractAddress", "chainId", "contractAddress", "nonce"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var D=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
var D=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var A=(o,e,t,n)=>{for(var i=n>1?void 0:n?y(e,t):e,a=o.length-1,d;a>=0;a--)(d=o[a])&&(i=(n?d(e,t,i):d(i))||i);return n&&i&&D(e,t,i),i},r=(o,e)=>(t,n)=>e(t,n,o);import{CallTaskInAppDeviceAction as u,SendCommandInAppDeviceAction as f}from"@ledgerhq/device-management-kit";import{UserInteractionRequired as p}from"@ledgerhq/device-management-kit";import{inject as s,injectable as h}from"inversify";import{SignTypedDataDeviceAction as T}from"../app-binder/device-action/SignTypedData/SignTypedDataDeviceAction";import{SendSignPersonalMessageTask as S}from"../app-binder/task/SendSignPersonalMessageTask";import{externalTypes as m}from"../externalTypes";import{transactionTypes as v}from"../transaction/di/transactionTypes";import{GetAddressCommand as g}from"./command/GetAddressCommand";import{SignTransactionDeviceAction as l}from"./device-action/SignTransaction/SignTransactionDeviceAction";import{VerifySafeAddressDeviceAction as k}from"./device-action/VerifySafeAddress/VerifySafeAddress";import{SendSignAuthorizationDelegationTask as I}from"./task/SendSignAuthorizationDelegationTask";let c=class{constructor(e,t,n,i,a){this.dmk=e;this.contextModule=t;this.mapper=n;this.parser=i;this.sessionId=a}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new f({input:{command:new g(e),appName:"Ethereum",requiredUserInteraction:e.checkOnDevice?p.VerifyAddress:p.None,skipOpenApp:e.skipOpenApp}})})}verifySafeAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new k({input:{safeContractAddress:e.safeContractAddress,contextModule:this.contextModule,options:e.options??{chainId:1}}})})}signPersonalMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new u({input:{task:async t=>new S(t,e).run(),appName:"Ethereum",requiredUserInteraction:p.SignPersonalMessage,skipOpenApp:e.skipOpenApp}})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new l({input:{derivationPath:e.derivationPath,transaction:e.transaction,mapper:this.mapper,parser:this.parser,contextModule:this.contextModule,options:e.options??{}}})})}signTypedData(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new T({input:{derivationPath:e.derivationPath,data:e.data,parser:e.parser,transactionMapper:this.mapper,transactionParser:this.parser,contextModule:this.contextModule,skipOpenApp:e.skipOpenApp}})})}signDelegationAuthorization(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new u({input:{task:async t=>new I(t,e).run(),appName:"Ethereum",requiredUserInteraction:p.SignDelegationAuthorization,skipOpenApp:!1}})})}};c=A([h(),r(0,s(m.Dmk)),r(1,s(m.ContextModule)),r(2,s(v.TransactionMapperService)),r(3,s(v.TransactionParserService)),r(4,s(m.SessionId))],c);export{c as EthAppBinder};
|
|
2
2
|
//# sourceMappingURL=EthAppBinder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/app-binder/EthAppBinder.ts"],
|
|
4
|
-
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CallTaskInAppDeviceAction,\n SendCommandInAppDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { SignDelegationAuthorizationDAReturnType } from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { SignTypedDataDeviceAction } from \"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\";\nimport { SendSignPersonalMessageTask } from \"@internal/app-binder/task/SendSignPersonalMessageTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { SendSignAuthorizationDelegationTask } from \"./task/SendSignAuthorizationDelegationTask\";\n\n@injectable()\nexport class EthAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.ContextModule) private contextModule: ContextModule,\n @inject(transactionTypes.TransactionMapperService)\n private mapper: TransactionMapperService,\n @inject(transactionTypes.TransactionParserService)\n private parser: TransactionParserService,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n returnChainCode: boolean;\n skipOpenApp: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(args),\n appName: \"Ethereum\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signPersonalMessage(args: {\n derivationPath: string;\n message: string | Uint8Array;\n skipOpenApp: boolean;\n }): SignPersonalMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignPersonalMessageTask(internalApi, args).run(),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n options?: TransactionOptions;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n mapper: this.mapper,\n parser: this.parser,\n contextModule: this.contextModule,\n options: args.options ?? {},\n },\n }),\n });\n }\n\n signTypedData(args: {\n derivationPath: string;\n parser: TypedDataParserService;\n data: TypedData;\n skipOpenApp: boolean;\n }): SignTypedDataDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTypedDataDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n data: args.data,\n parser: args.parser,\n contextModule: this.contextModule,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signDelegationAuthorization(args: {\n derivationPath: string;\n chainId: number;\n address: string;\n nonce: number;\n }): SignDelegationAuthorizationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignAuthorizationDelegationTask(internalApi, args).run(),\n appName: \"Ethereum\",\n requiredUserInteraction:\n UserInteractionRequired.SignDelegationAuthorization,\n skipOpenApp: false,\n },\n }),\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "iOAKA,OACE,6BAAAA,EACA,gCAAAC,MACK,kCACP,OAAS,2BAAAC,MAA+B,kCACxC,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,
|
|
6
|
-
"names": ["CallTaskInAppDeviceAction", "SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "SignTypedDataDeviceAction", "SendSignPersonalMessageTask", "externalTypes", "transactionTypes", "GetAddressCommand", "SignTransactionDeviceAction", "SendSignAuthorizationDelegationTask", "EthAppBinder", "dmk", "contextModule", "mapper", "parser", "sessionId", "args", "SendCommandInAppDeviceAction", "GetAddressCommand", "UserInteractionRequired", "CallTaskInAppDeviceAction", "internalApi", "SendSignPersonalMessageTask", "SignTransactionDeviceAction", "SignTypedDataDeviceAction", "SendSignAuthorizationDelegationTask", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "transactionTypes"]
|
|
4
|
+
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CallTaskInAppDeviceAction,\n SendCommandInAppDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { SignDelegationAuthorizationDAReturnType } from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { VerifySafeAddressDAReturnType } from \"@api/app-binder/VerifySafeAddressDeviceActionTypes\";\nimport { SafeAddressOptions } from \"@api/model/SafeAddressOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { SignTypedDataDeviceAction } from \"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\";\nimport { SendSignPersonalMessageTask } from \"@internal/app-binder/task/SendSignPersonalMessageTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { VerifySafeAddressDeviceAction } from \"./device-action/VerifySafeAddress/VerifySafeAddress\";\nimport { SendSignAuthorizationDelegationTask } from \"./task/SendSignAuthorizationDelegationTask\";\n\n@injectable()\nexport class EthAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.ContextModule) private contextModule: ContextModule,\n @inject(transactionTypes.TransactionMapperService)\n private mapper: TransactionMapperService,\n @inject(transactionTypes.TransactionParserService)\n private parser: TransactionParserService,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n returnChainCode: boolean;\n skipOpenApp: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(args),\n appName: \"Ethereum\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n verifySafeAddress(args: {\n safeContractAddress: string;\n options?: SafeAddressOptions;\n }): VerifySafeAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new VerifySafeAddressDeviceAction({\n input: {\n safeContractAddress: args.safeContractAddress,\n contextModule: this.contextModule,\n options: args.options ?? { chainId: 1 },\n },\n }),\n });\n }\n\n signPersonalMessage(args: {\n derivationPath: string;\n message: string | Uint8Array;\n skipOpenApp: boolean;\n }): SignPersonalMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignPersonalMessageTask(internalApi, args).run(),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n options?: TransactionOptions;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n mapper: this.mapper,\n parser: this.parser,\n contextModule: this.contextModule,\n options: args.options ?? {},\n },\n }),\n });\n }\n\n signTypedData(args: {\n derivationPath: string;\n parser: TypedDataParserService;\n data: TypedData;\n skipOpenApp: boolean;\n }): SignTypedDataDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTypedDataDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n data: args.data,\n parser: args.parser,\n transactionMapper: this.mapper,\n transactionParser: this.parser,\n contextModule: this.contextModule,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signDelegationAuthorization(args: {\n derivationPath: string;\n chainId: number;\n address: string;\n nonce: number;\n }): SignDelegationAuthorizationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignAuthorizationDelegationTask(internalApi, args).run(),\n appName: \"Ethereum\",\n requiredUserInteraction:\n UserInteractionRequired.SignDelegationAuthorization,\n skipOpenApp: false,\n },\n }),\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["CallTaskInAppDeviceAction", "SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "SignTypedDataDeviceAction", "SendSignPersonalMessageTask", "externalTypes", "transactionTypes", "GetAddressCommand", "SignTransactionDeviceAction", "VerifySafeAddressDeviceAction", "SendSignAuthorizationDelegationTask", "EthAppBinder", "dmk", "contextModule", "mapper", "parser", "sessionId", "args", "SendCommandInAppDeviceAction", "GetAddressCommand", "UserInteractionRequired", "VerifySafeAddressDeviceAction", "CallTaskInAppDeviceAction", "internalApi", "SendSignPersonalMessageTask", "SignTransactionDeviceAction", "SignTypedDataDeviceAction", "SendSignAuthorizationDelegationTask", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "transactionTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{hexaStringToBuffer as v}from"@ledgerhq/device-management-kit";import{DeviceActionStatus as c}from"@ledgerhq/device-management-kit";import{SendCommandInAppDeviceAction as S}from"@ledgerhq/device-management-kit";import{UserInteractionRequired as h}from"@ledgerhq/device-management-kit";import{Transaction as y}from"ethers";import{from as m}from"rxjs";import{GetAddressCommand as f}from"./command/GetAddressCommand";import{EthAppBinder as A}from"./EthAppBinder";describe("EthAppBinder",()=>{const r={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},d={
|
|
1
|
+
import{hexaStringToBuffer as v}from"@ledgerhq/device-management-kit";import{DeviceActionStatus as c}from"@ledgerhq/device-management-kit";import{SendCommandInAppDeviceAction as S}from"@ledgerhq/device-management-kit";import{UserInteractionRequired as h}from"@ledgerhq/device-management-kit";import{Transaction as y}from"ethers";import{from as m}from"rxjs";import{GetAddressCommand as f}from"./command/GetAddressCommand";import{EthAppBinder as A}from"./EthAppBinder";describe("EthAppBinder",()=>{const r={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},d={getFieldContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn(),getSolanaContext:vi.fn()},D={mapTransactionToSubset:vi.fn()},l={extractValue:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),describe("getAddress",()=>{it("should return the address, publicKey, and chainCode",()=>new Promise((i,a)=>{const e="0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43",s="04e3785ca";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:{address:e,publicKey:s,chainCode:void 0}}]),cancel:vi.fn()});const p=new A(r,d,D,l,"sessionId"),{observable:o}=p.getAddress({derivationPath:"44'/60'/3'/2/1",checkOnDevice:!1,returnChainCode:!1,skipOpenApp:!1}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{a(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:{address:e,publicKey:s,chainCode:void 0}}]),i()}catch(n){a(n)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const i={derivationPath:"44'/60'/3'/2/1",checkOnDevice:!1,returnChainCode:!1,skipOpenApp:!1};test("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const e={...i,checkOnDevice:!0};new A(r,d,D,l,"sessionId").getAddress(e),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new S({input:{command:new f(e),appName:"Ethereum",requiredUserInteraction:h.VerifyAddress,skipOpenApp:!1}})})}),test("when checkOnDevice is false: UserInteractionRequired.None",()=>{const e={...i,checkOnDevice:!1};new A(r,d,D,l,"sessionId").getAddress(e),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new S({input:{command:new f(e),appName:"Ethereum",requiredUserInteraction:h.None,skipOpenApp:!1}})})})})}),describe("signTransaction",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s=v(y.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized),u={};vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const p=new A(r,d,D,l,"sessionId"),{observable:o}=p.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:s,options:u}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{a(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:e}]),i()}catch(n){a(n)}}})})),it("should return the signature without options",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s=v(y.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized);vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const u=new A(r,d,D,l,"sessionId"),{observable:p}=u.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:s,options:void 0}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{a(t)},complete:()=>{try{expect(o).toEqual([{status:c.Completed,output:e}]),i()}catch(t){a(t)}}})}))}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s="Hello, World!";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const u=new A(r,d,D,l,"sessionId"),{observable:p}=u.signPersonalMessage({derivationPath:"44'/60'/3'/2/1",message:s,skipOpenApp:!1}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{a(t)},complete:()=>{try{expect(o).toEqual([{status:c.Completed,output:e}]),i()}catch(t){a(t)}}})}))}),describe("signDelegationAuthorization",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s=2,u=42,p="0xaddress";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const o=new A(r,d,D,l,"sessionId"),{observable:t}=o.signDelegationAuthorization({derivationPath:"44'/60'/3'/2/1",chainId:s,address:p,nonce:u}),n=[];t.subscribe({next:g=>{n.push(g)},error:g=>{a(g)},complete:()=>{try{expect(n).toEqual([{status:c.Completed,output:e}]),i()}catch(g){a(g)}}})}))}),describe("signTypedData",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s={domain:{},types:{},primaryType:"test",message:{}},u={parse:vi.fn()};vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const p=new A(r,d,D,l,"sessionId"),{observable:o}=p.signTypedData({derivationPath:"44'/60'/3'/2/1",parser:u,data:s,skipOpenApp:!1}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{a(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:e}]),i()}catch(n){a(n)}}})}))})});
|
|
2
2
|
//# sourceMappingURL=EthAppBinder.test.js.map
|