@ledgerhq/device-signer-kit-bitcoin 0.0.0-signer-eth-20250122093657 → 0.0.0-transaction-unfunded-20250917151052
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -32
- package/lib/cjs/api/SignerBtc.js +1 -1
- package/lib/cjs/api/SignerBtc.js.map +1 -1
- package/lib/cjs/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
- package/lib/cjs/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
- package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/GetWalletAddressDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/model/AddressOptions.js +1 -1
- package/lib/cjs/api/model/AddressOptions.js.map +1 -1
- package/lib/cjs/api/model/MessageOptions.js +2 -0
- package/lib/cjs/api/model/MessageOptions.js.map +7 -0
- package/lib/cjs/api/model/PsbtOptions.js +2 -0
- package/lib/cjs/api/model/PsbtOptions.js.map +7 -0
- package/lib/cjs/api/model/WalletAddressOptions.js +1 -1
- package/lib/cjs/api/model/WalletAddressOptions.js.map +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/internal/DefaultSignerBtc.js +1 -1
- package/lib/cjs/internal/DefaultSignerBtc.js.map +3 -3
- package/lib/cjs/internal/DefaultSignerBtc.test.js +1 -1
- package/lib/cjs/internal/DefaultSignerBtc.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/BtcAppBinder.js +1 -1
- package/lib/cjs/internal/app-binder/BtcAppBinder.js.map +3 -3
- package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
- package/lib/cjs/internal/app-binder/BtcAppBinder.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.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/__test-utils__/makeInternalApi.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
- package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
- package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
- package/lib/cjs/internal/app-binder/di/appBinderModule.test.js +1 -1
- package/lib/cjs/internal/app-binder/di/appBinderModule.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/di/appBinderTypes.js +1 -1
- package/lib/cjs/internal/app-binder/di/appBinderTypes.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/ContinueTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ContinueTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
- package/lib/cjs/internal/data-store/di/dataStoreModule.js +1 -1
- package/lib/cjs/internal/data-store/di/dataStoreModule.js.map +3 -3
- package/lib/cjs/internal/data-store/di/dataStoreModule.test.js +1 -1
- package/lib/cjs/internal/data-store/di/dataStoreModule.test.js.map +2 -2
- package/lib/cjs/internal/data-store/model/DataStore.test.js +1 -1
- package/lib/cjs/internal/data-store/model/DataStore.test.js.map +2 -2
- package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
- package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
- package/lib/cjs/internal/di.js +1 -1
- package/lib/cjs/internal/di.js.map +2 -2
- package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js +1 -1
- package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
- package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
- package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
- package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
- package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
- package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
- package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
- package/lib/cjs/internal/psbt/di/psbtModule.js +1 -1
- package/lib/cjs/internal/psbt/di/psbtModule.js.map +3 -3
- package/lib/cjs/internal/psbt/di/psbtModule.test.js +1 -1
- package/lib/cjs/internal/psbt/di/psbtModule.test.js.map +2 -2
- package/lib/cjs/internal/psbt/model/Key.js +1 -1
- package/lib/cjs/internal/psbt/model/Key.js.map +2 -2
- package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
- package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
- package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
- package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
- package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
- package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
- package/lib/cjs/internal/use-cases/di/useCasesModule.js +1 -1
- package/lib/cjs/internal/use-cases/di/useCasesModule.js.map +3 -3
- package/lib/cjs/internal/use-cases/di/useCasesModule.test.js +1 -1
- package/lib/cjs/internal/use-cases/di/useCasesModule.test.js.map +2 -2
- package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
- package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
- package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
- package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
- package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
- package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
- package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
- package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
- package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
- package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
- package/lib/cjs/internal/wallet/di/walletModule.js +1 -1
- package/lib/cjs/internal/wallet/di/walletModule.js.map +3 -3
- package/lib/cjs/internal/wallet/di/walletModule.test.js +1 -1
- package/lib/cjs/internal/wallet/di/walletModule.test.js.map +2 -2
- package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js +1 -1
- package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
- package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
- package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
- package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
- package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
- package/lib/cjs/package.json +17 -17
- package/lib/esm/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
- package/lib/esm/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
- package/lib/esm/api/model/MessageOptions.js +1 -0
- package/lib/esm/api/model/MessageOptions.js.map +7 -0
- package/lib/esm/api/model/PsbtOptions.js +1 -0
- package/lib/esm/api/model/PsbtOptions.js.map +7 -0
- package/lib/esm/internal/DefaultSignerBtc.js +1 -1
- package/lib/esm/internal/DefaultSignerBtc.js.map +3 -3
- package/lib/esm/internal/DefaultSignerBtc.test.js +1 -1
- package/lib/esm/internal/DefaultSignerBtc.test.js.map +2 -2
- package/lib/esm/internal/app-binder/BtcAppBinder.js +1 -1
- package/lib/esm/internal/app-binder/BtcAppBinder.js.map +3 -3
- package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
- package/lib/esm/internal/app-binder/BtcAppBinder.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
- package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
- package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
- package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.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/__test-utils__/makeInternalApi.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
- package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
- package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
- package/lib/esm/internal/app-binder/di/appBinderModule.test.js +1 -1
- package/lib/esm/internal/app-binder/di/appBinderModule.test.js.map +2 -2
- package/lib/esm/internal/app-binder/di/appBinderTypes.js +1 -1
- package/lib/esm/internal/app-binder/di/appBinderTypes.js.map +2 -2
- package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ContinueTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ContinueTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/SignMessageTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
- package/lib/esm/internal/data-store/di/dataStoreModule.js +1 -1
- package/lib/esm/internal/data-store/di/dataStoreModule.js.map +3 -3
- package/lib/esm/internal/data-store/di/dataStoreModule.test.js +1 -1
- package/lib/esm/internal/data-store/di/dataStoreModule.test.js.map +2 -2
- package/lib/esm/internal/data-store/model/DataStore.test.js +1 -1
- package/lib/esm/internal/data-store/model/DataStore.test.js.map +2 -2
- package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
- package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
- package/lib/esm/internal/di.js +1 -1
- package/lib/esm/internal/di.js.map +2 -2
- package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js +1 -1
- package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
- package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
- package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
- package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
- package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
- package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
- package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
- package/lib/esm/internal/psbt/di/psbtModule.js +1 -1
- package/lib/esm/internal/psbt/di/psbtModule.js.map +3 -3
- package/lib/esm/internal/psbt/di/psbtModule.test.js +1 -1
- package/lib/esm/internal/psbt/di/psbtModule.test.js.map +2 -2
- package/lib/esm/internal/psbt/model/Key.js +1 -1
- package/lib/esm/internal/psbt/model/Key.js.map +2 -2
- package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
- package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
- package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
- package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
- package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
- package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
- package/lib/esm/internal/use-cases/di/useCasesModule.js +1 -1
- package/lib/esm/internal/use-cases/di/useCasesModule.js.map +3 -3
- package/lib/esm/internal/use-cases/di/useCasesModule.test.js +1 -1
- package/lib/esm/internal/use-cases/di/useCasesModule.test.js.map +2 -2
- package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
- package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
- package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
- package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
- package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
- package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
- package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
- package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
- package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
- package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
- package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
- package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
- package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
- package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
- package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
- package/lib/esm/internal/wallet/di/walletModule.js +1 -1
- package/lib/esm/internal/wallet/di/walletModule.js.map +3 -3
- package/lib/esm/internal/wallet/di/walletModule.test.js +1 -1
- package/lib/esm/internal/wallet/di/walletModule.test.js.map +2 -2
- package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js +1 -1
- package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
- package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
- package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
- package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
- package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
- package/lib/esm/package.json +17 -17
- package/lib/types/api/SignerBtc.d.ts +7 -5
- package/lib/types/api/SignerBtc.d.ts.map +1 -1
- package/lib/types/api/SignerBtcBuilder.test.d.ts +2 -0
- package/lib/types/api/SignerBtcBuilder.test.d.ts.map +1 -0
- package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts +3 -1
- package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts +1 -0
- package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +1 -12
- package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts +1 -0
- package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +1 -0
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/model/AddressOptions.d.ts +1 -0
- package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
- package/lib/types/api/model/MessageOptions.d.ts +4 -0
- package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
- package/lib/types/api/model/PsbtOptions.d.ts +4 -0
- package/lib/types/api/model/PsbtOptions.d.ts.map +1 -0
- package/lib/types/api/model/Signature.d.ts.map +1 -1
- package/lib/types/api/model/WalletAddressOptions.d.ts +1 -0
- package/lib/types/api/model/WalletAddressOptions.d.ts.map +1 -1
- package/lib/types/internal/DefaultSignerBtc.d.ts +7 -5
- package/lib/types/internal/DefaultSignerBtc.d.ts.map +1 -1
- package/lib/types/internal/app-binder/BtcAppBinder.d.ts +4 -0
- package/lib/types/internal/app-binder/BtcAppBinder.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/utils/bitcoinAppErrors.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
- package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
- package/lib/types/internal/app-binder/di/appBinderTypes.d.ts +0 -1
- package/lib/types/internal/app-binder/di/appBinderTypes.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/GetWalletAddressTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SignMessageTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SignPsbtTask.d.ts.map +1 -1
- package/lib/types/internal/data-store/di/dataStoreModule.d.ts.map +1 -1
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/merkle-tree/di/merkleTreeModule.d.ts.map +1 -1
- package/lib/types/internal/psbt/di/psbtModule.d.ts.map +1 -1
- package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
- package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts +1 -0
- package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts.map +1 -1
- package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts +1 -1
- package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts.map +1 -1
- package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts +1 -1
- package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts.map +1 -1
- package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts +1 -1
- package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts.map +1 -1
- package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts +1 -1
- package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts.map +1 -1
- package/lib/types/internal/wallet/di/walletModule.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +19 -19
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
- package/lib/types/api/SignerBtcBuiilder.test.d.ts +0 -2
- package/lib/types/api/SignerBtcBuiilder.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts +0 -19
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts.map +0 -1
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts +0 -2
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { type DmkError } from \"@ledgerhq/device-management-kit\";\nimport { Either, Just, Nothing } from \"purify-ts\";\n\nimport {\n ClientCommandCodes,\n SHA256_SIZE,\n} from \"@internal/app-binder/command/utils/constants\";\nimport { type DataStore } from \"@internal/data-store/model/DataStore\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\nimport { type CommandHandlerContext } from \"./ClientCommandHandlersTypes\";\nimport { ClientCommandHandlerError } from \"./Errors\";\nimport { GetPreimageCommandHandler } from \"./GetPreimageCommandHandler\";\n\nconst COMMAND_CODE = ClientCommandCodes.GET_PREIMAGE;\n\
|
|
5
|
-
"mappings": "aACA,IAAAA,EAAsC,
|
|
4
|
+
"sourcesContent": ["import { type DmkError } from \"@ledgerhq/device-management-kit\";\nimport { Either, Just, Nothing } from \"purify-ts\";\nimport { type Mock, type Mocked } from \"vitest\";\n\nimport {\n ClientCommandCodes,\n SHA256_SIZE,\n} from \"@internal/app-binder/command/utils/constants\";\nimport { type DataStore } from \"@internal/data-store/model/DataStore\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\nimport { type CommandHandlerContext } from \"./ClientCommandHandlersTypes\";\nimport { ClientCommandHandlerError } from \"./Errors\";\nimport { GetPreimageCommandHandler } from \"./GetPreimageCommandHandler\";\n\nconst COMMAND_CODE = ClientCommandCodes.GET_PREIMAGE;\n\nvi.mock(\"@internal/utils/Varint\", () => ({\n encodeVarint: vi.fn(),\n}));\n\ndescribe(\"GetPreimageCommandHandler\", () => {\n let commandHandlerContext: CommandHandlerContext;\n let mockDataStore: Mocked<DataStore>;\n\n beforeEach(() => {\n vi.clearAllMocks();\n\n mockDataStore = {\n getPreimage: vi.fn(),\n } as unknown as Mocked<DataStore>;\n\n commandHandlerContext = {\n dataStore: mockDataStore,\n queue: [],\n yieldedResults: [],\n };\n });\n\n it(\"should return the preimage when it is found and its length is within the maximum payload size\", () => {\n // given\n const requestHash = new Uint8Array(SHA256_SIZE).fill(0x01);\n const preimage = new Uint8Array([0xaa, 0xbb, 0xcc]);\n const preimageLength = preimage.length;\n\n // when\n (encodeVarint as Mock).mockReturnValue({\n unsafeCoerce: () => new Uint8Array([0x03]), // varint for 3\n });\n\n mockDataStore.getPreimage.mockReturnValue(Just(preimage));\n\n const request = new Uint8Array([COMMAND_CODE, 0x00, ...requestHash]);\n\n const handlerResult = GetPreimageCommandHandler(\n request,\n commandHandlerContext,\n );\n\n const expectedResponse = new Uint8Array([0x03, 0x03, 0xaa, 0xbb, 0xcc]);\n\n // then\n expect(mockDataStore.getPreimage).toHaveBeenCalledWith(requestHash);\n expect(encodeVarint).toHaveBeenCalledWith(preimageLength);\n handlerResult.caseOf({\n Left: (_) => {\n throw new Error(\"Expected Right, got Left\");\n },\n Right: (response) => {\n expect(response).toEqual(expectedResponse);\n expect(commandHandlerContext.queue).toHaveLength(0);\n },\n });\n });\n\n it(\"should handle a preimage longer than the maximum payload size by queuing the remaining bytes\", () => {\n // given\n const requestHash = new Uint8Array(SHA256_SIZE).fill(0x02);\n const preimage = new Uint8Array(300).fill(0xff);\n const preimageLength = preimage.length;\n\n // when\n (encodeVarint as Mock).mockReturnValue({\n unsafeCoerce: () => new Uint8Array([0xac, 0x02]),\n });\n\n mockDataStore.getPreimage.mockReturnValue(Just(preimage));\n\n const request = new Uint8Array([COMMAND_CODE, 0x00, ...requestHash]);\n\n const handlerResult = GetPreimageCommandHandler(\n request,\n commandHandlerContext,\n );\n\n const varintEncodedLength = new Uint8Array([0xac, 0x02]); // varint for 300\n const maximumBytesInResponse = Math.min(\n 255 - varintEncodedLength.length - 1,\n preimage.length,\n );\n const expectedResponse = new Uint8Array(\n varintEncodedLength.length + 1 + maximumBytesInResponse,\n );\n expectedResponse.set(varintEncodedLength, 0); // varint\n expectedResponse.set([maximumBytesInResponse], varintEncodedLength.length); // bytes in response\n expectedResponse.set(\n preimage.slice(0, maximumBytesInResponse),\n varintEncodedLength.length + 1,\n );\n\n // then\n expect(mockDataStore.getPreimage).toHaveBeenCalledWith(requestHash);\n expect(encodeVarint).toHaveBeenCalledWith(preimageLength);\n handlerResult.caseOf({\n Left: (_) => {\n throw new Error(\"Expected Right, got Left\");\n },\n Right: (response) => {\n expect(response).toEqual(expectedResponse);\n expect(commandHandlerContext.queue).toHaveLength(\n preimage.length - maximumBytesInResponse,\n );\n expect(commandHandlerContext.queue[0]).toEqual(new Uint8Array([0xff]));\n expect(\n commandHandlerContext.queue[commandHandlerContext.queue.length - 1],\n ).toEqual(new Uint8Array([0xff]));\n },\n });\n });\n\n it(\"should return an error when the preimage is not found\", () => {\n // given\n const requestHash = new Uint8Array(SHA256_SIZE).fill(0x03);\n\n // when\n mockDataStore.getPreimage.mockReturnValue(Nothing);\n\n const request = new Uint8Array([COMMAND_CODE, 0x00, ...requestHash]);\n\n const handlerResult = GetPreimageCommandHandler(\n request,\n commandHandlerContext,\n );\n\n // then\n expect(mockDataStore.getPreimage).toHaveBeenCalledWith(requestHash);\n expect(encodeVarint).not.toHaveBeenCalled();\n expect(commandHandlerContext.queue).toHaveLength(0);\n handlerResult.caseOf({\n Left: (error: DmkError) => {\n expect(error).toBeInstanceOf(ClientCommandHandlerError);\n },\n Right: (_) => {\n throw new Error(\"Expected Left, got Right\");\n },\n });\n });\n\n it(\"should handle a preimage length where the maximum payload size exactly matches the preimage length\", () => {\n // given\n const requestHash = new Uint8Array(SHA256_SIZE).fill(0x05);\n const preimage = new Uint8Array(252);\n preimage.fill(0x77);\n\n // when\n (encodeVarint as Mock).mockReturnValue({\n unsafeCoerce: () => new Uint8Array([0xfc]),\n });\n\n mockDataStore.getPreimage.mockReturnValue(Just(preimage));\n\n const request = new Uint8Array([COMMAND_CODE, 0x00, ...requestHash]);\n\n const handlerResult = GetPreimageCommandHandler(\n request,\n commandHandlerContext,\n );\n\n const varintEncodedLength = new Uint8Array([0xfc]);\n const maximumBytesInResponse = Math.min(\n 255 - varintEncodedLength.length - 1,\n preimage.length,\n );\n const expectedResponse = new Uint8Array(\n varintEncodedLength.length + 1 + maximumBytesInResponse,\n );\n expectedResponse.set(varintEncodedLength, 0);\n expectedResponse.set([maximumBytesInResponse], varintEncodedLength.length);\n expectedResponse.set(preimage, varintEncodedLength.length + 1);\n\n // then\n expect(handlerResult).toStrictEqual(Either.of(expectedResponse));\n expect(commandHandlerContext.queue).toHaveLength(0);\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_purify_ts", "import_constants", "import_Varint", "import_Errors", "import_GetPreimageCommandHandler", "COMMAND_CODE", "commandHandlerContext", "mockDataStore", "requestHash", "preimage", "preimageLength", "request", "handlerResult", "expectedResponse", "_", "response", "varintEncodedLength", "maximumBytesInResponse", "error"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var E=Object.create;var p=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var v=(n,t,o,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of y(t))!M.call(n,r)&&r!==o&&p(n,r,{get:()=>t[r],enumerable:!(l=x(t,r))||l.enumerable});return n};var C=(n,t,o)=>(o=n!=null?E(H(n)):{},v(t||!n||!n.__esModule?p(o,"default",{value:n,enumerable:!0}):o,n));var m=require("purify-ts"),u=require("../../../app-binder/command/client-command-handlers/Errors"),I=C(require("../../../app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler")),k=C(require("../../../app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler")),L=C(require("../../../app-binder/command/client-command-handlers/GetMoreElementsCommandHandler")),g=C(require("../../../app-binder/command/client-command-handlers/GetPreimageCommandHandler")),A=C(require("../../../app-binder/command/client-command-handlers/YeldCommandHandler")),f=require("../../../app-binder/command/service/ClientCommandInterpreter"),i=require("../../../app-binder/command/utils/constants");describe("ClientCommandInterpreter",()=>{let n,t,o,l,r,s,c;beforeAll(()=>{o=vi.spyOn(A,"YieldCommandHandler").mockImplementation((e,a)=>(a.yieldedResults.push(e.slice(1)),(0,m.Right)(new Uint8Array([])))),l=vi.spyOn(g,"GetPreimageCommandHandler").mockImplementation((e,a)=>{const d=new Uint8Array([1,2,3]);return a.dataStore.getPreimage=vi.fn().mockReturnValue({isJust:()=>!0,extract:()=>d}),(0,m.Right)(d)}),r=vi.spyOn(k,"GetMerkleLeafProofCommandHandler").mockImplementation((e,a)=>(0,m.Right)(new Uint8Array([]))),s=vi.spyOn(I,"GetMerkleLeafIndexCommandHandler").mockImplementation((e,a)=>(a.dataStore.getMerkleLeafIndex=vi.fn().mockReturnValue({mapOrDefault:(d,B)=>d(42)}),(0,m.Right)(new Uint8Array([42])))),c=vi.spyOn(L,"GetMoreElementsCommandHandler").mockImplementation((e,a)=>a.queue.length===0?(0,m.Left)(new u.ClientCommandHandlerError("No more elements in queue")):(0,m.Right)(a.queue.shift()))}),beforeEach(()=>{n=new f.ClientCommandInterpreter,t={yieldedResults:[],dataStore:{getPreimage:vi.fn().mockReturnValue({isJust:()=>!1}),getMerkleLeafIndex:vi.fn()},queue:[new Uint8Array([1])]},vi.clearAllMocks()}),it("should call YieldCommandHandler when request code is YIELD",()=>{const e=new Uint8Array([i.ClientCommandCodes.YIELD]);n.getClientCommandPayload(e,t),expect(o).toHaveBeenCalledTimes(1),expect(o).toHaveBeenCalledWith(e,t)}),it("should call GetPreimageCommandHandler when request code is GET_PREIMAGE",()=>{const e=new Uint8Array([i.ClientCommandCodes.GET_PREIMAGE,0,...new Uint8Array(32)]);n.getClientCommandPayload(e,t),expect(l).toHaveBeenCalledTimes(1),expect(l).toHaveBeenCalledWith(e,t)}),it("should call GetMerkleLeafProofCommandHandler when request code is GET_MERKLE_LEAF_PROOF",()=>{const e=new Uint8Array([i.ClientCommandCodes.GET_MERKLE_LEAF_PROOF]);n.getClientCommandPayload(e,t),expect(r).toHaveBeenCalledTimes(1),expect(r).toHaveBeenCalledWith(e,t)}),it("should call GetMerkleLeafIndexCommandHandler when request code is GET_MERKLE_LEAF_INDEX",()=>{const e=new Uint8Array([i.ClientCommandCodes.GET_MERKLE_LEAF_INDEX,...new Uint8Array(64)]);n.getClientCommandPayload(e,t),expect(s).toHaveBeenCalledTimes(1),expect(s).toHaveBeenCalledWith(e,t)}),it("should call GetMoreElementsCommandHandler when request code is GET_MORE_ELEMENTS",()=>{const e=new Uint8Array([i.ClientCommandCodes.GET_MORE_ELEMENTS]);n.getClientCommandPayload(e,t),expect(c).toHaveBeenCalledTimes(1),expect(c).toHaveBeenCalledWith(e,t)}),it("should return an error for an unknown command code",()=>{const a=new Uint8Array([255]),d=n.getClientCommandPayload(a,t);expect(d.isLeft()).toBe(!0),expect(d.extract()).toBeInstanceOf(u.ClientCommandHandlerError),expect(o).not.toHaveBeenCalled(),expect(l).not.toHaveBeenCalled(),expect(r).not.toHaveBeenCalled(),expect(s).not.toHaveBeenCalled(),expect(c).not.toHaveBeenCalled()}),it("should return an error if no request code is present",()=>{const e=new Uint8Array([]),a=n.getClientCommandPayload(e,t);expect(a.isLeft()).toBe(!0),expect(a.extract()).toBeInstanceOf(u.ClientCommandHandlerError),expect(o).not.toHaveBeenCalled(),expect(l).not.toHaveBeenCalled(),expect(r).not.toHaveBeenCalled(),expect(s).not.toHaveBeenCalled(),expect(c).not.toHaveBeenCalled()})});
|
|
2
2
|
//# sourceMappingURL=ClientCommandInterpreter.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/command/service/ClientCommandInterpreter.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type ClientCommandContext } from \"@internal/app-binder/command/client-command-handlers/ClientCommandHandlersTypes\";\nimport { ClientCommandHandlerError } from \"@internal/app-binder/command/client-command-handlers/Errors\";\nimport * as GetMerkleLeafIndexCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler\";\nimport * as GetMerkleLeafProofCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler\";\nimport * as GetMoreElementsCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler\";\nimport * as GetPreimageCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler\";\nimport * as YieldCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/YeldCommandHandler\";\nimport { ClientCommandInterpreter } from \"@internal/app-binder/command/service/ClientCommandInterpreter\";\nimport { ClientCommandCodes } from \"@internal/app-binder/command/utils/constants\";\n\ndescribe(\"ClientCommandInterpreter\", () => {\n let interpreter: ClientCommandInterpreter;\n let context: ClientCommandContext;\n\n let yieldSpy:
|
|
5
|
-
"mappings": "wdAAA,IAAAA,EAA4B,
|
|
4
|
+
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type MockInstance } from \"vitest\";\n\nimport { type ClientCommandContext } from \"@internal/app-binder/command/client-command-handlers/ClientCommandHandlersTypes\";\nimport { ClientCommandHandlerError } from \"@internal/app-binder/command/client-command-handlers/Errors\";\nimport * as GetMerkleLeafIndexCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler\";\nimport * as GetMerkleLeafProofCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler\";\nimport * as GetMoreElementsCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler\";\nimport * as GetPreimageCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler\";\nimport * as YieldCommandHandlerModule from \"@internal/app-binder/command/client-command-handlers/YeldCommandHandler\";\nimport { ClientCommandInterpreter } from \"@internal/app-binder/command/service/ClientCommandInterpreter\";\nimport { ClientCommandCodes } from \"@internal/app-binder/command/utils/constants\";\n\ndescribe(\"ClientCommandInterpreter\", () => {\n let interpreter: ClientCommandInterpreter;\n let context: ClientCommandContext;\n\n let yieldSpy: MockInstance;\n let getPreimageSpy: MockInstance;\n let getMerkleLeafProofSpy: MockInstance;\n let getMerkleLeafIndexSpy: MockInstance;\n let getMoreElementsSpy: MockInstance;\n\n beforeAll(() => {\n yieldSpy = vi\n .spyOn(YieldCommandHandlerModule, \"YieldCommandHandler\")\n .mockImplementation((request, ctx) => {\n ctx.yieldedResults.push(request.slice(1));\n return Right(new Uint8Array([]));\n });\n\n getPreimageSpy = vi\n .spyOn(GetPreimageCommandHandlerModule, \"GetPreimageCommandHandler\")\n .mockImplementation((_request, ctx) => {\n const preimage = new Uint8Array([1, 2, 3]);\n ctx.dataStore.getPreimage = vi\n .fn()\n .mockReturnValue({ isJust: () => true, extract: () => preimage });\n return Right(preimage);\n });\n\n getMerkleLeafProofSpy = vi\n .spyOn(\n GetMerkleLeafProofCommandHandlerModule,\n \"GetMerkleLeafProofCommandHandler\",\n )\n .mockImplementation((_request, _ctx) => {\n return Right(new Uint8Array([]));\n });\n\n getMerkleLeafIndexSpy = vi\n .spyOn(\n GetMerkleLeafIndexCommandHandlerModule,\n \"GetMerkleLeafIndexCommandHandler\",\n )\n .mockImplementation((_request, ctx) => {\n ctx.dataStore.getMerkleLeafIndex = vi.fn().mockReturnValue({\n mapOrDefault: (f: (idx: number) => Uint8Array, _def: Uint8Array) =>\n f(42),\n });\n return Right(new Uint8Array([42]));\n });\n\n getMoreElementsSpy = vi\n .spyOn(\n GetMoreElementsCommandHandlerModule,\n \"GetMoreElementsCommandHandler\",\n )\n .mockImplementation((_request, ctx) => {\n if (ctx.queue.length === 0) {\n return Left(\n new ClientCommandHandlerError(\"No more elements in queue\"),\n );\n }\n return Right(ctx.queue.shift()!);\n });\n });\n\n beforeEach(() => {\n interpreter = new ClientCommandInterpreter();\n context = {\n yieldedResults: [],\n dataStore: {\n getPreimage: vi.fn().mockReturnValue({ isJust: () => false }),\n getMerkleLeafIndex: vi.fn(),\n },\n queue: [new Uint8Array([0x01])],\n } as unknown as ClientCommandContext;\n\n vi.clearAllMocks();\n });\n\n it(\"should call YieldCommandHandler when request code is YIELD\", () => {\n //given\n const request = new Uint8Array([ClientCommandCodes.YIELD]);\n\n //when\n interpreter.getClientCommandPayload(request, context);\n\n //then\n expect(yieldSpy).toHaveBeenCalledTimes(1);\n expect(yieldSpy).toHaveBeenCalledWith(request, context);\n });\n\n it(\"should call GetPreimageCommandHandler when request code is GET_PREIMAGE\", () => {\n //given\n const request = new Uint8Array([\n ClientCommandCodes.GET_PREIMAGE,\n 0x00,\n ...new Uint8Array(32),\n ]);\n\n //when\n interpreter.getClientCommandPayload(request, context);\n\n //then\n expect(getPreimageSpy).toHaveBeenCalledTimes(1);\n expect(getPreimageSpy).toHaveBeenCalledWith(request, context);\n });\n\n it(\"should call GetMerkleLeafProofCommandHandler when request code is GET_MERKLE_LEAF_PROOF\", () => {\n //given\n const request = new Uint8Array([ClientCommandCodes.GET_MERKLE_LEAF_PROOF]);\n\n //when\n interpreter.getClientCommandPayload(request, context);\n\n //then\n expect(getMerkleLeafProofSpy).toHaveBeenCalledTimes(1);\n expect(getMerkleLeafProofSpy).toHaveBeenCalledWith(request, context);\n });\n\n it(\"should call GetMerkleLeafIndexCommandHandler when request code is GET_MERKLE_LEAF_INDEX\", () => {\n //given\n const request = new Uint8Array([\n ClientCommandCodes.GET_MERKLE_LEAF_INDEX,\n ...new Uint8Array(64),\n ]);\n\n //when\n interpreter.getClientCommandPayload(request, context);\n\n //then\n expect(getMerkleLeafIndexSpy).toHaveBeenCalledTimes(1);\n expect(getMerkleLeafIndexSpy).toHaveBeenCalledWith(request, context);\n });\n\n it(\"should call GetMoreElementsCommandHandler when request code is GET_MORE_ELEMENTS\", () => {\n //given\n const request = new Uint8Array([ClientCommandCodes.GET_MORE_ELEMENTS]);\n\n //when\n interpreter.getClientCommandPayload(request, context);\n\n //then\n expect(getMoreElementsSpy).toHaveBeenCalledTimes(1);\n expect(getMoreElementsSpy).toHaveBeenCalledWith(request, context);\n });\n\n it(\"should return an error for an unknown command code\", () => {\n //given\n const invalidCode = 0xff;\n const request = new Uint8Array([invalidCode]);\n\n //when\n const result = interpreter.getClientCommandPayload(request, context);\n\n //then\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toBeInstanceOf(ClientCommandHandlerError);\n expect(yieldSpy).not.toHaveBeenCalled();\n expect(getPreimageSpy).not.toHaveBeenCalled();\n expect(getMerkleLeafProofSpy).not.toHaveBeenCalled();\n expect(getMerkleLeafIndexSpy).not.toHaveBeenCalled();\n expect(getMoreElementsSpy).not.toHaveBeenCalled();\n });\n\n it(\"should return an error if no request code is present\", () => {\n //giuven\n const emptyRequest = new Uint8Array([]);\n\n //when\n const result = interpreter.getClientCommandPayload(emptyRequest, context);\n\n //then\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toBeInstanceOf(ClientCommandHandlerError);\n expect(yieldSpy).not.toHaveBeenCalled();\n expect(getPreimageSpy).not.toHaveBeenCalled();\n expect(getMerkleLeafProofSpy).not.toHaveBeenCalled();\n expect(getMerkleLeafIndexSpy).not.toHaveBeenCalled();\n expect(getMoreElementsSpy).not.toHaveBeenCalled();\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_purify_ts", "import_Errors", "GetMerkleLeafIndexCommandHandlerModule", "GetMerkleLeafProofCommandHandlerModule", "GetMoreElementsCommandHandlerModule", "GetPreimageCommandHandlerModule", "YieldCommandHandlerModule", "import_ClientCommandInterpreter", "import_constants", "interpreter", "context", "yieldSpy", "getPreimageSpy", "getMerkleLeafProofSpy", "getMerkleLeafIndexSpy", "getMoreElementsSpy", "request", "ctx", "_request", "preimage", "_ctx", "f", "_def", "result", "emptyRequest"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("@ledgerhq/device-management-kit"),r=require("./bitcoinAppErrors");describe("BtcAppCommandError",()=>{afterEach(()=>{
|
|
1
|
+
"use strict";var t=require("@ledgerhq/device-management-kit"),r=require("./bitcoinAppErrors");describe("BtcAppCommandError",()=>{afterEach(()=>{vi.resetAllMocks()}),afterAll(()=>{vi.resetModules()}),it("should be an instance of DeviceExchangeError",()=>{const e=new r.BtcAppCommandError({message:"Test error message",errorCode:"6985"});expect(e).toBeInstanceOf(t.DeviceExchangeError)}),it("should set the correct message when provided",()=>{const e="Custom error message",o=new r.BtcAppCommandError({message:e,errorCode:"6985"});expect(o.message).toBe(e)}),it("should set the correct customErrorCode",()=>{const e="6a86",o=new r.BtcAppCommandError({message:"Either P1 or P2 is incorrect",errorCode:e});expect(o.errorCode).toBe(e)}),it("should correlate error codes with messages from bitcoinAppErrors",()=>{const e="6e00",o=r.BTC_APP_ERRORS[e].message,s=new r.BtcAppCommandError({message:o,errorCode:e});expect(s.errorCode).toBe(e),expect(s.message).toBe(o),expect(s).toBeInstanceOf(t.DeviceExchangeError)})});
|
|
2
2
|
//# sourceMappingURL=bitcoinAppError.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/command/utils/bitcoinAppError.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { DeviceExchangeError } from \"@ledgerhq/device-management-kit\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandError,\n type BtcErrorCodes,\n} from \"./bitcoinAppErrors\";\n\ndescribe(\"BtcAppCommandError\", () => {\n afterEach(() => {\n
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAAoC,2CAEpCC,EAIO,8BAEP,SAAS,qBAAsB,IAAM,CACnC,UAAU,IAAM,CACd,
|
|
4
|
+
"sourcesContent": ["import { DeviceExchangeError } from \"@ledgerhq/device-management-kit\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandError,\n type BtcErrorCodes,\n} from \"./bitcoinAppErrors\";\n\ndescribe(\"BtcAppCommandError\", () => {\n afterEach(() => {\n vi.resetAllMocks();\n });\n\n afterAll(() => {\n vi.resetModules();\n });\n\n it(\"should be an instance of DeviceExchangeError\", () => {\n const error = new BtcAppCommandError({\n message: \"Test error message\",\n errorCode: \"6985\",\n });\n\n expect(error).toBeInstanceOf(DeviceExchangeError);\n });\n\n it(\"should set the correct message when provided\", () => {\n const customMessage = \"Custom error message\";\n const error = new BtcAppCommandError({\n message: customMessage,\n errorCode: \"6985\",\n });\n\n expect(error.message).toBe(customMessage);\n });\n\n it(\"should set the correct customErrorCode\", () => {\n const errorCode: BtcErrorCodes = \"6a86\";\n const error = new BtcAppCommandError({\n message: \"Either P1 or P2 is incorrect\",\n errorCode,\n });\n\n expect(error.errorCode).toBe(errorCode);\n });\n\n it(\"should correlate error codes with messages from bitcoinAppErrors\", () => {\n const errorCode: BtcErrorCodes = \"6e00\";\n const expectedMessage = BTC_APP_ERRORS[errorCode].message;\n\n const error = new BtcAppCommandError({\n message: expectedMessage,\n errorCode,\n });\n\n expect(error.errorCode).toBe(errorCode);\n expect(error.message).toBe(expectedMessage);\n\n expect(error).toBeInstanceOf(DeviceExchangeError);\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAAoC,2CAEpCC,EAIO,8BAEP,SAAS,qBAAsB,IAAM,CACnC,UAAU,IAAM,CACd,GAAG,cAAc,CACnB,CAAC,EAED,SAAS,IAAM,CACb,GAAG,aAAa,CAClB,CAAC,EAED,GAAG,+CAAgD,IAAM,CACvD,MAAMC,EAAQ,IAAI,qBAAmB,CACnC,QAAS,qBACT,UAAW,MACb,CAAC,EAED,OAAOA,CAAK,EAAE,eAAe,qBAAmB,CAClD,CAAC,EAED,GAAG,+CAAgD,IAAM,CACvD,MAAMC,EAAgB,uBAChBD,EAAQ,IAAI,qBAAmB,CACnC,QAASC,EACT,UAAW,MACb,CAAC,EAED,OAAOD,EAAM,OAAO,EAAE,KAAKC,CAAa,CAC1C,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,MAAMC,EAA2B,OAC3BF,EAAQ,IAAI,qBAAmB,CACnC,QAAS,+BACT,UAAAE,CACF,CAAC,EAED,OAAOF,EAAM,SAAS,EAAE,KAAKE,CAAS,CACxC,CAAC,EAED,GAAG,mEAAoE,IAAM,CAC3E,MAAMA,EAA2B,OAC3BC,EAAkB,iBAAeD,CAAS,EAAE,QAE5CF,EAAQ,IAAI,qBAAmB,CACnC,QAASG,EACT,UAAAD,CACF,CAAC,EAED,OAAOF,EAAM,SAAS,EAAE,KAAKE,CAAS,EACtC,OAAOF,EAAM,OAAO,EAAE,KAAKG,CAAe,EAE1C,OAAOH,CAAK,EAAE,eAAe,qBAAmB,CAClD,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_device_management_kit", "import_bitcoinAppErrors", "error", "customMessage", "errorCode", "expectedMessage"]
|
|
7
7
|
}
|
package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var I=(n,t)=>{for(var i in t)p(n,i,{get:t[i],enumerable:!0})},g=(n,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of D(t))!w.call(n,e)&&e!==i&&p(n,e,{get:()=>t[e],enumerable:!(s=y(t,e))||s.enumerable});return n};var h=n=>g(p({},"__esModule",{value:!0}),n);var v={};I(v,{GetWalletAddressDeviceAction:()=>G});module.exports=h(v);var r=require("@ledgerhq/device-management-kit"),o=require("purify-ts"),a=require("xstate"),c=require("../../../app-binder/task/GetWalletAddressTask"),u=require("../../../app-binder/task/PrepareWalletPolicyTask");class G extends r.XStateDeviceAction{constructor(t){super(t)}makeStateMachine(t){const{getWalletAddress:i,prepareWalletPolicy:s}=this.extractDependencies(t);return(0,a.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new r.OpenAppDeviceAction({input:{appName:"Bitcoin"}}).makeStateMachine(t),prepareWalletPolicy:(0,a.fromPromise)(s),getWalletAddress:(0,a.fromPromise)(i)},guards:{noInternalError:({context:e})=>e._internalState.error===null,skipOpenApp:({context:e})=>e.input.skipOpenApp},actions:{assignErrorFromEvent:(0,a.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"GetWalletAddressDeviceAction",initial:"InitialState",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None},_internalState:{error:null,wallet:null,walletAddress:null}}),states:{InitialState:{always:[{target:"PrepareWalletPolicy",guard:"skipOpenApp"},"OpenAppDeviceAction"]},OpenAppDeviceAction:{exit:(0,a.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Bitcoin"},src:"openAppStateMachine",onSnapshot:{actions:(0,a.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:l=>({...e.context._internalState,error:l})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"PrepareWalletPolicy",guard:"noInternalError"},"Error"]},PrepareWalletPolicy:{invoke:{id:"prepareWalletPolicy",src:"prepareWalletPolicy",input:({context:e})=>({wallet:e.input.wallet,walletBuilder:e.input.walletBuilder}),onDone:{target:"PrepareWalletPolicyResultCheck",actions:[(0,a.assign)({_internalState:({event:e,context:l})=>(0,r.isSuccessCommandResult)(e.output)?{...l._internalState,wallet:e.output.data}:{...l._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PrepareWalletPolicyResultCheck:{always:[{guard:"noInternalError",target:"GetWalletAddress"},{target:"Error"}]},GetWalletAddress:{entry:(0,a.assign)(({context:e})=>({intermediateValue:{requiredUserInteraction:e.input.checkOnDevice?r.UserInteractionRequired.VerifyAddress:r.UserInteractionRequired.None}})),exit:(0,a.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None}}),invoke:{id:"getWalletAddress",src:"getWalletAddress",input:({context:e})=>({checkOnDevice:e.input.checkOnDevice,wallet:e._internalState.wallet,change:e.input.change,addressIndex:e.input.addressIndex,dataStoreService:e.input.dataStoreService,walletSerializer:e.input.walletSerializer,walletBuilder:e.input.walletBuilder}),onDone:{target:"GetWalletAddressResultCheck",actions:[(0,a.assign)({_internalState:({event:e,context:l})=>(0,r.isSuccessCommandResult)(e.output)?{...l._internalState,walletAddress:e.output.data}:{...l._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetWalletAddressResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.walletAddress?(0,o.Right)(e._internalState.walletAddress):(0,o.Left)(e._internalState.error||new r.UnknownDAError("No error in final state"))})}extractDependencies(t){return{getWalletAddress:async e=>{const{checkOnDevice:l,wallet:d,change:A,addressIndex:W,walletSerializer:m,dataStoreService:S}=e.input;return await new c.GetWalletAddressTask(t,{checkOnDevice:l,wallet:d,change:A,addressIndex:W},m,S).run()},prepareWalletPolicy:async e=>{const{input:{walletBuilder:l,wallet:d}}=e;return await new u.PrepareWalletPolicyTask(t,{wallet:d},l).run()}}}}0&&(module.exports={GetWalletAddressDeviceAction});
|
|
2
2
|
//# sourceMappingURL=GetWalletAddressDeviceAction.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type GetWalletAddressDAError,\n type GetWalletAddressDAInput,\n type GetWalletAddressDAIntermediateValue,\n type GetWalletAddressDAInternalState,\n type GetWalletAddressDAOutput,\n} from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type WalletAddress } from \"@api/model/Wallet\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { GetWalletAddressTask } from \"@internal/app-binder/task/GetWalletAddressTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type GetWalletAddressMachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly getWalletAddress: (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }) => Promise<CommandResult<WalletAddress, BtcErrorCodes>>;\n};\n\nexport type ExtractGetWalletAddressMachineDependencies = (\n internalApi: InternalApi,\n) => GetWalletAddressMachineDependencies;\n\nexport class GetWalletAddressDeviceAction extends XStateDeviceAction<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n> {\n constructor(args: { input: GetWalletAddressDAInput; inspect?: boolean }) {\n super(args);\n }\n\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n > {\n type types = StateMachineTypes<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n >;\n\n const { getWalletAddress, prepareWalletPolicy } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n getWalletAddress: fromPromise(getWalletAddress),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"GetWalletAddressDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n wallet: null,\n walletAddress: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<GetWalletAddressDAInternalState>(\n {\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n );\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n PrepareWalletPolicy: {\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"GetWalletAddress\" },\n { target: \"Error\" },\n ],\n },\n GetWalletAddress: {\n entry: assign(({ context }) => ({\n intermediateValue: {\n requiredUserInteraction: context.input.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n },\n })),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"getWalletAddress\",\n src: \"getWalletAddress\",\n input: ({ context }) => ({\n checkOnDevice: context.input.checkOnDevice,\n wallet: context._internalState.wallet!,\n change: context.input.change,\n addressIndex: context.input.addressIndex,\n dataStoreService: context.input.dataStoreService,\n walletSerializer: context.input.walletSerializer,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"GetWalletAddressResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n walletAddress: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetWalletAddressResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.walletAddress\n ? Right(context._internalState.walletAddress)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(\n internalApi: InternalApi,\n ): GetWalletAddressMachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const getWalletAddress = async (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }): Promise<CommandResult<WalletAddress, BtcErrorCodes>> => {\n const {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n walletSerializer,\n dataStoreService,\n } = arg0.input;\n\n return await new GetWalletAddressTask(\n internalApi,\n {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n },\n walletSerializer,\n dataStoreService,\n ).run();\n };\n return {\n getWalletAddress,\n prepareWalletPolicy,\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAA4B,qBAC5BC,EAA2C,kBAY3CC,EAAqC,0DACrCC,EAAwC,6DA8BjC,MAAMN,UAAqC,oBAMhD,CACA,YAAYO,EAA6D,CACvE,MAAMA,CAAI,CACZ,CAEA,iBACEC,EAOA,CASA,KAAM,CAAE,iBAAAC,EAAkB,oBAAAC,CAAoB,EAC5C,KAAK,oBAAoBF,CAAW,EAEtC,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EAEA,OAAQ,CACN,oBAAqB,IAAI,sBAAoB,CAC3C,MAAO,CAAE,QAAS,SAAU,CAC9B,CAAC,EAAE,iBAAiBA,CAAW,EAC/B,uBAAqB,eAAYE,CAAmB,EACpD,oBAAkB,eAAYD,CAAgB,CAChD,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAE,CAAQ,IAAMA,EAAQ,eAAe,QAAU,
|
|
4
|
+
"sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type GetWalletAddressDAError,\n type GetWalletAddressDAInput,\n type GetWalletAddressDAIntermediateValue,\n type GetWalletAddressDAInternalState,\n type GetWalletAddressDAOutput,\n} from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type WalletAddress } from \"@api/model/Wallet\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { GetWalletAddressTask } from \"@internal/app-binder/task/GetWalletAddressTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type GetWalletAddressMachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly getWalletAddress: (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }) => Promise<CommandResult<WalletAddress, BtcErrorCodes>>;\n};\n\nexport type ExtractGetWalletAddressMachineDependencies = (\n internalApi: InternalApi,\n) => GetWalletAddressMachineDependencies;\n\nexport class GetWalletAddressDeviceAction extends XStateDeviceAction<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n> {\n constructor(args: { input: GetWalletAddressDAInput; inspect?: boolean }) {\n super(args);\n }\n\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n > {\n type types = StateMachineTypes<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n >;\n\n const { getWalletAddress, prepareWalletPolicy } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n getWalletAddress: fromPromise(getWalletAddress),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"GetWalletAddressDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n wallet: null,\n walletAddress: null,\n },\n };\n },\n states: {\n InitialState: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<GetWalletAddressDAInternalState>(\n {\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n );\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n PrepareWalletPolicy: {\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"GetWalletAddress\" },\n { target: \"Error\" },\n ],\n },\n GetWalletAddress: {\n entry: assign(({ context }) => ({\n intermediateValue: {\n requiredUserInteraction: context.input.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n },\n })),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"getWalletAddress\",\n src: \"getWalletAddress\",\n input: ({ context }) => ({\n checkOnDevice: context.input.checkOnDevice,\n wallet: context._internalState.wallet!,\n change: context.input.change,\n addressIndex: context.input.addressIndex,\n dataStoreService: context.input.dataStoreService,\n walletSerializer: context.input.walletSerializer,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"GetWalletAddressResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n walletAddress: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetWalletAddressResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.walletAddress\n ? Right(context._internalState.walletAddress)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(\n internalApi: InternalApi,\n ): GetWalletAddressMachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const getWalletAddress = async (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }): Promise<CommandResult<WalletAddress, BtcErrorCodes>> => {\n const {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n walletSerializer,\n dataStoreService,\n } = arg0.input;\n\n return await new GetWalletAddressTask(\n internalApi,\n {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n },\n walletSerializer,\n dataStoreService,\n ).run();\n };\n return {\n getWalletAddress,\n prepareWalletPolicy,\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAA4B,qBAC5BC,EAA2C,kBAY3CC,EAAqC,0DACrCC,EAAwC,6DA8BjC,MAAMN,UAAqC,oBAMhD,CACA,YAAYO,EAA6D,CACvE,MAAMA,CAAI,CACZ,CAEA,iBACEC,EAOA,CASA,KAAM,CAAE,iBAAAC,EAAkB,oBAAAC,CAAoB,EAC5C,KAAK,oBAAoBF,CAAW,EAEtC,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EAEA,OAAQ,CACN,oBAAqB,IAAI,sBAAoB,CAC3C,MAAO,CAAE,QAAS,SAAU,CAC9B,CAAC,EAAE,iBAAiBA,CAAW,EAC/B,uBAAqB,eAAYE,CAAmB,EACpD,oBAAkB,eAAYD,CAAgB,CAChD,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAE,CAAQ,IAAMA,EAAQ,eAAe,QAAU,KACnE,YAAa,CAAC,CAAE,QAAAA,CAAQ,IAAMA,EAAQ,MAAM,WAC9C,EACA,QAAS,CACP,wBAAsB,UAAO,CAC3B,eAAiBC,IAAO,CACtB,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,KACjB,EACF,CAAC,CACH,CACF,CAAC,EAAE,cAAc,CAEf,GAAI,+BACJ,QAAS,eACT,QAAS,CAAC,CAAE,MAAAC,CAAM,KACT,CACL,MAAAA,EACA,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,EACA,eAAgB,CACd,MAAO,KACP,OAAQ,KACR,cAAe,IACjB,CACF,GAEF,OAAQ,CACN,aAAc,CACZ,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,aACT,EACA,qBACF,CACF,EACA,oBAAqB,CACnB,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,sBACJ,MAAO,CAAE,QAAS,SAAU,EAC5B,IAAK,sBACL,WAAY,CACV,WAAS,UAAO,CACd,kBAAoBD,GAClBA,EAAE,MAAM,SAAS,QAAQ,iBAC7B,CAAC,CACH,EACA,OAAQ,CACN,WAAS,UAAO,CACd,eAAiBA,GACRA,EAAE,MAAM,OAAO,OACpB,CACE,MAAO,IAAMA,EAAE,QAAQ,eACvB,KAAOE,IAAW,CAChB,GAAGF,EAAE,QAAQ,eACb,MAAAE,CACF,EACF,CACF,CAEJ,CAAC,EACD,OAAQ,gCACV,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,iBACT,EACA,OACF,CACF,EACA,oBAAqB,CACnB,OAAQ,CACN,GAAI,sBACJ,IAAK,sBACL,MAAO,CAAC,CAAE,QAAAH,CAAQ,KAAO,CACvB,OAAQA,EAAQ,MAAM,OACtB,cAAeA,EAAQ,MAAM,aAC/B,GACA,OAAQ,CACN,OAAQ,iCACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,OAC5B,0BAAuBI,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,OAAQI,EAAM,OAAO,IACvB,EAEK,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,kBAAmB,EACvD,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,iBAAkB,CAChB,SAAO,UAAO,CAAC,CAAE,QAAAJ,CAAQ,KAAO,CAC9B,kBAAmB,CACjB,wBAAyBA,EAAQ,MAAM,cACnC,0BAAwB,cACxB,0BAAwB,IAC9B,CACF,EAAE,EACF,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,mBACJ,IAAK,mBACL,MAAO,CAAC,CAAE,QAAAA,CAAQ,KAAO,CACvB,cAAeA,EAAQ,MAAM,cAC7B,OAAQA,EAAQ,eAAe,OAC/B,OAAQA,EAAQ,MAAM,OACtB,aAAcA,EAAQ,MAAM,aAC5B,iBAAkBA,EAAQ,MAAM,iBAChC,iBAAkBA,EAAQ,MAAM,iBAChC,cAAeA,EAAQ,MAAM,aAC/B,GACA,OAAQ,CACN,OAAQ,8BACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,OAC5B,0BAAuBI,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,cAAeI,EAAM,OAAO,IAC9B,EAEK,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,4BAA6B,CAC3B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,SAAU,EAC9C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,QAAS,CACP,KAAM,OACR,EACA,MAAO,CACL,KAAM,OACR,CACF,EACA,OAAQ,CAAC,CAAE,QAAAJ,CAAQ,IACjBA,EAAQ,eAAe,iBACnB,SAAMA,EAAQ,eAAe,aAAa,KAC1C,QACEA,EAAQ,eAAe,OACrB,IAAI,iBAAe,yBAAyB,CAChD,CACR,CAAC,CACH,CAEA,oBACEH,EACqC,CA6CrC,MAAO,CACL,iBAjCuB,MAAOQ,GAU4B,CAC1D,KAAM,CACJ,cAAAC,EACA,OAAAC,EACA,OAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,iBAAAC,CACF,EAAIN,EAAK,MAET,OAAO,MAAM,IAAI,uBACfR,EACA,CACE,cAAAS,EACA,OAAAC,EACA,OAAAC,EACA,aAAAC,CACF,EACAC,EACAC,CACF,EAAE,IAAI,CACR,EAGE,oBA9C0B,MAAON,GAE0B,CAC3D,KAAM,CACJ,MAAO,CAAE,cAAAO,EAAe,OAAAL,CAAO,CACjC,EAAIF,EACJ,OAAO,MAAM,IAAI,0BACfR,EACA,CAAE,OAAAU,CAAO,EACTK,CACF,EAAE,IAAI,CACR,CAoCA,CACF,CACF",
|
|
6
6
|
"names": ["GetWalletAddressDeviceAction_exports", "__export", "GetWalletAddressDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_GetWalletAddressTask", "import_PrepareWalletPolicyTask", "args", "internalApi", "getWalletAddress", "prepareWalletPolicy", "context", "_", "input", "error", "event", "arg0", "checkOnDevice", "wallet", "change", "addressIndex", "walletSerializer", "dataStoreService", "walletBuilder"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@ledgerhq/device-management-kit"),
|
|
1
|
+
"use strict";var e=require("@ledgerhq/device-management-kit"),l=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),o=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),d=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),c=require("./GetWalletAddressDeviceAction");vi.mock("@ledgerhq/device-management-kit",async i=>({...await i(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("GetWalletAddressDeviceAction",()=>{const i=vi.fn(),s=vi.fn();function u(){return{prepareWalletPolicy:i,getWalletAddress:s}}describe("Success case",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((a,n)=>{(0,o.setupOpenAppDAMock)();const t=new c.GetWalletAddressDeviceAction({input:{wallet:"ApiWallet",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",skipOpenApp:!1,checkOnDevice:!0,change:!1,addressIndex:1}});vi.spyOn(t,"extractDependencies").mockReturnValue(u()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"InternalWallet"})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"WalletAddress"}));const r=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress},status:e.DeviceActionStatus.Pending},{output:"WalletAddress",status:e.DeviceActionStatus.Completed}];(0,d.testDeviceActionStates)(t,r,(0,l.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n})})),it("should be successful while skipping OpenApp",()=>new Promise((a,n)=>{(0,o.setupOpenAppDAMock)();const t=new c.GetWalletAddressDeviceAction({input:{wallet:"ApiWallet",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",skipOpenApp:!0,checkOnDevice:!0,change:!1,addressIndex:1}});vi.spyOn(t,"extractDependencies").mockReturnValue(u()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"InternalWallet"})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"WalletAddress"}));const r=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress},status:e.DeviceActionStatus.Pending},{output:"WalletAddress",status:e.DeviceActionStatus.Completed}];(0,d.testDeviceActionStates)(t,r,(0,l.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n})}))}),describe("Error cases",()=>{beforeEach(()=>{vi.resetAllMocks()}),it("Error if open app fails",()=>new Promise((a,n)=>{(0,o.setupOpenAppDAMock)(new e.UnknownDeviceExchangeError("Mocked error"));const t=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}],r=new c.GetWalletAddressDeviceAction({input:{wallet:{},walletBuilder:{},walletSerializer:{},dataStoreService:{},skipOpenApp:!1,checkOnDevice:!0,change:!1,addressIndex:1}});vi.spyOn(r,"extractDependencies").mockReturnValue(u()),(0,d.testDeviceActionStates)(r,t,(0,l.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n}),expect(s).not.toHaveBeenCalled()})),it("Error if prepareWalletPolicy fails",()=>new Promise((a,n)=>{(0,o.setupOpenAppDAMock)();const t=new c.GetWalletAddressDeviceAction({input:{wallet:{},walletBuilder:{},walletSerializer:{},dataStoreService:{},skipOpenApp:!1,checkOnDevice:!0,change:!1,addressIndex:1}});vi.spyOn(t,"extractDependencies").mockReturnValue(u()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const r=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,d.testDeviceActionStates)(t,r,(0,l.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n}),expect(s).not.toHaveBeenCalled()})),it("Error if getWalletAddress fails",()=>new Promise((a,n)=>{(0,o.setupOpenAppDAMock)();const t=new c.GetWalletAddressDeviceAction({input:{wallet:{},walletBuilder:{},walletSerializer:{},dataStoreService:{},skipOpenApp:!1,checkOnDevice:!0,change:!1,addressIndex:1}});vi.spyOn(t,"extractDependencies").mockReturnValue(u()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"InternalWallet"})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const r=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,d.testDeviceActionStates)(t,r,(0,l.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n})}))})});
|
|
2
2
|
//# sourceMappingURL=GetWalletAddressDeviceAction.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type GetWalletAddressDAState } from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type RegisteredWallet, type WalletAddress } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { GetWalletAddressDeviceAction } from \"./GetWalletAddressDeviceAction\";\n\njest.mock(\"@ledgerhq/device-management-kit\", () => ({\n ...jest.requireActual(\"@ledgerhq/device-management-kit\"),\n OpenAppDeviceAction: jest.fn(() => ({\n makeStateMachine: jest.fn(),\n })),\n}));\n\ndescribe(\"GetWalletAddressDeviceAction\", () => {\n const prepareWalletPolicyMock = jest.fn();\n const getWalletAddressMock = jest.fn();\n\n function extractDependenciesMock() {\n return {\n prepareWalletPolicy: prepareWalletPolicyMock,\n getWalletAddress: getWalletAddressMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", (done) => {\n // given\n setupOpenAppDAMock();\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"InternalWallet\",\n }),\n );\n getWalletAddressMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"WalletAddress\",\n }),\n );\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: \"WalletAddress\" as unknown as WalletAddress,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n // then\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n });\n\n describe(\"Error cases\", () => {\n beforeEach(() => {\n jest.resetAllMocks();\n });\n\n it(\"Error if open app fails\", (done) => {\n // given\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n\n // then\n expect(getWalletAddressMock).not.toHaveBeenCalled();\n });\n\n it(\"Error if prepareWalletPolicy fails\", (done) => {\n // given\n setupOpenAppDAMock();\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n // then\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n\n expect(getWalletAddressMock).not.toHaveBeenCalled();\n });\n\n it(\"Error if getWalletAddress fails\", (done) => {\n // given\n setupOpenAppDAMock();\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"InternalWallet\",\n }),\n );\n getWalletAddressMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n // then\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["import_device_management_kit", "import_makeInternalApi", "import_setupOpenAppDAMock", "import_testDeviceActionStates", "import_GetWalletAddressDeviceAction", "prepareWalletPolicyMock", "getWalletAddressMock", "extractDependenciesMock", "
|
|
4
|
+
"sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports: off */\nimport {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type GetWalletAddressDAState } from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type RegisteredWallet, type WalletAddress } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { GetWalletAddressDeviceAction } from \"./GetWalletAddressDeviceAction\";\n\nvi.mock(\"@ledgerhq/device-management-kit\", async (importOriginal) => {\n const original =\n await importOriginal<typeof import(\"@ledgerhq/device-management-kit\")>();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n});\n\ndescribe(\"GetWalletAddressDeviceAction\", () => {\n const prepareWalletPolicyMock = vi.fn();\n const getWalletAddressMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n prepareWalletPolicy: prepareWalletPolicyMock,\n getWalletAddress: getWalletAddressMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n // given\n setupOpenAppDAMock();\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n skipOpenApp: false,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"InternalWallet\",\n }),\n );\n getWalletAddressMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"WalletAddress\",\n }),\n );\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: \"WalletAddress\" as unknown as WalletAddress,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n // then\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should be successful while skipping OpenApp\", () =>\n new Promise<void>((resolve, reject) => {\n // given\n setupOpenAppDAMock();\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n skipOpenApp: true,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"InternalWallet\",\n }),\n );\n getWalletAddressMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"WalletAddress\",\n }),\n );\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: \"WalletAddress\" as unknown as WalletAddress,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n // then\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"Error cases\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Error if open app fails\", () =>\n new Promise<void>((resolve, reject) => {\n // given\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n skipOpenApp: false,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n\n // then\n expect(getWalletAddressMock).not.toHaveBeenCalled();\n }));\n\n it(\"Error if prepareWalletPolicy fails\", () =>\n new Promise<void>((resolve, reject) => {\n // given\n setupOpenAppDAMock();\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n skipOpenApp: false,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n // then\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n\n expect(getWalletAddressMock).not.toHaveBeenCalled();\n }));\n\n it(\"Error if getWalletAddress fails\", () =>\n new Promise<void>((resolve, reject) => {\n // given\n setupOpenAppDAMock();\n\n const deviceAction = new GetWalletAddressDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n skipOpenApp: false,\n checkOnDevice: true,\n change: false,\n addressIndex: 1,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"InternalWallet\",\n }),\n );\n getWalletAddressMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<GetWalletAddressDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n // then\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_makeInternalApi", "import_setupOpenAppDAMock", "import_testDeviceActionStates", "import_GetWalletAddressDeviceAction", "importOriginal", "prepareWalletPolicyMock", "getWalletAddressMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "expectedStates"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var b=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var D=(i,r)=>{for(var s in r)b(i,s,{get:r[s],enumerable:!0})},w=(i,r,s,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of y(r))!A.call(i,l)&&l!==s&&b(i,l,{get:()=>r[l],enumerable:!(o=g(r,l))||o.enumerable});return i};var E=i=>w(b({},"__esModule",{value:!0}),i);var v={};D(v,{SignPsbtDeviceAction:()=>I});module.exports=E(v);var n=require("@ledgerhq/device-management-kit"),u=require("purify-ts"),a=require("xstate"),S=require("../../../app-binder/task/BuildPsbtTask"),d=require("../../../app-binder/task/PrepareWalletPolicyTask"),m=require("../../../app-binder/task/SignPsbtTask");class I extends n.XStateDeviceAction{constructor(r){super(r)}makeStateMachine(r){const{signPsbt:s,prepareWalletPolicy:o,buildPsbt:l}=this.extractDependencies(r);return(0,a.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new n.OpenAppDeviceAction({input:{appName:"Bitcoin"}}).makeStateMachine(r),prepareWalletPolicy:(0,a.fromPromise)(o),buildPsbt:(0,a.fromPromise)(l),signPsbt:(0,a.fromPromise)(s)},guards:{noInternalError:({context:t})=>t._internalState.error===null},actions:{assignErrorFromEvent:(0,a.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignPsbtDeviceAction",initial:"
|
|
1
|
+
"use strict";var b=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var D=(i,r)=>{for(var s in r)b(i,s,{get:r[s],enumerable:!0})},w=(i,r,s,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of y(r))!A.call(i,l)&&l!==s&&b(i,l,{get:()=>r[l],enumerable:!(o=g(r,l))||o.enumerable});return i};var E=i=>w(b({},"__esModule",{value:!0}),i);var v={};D(v,{SignPsbtDeviceAction:()=>I});module.exports=E(v);var n=require("@ledgerhq/device-management-kit"),u=require("purify-ts"),a=require("xstate"),S=require("../../../app-binder/task/BuildPsbtTask"),d=require("../../../app-binder/task/PrepareWalletPolicyTask"),m=require("../../../app-binder/task/SignPsbtTask");class I extends n.XStateDeviceAction{constructor(r){super(r)}makeStateMachine(r){const{signPsbt:s,prepareWalletPolicy:o,buildPsbt:l}=this.extractDependencies(r);return(0,a.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new n.OpenAppDeviceAction({input:{appName:"Bitcoin"}}).makeStateMachine(r),prepareWalletPolicy:(0,a.fromPromise)(o),buildPsbt:(0,a.fromPromise)(l),signPsbt:(0,a.fromPromise)(s)},guards:{noInternalError:({context:t})=>t._internalState.error===null,skipOpenApp:({context:t})=>t.input.skipOpenApp},actions:{assignErrorFromEvent:(0,a.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignPsbtDeviceAction",initial:"InitialState",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},_internalState:{error:null,wallet:null,buildPsbtResult:null,signatures:null,signedPsbt:null}}),states:{InitialState:{always:[{target:"PrepareWalletPolicy",guard:"skipOpenApp"},"OpenAppDeviceAction"]},OpenAppDeviceAction:{exit:(0,a.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Bitcoin"},src:"openAppStateMachine",onSnapshot:{actions:(0,a.assign)({intermediateValue:t=>t.event.snapshot.context.intermediateValue})},onDone:{actions:(0,a.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:e=>({...t.context._internalState,error:e})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"PrepareWalletPolicy",guard:"noInternalError"},"Error"]},PrepareWalletPolicy:{invoke:{id:"prepareWalletPolicy",src:"prepareWalletPolicy",input:({context:t})=>({wallet:t.input.wallet,walletBuilder:t.input.walletBuilder}),onDone:{target:"PrepareWalletPolicyResultCheck",actions:[(0,a.assign)({_internalState:({event:t,context:e})=>(0,n.isSuccessCommandResult)(t.output)?{...e._internalState,wallet:t.output.data}:{...e._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PrepareWalletPolicyResultCheck:{always:[{guard:"noInternalError",target:"BuildPsbt"},{target:"Error"}]},BuildPsbt:{invoke:{id:"buildPsbt",src:"buildPsbt",input:({context:t})=>({psbt:t.input.psbt,wallet:t._internalState.wallet,dataStoreService:t.input.dataStoreService,psbtMapper:t.input.psbtMapper}),onDone:{target:"BuildPsbtResultCheck",actions:[(0,a.assign)({_internalState:({event:t,context:e})=>(0,n.isSuccessCommandResult)(t.output)?{...e._internalState,buildPsbtResult:t.output.data}:{...e._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildPsbtResultCheck:{always:[{guard:"noInternalError",target:"SignPsbt"},{target:"Error"}]},SignPsbt:{entry:(0,a.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.SignTransaction}}),exit:(0,a.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}}),invoke:{id:"signPsbt",src:"signPsbt",input:({context:t})=>({walletSerializer:t.input.walletSerializer,valueParser:t.input.valueParser,buildPsbtResult:t._internalState.buildPsbtResult,wallet:t._internalState.wallet}),onDone:{target:"SignPsbtResultCheck",actions:[(0,a.assign)({_internalState:({event:t,context:e})=>(0,n.isSuccessCommandResult)(t.output)?{...e._internalState,signatures:t.output.data}:{...e._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignPsbtResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:{_internalState:{signatures:t,error:e}}})=>t?(0,u.Right)(t):(0,u.Left)(e||new n.UnknownDAError("No error in final state"))})}extractDependencies(r){return{prepareWalletPolicy:async t=>{const{input:{walletBuilder:e,wallet:p}}=t;return await new d.PrepareWalletPolicyTask(r,{wallet:p},e).run()},buildPsbt:async t=>{const{input:{psbt:e,wallet:p,dataStoreService:c,psbtMapper:P}}=t;return new S.BuildPsbtTask({psbt:e,wallet:p},c,P).run()},signPsbt:async t=>{const{input:{wallet:e,buildPsbtResult:p,walletSerializer:c,valueParser:P}}=t;return await new m.SignPsbtTask(r,{wallet:e,...p},c,P).run()}}}}0&&(module.exports={SignPsbtDeviceAction});
|
|
2
2
|
//# sourceMappingURL=SignPsbtDeviceAction.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignPsbtDAError,\n type SignPsbtDAInput,\n type SignPsbtDAIntermediateValue,\n type SignPsbtDAInternalState,\n type SignPsbtDAOutput,\n} from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type Psbt as ApiPsbt } from \"@api/model/Psbt\";\nimport { type PsbtSignature } from \"@api/model/Signature\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n BuildPsbtTask,\n type BuildPsbtTaskResult,\n} from \"@internal/app-binder/task/BuildPsbtTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { SignPsbtTask } from \"@internal/app-binder/task/SignPsbtTask\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type MachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly buildPsbt: (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }) => Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>>;\n readonly signPsbt: (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }) => Promise<CommandResult<PsbtSignature[], BtcErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignPsbtDeviceAction extends XStateDeviceAction<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n> {\n constructor(args: { input: SignPsbtDAInput; inspect?: boolean }) {\n super(args);\n }\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n > {\n type types = StateMachineTypes<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n >;\n\n const { signPsbt, prepareWalletPolicy, buildPsbt } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n buildPsbt: fromPromise(buildPsbt),\n signPsbt: fromPromise(signPsbt),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignPsbtDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n wallet: null,\n buildPsbtResult: null,\n signatures: null,\n signedPsbt: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignPsbtDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n PrepareWalletPolicy: {\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"BuildPsbt\" },\n { target: \"Error\" },\n ],\n },\n BuildPsbt: {\n invoke: {\n id: \"buildPsbt\",\n src: \"buildPsbt\",\n input: ({ context }) => ({\n psbt: context.input.psbt,\n wallet: context._internalState.wallet!,\n dataStoreService: context.input.dataStoreService,\n psbtMapper: context.input.psbtMapper,\n }),\n onDone: {\n target: \"BuildPsbtResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n buildPsbtResult: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"SignPsbt\" },\n { target: \"Error\" },\n ],\n },\n SignPsbt: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signPsbt\",\n src: \"signPsbt\",\n input: ({ context }) => ({\n walletSerializer: context.input.walletSerializer,\n valueParser: context.input.valueParser,\n buildPsbtResult: context._internalState.buildPsbtResult!,\n wallet: context._internalState.wallet!,\n }),\n onDone: {\n target: \"SignPsbtResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signatures: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({\n context: {\n _internalState: { signatures, error },\n },\n }) =>\n signatures\n ? Right(signatures)\n : Left(error || new UnknownDAError(\"No error in final state\")),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const buildPsbt = async (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }): Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>> => {\n const {\n input: { psbt, wallet, dataStoreService, psbtMapper },\n } = arg0;\n return new BuildPsbtTask(\n { psbt, wallet },\n dataStoreService,\n psbtMapper,\n ).run();\n };\n const signPsbt = async (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }): Promise<CommandResult<PsbtSignature[], BtcErrorCodes>> => {\n const {\n input: { wallet, buildPsbtResult, walletSerializer, valueParser },\n } = arg0;\n return await new SignPsbtTask(\n internalApi,\n { wallet, ...buildPsbtResult },\n walletSerializer,\n valueParser,\n ).run();\n };\n\n return {\n prepareWalletPolicy,\n buildPsbt,\n signPsbt,\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAA4B,qBAC5BC,EAA2C,kBAa3CC,EAGO,mDACPC,EAAwC,6DACxCC,EAA6B,kDAqCtB,MAAMP,UAA6B,oBAMxC,CACA,YAAYQ,EAAqD,CAC/D,MAAMA,CAAI,CACZ,CACA,iBACEC,EAOA,CASA,KAAM,CAAE,SAAAC,EAAU,oBAAAC,EAAqB,UAAAC,CAAU,EAC/C,KAAK,oBAAoBH,CAAW,EAEtC,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EAEA,OAAQ,CACN,oBAAqB,IAAI,sBAAoB,CAC3C,MAAO,CAAE,QAAS,SAAU,CAC9B,CAAC,EAAE,iBAAiBA,CAAW,EAC/B,uBAAqB,eAAYE,CAAmB,EACpD,aAAW,eAAYC,CAAS,EAChC,YAAU,eAAYF,CAAQ,CAChC,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAG,CAAQ,IAAMA,EAAQ,eAAe,QAAU,
|
|
4
|
+
"sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignPsbtDAError,\n type SignPsbtDAInput,\n type SignPsbtDAIntermediateValue,\n type SignPsbtDAInternalState,\n type SignPsbtDAOutput,\n} from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type Psbt as ApiPsbt } from \"@api/model/Psbt\";\nimport { type PsbtSignature } from \"@api/model/Signature\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n BuildPsbtTask,\n type BuildPsbtTaskResult,\n} from \"@internal/app-binder/task/BuildPsbtTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { SignPsbtTask } from \"@internal/app-binder/task/SignPsbtTask\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type MachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly buildPsbt: (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }) => Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>>;\n readonly signPsbt: (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }) => Promise<CommandResult<PsbtSignature[], BtcErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignPsbtDeviceAction extends XStateDeviceAction<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n> {\n constructor(args: { input: SignPsbtDAInput; inspect?: boolean }) {\n super(args);\n }\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n > {\n type types = StateMachineTypes<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n >;\n\n const { signPsbt, prepareWalletPolicy, buildPsbt } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n buildPsbt: fromPromise(buildPsbt),\n signPsbt: fromPromise(signPsbt),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignPsbtDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n wallet: null,\n buildPsbtResult: null,\n signatures: null,\n signedPsbt: null,\n },\n };\n },\n states: {\n InitialState: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignPsbtDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n PrepareWalletPolicy: {\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"BuildPsbt\" },\n { target: \"Error\" },\n ],\n },\n BuildPsbt: {\n invoke: {\n id: \"buildPsbt\",\n src: \"buildPsbt\",\n input: ({ context }) => ({\n psbt: context.input.psbt,\n wallet: context._internalState.wallet!,\n dataStoreService: context.input.dataStoreService,\n psbtMapper: context.input.psbtMapper,\n }),\n onDone: {\n target: \"BuildPsbtResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n buildPsbtResult: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"SignPsbt\" },\n { target: \"Error\" },\n ],\n },\n SignPsbt: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signPsbt\",\n src: \"signPsbt\",\n input: ({ context }) => ({\n walletSerializer: context.input.walletSerializer,\n valueParser: context.input.valueParser,\n buildPsbtResult: context._internalState.buildPsbtResult!,\n wallet: context._internalState.wallet!,\n }),\n onDone: {\n target: \"SignPsbtResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signatures: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({\n context: {\n _internalState: { signatures, error },\n },\n }) =>\n signatures\n ? Right(signatures)\n : Left(error || new UnknownDAError(\"No error in final state\")),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const buildPsbt = async (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }): Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>> => {\n const {\n input: { psbt, wallet, dataStoreService, psbtMapper },\n } = arg0;\n return new BuildPsbtTask(\n { psbt, wallet },\n dataStoreService,\n psbtMapper,\n ).run();\n };\n const signPsbt = async (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }): Promise<CommandResult<PsbtSignature[], BtcErrorCodes>> => {\n const {\n input: { wallet, buildPsbtResult, walletSerializer, valueParser },\n } = arg0;\n return await new SignPsbtTask(\n internalApi,\n { wallet, ...buildPsbtResult },\n walletSerializer,\n valueParser,\n ).run();\n };\n\n return {\n prepareWalletPolicy,\n buildPsbt,\n signPsbt,\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAA4B,qBAC5BC,EAA2C,kBAa3CC,EAGO,mDACPC,EAAwC,6DACxCC,EAA6B,kDAqCtB,MAAMP,UAA6B,oBAMxC,CACA,YAAYQ,EAAqD,CAC/D,MAAMA,CAAI,CACZ,CACA,iBACEC,EAOA,CASA,KAAM,CAAE,SAAAC,EAAU,oBAAAC,EAAqB,UAAAC,CAAU,EAC/C,KAAK,oBAAoBH,CAAW,EAEtC,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EAEA,OAAQ,CACN,oBAAqB,IAAI,sBAAoB,CAC3C,MAAO,CAAE,QAAS,SAAU,CAC9B,CAAC,EAAE,iBAAiBA,CAAW,EAC/B,uBAAqB,eAAYE,CAAmB,EACpD,aAAW,eAAYC,CAAS,EAChC,YAAU,eAAYF,CAAQ,CAChC,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAG,CAAQ,IAAMA,EAAQ,eAAe,QAAU,KACnE,YAAa,CAAC,CAAE,QAAAA,CAAQ,IAAMA,EAAQ,MAAM,WAC9C,EACA,QAAS,CACP,wBAAsB,UAAO,CAC3B,eAAiBC,IAAO,CACtB,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,KACjB,EACF,CAAC,CACH,CACF,CAAC,EAAE,cAAc,CAEf,GAAI,uBACJ,QAAS,eACT,QAAS,CAAC,CAAE,MAAAC,CAAM,KACT,CACL,MAAAA,EACA,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,EACA,eAAgB,CACd,MAAO,KACP,OAAQ,KACR,gBAAiB,KACjB,WAAY,KACZ,WAAY,IACd,CACF,GAEF,OAAQ,CACN,aAAc,CACZ,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,aACT,EACA,qBACF,CACF,EACA,oBAAqB,CACnB,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,sBACJ,MAAO,CAAE,QAAS,SAAU,EAC5B,IAAK,sBACL,WAAY,CACV,WAAS,UAAO,CACd,kBAAoBD,GAClBA,EAAE,MAAM,SAAS,QAAQ,iBAC7B,CAAC,CACH,EACA,OAAQ,CACN,WAAS,UAAO,CACd,eAAiBA,GACRA,EAAE,MAAM,OAAO,OAAgC,CACpD,MAAO,IAAMA,EAAE,QAAQ,eACvB,KAAOE,IAAW,CAChB,GAAGF,EAAE,QAAQ,eACb,MAAAE,CACF,EACF,CAAC,CAEL,CAAC,EACD,OAAQ,gCACV,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,iBACT,EACA,OACF,CACF,EACA,oBAAqB,CACnB,OAAQ,CACN,GAAI,sBACJ,IAAK,sBACL,MAAO,CAAC,CAAE,QAAAH,CAAQ,KAAO,CACvB,OAAQA,EAAQ,MAAM,OACtB,cAAeA,EAAQ,MAAM,aAC/B,GACA,OAAQ,CACN,OAAQ,iCACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,OAC5B,0BAAuBI,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,OAAQI,EAAM,OAAO,IACvB,EAEK,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,WAAY,EAChD,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,UAAW,CACT,OAAQ,CACN,GAAI,YACJ,IAAK,YACL,MAAO,CAAC,CAAE,QAAAJ,CAAQ,KAAO,CACvB,KAAMA,EAAQ,MAAM,KACpB,OAAQA,EAAQ,eAAe,OAC/B,iBAAkBA,EAAQ,MAAM,iBAChC,WAAYA,EAAQ,MAAM,UAC5B,GACA,OAAQ,CACN,OAAQ,uBACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,OAC5B,0BAAuBI,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,gBAAiBI,EAAM,OAAO,IAChC,EAEK,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,qBAAsB,CACpB,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,UAAW,EAC/C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,SAAU,CACR,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBAAyB,0BAAwB,eACnD,CACF,CAAC,EACD,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,WACJ,IAAK,WACL,MAAO,CAAC,CAAE,QAAAJ,CAAQ,KAAO,CACvB,iBAAkBA,EAAQ,MAAM,iBAChC,YAAaA,EAAQ,MAAM,YAC3B,gBAAiBA,EAAQ,eAAe,gBACxC,OAAQA,EAAQ,eAAe,MACjC,GACA,OAAQ,CACN,OAAQ,sBACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,OAC5B,0BAAuBI,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,WAAYI,EAAM,OAAO,IAC3B,EAEK,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,oBAAqB,CACnB,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,SAAU,EAC9C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,QAAS,CACP,KAAM,OACR,EACA,MAAO,CACL,KAAM,OACR,CACF,EACA,OAAQ,CAAC,CACP,QAAS,CACP,eAAgB,CAAE,WAAAC,EAAY,MAAAF,CAAM,CACtC,CACF,IACEE,KACI,SAAMA,CAAU,KAChB,QAAKF,GAAS,IAAI,iBAAe,yBAAyB,CAAC,CACnE,CAAC,CACH,CAEA,oBAAoBP,EAA+C,CAiDjE,MAAO,CACL,oBAjD0B,MAAOU,GAE0B,CAC3D,KAAM,CACJ,MAAO,CAAE,cAAAC,EAAe,OAAAC,CAAO,CACjC,EAAIF,EACJ,OAAO,MAAM,IAAI,0BACfV,EACA,CAAE,OAAAY,CAAO,EACTD,CACF,EAAE,IAAI,CACR,EAuCE,UAtCgB,MAAOD,GAOyC,CAChE,KAAM,CACJ,MAAO,CAAE,KAAAG,EAAM,OAAAD,EAAQ,iBAAAE,EAAkB,WAAAC,CAAW,CACtD,EAAIL,EACJ,OAAO,IAAI,gBACT,CAAE,KAAAG,EAAM,OAAAD,CAAO,EACfE,EACAC,CACF,EAAE,IAAI,CACR,EAuBE,SAtBe,MAAOL,GAOsC,CAC5D,KAAM,CACJ,MAAO,CAAE,OAAAE,EAAQ,gBAAAI,EAAiB,iBAAAC,EAAkB,YAAAC,CAAY,CAClE,EAAIR,EACJ,OAAO,MAAM,IAAI,eACfV,EACA,CAAE,OAAAY,EAAQ,GAAGI,CAAgB,EAC7BC,EACAC,CACF,EAAE,IAAI,CACR,CAMA,CACF,CACF",
|
|
6
6
|
"names": ["SignPsbtDeviceAction_exports", "__export", "SignPsbtDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_BuildPsbtTask", "import_PrepareWalletPolicyTask", "import_SignPsbtTask", "args", "internalApi", "signPsbt", "prepareWalletPolicy", "buildPsbt", "context", "_", "input", "error", "event", "signatures", "arg0", "walletBuilder", "wallet", "psbt", "dataStoreService", "psbtMapper", "buildPsbtResult", "walletSerializer", "valueParser"]
|
|
7
7
|
}
|