@ledgerhq/device-signer-kit-bitcoin 0.0.0-signer-eth-plugin-fix-20250331141239 → 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/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/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/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 +2 -2
- package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
- package/lib/cjs/internal/app-binder/BtcAppBinder.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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/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/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/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/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/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/package.json +13 -14
- 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 +2 -2
- package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
- package/lib/esm/internal/app-binder/BtcAppBinder.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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/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/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/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/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/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/package.json +13 -14
- 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/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.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/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 +14 -15
- package/lib/types/api/SignerBtcBuiilder.test.d.ts +0 -2
- package/lib/types/api/SignerBtcBuiilder.test.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports: off */\nimport {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { UnknownDAError } from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { type SignPsbtDAState } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type RegisteredWallet } 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 BuildPsbtTaskResult } from \"@internal/app-binder/task/BuildPsbtTask\";\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 } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { SignPsbtDeviceAction } from \"./SignPsbtDeviceAction\";\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(\"SignPsbtDeviceAction\", () => {\n const signPsbtMock = vi.fn();\n const prepareWalletPolicyMock = vi.fn();\n const buildPsbtMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n signPsbt: signPsbtMock,\n prepareWalletPolicy: prepareWalletPolicyMock,\n buildPsbt: buildPsbtMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Wallet\" as unknown as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"BuildPsbtResult\" as unknown as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> PrepareWalletPolicy -> BuildPsbt -> SignPsbt\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(prepareWalletPolicyMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n wallet: \"ApiWallet\",\n walletBuilder: \"WalletBuilder\",\n },\n }),\n );\n\n expect(buildPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n wallet: \"Wallet\",\n dataStoreService: \"DataStoreService\",\n psbtMapper: \"PsbtMapper\",\n },\n }),\n );\n\n expect(signPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n wallet: \"Wallet\",\n buildPsbtResult: \"BuildPsbtResult\",\n walletSerializer: \"WalletSerializer\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n });\n it(\"Error if open app fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignPsbtDAState> = [\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 SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if prepareWallet fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\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<SignPsbtDAState> = [\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 testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if buildPsbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if signPsbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if signPsbt throws an exception\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as Wallet }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as BuildPsbtTaskResult }),\n );\n signPsbtMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Return a Left if the final state has no signature\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"No error in final state\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
|
|
5
|
-
"mappings": "AACA,OACE,wBAAAA,EACA,sBAAAC,EACA,8BAAAC,EACA,2BAAAC,MACK,kCACP,OAAS,kBAAAC,MAAsB,kCAC/B,OAAS,0BAAAC,MAA8B,kCAIvC,OAAS,mCAAAC,MAAuC,oEAChD,OAAS,sBAAAC,MAA0B,uEACnC,OAAS,0BAAAC,MAA8B,2EASvC,OAAS,wBAAAC,MAA4B,yBAErC,GAAG,KAAK,kCAAmC,MAAOC,IAGzC,CACL,GAFA,MAAMA,EAAiE,EAGvE,oBAAqB,GAAG,GAAG,KAAO,CAChC,iBAAkB,GAAG,GAAG,CAC1B,EAAE,CACJ,EACD,EAED,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAAe,GAAG,GAAG,EACrBC,EAA0B,GAAG,GAAG,EAChCC,EAAgB,GAAG,GAAG,EAE5B,SAASC,GAA0B,CACjC,MAAO,CACL,SAAUH,EACV,oBAAqBC,EACrB,UAAWC,CACb,CACF,CAEA,SAAS,eAAgB,IAAM,CAC7B,GAAG,gEAAiE,IAClE,IAAI,QAAc,CAACE,EAASC,IAAW,CACrCT,EAAmB,EAEnB,MAAMU,EAAe,IAAIR,EAAqB,CAC5C,MAAO,CACL,OAAQ,YACR,KAAM,cACN,cAAe,gBACf,iBAAkB,mBAClB,iBAAkB,mBAClB,WAAY,aACZ,YAAa,
|
|
4
|
+
"sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports: off */\nimport {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { UnknownDAError } from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { type SignPsbtDAState } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type RegisteredWallet } 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 BuildPsbtTaskResult } from \"@internal/app-binder/task/BuildPsbtTask\";\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 } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { SignPsbtDeviceAction } from \"./SignPsbtDeviceAction\";\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(\"SignPsbtDeviceAction\", () => {\n const signPsbtMock = vi.fn();\n const prepareWalletPolicyMock = vi.fn();\n const buildPsbtMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n signPsbt: signPsbtMock,\n prepareWalletPolicy: prepareWalletPolicyMock,\n buildPsbt: buildPsbtMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Wallet\" as unknown as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"BuildPsbtResult\" as unknown as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> PrepareWalletPolicy -> BuildPsbt -> SignPsbt\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(prepareWalletPolicyMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n wallet: \"ApiWallet\",\n walletBuilder: \"WalletBuilder\",\n },\n }),\n );\n\n expect(buildPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n wallet: \"Wallet\",\n dataStoreService: \"DataStoreService\",\n psbtMapper: \"PsbtMapper\",\n },\n }),\n );\n\n expect(signPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n wallet: \"Wallet\",\n buildPsbtResult: \"BuildPsbtResult\",\n walletSerializer: \"WalletSerializer\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"should be successful while skipping OpenApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n skipOpenApp: true,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Wallet\" as unknown as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"BuildPsbtResult\" as unknown as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> PrepareWalletPolicy -> BuildPsbt -> SignPsbt\n const expectedStates: Array<SignPsbtDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\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.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n status: DeviceActionStatus.Completed,\n },\n ];\n\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 it(\"Error if open app fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignPsbtDAState> = [\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 SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if prepareWallet fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\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<SignPsbtDAState> = [\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 testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if buildPsbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if signPsbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if signPsbt throws an exception\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as Wallet }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as BuildPsbtTaskResult }),\n );\n signPsbtMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Return a Left if the final state has no signature\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\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.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"No error in final state\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["CommandResultFactory", "DeviceActionStatus", "UnknownDeviceExchangeError", "UserInteractionRequired", "UnknownDAError", "InvalidStatusWordError", "makeDeviceActionInternalApiMock", "setupOpenAppDAMock", "testDeviceActionStates", "SignPsbtDeviceAction", "importOriginal", "signPsbtMock", "prepareWalletPolicyMock", "buildPsbtMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "expectedStates"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{CommandResultFactory as c,DeviceActionStatus as e,UnknownDeviceExchangeError as o,UserInteractionRequired as t}from"@ledgerhq/device-management-kit";import{makeDeviceActionInternalApiMock as u}from"../../../app-binder/device-action/__test-utils__/makeInternalApi";import{setupSignPsbtDAMock as
|
|
1
|
+
import{CommandResultFactory as c,DeviceActionStatus as e,UnknownDeviceExchangeError as o,UserInteractionRequired as t}from"@ledgerhq/device-management-kit";import{makeDeviceActionInternalApiMock as u}from"../../../app-binder/device-action/__test-utils__/makeInternalApi";import{setupSignPsbtDAMock as p}from"../../../app-binder/device-action/__test-utils__/setupSignPsbtDAMock";import{testDeviceActionStates as d}from"../../../app-binder/device-action/__test-utils__/testDeviceActionStates";import{SignTransactionDeviceAction as m}from"./SignTransactionDeviceAction";vi.mock("@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction",async a=>({...await a(),SignPsbtDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignTransactionDeviceAction",()=>{const a=vi.fn(),l=vi.fn();function S(){return{updatePsbt:a,extractTransaction:l}}describe("Success case",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((n,i)=>{p([{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}]);const r=new m({input:{wallet:"ApiWallet",psbt:"Hello world",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper",valueParser:"ValueParser",skipOpenApp:!1}});vi.spyOn(r,"extractDependencies").mockReturnValue(S()),a.mockResolvedValueOnce(c({data:"Psbt"})),l.mockResolvedValueOnce(c({data:"0x42"}));const s=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:"0x42",status:e.Completed}];d(r,s,u(),{onDone:()=>{expect(a).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Hello world",psbtMapper:"PsbtMapper",signatures:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}],valueParser:"ValueParser"}})),expect(l).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Psbt",valueParser:"ValueParser"}})),n()},onError:i})}))}),describe("error cases",()=>{beforeEach(()=>{vi.resetAllMocks()}),it("Error if sign psbt fails",()=>new Promise((n,i)=>{p([],new o("Mocked error"));const r=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignTransaction}},{status:e.Error,error:new o("Mocked error")}],s=new m({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});d(s,r,u(),{onDone:n,onError:i})})),it("Error if update psbt fails",()=>new Promise((n,i)=>{p();const r=new m({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(r,"extractDependencies").mockReturnValue(S()),a.mockResolvedValueOnce(c({error:new o("Mocked error")}));const s=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignTransaction}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Error,error:new o("Mocked error")}];d(r,s,u(),{onDone:n,onError:i})})),it("Error if extract transaction fails",()=>new Promise((n,i)=>{p();const r=new m({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(r,"extractDependencies").mockReturnValue(S()),a.mockResolvedValueOnce(c({data:"Psbt"})),l.mockResolvedValueOnce(c({error:new o("Mocked error")}));const s=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignTransaction}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Error,error:new o("Mocked error")}];d(r,s,u(),{onDone:n,onError:i})}))})});
|
|
2
2
|
//# sourceMappingURL=SignTransactionDeviceAction.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.ts"],
|
|
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 SignTransactionDAState } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type RegisteredWallet } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupSignPsbtDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt as InternalPsbt } from \"@internal/psbt/model/Psbt\";\nimport { type PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { SignTransactionDeviceAction } from \"./SignTransactionDeviceAction\";\n\nvi.mock(\n \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\",\n async (importOriginal) => {\n const original =\n await importOriginal<\n typeof import(\"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\")\n >();\n return {\n ...original,\n SignPsbtDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n },\n);\n\ndescribe(\"SignTransactionDeviceAction\", () => {\n const updatePsbtMock = vi.fn();\n const extractTransactionMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n updatePsbt: updatePsbtMock,\n extractTransaction: extractTransactionMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock([\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ]);\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"0x42\",\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n const expectedStates: Array<SignTransactionDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\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.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: \"0x42\",\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(updatePsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n psbtMapper: \"PsbtMapper\",\n signatures: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n valueParser: \"ValueParser\",\n },\n }),\n );\n expect(extractTransactionMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Psbt\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n });\n it(\"Error if sign psbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock([], new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if update psbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\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 testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if extract transaction fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\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.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
|
|
5
|
-
"mappings": "AACA,OACE,wBAAAA,EACA,sBAAAC,EACA,8BAAAC,EACA,2BAAAC,MACK,kCAIP,OAAS,mCAAAC,MAAuC,oEAChD,OAAS,uBAAAC,MAA2B,wEACpC,OAAS,0BAAAC,MAA8B,2EAQvC,OAAS,+BAAAC,MAAmC,gCAE5C,GAAG,KACD,mEACA,MAAOC,IAKE,CACL,GAJA,MAAMA,EAEJ,EAGF,qBAAsB,GAAG,GAAG,KAAO,CACjC,iBAAkB,GAAG,GAAG,CAC1B,EAAE,CACJ,EAEJ,EAEA,SAAS,8BAA+B,IAAM,CAC5C,MAAMC,EAAiB,GAAG,GAAG,EACvBC,EAAyB,GAAG,GAAG,EAErC,SAASC,GAA0B,CACjC,MAAO,CACL,WAAYF,EACZ,mBAAoBC,CACtB,CACF,CAEA,SAAS,eAAgB,IAAM,CAC7B,GAAG,gEAAiE,IAClE,IAAI,QAAc,CAACE,EAASC,IAAW,CACrCR,EAAoB,CAClB,CACE,WAAY,EACZ,OAAQ,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EAC1C,UAAW,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,CAC/C,CACF,CAAC,EAED,MAAMS,EAAe,IAAIP,EAA4B,CACnD,MAAO,CACL,OAAQ,YACR,KAAM,cACN,cAAe,gBACf,iBAAkB,mBAClB,iBAAkB,mBAClB,WAAY,aACZ,YAAa,
|
|
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 SignTransactionDAState } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type RegisteredWallet } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupSignPsbtDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt as InternalPsbt } from \"@internal/psbt/model/Psbt\";\nimport { type PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { SignTransactionDeviceAction } from \"./SignTransactionDeviceAction\";\n\nvi.mock(\n \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\",\n async (importOriginal) => {\n const original =\n await importOriginal<\n typeof import(\"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\")\n >();\n return {\n ...original,\n SignPsbtDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n },\n);\n\ndescribe(\"SignTransactionDeviceAction\", () => {\n const updatePsbtMock = vi.fn();\n const extractTransactionMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n updatePsbt: updatePsbtMock,\n extractTransaction: extractTransactionMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock([\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ]);\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"0x42\",\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n const expectedStates: Array<SignTransactionDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\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.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: \"0x42\",\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(updatePsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n psbtMapper: \"PsbtMapper\",\n signatures: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n valueParser: \"ValueParser\",\n },\n }),\n );\n expect(extractTransactionMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Psbt\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n });\n it(\"Error if sign psbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock([], new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if update psbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\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 testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if extract transaction fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\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.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["CommandResultFactory", "DeviceActionStatus", "UnknownDeviceExchangeError", "UserInteractionRequired", "makeDeviceActionInternalApiMock", "setupSignPsbtDAMock", "testDeviceActionStates", "SignTransactionDeviceAction", "importOriginal", "updatePsbtMock", "extractTransactionMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "expectedStates"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=vi.fn(),n=vi.fn(),t=vi.fn(),i=vi.fn(),c=vi.fn(),o=vi.fn(),s=vi.fn(),a=vi.fn();function
|
|
1
|
+
const e=vi.fn(),n=vi.fn(),t=vi.fn(),i=vi.fn(),c=vi.fn(),o=vi.fn(),s=vi.fn(),a=vi.fn(),r=vi.fn();function v(){return{sendApdu:e,sendCommand:n,getDeviceModel:t,getDeviceSessionState:i,getDeviceSessionStateObservable:c,setDeviceSessionState:o,getManagerApiService:s,getSecureChannelService:a,disableRefresher:r}}export{v as makeDeviceActionInternalApiMock};
|
|
2
2
|
//# sourceMappingURL=makeInternalApi.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/makeInternalApi.ts"],
|
|
4
|
-
"sourcesContent": ["import { type InternalApi } from \"@ledgerhq/device-management-kit\";\nimport { type Mocked } from \"vitest\";\n\nconst sendApduMock = vi.fn();\nconst sendCommandMock = vi.fn();\nconst apiGetDeviceSessionStateMock = vi.fn();\nconst apiGetDeviceSessionStateObservableMock = vi.fn();\nconst setDeviceSessionStateMock = vi.fn();\nconst getManagerApiServiceMock = vi.fn();\nconst getSecureChannelServiceMock = vi.fn();\nconst disableRefresherMock = vi.fn();\n\nexport function makeDeviceActionInternalApiMock(): Mocked<InternalApi> {\n return {\n sendApdu: sendApduMock,\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n getDeviceSessionStateObservable: apiGetDeviceSessionStateObservableMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n getManagerApiService: getManagerApiServiceMock,\n getSecureChannelService: getSecureChannelServiceMock,\n disableRefresher: disableRefresherMock,\n };\n}\n"],
|
|
5
|
-
"mappings": "AAGA,MAAMA,EAAe,GAAG,GAAG,EACrBC,EAAkB,GAAG,GAAG,EACxBC,EAA+B,GAAG,GAAG,EACrCC,EAAyC,GAAG,GAAG,EAC/CC,EAA4B,GAAG,GAAG,EAClCC,EAA2B,GAAG,GAAG,EACjCC,EAA8B,GAAG,GAAG,EACpCC,EAAuB,GAAG,GAAG,EAE5B,SAASC,GAAuD,CACrE,MAAO,CACL,
|
|
6
|
-
"names": ["sendApduMock", "sendCommandMock", "apiGetDeviceSessionStateMock", "apiGetDeviceSessionStateObservableMock", "setDeviceSessionStateMock", "getManagerApiServiceMock", "getSecureChannelServiceMock", "disableRefresherMock", "makeDeviceActionInternalApiMock"]
|
|
4
|
+
"sourcesContent": ["import { type InternalApi } from \"@ledgerhq/device-management-kit\";\nimport { type Mocked } from \"vitest\";\n\nconst sendApduMock = vi.fn();\nconst sendCommandMock = vi.fn();\nconst apiGetDeviceModelMock = vi.fn();\nconst apiGetDeviceSessionStateMock = vi.fn();\nconst apiGetDeviceSessionStateObservableMock = vi.fn();\nconst setDeviceSessionStateMock = vi.fn();\nconst getManagerApiServiceMock = vi.fn();\nconst getSecureChannelServiceMock = vi.fn();\nconst disableRefresherMock = vi.fn();\n\nexport function makeDeviceActionInternalApiMock(): Mocked<InternalApi> {\n return {\n sendApdu: sendApduMock,\n sendCommand: sendCommandMock,\n getDeviceModel: apiGetDeviceModelMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n getDeviceSessionStateObservable: apiGetDeviceSessionStateObservableMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n getManagerApiService: getManagerApiServiceMock,\n getSecureChannelService: getSecureChannelServiceMock,\n disableRefresher: disableRefresherMock,\n };\n}\n"],
|
|
5
|
+
"mappings": "AAGA,MAAMA,EAAe,GAAG,GAAG,EACrBC,EAAkB,GAAG,GAAG,EACxBC,EAAwB,GAAG,GAAG,EAC9BC,EAA+B,GAAG,GAAG,EACrCC,EAAyC,GAAG,GAAG,EAC/CC,EAA4B,GAAG,GAAG,EAClCC,EAA2B,GAAG,GAAG,EACjCC,EAA8B,GAAG,GAAG,EACpCC,EAAuB,GAAG,GAAG,EAE5B,SAASC,GAAuD,CACrE,MAAO,CACL,SAAUT,EACV,YAAaC,EACb,eAAgBC,EAChB,sBAAuBC,EACvB,gCAAiCC,EACjC,sBAAuBC,EACvB,qBAAsBC,EACtB,wBAAyBC,EACzB,iBAAkBC,CACpB,CACF",
|
|
6
|
+
"names": ["sendApduMock", "sendCommandMock", "apiGetDeviceModelMock", "apiGetDeviceSessionStateMock", "apiGetDeviceSessionStateObservableMock", "setDeviceSessionStateMock", "getManagerApiServiceMock", "getSecureChannelServiceMock", "disableRefresherMock", "makeDeviceActionInternalApiMock"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ContainerModule as
|
|
1
|
+
import{ContainerModule as p}from"inversify";import{BtcAppBinder as r}from"../../app-binder/BtcAppBinder";import{appBinderTypes as e}from"../../app-binder/di/appBinderTypes";const d=()=>new p(({bind:o})=>{o(e.AppBinder).to(r)});export{d as appBinderModuleFactory};
|
|
2
2
|
//# sourceMappingURL=appBinderModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/di/appBinderModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\
|
|
5
|
-
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,gBAAAC,MAAoB,oCAC7B,OAAS,kBAAAC,MAAsB,
|
|
6
|
-
"names": ["ContainerModule", "BtcAppBinder", "appBinderTypes", "
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\n\nexport const appBinderModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(appBinderTypes.AppBinder).to(BtcAppBinder);\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,gBAAAC,MAAoB,oCAC7B,OAAS,kBAAAC,MAAsB,yCAExB,MAAMC,EAAyB,IACpC,IAAIH,EAAgB,CAAC,CAAE,KAAAI,CAAK,IAAM,CAChCA,EAAKF,EAAe,SAAS,EAAE,GAAGD,CAAY,CAChD,CAAC",
|
|
6
|
+
"names": ["ContainerModule", "BtcAppBinder", "appBinderTypes", "appBinderModuleFactory", "bind"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as r}from"inversify";import{appBinderModuleFactory as t}from"./appBinderModule";describe("appBinderModule",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=t(),o=new r,o.
|
|
1
|
+
import{Container as r}from"inversify";import{appBinderModuleFactory as t}from"./appBinderModule";describe("appBinderModule",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=t(),o=new r,o.loadSync(e)}),it("should return appBinder module",()=>{expect(e).toBeDefined()})})});
|
|
2
2
|
//# sourceMappingURL=appBinderModule.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/di/appBinderModule.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./appBinderModule\";\n\ndescribe(\"appBinderModule\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof appBinderModuleFactory>;\n beforeEach(() => {\n mod = appBinderModuleFactory();\n container = new Container();\n container.
|
|
5
|
-
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,kBAAmB,IAAM,CAChC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,
|
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./appBinderModule\";\n\ndescribe(\"appBinderModule\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof appBinderModuleFactory>;\n beforeEach(() => {\n mod = appBinderModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return appBinder module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,kBAAmB,IAAM,CAChC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["Container", "appBinderModuleFactory", "container", "mod"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const p={AppBinder:Symbol.for("AppBinder")
|
|
1
|
+
const p={AppBinder:Symbol.for("AppBinder")};export{p as appBinderTypes};
|
|
2
2
|
//# sourceMappingURL=appBinderTypes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/di/appBinderTypes.ts"],
|
|
4
|
-
"sourcesContent": ["export const appBinderTypes = {\n AppBinder: Symbol.for(\"AppBinder\"),\n
|
|
5
|
-
"mappings": "AAAO,MAAMA,EAAiB,CAC5B,UAAW,OAAO,IAAI,WAAW,
|
|
4
|
+
"sourcesContent": ["export const appBinderTypes = {\n AppBinder: Symbol.for(\"AppBinder\"),\n};\n"],
|
|
5
|
+
"mappings": "AAAO,MAAMA,EAAiB,CAC5B,UAAW,OAAO,IAAI,WAAW,CACnC",
|
|
6
6
|
"names": ["appBinderTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ContainerModule as t}from"inversify";import{dataStoreTypes as e}from"../../data-store/di/dataStoreTypes";import{DefaultDataStoreService as r}from"../../data-store/service/DefaultDataStoreService";const
|
|
1
|
+
import{ContainerModule as t}from"inversify";import{dataStoreTypes as e}from"../../data-store/di/dataStoreTypes";import{DefaultDataStoreService as r}from"../../data-store/service/DefaultDataStoreService";const S=()=>new t(({bind:o})=>{o(e.DataStoreService).to(r)});export{S as dataStoreModuleFactory};
|
|
2
2
|
//# sourceMappingURL=dataStoreModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/data-store/di/dataStoreModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport { DefaultDataStoreService } from \"@internal/data-store/service/DefaultDataStoreService\";\n\nexport const dataStoreModuleFactory = () =>\n new ContainerModule(
|
|
5
|
-
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,yCAC/B,OAAS,2BAAAC,MAA+B,uDAEjC,MAAMC,EAAyB,IACpC,IAAIH,
|
|
6
|
-
"names": ["ContainerModule", "dataStoreTypes", "DefaultDataStoreService", "dataStoreModuleFactory", "bind"
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport { DefaultDataStoreService } from \"@internal/data-store/service/DefaultDataStoreService\";\n\nexport const dataStoreModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(dataStoreTypes.DataStoreService).to(DefaultDataStoreService);\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,yCAC/B,OAAS,2BAAAC,MAA+B,uDAEjC,MAAMC,EAAyB,IACpC,IAAIH,EAAgB,CAAC,CAAE,KAAAI,CAAK,IAAM,CAChCA,EAAKH,EAAe,gBAAgB,EAAE,GAAGC,CAAuB,CAClE,CAAC",
|
|
6
|
+
"names": ["ContainerModule", "dataStoreTypes", "DefaultDataStoreService", "dataStoreModuleFactory", "bind"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as o}from"inversify";import{dataStoreModuleFactory as r}from"./dataStoreModule";describe("DataStoreModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=r(),t=new o,t.
|
|
1
|
+
import{Container as o}from"inversify";import{dataStoreModuleFactory as r}from"./dataStoreModule";describe("DataStoreModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=r(),t=new o,t.loadSync(e)}),it("should return the data store service module",()=>{expect(e).toBeDefined()})})});
|
|
2
2
|
//# sourceMappingURL=dataStoreModule.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/data-store/di/dataStoreModule.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { dataStoreModuleFactory } from \"./dataStoreModule\";\n\ndescribe(\"DataStoreModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof dataStoreModuleFactory>;\n beforeEach(() => {\n mod = dataStoreModuleFactory();\n container = new Container();\n container.
|
|
5
|
-
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,
|
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { dataStoreModuleFactory } from \"./dataStoreModule\";\n\ndescribe(\"DataStoreModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof dataStoreModuleFactory>;\n beforeEach(() => {\n mod = dataStoreModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the data store service module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["Container", "dataStoreModuleFactory", "container", "mod"]
|
|
7
7
|
}
|
package/lib/esm/internal/di.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as n}from"inversify";import{dataStoreModuleFactory as a}from"./data-store/di/dataStoreModule";import{externalTypes as o}from"./externalTypes";import{merkleTreeModuleFactory as i}from"./merkle-tree/di/merkleTreeModule";import{psbtModuleFactory as m}from"./psbt/di/psbtModule";import{useCasesModuleFactory as s}from"./use-cases/di/useCasesModule";import{walletModuleFactory as p}from"./wallet/di/walletModule";import{appBinderModuleFactory as d}from"./app-binder/di/appBinderModule";const k=({dmk:t,sessionId:r})=>{const e=new n;return e.bind(o.Dmk).toConstantValue(t),e.bind(o.SessionId).toConstantValue(r),e.
|
|
1
|
+
import{Container as n}from"inversify";import{dataStoreModuleFactory as a}from"./data-store/di/dataStoreModule";import{externalTypes as o}from"./externalTypes";import{merkleTreeModuleFactory as i}from"./merkle-tree/di/merkleTreeModule";import{psbtModuleFactory as m}from"./psbt/di/psbtModule";import{useCasesModuleFactory as s}from"./use-cases/di/useCasesModule";import{walletModuleFactory as p}from"./wallet/di/walletModule";import{appBinderModuleFactory as d}from"./app-binder/di/appBinderModule";const k=({dmk:t,sessionId:r})=>{const e=new n;return e.bind(o.Dmk).toConstantValue(t),e.bind(o.SessionId).toConstantValue(r),e.loadSync(d(),s(),p(),m(),a(),i()),e};export{k as makeContainer};
|
|
2
2
|
//# sourceMappingURL=di.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/internal/di.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { Container } from \"inversify\";\n\nimport { dataStoreModuleFactory } from \"@internal/data-store/di/dataStoreModule\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { merkleTreeModuleFactory } from \"@internal/merkle-tree/di/merkleTreeModule\";\nimport { psbtModuleFactory } from \"@internal/psbt/di/psbtModule\";\nimport { useCasesModuleFactory } from \"@internal/use-cases/di/useCasesModule\";\nimport { walletModuleFactory } from \"@internal/wallet/di/walletModule\";\n\nimport { appBinderModuleFactory } from \"./app-binder/di/appBinderModule\";\n\ntype MakeContainerProps = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\nexport const makeContainer = ({ dmk, sessionId }: MakeContainerProps) => {\n const container = new Container();\n\n container.bind<DeviceManagementKit>(externalTypes.Dmk).toConstantValue(dmk);\n container\n .bind<DeviceSessionId>(externalTypes.SessionId)\n .toConstantValue(sessionId);\n\n container.
|
|
5
|
-
"mappings": "AAIA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,0CACvC,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,2BAAAC,MAA+B,4CACxC,OAAS,qBAAAC,MAAyB,+BAClC,OAAS,yBAAAC,MAA6B,wCACtC,OAAS,uBAAAC,MAA2B,mCAEpC,OAAS,0BAAAC,MAA8B,kCAMhC,MAAMC,EAAgB,CAAC,CAAE,IAAAC,EAAK,UAAAC,CAAU,IAA0B,CACvE,MAAMC,EAAY,IAAIX,EAEtB,OAAAW,EAAU,KAA0BT,EAAc,GAAG,EAAE,gBAAgBO,CAAG,EAC1EE,EACG,KAAsBT,EAAc,SAAS,EAC7C,gBAAgBQ,CAAS,EAE5BC,EAAU,
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { Container } from \"inversify\";\n\nimport { dataStoreModuleFactory } from \"@internal/data-store/di/dataStoreModule\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { merkleTreeModuleFactory } from \"@internal/merkle-tree/di/merkleTreeModule\";\nimport { psbtModuleFactory } from \"@internal/psbt/di/psbtModule\";\nimport { useCasesModuleFactory } from \"@internal/use-cases/di/useCasesModule\";\nimport { walletModuleFactory } from \"@internal/wallet/di/walletModule\";\n\nimport { appBinderModuleFactory } from \"./app-binder/di/appBinderModule\";\n\ntype MakeContainerProps = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\nexport const makeContainer = ({ dmk, sessionId }: MakeContainerProps) => {\n const container = new Container();\n\n container.bind<DeviceManagementKit>(externalTypes.Dmk).toConstantValue(dmk);\n container\n .bind<DeviceSessionId>(externalTypes.SessionId)\n .toConstantValue(sessionId);\n\n container.loadSync(\n appBinderModuleFactory(),\n useCasesModuleFactory(),\n walletModuleFactory(),\n psbtModuleFactory(),\n dataStoreModuleFactory(),\n merkleTreeModuleFactory(),\n );\n\n return container;\n};\n"],
|
|
5
|
+
"mappings": "AAIA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,0CACvC,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,2BAAAC,MAA+B,4CACxC,OAAS,qBAAAC,MAAyB,+BAClC,OAAS,yBAAAC,MAA6B,wCACtC,OAAS,uBAAAC,MAA2B,mCAEpC,OAAS,0BAAAC,MAA8B,kCAMhC,MAAMC,EAAgB,CAAC,CAAE,IAAAC,EAAK,UAAAC,CAAU,IAA0B,CACvE,MAAMC,EAAY,IAAIX,EAEtB,OAAAW,EAAU,KAA0BT,EAAc,GAAG,EAAE,gBAAgBO,CAAG,EAC1EE,EACG,KAAsBT,EAAc,SAAS,EAC7C,gBAAgBQ,CAAS,EAE5BC,EAAU,SACRJ,EAAuB,EACvBF,EAAsB,EACtBC,EAAoB,EACpBF,EAAkB,EAClBH,EAAuB,EACvBE,EAAwB,CAC1B,EAEOQ,CACT",
|
|
6
6
|
"names": ["Container", "dataStoreModuleFactory", "externalTypes", "merkleTreeModuleFactory", "psbtModuleFactory", "useCasesModuleFactory", "walletModuleFactory", "appBinderModuleFactory", "makeContainer", "dmk", "sessionId", "container"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ContainerModule as o}from"inversify";import{merkleTreeTypes as r}from"../../merkle-tree/di/merkleTreeTypes";import{MerkleMapBuilder as
|
|
1
|
+
import{ContainerModule as o}from"inversify";import{merkleTreeTypes as r}from"../../merkle-tree/di/merkleTreeTypes";import{MerkleMapBuilder as l}from"../../merkle-tree/service/MerkleMapBuilder";import{MerkleTreeBuilder as m}from"../../merkle-tree/service/MerkleTreeBuilder";import{Sha256HasherService as t}from"../../merkle-tree/service/Sha256HasherService";const u=()=>new o(({bind:e})=>{e(r.HasherService).to(t),e(r.MerkleTreeBuilder).to(m),e(r.MerkleMapBuilder).to(l)});export{u as merkleTreeModuleFactory};
|
|
2
2
|
//# sourceMappingURL=merkleTreeModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/merkle-tree/di/merkleTreeModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { merkleTreeTypes } from \"@internal/merkle-tree/di/merkleTreeTypes\";\nimport { MerkleMapBuilder } from \"@internal/merkle-tree/service/MerkleMapBuilder\";\nimport { MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\nimport { Sha256HasherService } from \"@internal/merkle-tree/service/Sha256HasherService\";\n\nexport const merkleTreeModuleFactory = () =>\n new ContainerModule(
|
|
5
|
-
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,mBAAAC,MAAuB,2CAChC,OAAS,oBAAAC,MAAwB,iDACjC,OAAS,qBAAAC,MAAyB,kDAClC,OAAS,uBAAAC,MAA2B,oDAE7B,MAAMC,EAA0B,IACrC,IAAIL,
|
|
6
|
-
"names": ["ContainerModule", "merkleTreeTypes", "MerkleMapBuilder", "MerkleTreeBuilder", "Sha256HasherService", "merkleTreeModuleFactory", "bind"
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { merkleTreeTypes } from \"@internal/merkle-tree/di/merkleTreeTypes\";\nimport { MerkleMapBuilder } from \"@internal/merkle-tree/service/MerkleMapBuilder\";\nimport { MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\nimport { Sha256HasherService } from \"@internal/merkle-tree/service/Sha256HasherService\";\n\nexport const merkleTreeModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(merkleTreeTypes.HasherService).to(Sha256HasherService);\n bind(merkleTreeTypes.MerkleTreeBuilder).to(MerkleTreeBuilder);\n bind(merkleTreeTypes.MerkleMapBuilder).to(MerkleMapBuilder);\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,mBAAAC,MAAuB,2CAChC,OAAS,oBAAAC,MAAwB,iDACjC,OAAS,qBAAAC,MAAyB,kDAClC,OAAS,uBAAAC,MAA2B,oDAE7B,MAAMC,EAA0B,IACrC,IAAIL,EAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAKL,EAAgB,aAAa,EAAE,GAAGG,CAAmB,EAC1DE,EAAKL,EAAgB,iBAAiB,EAAE,GAAGE,CAAiB,EAC5DG,EAAKL,EAAgB,gBAAgB,EAAE,GAAGC,CAAgB,CAC5D,CAAC",
|
|
6
|
+
"names": ["ContainerModule", "merkleTreeTypes", "MerkleMapBuilder", "MerkleTreeBuilder", "Sha256HasherService", "merkleTreeModuleFactory", "bind"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as o}from"inversify";import{merkleTreeModuleFactory as t}from"./merkleTreeModule";describe("MerkleTreeModuleFactory",()=>{describe("Default",()=>{let r,e;beforeEach(()=>{e=t(),r=new o,r.
|
|
1
|
+
import{Container as o}from"inversify";import{merkleTreeModuleFactory as t}from"./merkleTreeModule";describe("MerkleTreeModuleFactory",()=>{describe("Default",()=>{let r,e;beforeEach(()=>{e=t(),r=new o,r.loadSync(e)}),it("should return the merkle tree service module",()=>{expect(e).toBeDefined()})})});
|
|
2
2
|
//# sourceMappingURL=merkleTreeModule.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/merkle-tree/di/merkleTreeModule.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { merkleTreeModuleFactory } from \"./merkleTreeModule\";\n\ndescribe(\"MerkleTreeModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof merkleTreeModuleFactory>;\n beforeEach(() => {\n mod = merkleTreeModuleFactory();\n container = new Container();\n container.
|
|
5
|
-
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,2BAAAC,MAA+B,qBAExC,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAwB,EAC9BC,EAAY,IAAIF,EAChBE,EAAU,
|
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { merkleTreeModuleFactory } from \"./merkleTreeModule\";\n\ndescribe(\"MerkleTreeModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof merkleTreeModuleFactory>;\n beforeEach(() => {\n mod = merkleTreeModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the merkle tree service module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,2BAAAC,MAA+B,qBAExC,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAwB,EAC9BC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,+CAAgD,IAAM,CACvD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["Container", "merkleTreeModuleFactory", "container", "mod"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ContainerModule as t}from"inversify";import{psbtTypes as e}from"../../psbt/di/psbtTypes";import{DefaultKeySerializer as o}from"../../psbt/service/key/DefaultKeySerializer";import{DefaultKeyPairSerializer as a}from"../../psbt/service/key-pair/DefaultKeyPairSerializer";import{DefaultPsbtMapper as
|
|
1
|
+
import{ContainerModule as t}from"inversify";import{psbtTypes as e}from"../../psbt/di/psbtTypes";import{DefaultKeySerializer as o}from"../../psbt/service/key/DefaultKeySerializer";import{DefaultKeyPairSerializer as a}from"../../psbt/service/key-pair/DefaultKeyPairSerializer";import{DefaultPsbtMapper as l}from"../../psbt/service/psbt/DefaultPsbtMapper";import{DefaultPsbtSerializer as i}from"../../psbt/service/psbt/DefaultPsbtSerializer";import{DefaultPsbtV2Normalizer as m}from"../../psbt/service/psbt/DefaultPsbtV2Normalizer";import{DefaultValueFactory as p}from"../../psbt/service/value/DefaultValueFactory";import{DefaultValueParser as f}from"../../psbt/service/value/DefaultValueParser";const K=()=>new t(({bind:r})=>{r(e.KeySerializer).to(o),r(e.KeyPairSerializer).to(a),r(e.PsbtMapper).to(l),r(e.PsbtV2Normalizer).to(m),r(e.PsbtSerializer).to(i),r(e.ValueFactory).to(p),r(e.ValueParser).to(f)});export{K as psbtModuleFactory};
|
|
2
2
|
//# sourceMappingURL=psbtModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/psbt/di/psbtModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { psbtTypes } from \"@internal/psbt/di/psbtTypes\";\nimport { DefaultKeySerializer } from \"@internal/psbt/service/key/DefaultKeySerializer\";\nimport { DefaultKeyPairSerializer } from \"@internal/psbt/service/key-pair/DefaultKeyPairSerializer\";\nimport { DefaultPsbtMapper } from \"@internal/psbt/service/psbt/DefaultPsbtMapper\";\nimport { DefaultPsbtSerializer } from \"@internal/psbt/service/psbt/DefaultPsbtSerializer\";\nimport { DefaultPsbtV2Normalizer } from \"@internal/psbt/service/psbt/DefaultPsbtV2Normalizer\";\nimport { DefaultValueFactory } from \"@internal/psbt/service/value/DefaultValueFactory\";\nimport { DefaultValueParser } from \"@internal/psbt/service/value/DefaultValueParser\";\n\nexport const psbtModuleFactory = () =>\n new ContainerModule(
|
|
5
|
-
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,aAAAC,MAAiB,8BAC1B,OAAS,wBAAAC,MAA4B,kDACrC,OAAS,4BAAAC,MAAgC,2DACzC,OAAS,qBAAAC,MAAyB,gDAClC,OAAS,yBAAAC,MAA6B,oDACtC,OAAS,2BAAAC,MAA+B,sDACxC,OAAS,uBAAAC,MAA2B,mDACpC,OAAS,sBAAAC,MAA0B,kDAE5B,MAAMC,EAAoB,IAC/B,IAAIT,
|
|
6
|
-
"names": ["ContainerModule", "psbtTypes", "DefaultKeySerializer", "DefaultKeyPairSerializer", "DefaultPsbtMapper", "DefaultPsbtSerializer", "DefaultPsbtV2Normalizer", "DefaultValueFactory", "DefaultValueParser", "psbtModuleFactory", "bind"
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { psbtTypes } from \"@internal/psbt/di/psbtTypes\";\nimport { DefaultKeySerializer } from \"@internal/psbt/service/key/DefaultKeySerializer\";\nimport { DefaultKeyPairSerializer } from \"@internal/psbt/service/key-pair/DefaultKeyPairSerializer\";\nimport { DefaultPsbtMapper } from \"@internal/psbt/service/psbt/DefaultPsbtMapper\";\nimport { DefaultPsbtSerializer } from \"@internal/psbt/service/psbt/DefaultPsbtSerializer\";\nimport { DefaultPsbtV2Normalizer } from \"@internal/psbt/service/psbt/DefaultPsbtV2Normalizer\";\nimport { DefaultValueFactory } from \"@internal/psbt/service/value/DefaultValueFactory\";\nimport { DefaultValueParser } from \"@internal/psbt/service/value/DefaultValueParser\";\n\nexport const psbtModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(psbtTypes.KeySerializer).to(DefaultKeySerializer);\n bind(psbtTypes.KeyPairSerializer).to(DefaultKeyPairSerializer);\n bind(psbtTypes.PsbtMapper).to(DefaultPsbtMapper);\n bind(psbtTypes.PsbtV2Normalizer).to(DefaultPsbtV2Normalizer);\n bind(psbtTypes.PsbtSerializer).to(DefaultPsbtSerializer);\n bind(psbtTypes.ValueFactory).to(DefaultValueFactory);\n bind(psbtTypes.ValueParser).to(DefaultValueParser);\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,aAAAC,MAAiB,8BAC1B,OAAS,wBAAAC,MAA4B,kDACrC,OAAS,4BAAAC,MAAgC,2DACzC,OAAS,qBAAAC,MAAyB,gDAClC,OAAS,yBAAAC,MAA6B,oDACtC,OAAS,2BAAAC,MAA+B,sDACxC,OAAS,uBAAAC,MAA2B,mDACpC,OAAS,sBAAAC,MAA0B,kDAE5B,MAAMC,EAAoB,IAC/B,IAAIT,EAAgB,CAAC,CAAE,KAAAU,CAAK,IAAM,CAChCA,EAAKT,EAAU,aAAa,EAAE,GAAGC,CAAoB,EACrDQ,EAAKT,EAAU,iBAAiB,EAAE,GAAGE,CAAwB,EAC7DO,EAAKT,EAAU,UAAU,EAAE,GAAGG,CAAiB,EAC/CM,EAAKT,EAAU,gBAAgB,EAAE,GAAGK,CAAuB,EAC3DI,EAAKT,EAAU,cAAc,EAAE,GAAGI,CAAqB,EACvDK,EAAKT,EAAU,YAAY,EAAE,GAAGM,CAAmB,EACnDG,EAAKT,EAAU,WAAW,EAAE,GAAGO,CAAkB,CACnD,CAAC",
|
|
6
|
+
"names": ["ContainerModule", "psbtTypes", "DefaultKeySerializer", "DefaultKeyPairSerializer", "DefaultPsbtMapper", "DefaultPsbtSerializer", "DefaultPsbtV2Normalizer", "DefaultValueFactory", "DefaultValueParser", "psbtModuleFactory", "bind"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as o}from"inversify";import{psbtModuleFactory as r}from"./psbtModule";describe("PsbtModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=r(),t=new o,t.
|
|
1
|
+
import{Container as o}from"inversify";import{psbtModuleFactory as r}from"./psbtModule";describe("PsbtModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=r(),t=new o,t.loadSync(e)}),it("should return the psbt service module",()=>{expect(e).toBeDefined()})})});
|
|
2
2
|
//# sourceMappingURL=psbtModule.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/psbt/di/psbtModule.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { psbtModuleFactory } from \"./psbtModule\";\n\ndescribe(\"PsbtModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof psbtModuleFactory>;\n beforeEach(() => {\n mod = psbtModuleFactory();\n container = new Container();\n container.
|
|
5
|
-
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,qBAAAC,MAAyB,eAElC,SAAS,oBAAqB,IAAM,CAClC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAkB,EACxBC,EAAY,IAAIF,EAChBE,EAAU,
|
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { psbtModuleFactory } from \"./psbtModule\";\n\ndescribe(\"PsbtModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof psbtModuleFactory>;\n beforeEach(() => {\n mod = psbtModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the psbt service module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,qBAAAC,MAAyB,eAElC,SAAS,oBAAqB,IAAM,CAClC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAkB,EACxBC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,wCAAyC,IAAM,CAChD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["Container", "psbtModuleFactory", "container", "mod"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{bufferToHexaString as t,ByteArrayBuilder as r}from"@ledgerhq/device-management-kit";import{encodeVarint as a}from"../../utils/Varint";class
|
|
1
|
+
import{bufferToHexaString as t,ByteArrayBuilder as r}from"@ledgerhq/device-management-kit";import{encodeVarint as a}from"../../utils/Varint";class f{constructor(e,y=new Uint8Array){this.keyType=e;this.keyData=y}toHexaString(){const e=new r().addBufferToData(a(this.keyType).unsafeCoerce()).addBufferToData(this.keyData).build();return t(e,!1)}}export{f as Key};
|
|
2
2
|
//# sourceMappingURL=Key.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/psbt/model/Key.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\nimport { type PsbtGlobal, type PsbtIn, type PsbtOut } from \"./Psbt\";\n\n/**\n * According to specification, key-pair is formatted as:\n * <keylen> <keytype> <keydata> <valuelen> <valuedata>\n * with:\n * <keylen>: The compact size unsigned integer containing the combined length of <keytype> and <keydata>\n * <keytype>: A compact size unsigned integer representing the type\n * <valuelen>: The compact size unsigned integer containing the length of <valuedata>\n * For more informations:\n * https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#specification\n */\nexport type KeyType = PsbtGlobal | PsbtIn | PsbtOut;\n\nexport class Key {\n constructor(\n readonly keyType: KeyType,\n readonly keyData: Uint8Array = new Uint8Array(),\n ) {}\n\n toHexaString(): string {\n // Safe to extract keyType here since its value is a valid PSBT key type.\n const buffer = new ByteArrayBuilder()\n .addBufferToData(encodeVarint(this.keyType).unsafeCoerce())\n .addBufferToData(this.keyData)\n .build();\n return bufferToHexaString(buffer)
|
|
5
|
-
"mappings": "AAAA,OACE,sBAAAA,EACA,oBAAAC,MACK,kCAEP,OAAS,gBAAAC,MAAoB,yBAgBtB,MAAMC,CAAI,CACf,YACWC,EACAC,EAAsB,IAAI,WACnC,CAFS,aAAAD,EACA,aAAAC,CACR,CAEH,cAAuB,CAErB,MAAMC,EAAS,IAAIL,EAAiB,EACjC,gBAAgBC,EAAa,KAAK,OAAO,EAAE,aAAa,CAAC,EACzD,gBAAgB,KAAK,OAAO,EAC5B,MAAM,EACT,OAAOF,EAAmBM,
|
|
4
|
+
"sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\nimport { type PsbtGlobal, type PsbtIn, type PsbtOut } from \"./Psbt\";\n\n/**\n * According to specification, key-pair is formatted as:\n * <keylen> <keytype> <keydata> <valuelen> <valuedata>\n * with:\n * <keylen>: The compact size unsigned integer containing the combined length of <keytype> and <keydata>\n * <keytype>: A compact size unsigned integer representing the type\n * <valuelen>: The compact size unsigned integer containing the length of <valuedata>\n * For more informations:\n * https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#specification\n */\nexport type KeyType = PsbtGlobal | PsbtIn | PsbtOut;\n\nexport class Key {\n constructor(\n readonly keyType: KeyType,\n readonly keyData: Uint8Array = new Uint8Array(),\n ) {}\n\n toHexaString(): string {\n // Safe to extract keyType here since its value is a valid PSBT key type.\n const buffer = new ByteArrayBuilder()\n .addBufferToData(encodeVarint(this.keyType).unsafeCoerce())\n .addBufferToData(this.keyData)\n .build();\n return bufferToHexaString(buffer, false);\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OACE,sBAAAA,EACA,oBAAAC,MACK,kCAEP,OAAS,gBAAAC,MAAoB,yBAgBtB,MAAMC,CAAI,CACf,YACWC,EACAC,EAAsB,IAAI,WACnC,CAFS,aAAAD,EACA,aAAAC,CACR,CAEH,cAAuB,CAErB,MAAMC,EAAS,IAAIL,EAAiB,EACjC,gBAAgBC,EAAa,KAAK,OAAO,EAAE,aAAa,CAAC,EACzD,gBAAgB,KAAK,OAAO,EAC5B,MAAM,EACT,OAAOF,EAAmBM,EAAQ,EAAK,CACzC,CACF",
|
|
6
6
|
"names": ["bufferToHexaString", "ByteArrayBuilder", "encodeVarint", "Key", "keyType", "keyData", "buffer"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var P=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var f=(s,r,a,e)=>{for(var i=e>1?void 0:e?d(r,a):r,n=s.length-1,o;n>=0;n--)(o=s[n])&&(i=(e?o(r,a,i):o(i))||i);return e&&i&&P(r,a,i),i},u=(s,r)=>(a,e)=>r(a,e,s);import{bufferToHexaString as z,ByteArrayBuilder as S,ByteArrayParser as T}from"@ledgerhq/device-management-kit";import{Transaction as V}from"bitcoinjs-lib";import{inject as M}from"inversify";import{Either as x,Left as p,Maybe as B,Right as b}from"purify-ts";import{psbtTypes as g}from"../../../psbt/di/psbtTypes";import{Key as E}from"../../../psbt/model/Key";import{Psbt as U}from"../../../psbt/model/Psbt";import{PsbtGlobal as m}from"../../../psbt/model/Psbt";const h=Uint8Array.from([112,115,98,116,255]);let l=class{constructor(r,a){this.valueParser=r;this.keyPairSerializer=a}getValue(r,a){return B.fromNullable(r.get(new E(a).toHexaString()))}sortMap(r){return new Map(Array.from(r.entries()).sort((a,e)=>a[0].localeCompare(e[0])))}deserialize(r){const a=new T(r);for(const t of h)if(a.extract8BitUInt()!==t)return p(new Error("PSBT deserializer: Invalid magic bytes"));const e=[];for(;a.getUnparsedRemainingLength();)e.push(this.keyPairSerializer.deserializeMap(a));if(e.length===0)return p(new Error("PSBT deserializer: No map found"));const i=e[0],n=this.getValue(i,m.UNSIGNED_TX).chain(t=>x.encase(()=>V.fromHex(z(t.data)
|
|
1
|
+
var P=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var f=(s,r,a,e)=>{for(var i=e>1?void 0:e?d(r,a):r,n=s.length-1,o;n>=0;n--)(o=s[n])&&(i=(e?o(r,a,i):o(i))||i);return e&&i&&P(r,a,i),i},u=(s,r)=>(a,e)=>r(a,e,s);import{bufferToHexaString as z,ByteArrayBuilder as S,ByteArrayParser as T}from"@ledgerhq/device-management-kit";import{Transaction as V}from"bitcoinjs-lib";import{inject as M}from"inversify";import{Either as x,Left as p,Maybe as B,Right as b}from"purify-ts";import{psbtTypes as g}from"../../../psbt/di/psbtTypes";import{Key as E}from"../../../psbt/model/Key";import{Psbt as U}from"../../../psbt/model/Psbt";import{PsbtGlobal as m}from"../../../psbt/model/Psbt";const h=Uint8Array.from([112,115,98,116,255]);let l=class{constructor(r,a){this.valueParser=r;this.keyPairSerializer=a}getValue(r,a){return B.fromNullable(r.get(new E(a).toHexaString()))}sortMap(r){return new Map(Array.from(r.entries()).sort((a,e)=>a[0].localeCompare(e[0])))}deserialize(r){const a=new T(r);for(const t of h)if(a.extract8BitUInt()!==t)return p(new Error("PSBT deserializer: Invalid magic bytes"));const e=[];for(;a.getUnparsedRemainingLength();)e.push(this.keyPairSerializer.deserializeMap(a));if(e.length===0)return p(new Error("PSBT deserializer: No map found"));const i=e[0],n=this.getValue(i,m.UNSIGNED_TX).chain(t=>x.encase(()=>V.fromHex(z(t.data,!1))).toMaybe()),o=this.getValue(i,m.INPUT_COUNT).chain(t=>this.valueParser.getVarint(t.data)).alt(n.map(t=>t.ins.length)),c=this.getValue(i,m.OUTPUT_COUNT).chain(t=>this.valueParser.getVarint(t.data)).alt(n.map(t=>t.outs.length));if(o.isJust()&&c.isJust()){if(e.length===1+o.extract()+c.extract()){const t=e.slice(1,1+o.extract()),y=e.slice(1+o.extract());return b(new U(i,t,y))}return p(new Error("PSBT deserializer: map count don't match input and output count"))}return p(new Error("PSBT deserializer: input or output count not found in global map or transaction"))}serialize(r){const a=new S;return r.globalMap=this.sortMap(r.globalMap),r.inputMaps=r.inputMaps.map(e=>this.sortMap(e)),r.outputMaps=r.outputMaps.map(e=>this.sortMap(e)),a.addBufferToData(h),this.keyPairSerializer.serializeMap(a,r.globalMap),r.inputMaps.forEach(e=>this.keyPairSerializer.serializeMap(a,e)),r.outputMaps.forEach(e=>this.keyPairSerializer.serializeMap(a,e)),a.build()}};l=f([u(0,M(g.ValueParser)),u(1,M(g.KeyPairSerializer))],l);export{l as DefaultPsbtSerializer};
|
|
2
2
|
//# sourceMappingURL=DefaultPsbtSerializer.js.map
|