@ledgerhq/device-signer-kit-solana 1.0.1 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +148 -356
- package/lib/cjs/api/SignerSolana.js +1 -1
- package/lib/cjs/api/SignerSolana.js.map +1 -1
- package/lib/cjs/api/app-binder/GetAddressDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/GetAddressDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/GetAppConfigurationDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/GetAppConfigurationDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/model/AddressOption.js +1 -1
- package/lib/cjs/api/model/AddressOption.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/TransactionOptions.js +1 -1
- package/lib/cjs/api/model/TransactionOptions.js.map +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/internal/DefaultSignerSolana.js +1 -1
- package/lib/cjs/internal/DefaultSignerSolana.js.map +2 -2
- package/lib/cjs/internal/DefaultSignerSolana.test.js +1 -1
- package/lib/cjs/internal/DefaultSignerSolana.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/SolanaAppBinder.js +1 -1
- package/lib/cjs/internal/app-binder/SolanaAppBinder.js.map +3 -3
- package/lib/cjs/internal/app-binder/SolanaAppBinder.test.js +1 -1
- package/lib/cjs/internal/app-binder/SolanaAppBinder.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/utils/SolanaAppErrors.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/utils/SolanaAppErrors.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/utils/SolanaApplicationErrors.js +2 -0
- package/lib/cjs/internal/app-binder/command/utils/SolanaApplicationErrors.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
- package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
- package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
- package/lib/cjs/internal/app-binder/di/appBinderModule.test.js +1 -1
- package/lib/cjs/internal/app-binder/di/appBinderModule.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/SendCommandInChunksTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendCommandInChunksTask.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/SendSignDataTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendSignDataTask.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/SendSignDataTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendSignDataTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SendSignMessageTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SendSignMessageTask.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/use-cases/address/GetAddressUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/address/GetAddressUseCase.js.map +2 -2
- package/lib/cjs/internal/use-cases/address/GetAddressUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/address/GetAddressUseCase.test.js.map +2 -2
- package/lib/cjs/internal/use-cases/app-configuration/GetAppConfiguration.test.js +1 -1
- package/lib/cjs/internal/use-cases/app-configuration/GetAppConfiguration.test.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/message/SignMessageUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/message/SignMessageUseCase.js.map +3 -3
- package/lib/cjs/internal/use-cases/message/SignMessageUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/message/SignMessageUseCase.test.js.map +2 -2
- package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.js.map +2 -2
- package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.test.js +1 -1
- package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.test.js.map +2 -2
- package/lib/cjs/package.json +17 -17
- package/lib/esm/api/model/MessageOptions.js +1 -0
- package/lib/esm/api/model/MessageOptions.js.map +7 -0
- package/lib/esm/internal/DefaultSignerSolana.js +1 -1
- package/lib/esm/internal/DefaultSignerSolana.js.map +2 -2
- package/lib/esm/internal/DefaultSignerSolana.test.js +1 -1
- package/lib/esm/internal/DefaultSignerSolana.test.js.map +2 -2
- package/lib/esm/internal/app-binder/SolanaAppBinder.js +1 -1
- package/lib/esm/internal/app-binder/SolanaAppBinder.js.map +3 -3
- package/lib/esm/internal/app-binder/SolanaAppBinder.test.js +1 -1
- package/lib/esm/internal/app-binder/SolanaAppBinder.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/utils/SolanaAppErrors.test.js +2 -0
- package/lib/esm/internal/app-binder/command/utils/SolanaAppErrors.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/utils/SolanaApplicationErrors.js +2 -0
- package/lib/esm/internal/app-binder/command/utils/SolanaApplicationErrors.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
- package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
- package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
- package/lib/esm/internal/app-binder/di/appBinderModule.test.js +1 -1
- package/lib/esm/internal/app-binder/di/appBinderModule.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/SendCommandInChunksTask.js +1 -1
- package/lib/esm/internal/app-binder/task/SendCommandInChunksTask.js.map +2 -2
- package/lib/esm/internal/app-binder/task/SendSignDataTask.js +1 -1
- package/lib/esm/internal/app-binder/task/SendSignDataTask.js.map +2 -2
- package/lib/esm/internal/app-binder/task/SendSignDataTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SendSignDataTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/SendSignMessageTask.js +1 -1
- package/lib/esm/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SendSignMessageTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SendSignMessageTask.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/use-cases/address/GetAddressUseCase.js +1 -1
- package/lib/esm/internal/use-cases/address/GetAddressUseCase.js.map +2 -2
- package/lib/esm/internal/use-cases/address/GetAddressUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/address/GetAddressUseCase.test.js.map +2 -2
- package/lib/esm/internal/use-cases/app-configuration/GetAppConfiguration.test.js +1 -1
- package/lib/esm/internal/use-cases/app-configuration/GetAppConfiguration.test.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/message/SignMessageUseCase.js +1 -1
- package/lib/esm/internal/use-cases/message/SignMessageUseCase.js.map +3 -3
- package/lib/esm/internal/use-cases/message/SignMessageUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/message/SignMessageUseCase.test.js.map +2 -2
- package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.js +1 -1
- package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.js.map +2 -2
- package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.test.js +1 -1
- package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.test.js.map +2 -2
- package/lib/esm/package.json +17 -17
- package/lib/types/api/SignerSolana.d.ts +2 -1
- package/lib/types/api/SignerSolana.d.ts.map +1 -1
- package/lib/types/api/app-binder/GetAddressDeviceActionTypes.d.ts +2 -1
- package/lib/types/api/app-binder/GetAddressDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/GetAppConfigurationDeviceActionTypes.d.ts +2 -1
- package/lib/types/api/app-binder/GetAppConfigurationDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +3 -11
- package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +4 -4
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/model/AddressOption.d.ts +1 -0
- package/lib/types/api/model/AddressOption.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/TransactionOptions.d.ts +3 -1
- package/lib/types/api/model/TransactionOptions.d.ts.map +1 -1
- package/lib/types/internal/DefaultSignerSolana.d.ts +2 -1
- package/lib/types/internal/DefaultSignerSolana.d.ts.map +1 -1
- package/lib/types/internal/app-binder/SolanaAppBinder.d.ts +3 -2
- package/lib/types/internal/app-binder/SolanaAppBinder.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +4 -2
- package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts +4 -2
- package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts +4 -3
- package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts +5 -3
- package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/utils/SolanaAppErrors.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/utils/SolanaAppErrors.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/utils/SolanaApplicationErrors.d.ts +8 -0
- package/lib/types/internal/app-binder/command/utils/SolanaApplicationErrors.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts +2 -1
- package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
- package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SendCommandInChunksTask.d.ts +3 -2
- package/lib/types/internal/app-binder/task/SendCommandInChunksTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SendSignDataTask.d.ts +3 -2
- package/lib/types/internal/app-binder/task/SendSignDataTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts +3 -1
- package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts.map +1 -1
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/use-cases/address/GetAddressUseCase.d.ts.map +1 -1
- package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
- package/lib/types/internal/use-cases/message/SignMessageUseCase.d.ts +2 -1
- package/lib/types/internal/use-cases/message/SignMessageUseCase.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +19 -19
- package/lib/cjs/internal/app-binder/command/utils/solanaAppError.test.js +0 -2
- package/lib/cjs/internal/app-binder/command/utils/solanaAppError.test.js.map +0 -7
- package/lib/cjs/internal/app-binder/command/utils/solanaAppErrors.js +0 -2
- package/lib/cjs/internal/app-binder/command/utils/solanaAppErrors.js.map +0 -7
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
- package/lib/esm/internal/app-binder/command/utils/solanaAppError.test.js +0 -2
- package/lib/esm/internal/app-binder/command/utils/solanaAppError.test.js.map +0 -7
- package/lib/esm/internal/app-binder/command/utils/solanaAppErrors.js +0 -2
- package/lib/esm/internal/app-binder/command/utils/solanaAppErrors.js.map +0 -7
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
- package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
- package/lib/types/internal/app-binder/command/utils/solanaAppError.test.d.ts +0 -2
- package/lib/types/internal/app-binder/command/utils/solanaAppError.test.d.ts.map +0 -1
- package/lib/types/internal/app-binder/command/utils/solanaAppErrors.d.ts +0 -8
- package/lib/types/internal/app-binder/command/utils/solanaAppErrors.d.ts.map +0 -1
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts +0 -15
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts.map +0 -1
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts +0 -2
- package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/app-binder/GetAppConfigurationDeviceActionTypes.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type SendCommandInAppDAError,\n type SendCommandInAppDAIntermediateValue,\n type SendCommandInAppDAOutput,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\n\nexport type GetAppConfigurationDAOutput =\n SendCommandInAppDAOutput<AppConfiguration>;\n\nexport type GetAppConfigurationDAError
|
|
4
|
+
"sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type SendCommandInAppDAError,\n type SendCommandInAppDAIntermediateValue,\n type SendCommandInAppDAOutput,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\n\nexport type GetAppConfigurationDAOutput =\n SendCommandInAppDAOutput<AppConfiguration>;\n\nexport type GetAppConfigurationDAError =\n SendCommandInAppDAError<SolanaAppErrorCodes>;\n\nexport type GetAppConfigurationDAIntermediateValue =\n SendCommandInAppDAIntermediateValue<UserInteractionRequired.None>;\n\nexport type GetAppConfigurationDAReturnType = ExecuteDeviceActionReturnType<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n>;\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["GetAppConfigurationDeviceActionTypes_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var A=(r,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!s.call(r,t)&&t!==i&&p(r,t,{get:()=>e[t],enumerable:!(n=o(e,t))||n.enumerable});return r};var g=r=>A(p({},"__esModule",{value:!0}),r);var u={};module.exports=g(u);
|
|
2
2
|
//# sourceMappingURL=SignMessageDeviceActionTypes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/app-binder/SignMessageDeviceActionTypes.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type
|
|
4
|
+
"sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type SendCommandInAppDAError,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\n\nexport type SignMessageDAOutput = Signature;\n\nexport type SignMessageDAError =\n | OpenAppDAError\n | SendCommandInAppDAError<SolanaAppErrorCodes>;\n\ntype SignMessageDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignPersonalMessage;\n\nexport type SignMessageDAIntermediateValue = {\n requiredUserInteraction: SignMessageDARequiredInteraction;\n};\n\nexport type SignMessageDAReturnType = ExecuteDeviceActionReturnType<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n>;\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["SignMessageDeviceActionTypes_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var A=(e,n,i,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of p(n))!c.call(e,r)&&r!==i&&a(e,r,{get:()=>n[r],enumerable:!(t=o(n,r))||t.enumerable});return e};var s=e=>A(a({},"__esModule",{value:!0}),e);var u={};module.exports=s(u);
|
|
2
2
|
//# sourceMappingURL=SignTransactionDeviceActionTypes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/app-binder/SignTransactionDeviceActionTypes.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type SendCommandInAppDAError,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAInput = {\n readonly derivationPath: string;\n readonly transaction: Transaction;\n readonly skipOpenApp: boolean;\n};\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | SendCommandInAppDAError<SolanaAppErrorCodes>;\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTransaction;\n\nexport type SignTransactionDAIntermediateValue = {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n};\n\nexport type SignTransactionDAState = DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n\nexport type SignTransactionDAInternalState = {\n readonly error: SignTransactionDAError | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["SignTransactionDeviceActionTypes_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var a=(p,e,c,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of t(e))!O.call(p,o)&&o!==c&&s(p,o,{get:()=>e[o],enumerable:!(n=i(e,o))||n.enumerable});return p};var b=p=>a(s({},"__esModule",{value:!0}),p);var d={};module.exports=b(d);
|
|
2
2
|
//# sourceMappingURL=AddressOption.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/model/AddressOption.ts"],
|
|
4
|
-
"sourcesContent": ["export type AddressOptions = {\n checkOnDevice?: boolean;\n};\n"],
|
|
4
|
+
"sourcesContent": ["export type AddressOptions = {\n checkOnDevice?: boolean;\n skipOpenApp?: boolean;\n};\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["AddressOption_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var b=(e,p,t,s)=>{if(p&&typeof p=="object"||typeof p=="function")for(let o of i(p))!O.call(e,o)&&o!==t&&n(e,o,{get:()=>p[o],enumerable:!(s=a(p,o))||s.enumerable});return e};var g=e=>b(n({},"__esModule",{value:!0}),e);var k={};module.exports=g(k);
|
|
2
|
+
//# sourceMappingURL=MessageOptions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/api/model/MessageOptions.ts"],
|
|
4
|
+
"sourcesContent": ["export type MessageOptions = {\n skipOpenApp?: boolean;\n};\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["MessageOptions_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var t=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var O=(n,p,a,e)=>{if(p&&typeof p=="object"||typeof p=="function")for(let o of s(p))!r.call(n,o)&&o!==a&&t(n,o,{get:()=>p[o],enumerable:!(e=i(p,o))||e.enumerable});return n};var b=n=>O(t({},"__esModule",{value:!0}),n);var c={};module.exports=b(c);
|
|
2
2
|
//# sourceMappingURL=TransactionOptions.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/api/model/TransactionOptions.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
4
|
+
"sourcesContent": ["export type TransactionOptions = {\n skipOpenApp?: boolean;\n};\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["TransactionOptions_exports", "__toCommonJS"]
|
|
7
7
|
}
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
4
|
"sourcesContent": ["// inversify requirement\nimport \"reflect-metadata\";\n\nexport * from \"@api/index\";\n"],
|
|
5
5
|
"mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GACA,IAAAE,EAAO,4BAEPC,EAAAH,EAAc,sBAHd",
|
|
6
|
-
"names": ["
|
|
6
|
+
"names": ["index_exports", "__toCommonJS", "import_reflect_metadata", "__reExport"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},u=(n,e,t,
|
|
1
|
+
"use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},u=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!m.call(n,s)&&s!==t&&o(n,s,{get:()=>e[s],enumerable:!(r=p(e,s))||r.enumerable});return n};var f=n=>u(o({},"__esModule",{value:!0}),n);var A={};c(A,{DefaultSignerSolana:()=>y});module.exports=f(A);var i=require("./use-cases/di/useCasesTypes"),a=require("./di");class y{_container;constructor({dmk:e,sessionId:t}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t})}signTransaction(e,t,r){return this._container.get(i.useCasesTypes.SignTransactionUseCase).execute(e,t,r)}signMessage(e,t,r){return this._container.get(i.useCasesTypes.SignMessageUseCase).execute(e,t,r)}getAddress(e,t){return this._container.get(i.useCasesTypes.GetAddressUseCase).execute(e,t)}getAppConfiguration(){return this._container.get(i.useCasesTypes.GetAppConfigurationUseCase).execute()}}0&&(module.exports={DefaultSignerSolana});
|
|
2
2
|
//# sourceMappingURL=DefaultSignerSolana.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/internal/DefaultSignerSolana.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type SignerSolana } from \"@api/SignerSolana\";\n\nimport { type GetAddressUseCase } from \"./use-cases/address/GetAddressUseCase\";\nimport { type GetAppConfigurationUseCase } from \"./use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"./use-cases/di/useCasesTypes\";\nimport { type SignMessageUseCase } from \"./use-cases/message/SignMessageUseCase\";\nimport { type SignTransactionUseCase } from \"./use-cases/transaction/SignTransactionUseCase\";\nimport { makeContainer } from \"./di\";\n\nexport type DefaultSignerSolanaConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerSolana implements SignerSolana {\n private _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerSolanaConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Transaction,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(useCasesTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string,\n ): SignMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(useCasesTypes.SignMessageUseCase)\n .execute(derivationPath, message);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(useCasesTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this._container\n .get<GetAppConfigurationUseCase>(useCasesTypes.GetAppConfigurationUseCase)\n .execute();\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type SignerSolana } from \"@api/SignerSolana\";\n\nimport { type GetAddressUseCase } from \"./use-cases/address/GetAddressUseCase\";\nimport { type GetAppConfigurationUseCase } from \"./use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"./use-cases/di/useCasesTypes\";\nimport { type SignMessageUseCase } from \"./use-cases/message/SignMessageUseCase\";\nimport { type SignTransactionUseCase } from \"./use-cases/transaction/SignTransactionUseCase\";\nimport { makeContainer } from \"./di\";\n\nexport type DefaultSignerSolanaConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerSolana implements SignerSolana {\n private _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerSolanaConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Transaction,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(useCasesTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ): SignMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(useCasesTypes.SignMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(useCasesTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this._container\n .get<GetAppConfigurationUseCase>(useCasesTypes.GetAppConfigurationUseCase)\n .execute();\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAkBA,IAAAI,EAA8B,wCAG9BC,EAA8B,gBAOvB,MAAMH,CAA4C,CAC/C,WAER,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAAuC,CAClE,KAAK,cAAa,iBAAc,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,gBACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,gBAAc,sBAAsB,EAChE,QAAQF,EAAgBC,EAAaC,CAAO,CACjD,CAEA,YACEF,EACAG,EACAD,EACyB,CACzB,OAAO,KAAK,WACT,IAAwB,gBAAc,kBAAkB,EACxD,QAAQF,EAAgBG,EAASD,CAAO,CAC7C,CAEA,WACEF,EACAE,EACwB,CACxB,OAAO,KAAK,WACT,IAAuB,gBAAc,iBAAiB,EACtD,QAAQF,EAAgBE,CAAO,CACpC,CAEA,qBAAuD,CACrD,OAAO,KAAK,WACT,IAAgC,gBAAc,0BAA0B,EACxE,QAAQ,CACb,CACF",
|
|
6
6
|
"names": ["DefaultSignerSolana_exports", "__export", "DefaultSignerSolana", "__toCommonJS", "import_useCasesTypes", "import_di", "dmk", "sessionId", "derivationPath", "transaction", "options", "message"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var i=require("./DefaultSignerSolana");describe("DefaultSignerSolana",()=>{it("should be defined",()=>{const e=new i.DefaultSignerSolana({dmk:{},sessionId:{}});expect(e).toBeDefined()}),it("should call getAddress",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).getAddress("derivationPath",{}),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call signTransaction",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).signTransaction("derivationPath",new Uint8Array,{}),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call signMessage",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).signMessage("44'/501'/0'/0'","Hello world"),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call getAppConfiguration",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).getAppConfiguration(),expect(e.executeDeviceAction).toHaveBeenCalled()})});
|
|
2
2
|
//# sourceMappingURL=DefaultSignerSolana.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/internal/DefaultSignerSolana.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultSignerSolana } from \"./DefaultSignerSolana\";\n\ndescribe(\"DefaultSignerSolana\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerSolana({\n dmk: {} as DeviceManagementKit,\n sessionId: {} as DeviceSessionId,\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getAddress\", () => {\n const dmk = {\n executeDeviceAction:
|
|
5
|
-
"mappings": "aAKA,IAAAA,EAAoC,iCAEpC,SAAS,sBAAuB,IAAM,CACpC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAI,sBAAoB,CACrC,IAAK,CAAC,EACN,UAAW,CAAC,CACd,CAAC,EACD,OAAOA,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,yBAA0B,IAAM,CACjC,MAAMC,EAAM,CACV,oBAAqB,
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultSignerSolana } from \"./DefaultSignerSolana\";\n\ndescribe(\"DefaultSignerSolana\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerSolana({\n dmk: {} as DeviceManagementKit,\n sessionId: {} as DeviceSessionId,\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getAddress\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.getAddress(\"derivationPath\", {});\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call signTransaction\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.signTransaction(\"derivationPath\", new Uint8Array(), {});\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call signMessage\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.signMessage(\"44'/501'/0'/0'\", \"Hello world\");\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call getAppConfiguration\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.getAppConfiguration();\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n});\n"],
|
|
5
|
+
"mappings": "aAKA,IAAAA,EAAoC,iCAEpC,SAAS,sBAAuB,IAAM,CACpC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAI,sBAAoB,CACrC,IAAK,CAAC,EACN,UAAW,CAAC,CACd,CAAC,EACD,OAAOA,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,yBAA0B,IAAM,CACjC,MAAMC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,WAAW,iBAAkB,CAAC,CAAC,EACtC,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,8BAA+B,IAAM,CACtC,MAAMA,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,gBAAgB,iBAAkB,IAAI,WAAc,CAAC,CAAC,EAC7D,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,0BAA2B,IAAM,CAClC,MAAMA,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,YAAY,iBAAkB,aAAa,EAClD,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,MAAMA,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,oBAAoB,EAC3B,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_DefaultSignerSolana", "signer", "dmk", "sessionId"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var h=(n,e)=>{for(var i in e)a(n,i,{get:e[i],enumerable:!0})},y=(n,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of I(e))!T.call(n,t)&&t!==i&&a(n,t,{get:()=>e[t],enumerable:!(o=u(e,t))||o.enumerable});return n};var O=n=>y(a({},"__esModule",{value:!0}),n),v=(n,e,i,o)=>{for(var t=o>1?void 0:o?u(e,i):e,c=n.length-1,d;c>=0;c--)(d=n[c])&&(t=(o?d(e,i,t):d(t))||t);return o&&t&&a(e,i,t),t},m=(n,e)=>(i,o)=>e(i,o,n);var S={};h(S,{SolanaAppBinder:()=>r});module.exports=O(S);var s=require("@ledgerhq/device-management-kit"),p=require("inversify"),g=require("../app-binder/task/SendSignMessageTask"),A=require("../externalTypes"),D=require("./command/GetAppConfigurationCommand"),k=require("./command/GetPubKeyCommand"),f=require("./device-action/SignTransactionDeviceAction");let r=class{constructor(e,i){this.dmk=e;this.sessionId=i}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new k.GetPubKeyCommand(e),appName:"Solana",requiredUserInteraction:e.checkOnDevice?s.UserInteractionRequired.VerifyAddress:s.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp}})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new f.SignTransactionDeviceAction({input:{derivationPath:e.derivationPath,transaction:e.transaction,skipOpenApp:e.skipOpenApp}})})}signMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.CallTaskInAppDeviceAction({input:{task:async i=>new g.SendSignMessageTask(i,{derivationPath:e.derivationPath,sendingData:new TextEncoder().encode(e.message)}).run(),appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.SignPersonalMessage,skipOpenApp:e.skipOpenApp}})})}getAppConfiguration(){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new D.GetAppConfigurationCommand,appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.None,skipOpenApp:!1}})})}};r=v([(0,p.injectable)(),m(0,(0,p.inject)(A.externalTypes.Dmk)),m(1,(0,p.inject)(A.externalTypes.SessionId))],r);0&&(module.exports={SolanaAppBinder});
|
|
2
2
|
//# sourceMappingURL=SolanaAppBinder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/app-binder/SolanaAppBinder.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport {
|
|
5
|
-
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,
|
|
6
|
-
"names": ["SolanaAppBinder_exports", "__export", "SolanaAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "
|
|
4
|
+
"sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport { SendSignMessageTask } from \"@internal/app-binder/task/SendSignMessageTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nimport { GetAppConfigurationCommand } from \"./command/GetAppConfigurationCommand\";\nimport { GetPubKeyCommand } from \"./command/GetPubKeyCommand\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransactionDeviceAction\";\n\n@injectable()\nexport class SolanaAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n skipOpenApp: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(args),\n appName: \"Solana\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Transaction;\n skipOpenApp: boolean;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signMessage(args: {\n derivationPath: string;\n message: string;\n skipOpenApp: boolean;\n }): SignMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignMessageTask(internalApi, {\n derivationPath: args.derivationPath,\n sendingData: new TextEncoder().encode(args.message),\n }).run(),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAMO,2CACPC,EAAmC,qBAOnCC,EAAoC,yDACpCC,EAA8B,mCAE9BC,EAA2C,gDAC3CC,EAAiC,sCACjCC,EAA4C,uDAGrC,IAAMC,EAAN,KAAsB,CAC3B,YACqCC,EACMC,EACzC,CAFmC,SAAAD,EACM,eAAAC,CACxC,CAEH,WAAWC,EAIgB,CACzB,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,mBAAiBA,CAAI,EAClC,QAAS,SACT,wBAAyBA,EAAK,cAC1B,0BAAwB,cACxB,0BAAwB,KAC5B,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,8BAA4B,CAC5C,MAAO,CACL,eAAgBA,EAAK,eACrB,YAAaA,EAAK,YAClB,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,YAAYA,EAIgB,CAC1B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,sBAAoBA,EAAa,CACnC,eAAgBD,EAAK,eACrB,YAAa,IAAI,YAAY,EAAE,OAAOA,EAAK,OAAO,CACpD,CAAC,EAAE,IAAI,EACT,QAAS,SACT,wBAAyB,0BAAwB,oBACjD,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,qBAAuD,CACrD,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,6BACb,QAAS,SACT,wBAAyB,0BAAwB,KACjD,YAAa,EACf,CACF,CAAC,CACH,CAAC,CACH,CACF,EA9EaH,EAANK,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GACxBA,EAAA,eAAO,gBAAc,SAAS,IAHtBN",
|
|
6
|
+
"names": ["SolanaAppBinder_exports", "__export", "SolanaAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_SendSignMessageTask", "import_externalTypes", "import_GetAppConfigurationCommand", "import_GetPubKeyCommand", "import_SignTransactionDeviceAction", "SolanaAppBinder", "dmk", "sessionId", "args", "internalApi", "__decorateClass", "__decorateParam"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=require("@ledgerhq/device-management-kit"),u=require("rxjs"),l=require("./command/GetAppConfigurationCommand"),A=require("./command/GetPubKeyCommand"),m=require("./device-action/SignTransactionDeviceAction"),c=require("./SolanaAppBinder");describe("SolanaAppBinder",()=>{const i={sendCommand:vi.fn(),executeDeviceAction:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const s=new c.SolanaAppBinder({},{});expect(s).toBeDefined()}),describe("getAddress",()=>{it("should return the address",()=>new Promise((s,o)=>{const e="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const r=new c.SolanaAppBinder(i,"sessionId"),{observable:p}=r.getAddress({derivationPath:"44'/501'",checkOnDevice:!1,skipOpenApp:!1}),a=[];p.subscribe({next:t=>{a.push(t)},error:t=>{o(t)},complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(t){o(t)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const s={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1,skipOpenApp:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const e={...s,checkOnDevice:!0};new c.SolanaAppBinder(i,"sessionId").getAddress(e),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new A.GetPubKeyCommand(e),appName:"Solana",requiredUserInteraction:n.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const e={...s,checkOnDevice:!1};new c.SolanaAppBinder(i,"sessionId").getAddress(e),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new A.GetPubKeyCommand(e),appName:"Solana",requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1}})})})})}),describe("signTransaction",()=>{it("should return the signature",()=>new Promise((s,o)=>{const e=new Uint8Array([1,2,3]);vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const r=new c.SolanaAppBinder(i,"sessionId"),{observable:p}=r.signTransaction({derivationPath:"44'/501'",transaction:new Uint8Array([1,2,3,4]),skipOpenApp:!1}),a=[];p.subscribe({next:t=>{a.push(t)},error:t=>{o(t)},complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(t){o(t)}}})})),it("should call executeDeviceAction with the correct params",()=>{const s="44'/60'/3'/2/1",o=new Uint8Array([1,2,3,4]),e=!1;new c.SolanaAppBinder(i,"sessionId").signTransaction({derivationPath:s,transaction:o,skipOpenApp:e}),expect(i.executeDeviceAction).toHaveBeenCalledWith({deviceAction:new m.SignTransactionDeviceAction({input:{derivationPath:s,transaction:o,skipOpenApp:e}}),sessionId:"sessionId"})})}),describe("signMessage",()=>{it("should return the signed message",()=>new Promise((s,o)=>{const e=new Uint8Array([28,138,84,5,16]),r={derivationPath:"44'/501'/0'/0'",message:"Hello world",skipOpenApp:!1};vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const p=new c.SolanaAppBinder(i,"sessionId"),{observable:a}=p.signMessage(r),t=[];a.subscribe({next:d=>{t.push(d)},error:d=>{o(d)},complete:()=>{try{expect(t).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(d){o(d)}}})}))}),describe("getAppConfiguration",()=>{it("should return the app configuration",()=>new Promise((s,o)=>{const e={blindSigningEnabled:!0,pubKeyDisplayMode:"LONG",version:"2.5.10"};vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const r=new c.SolanaAppBinder(i,"sessionId"),{observable:p}=r.getAppConfiguration(),a=[];p.subscribe({next:t=>{a.push(t)},error:t=>{o(t)},complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(t){o(t)}}})})),it("should call executeDeviceAction with the correct params",()=>{new c.SolanaAppBinder(i,"sessionId").getAppConfiguration(),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new l.GetAppConfigurationCommand,appName:"Solana",requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1}})})})})});
|
|
2
2
|
//# sourceMappingURL=SolanaAppBinder.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/app-binder/SolanaAppBinder.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type DeviceActionIntermediateValue,\n type DeviceActionState,\n DeviceActionStatus,\n type DeviceManagementKit,\n type DeviceSessionId,\n type DmkError,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAppConfigurationDAError,\n type GetAppConfigurationDAIntermediateValue,\n type GetAppConfigurationDAOutput,\n} from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/index\";\n\nimport { GetAppConfigurationCommand } from \"./command/GetAppConfigurationCommand\";\nimport { GetPubKeyCommand } from \"./command/GetPubKeyCommand\";\nimport { SignMessageDeviceAction } from \"./device-action/SignMessage/SignMessageDeviceAction\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransactionDeviceAction\";\nimport { SolanaAppBinder } from \"./SolanaAppBinder\";\n\ndescribe(\"SolanaAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: jest.fn(),\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it(\"should be defined\", () => {\n const binder = new SolanaAppBinder(\n {} as DeviceManagementKit,\n {} as DeviceSessionId,\n );\n expect(binder).toBeDefined();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address\", (done) => {\n // GIVEN\n const address = \"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5\";\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/501'\",\n checkOnDevice: false,\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n };\n\n it(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n }),\n });\n });\n\n it(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", (done) => {\n // GIVEN\n const signature = new Uint8Array([0x01, 0x02, 0x03]);\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/501'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const derivationPath = \"44'/60'/3'/2/1\";\n const transaction = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.signTransaction({ derivationPath, transaction });\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath,\n transaction,\n options: {},\n },\n }),\n sessionId: \"sessionId\",\n });\n });\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signed message\", (done) => {\n // GIVEN\n const signedMessage = new Uint8Array([0x1c, 0x8a, 0x54, 0x05, 0x10]);\n const signMessageArgs = {\n derivationPath: \"44'/501'/0'/0'\",\n message: \"Hello world\",\n };\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n } as DeviceActionState<\n Uint8Array,\n DmkError,\n DeviceActionIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signMessage(signMessageArgs);\n\n // THEN\n const states: DeviceActionState<Uint8Array, unknown, unknown>[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n it(\"should call executeDeviceAction with correct parameters\", () => {\n // GIVEN\n const signMessageArgs = {\n derivationPath: \"44'/501'/0'/0'\",\n message: \"Hello world\",\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.signMessage(signMessageArgs);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SignMessageDeviceAction({\n input: {\n derivationPath: signMessageArgs.derivationPath,\n message: signMessageArgs.message,\n },\n }),\n });\n });\n });\n\n describe(\"getAppConfiguration\", () => {\n it(\"should return the app configuration\", (done) => {\n // GIVEN\n const appConfiguration = {\n blindSigningEnabled: true,\n pubKeyDisplayMode: \"LONG\",\n version: \"2.5.10\",\n };\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n } as DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAppConfiguration();\n\n // THEN\n const states: DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n\n // WHEN\n appBinder.getAppConfiguration();\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(), // Correct command\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n });\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EASO,2CACPC,EAAqB,gBAgBrBC,EAA2C,gDAC3CC,EAAiC,sCACjCC,
|
|
6
|
-
"names": ["import_device_management_kit", "import_rxjs", "import_GetAppConfigurationCommand", "import_GetPubKeyCommand", "
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionIntermediateValue,\n type DeviceActionState,\n DeviceActionStatus,\n type DeviceManagementKit,\n type DeviceSessionId,\n type DmkError,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAppConfigurationDAError,\n type GetAppConfigurationDAIntermediateValue,\n type GetAppConfigurationDAOutput,\n} from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/index\";\n\nimport { GetAppConfigurationCommand } from \"./command/GetAppConfigurationCommand\";\nimport { GetPubKeyCommand } from \"./command/GetPubKeyCommand\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransactionDeviceAction\";\nimport { SolanaAppBinder } from \"./SolanaAppBinder\";\n\ndescribe(\"SolanaAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: vi.fn(),\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should be defined\", () => {\n const binder = new SolanaAppBinder(\n {} as DeviceManagementKit,\n {} as DeviceSessionId,\n );\n expect(binder).toBeDefined();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const address = \"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/501'\",\n checkOnDevice: false,\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n skipOpenApp: false,\n };\n\n it(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n }),\n });\n });\n\n it(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature = new Uint8Array([0x01, 0x02, 0x03]);\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/501'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const derivationPath = \"44'/60'/3'/2/1\";\n const transaction = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n const skipOpenApp = false;\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.signTransaction({ derivationPath, transaction, skipOpenApp });\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath,\n transaction,\n skipOpenApp,\n },\n }),\n sessionId: \"sessionId\",\n });\n });\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signed message\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signedMessage = new Uint8Array([0x1c, 0x8a, 0x54, 0x05, 0x10]);\n const signMessageArgs = {\n derivationPath: \"44'/501'/0'/0'\",\n message: \"Hello world\",\n skipOpenApp: false,\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n } as DeviceActionState<\n Uint8Array,\n DmkError,\n DeviceActionIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signMessage(signMessageArgs);\n\n // THEN\n const states: DeviceActionState<Uint8Array, unknown, unknown>[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"getAppConfiguration\", () => {\n it(\"should return the app configuration\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const appConfiguration = {\n blindSigningEnabled: true,\n pubKeyDisplayMode: \"LONG\",\n version: \"2.5.10\",\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n } as DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAppConfiguration();\n\n // THEN\n const states: DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >[] = [];\n\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n\n // WHEN\n appBinder.getAppConfiguration();\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(), // Correct command\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_rxjs", "import_GetAppConfigurationCommand", "import_GetPubKeyCommand", "import_SignTransactionDeviceAction", "import_SolanaAppBinder", "mockedDmk", "binder", "resolve", "reject", "address", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "derivationPath", "transaction", "skipOpenApp", "signedMessage", "signMessageArgs", "appConfiguration"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var i=Object.defineProperty;var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var f=(n,r)=>{for(var a in r)i(n,a,{get:r[a],enumerable:!0})},g=(n,r,a,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let p of A(r))!C.call(n,p)&&p!==a&&i(n,p,{get:()=>r[p],enumerable:!(o=l(r,p))||o.enumerable});return n};var y=n=>g(i({},"__esModule",{value:!0}),n);var E={};f(E,{GetAppConfigurationCommand:()=>c});module.exports=y(E);var e=require("@ledgerhq/device-management-kit"),d=require("@ledgerhq/signer-utils"),s=require("purify-ts"),m=require("../../../api/model/PublicKeyDisplayMode"),t=require("./utils/SolanaApplicationErrors");class c{errorHelper=new d.CommandErrorHelper(t.SOLANA_APP_ERRORS,t.SolanaAppCommandErrorFactory);args;constructor(r){this.args=r}getApdu(){return new e.ApduBuilder({cla:224,ins:4,p1:0,p2:0}).build()}parseResponse(r){return s.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const o=new e.ApduParser(r).extractFieldByLength(5);if(!o||o.length!==5||o.some(u=>u===void 0))return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response")});const p={blindSigningEnabled:!!o[0],pubKeyDisplayMode:o[1]===0?m.PublicKeyDisplayMode.LONG:m.PublicKeyDisplayMode.SHORT,version:`${o[2]}.${o[3]}.${o[4]}`};return(0,e.CommandResultFactory)({data:p})})}}0&&(module.exports={GetAppConfigurationCommand});
|
|
2
2
|
//# sourceMappingURL=GetAppConfigurationCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/GetAppConfigurationCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,
|
|
6
|
-
"names": ["GetAppConfigurationCommand_exports", "__export", "GetAppConfigurationCommand", "__toCommonJS", "import_device_management_kit", "
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nimport { PublicKeyDisplayMode } from \"@api/model/PublicKeyDisplayMode\";\n\nimport {\n SOLANA_APP_ERRORS,\n SolanaAppCommandErrorFactory,\n type SolanaAppErrorCodes,\n} from \"./utils/SolanaApplicationErrors\";\n\ntype GetAppConfigurationCommandArgs = void;\n\nexport class GetAppConfigurationCommand\n implements\n Command<\n AppConfiguration,\n GetAppConfigurationCommandArgs,\n SolanaAppErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n AppConfiguration,\n SolanaAppErrorCodes\n >(SOLANA_APP_ERRORS, SolanaAppCommandErrorFactory);\n\n args: GetAppConfigurationCommandArgs;\n\n constructor(args: GetAppConfigurationCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x04,\n p1: 0x00,\n p2: 0x00,\n }).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<AppConfiguration, SolanaAppErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n const buffer = parser.extractFieldByLength(5);\n if (\n !buffer ||\n buffer.length !== 5 ||\n buffer.some((element) => element === undefined)\n ) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response\"),\n });\n }\n\n const config: AppConfiguration = {\n blindSigningEnabled: Boolean(buffer[0]),\n pubKeyDisplayMode:\n buffer[1] === 0\n ? PublicKeyDisplayMode.LONG\n : PublicKeyDisplayMode.SHORT,\n version: `${buffer[2]}.${buffer[3]}.${buffer[4]}`,\n };\n\n return CommandResultFactory({\n data: config,\n });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAGtBC,EAAqC,2CAErCC,EAIO,2CAIA,MAAMN,CAOb,CACmB,YAAc,IAAI,qBAGjC,oBAAmB,8BAA4B,EAEjD,KAEA,YAAYO,EAAsC,CAChD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAAE,MAAM,CACX,CAEA,cACEC,EACsD,CACtD,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAQ,CACpC,EAAE,cAAc,IAAM,CAEpB,MAAMC,EADS,IAAI,aAAWD,CAAQ,EAChB,qBAAqB,CAAC,EAC5C,GACE,CAACC,GACDA,EAAO,SAAW,GAClBA,EAAO,KAAMC,GAAYA,IAAY,MAAS,EAE9C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,kBAAkB,CACtD,CAAC,EAGH,MAAMC,EAA2B,CAC/B,oBAAqB,EAAQF,EAAO,CAAC,EACrC,kBACEA,EAAO,CAAC,IAAM,EACV,uBAAqB,KACrB,uBAAqB,MAC3B,QAAS,GAAGA,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,CAAC,EACjD,EAEA,SAAO,wBAAqB,CAC1B,KAAME,CACR,CAAC,CACH,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["GetAppConfigurationCommand_exports", "__export", "GetAppConfigurationCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_PublicKeyDisplayMode", "import_SolanaApplicationErrors", "args", "response", "buffer", "element", "config"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@ledgerhq/device-management-kit"),s=require("../../../api/model/PublicKeyDisplayMode"),
|
|
1
|
+
"use strict";var e=require("@ledgerhq/device-management-kit"),s=require("../../../api/model/PublicKeyDisplayMode"),a=require("./GetAppConfigurationCommand");const n=new Uint8Array([224,4,0,0,0]),i=new Uint8Array([1,0,2,5,10]),p=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i}),c=new Uint8Array([1,1,2,5,10]),d=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c});describe("GetAppConfigurationCommand",()=>{let o;beforeEach(()=>{o=new a.GetAppConfigurationCommand,vi.clearAllMocks(),vi.importActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return the correct APDU",()=>{const r=o.getApdu();expect(r.getRawApdu()).toEqual(n)})}),describe("parseResponse",()=>{it("should parse the response correctly",()=>{const r=o.parseResponse(p);expect(r).toStrictEqual((0,e.CommandResultFactory)({data:{blindSigningEnabled:!0,pubKeyDisplayMode:s.PublicKeyDisplayMode.LONG,version:"2.5.10"}}))}),it("should parse the response correctly with short pub key display mode",()=>{const r=o.parseResponse(d);expect(r).toStrictEqual((0,e.CommandResultFactory)({data:{blindSigningEnabled:!0,pubKeyDisplayMode:s.PublicKeyDisplayMode.SHORT,version:"2.5.10"}}))}),describe("error handling",()=>{it("should return error if response is not success",()=>{const r=new e.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),t=o.parseResponse(r);expect((0,e.isSuccessCommandResult)(t)).toBe(!1),(0,e.isSuccessCommandResult)(t)?assert.fail("Expected error"):expect(t.error).toEqual(expect.objectContaining({_tag:"SolanaAppCommandError",errorCode:"6a82",message:"Invalid off-chain message format"}))}),it("should return error if response is not success",()=>{const r=new e.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),t=o.parseResponse(r);expect((0,e.isSuccessCommandResult)(t)).toBe(!1),(0,e.isSuccessCommandResult)(t)?assert.fail("Expected error"):expect(t.error).toEqual(expect.objectContaining({_tag:"SolanaAppCommandError",errorCode:"6a82",message:"Invalid off-chain message format"}))})})})});
|
|
2
2
|
//# sourceMappingURL=GetAppConfigurationCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/GetAppConfigurationCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { PublicKeyDisplayMode } from \"@api/model/PublicKeyDisplayMode\";\n\nimport { GetAppConfigurationCommand } from \"./GetAppConfigurationCommand\";\n\nconst GET_APP_CONFIG_APDU = new Uint8Array([0xe0, 0x04, 0x00, 0x00, 0x00]);\n\nconst GET_APP_CONFIG_RESPONSE_DATA = new Uint8Array([\n 0x01, 0x00, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA,\n});\n\nconst GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE = new Uint8Array([\n 0x01, 0x01, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE,\n});\n\ndescribe(\"GetAppConfigurationCommand\", () => {\n let command: GetAppConfigurationCommand;\n\n beforeEach(() => {\n command = new GetAppConfigurationCommand();\n
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAIO,2CAEPC,EAAqC,2CAErCC,EAA2C,wCAE3C,MAAMC,EAAsB,IAAI,WAAW,CAAC,IAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAEnEC,EAA+B,IAAI,WAAW,CAClD,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAA0B,IAAI,eAAa,CAC/C,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAEKE,EAA0D,IAAI,WAAW,CAC7E,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAAqD,IAAI,eAAa,CAC1E,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAED,SAAS,6BAA8B,IAAM,CAC3C,IAAIE,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,6BACd,
|
|
4
|
+
"sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { PublicKeyDisplayMode } from \"@api/model/PublicKeyDisplayMode\";\n\nimport { GetAppConfigurationCommand } from \"./GetAppConfigurationCommand\";\n\nconst GET_APP_CONFIG_APDU = new Uint8Array([0xe0, 0x04, 0x00, 0x00, 0x00]);\n\nconst GET_APP_CONFIG_RESPONSE_DATA = new Uint8Array([\n 0x01, 0x00, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA,\n});\n\nconst GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE = new Uint8Array([\n 0x01, 0x01, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE,\n});\n\ndescribe(\"GetAppConfigurationCommand\", () => {\n let command: GetAppConfigurationCommand;\n\n beforeEach(() => {\n command = new GetAppConfigurationCommand();\n vi.clearAllMocks();\n vi.importActual(\"@ledgerhq/device-management-kit\");\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toEqual(GET_APP_CONFIG_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response correctly\", () => {\n const parsed = command.parseResponse(GET_APP_CONFIG_RESPONSE);\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n blindSigningEnabled: true,\n pubKeyDisplayMode: PublicKeyDisplayMode.LONG,\n version: \"2.5.10\",\n },\n }),\n );\n });\n\n it(\"should parse the response correctly with short pub key display mode\", () => {\n const parsed = command.parseResponse(\n GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE,\n );\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n blindSigningEnabled: true,\n pubKeyDisplayMode: PublicKeyDisplayMode.SHORT,\n version: \"2.5.10\",\n },\n }),\n );\n });\n\n describe(\"error handling\", () => {\n it(\"should return error if response is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(0),\n });\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n expect.objectContaining({\n _tag: \"SolanaAppCommandError\",\n errorCode: \"6a82\",\n message: \"Invalid off-chain message format\",\n }),\n );\n } else {\n assert.fail(\"Expected error\");\n }\n });\n\n it(\"should return error if response is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(0),\n });\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n expect.objectContaining({\n _tag: \"SolanaAppCommandError\",\n errorCode: \"6a82\",\n message: \"Invalid off-chain message format\",\n }),\n );\n } else {\n assert.fail(\"Expected error\");\n }\n });\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAIO,2CAEPC,EAAqC,2CAErCC,EAA2C,wCAE3C,MAAMC,EAAsB,IAAI,WAAW,CAAC,IAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAEnEC,EAA+B,IAAI,WAAW,CAClD,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAA0B,IAAI,eAAa,CAC/C,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAEKE,EAA0D,IAAI,WAAW,CAC7E,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAAqD,IAAI,eAAa,CAC1E,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAED,SAAS,6BAA8B,IAAM,CAC3C,IAAIE,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,6BACd,GAAG,cAAc,EACjB,GAAG,aAAa,iCAAiC,CACnD,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,iCAAkC,IAAM,CACzC,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,QAAQN,CAAmB,CACvD,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,sCAAuC,IAAM,CAC9C,MAAMO,EAASF,EAAQ,cAAcH,CAAuB,EAC5D,OAAOK,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,oBAAqB,GACrB,kBAAmB,uBAAqB,KACxC,QAAS,QACX,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,sEAAuE,IAAM,CAC9E,MAAMA,EAASF,EAAQ,cACrBD,CACF,EACA,OAAOG,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,oBAAqB,GACrB,kBAAmB,uBAAqB,MACxC,QAAS,QACX,CACF,CAAC,CACH,CACF,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,iDAAkD,IAAM,CACzD,MAAMC,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EACKC,EAASJ,EAAQ,cAAcG,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,EAShC,OAAO,KAAK,gBAAgB,EAR5B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,KAAM,wBACN,UAAW,OACX,QAAS,kCACX,CAAC,CACH,CAIJ,CAAC,EAED,GAAG,iDAAkD,IAAM,CACzD,MAAMD,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EACKC,EAASJ,EAAQ,cAAcG,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,EAShC,OAAO,KAAK,gBAAgB,EAR5B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,KAAM,wBACN,UAAW,OACX,QAAS,kCACX,CAAC,CACH,CAIJ,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_device_management_kit", "import_PublicKeyDisplayMode", "import_GetAppConfigurationCommand", "GET_APP_CONFIG_APDU", "GET_APP_CONFIG_RESPONSE_DATA", "GET_APP_CONFIG_RESPONSE", "GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE", "GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE", "command", "apdu", "parsed", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var c=Object.create;var s=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var g=(r,e)=>{for(var t in e)s(r,t,{get:e[t],enumerable:!0})},m=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of b(e))!C.call(r,a)&&a!==t&&s(r,a,{get:()=>e[a],enumerable:!(n=A(e,a))||n.enumerable});return r};var h=(r,e,t)=>(t=r!=null?c(P(r)):{},m(e||!r||!r.__esModule?s(t,"default",{value:r,enumerable:!0}):t,r)),f=r=>m(s({},"__esModule",{value:!0}),r);var R={};g(R,{GetPubKeyCommand:()=>K});module.exports=f(R);var o=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),u=h(require("bs58")),l=require("purify-ts"),d=require("./utils/SolanaApplicationErrors");const i=32;class K{errorHelper=new p.CommandErrorHelper(d.SOLANA_APP_ERRORS,d.SolanaAppCommandErrorFactory);args;constructor(e){this.args=e}getApdu(){const e={cla:224,ins:5,p1:this.args.checkOnDevice?1:0,p2:0},t=new o.ApduBuilder(e),n=this.args.derivationPath,a=p.DerivationPathUtils.splitPath(n);return t.add8BitUIntToData(a.length),a.forEach(y=>{t.add32BitUIntToData(y)}),t.build()}parseResponse(e){return l.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>{const t=new o.ApduParser(e);if(t.testMinimalLength(i)===!1)return(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("Public key is missing")});const n=t.extractFieldByLength(i);return n===void 0?(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("Unable to extract public key")}):(0,o.CommandResultFactory)({data:u.default.encode(n)})})}}0&&(module.exports={GetPubKeyCommand});
|
|
2
2
|
//# sourceMappingURL=GetPubKeyCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/GetPubKeyCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n
|
|
5
|
-
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,
|
|
6
|
-
"names": ["GetPubKeyCommand_exports", "__export", "GetPubKeyCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_bs58", "
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CommandErrorHelper,\n DerivationPathUtils,\n} from \"@ledgerhq/signer-utils\";\nimport bs58 from \"bs58\";\nimport { Maybe } from \"purify-ts\";\n\nimport { type PublicKey } from \"@api/model/PublicKey\";\n\nimport {\n SOLANA_APP_ERRORS,\n SolanaAppCommandErrorFactory,\n type SolanaAppErrorCodes,\n} from \"./utils/SolanaApplicationErrors\";\n\nconst PUBKEY_LENGTH = 32;\n\ntype GetPubKeyCommandResponse = PublicKey;\ntype GetPubKeyCommandArgs = {\n derivationPath: string;\n checkOnDevice: boolean;\n};\n\nexport class GetPubKeyCommand\n implements\n Command<GetPubKeyCommandResponse, GetPubKeyCommandArgs, SolanaAppErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<\n GetPubKeyCommandResponse,\n SolanaAppErrorCodes\n >(SOLANA_APP_ERRORS, SolanaAppCommandErrorFactory);\n\n args: GetPubKeyCommandArgs;\n\n constructor(args: GetPubKeyCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const getPubKeyArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x05,\n p1: this.args.checkOnDevice ? 0x01 : 0x00,\n p2: 0x00,\n };\n const builder = new ApduBuilder(getPubKeyArgs);\n const derivationPath = this.args.derivationPath;\n\n const path = DerivationPathUtils.splitPath(derivationPath);\n builder.add8BitUIntToData(path.length);\n path.forEach((element) => {\n builder.add32BitUIntToData(element);\n });\n\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetPubKeyCommandResponse, SolanaAppErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n\n if (parser.testMinimalLength(PUBKEY_LENGTH) === false) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Public key is missing\"),\n });\n }\n\n const buffer = parser.extractFieldByLength(PUBKEY_LENGTH);\n if (buffer === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Unable to extract public key\"),\n });\n }\n\n return CommandResultFactory({\n data: bs58.encode(buffer),\n });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAGO,kCACPC,EAAiB,mBACjBC,EAAsB,qBAItBC,EAIO,2CAEP,MAAMC,EAAgB,GAQf,MAAMP,CAGb,CACmB,YAAc,IAAI,qBAGjC,oBAAmB,8BAA4B,EAEjD,KAEA,YAAYQ,EAA4B,CACtC,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAAiC,CACrC,IAAK,IACL,IAAK,EACL,GAAI,KAAK,KAAK,cAAgB,EAAO,EACrC,GAAI,CACN,EACMC,EAAU,IAAI,cAAYD,CAAa,EACvCE,EAAiB,KAAK,KAAK,eAE3BC,EAAO,sBAAoB,UAAUD,CAAc,EACzD,OAAAD,EAAQ,kBAAkBE,EAAK,MAAM,EACrCA,EAAK,QAASC,GAAY,CACxBH,EAAQ,mBAAmBG,CAAO,CACpC,CAAC,EAEMH,EAAQ,MAAM,CACvB,CAEA,cACEI,EAC8D,CAC9D,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAQ,CACpC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAQ,EAEtC,GAAIC,EAAO,kBAAkBR,CAAa,IAAM,GAC9C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,uBAAuB,CAC3D,CAAC,EAGH,MAAMS,EAASD,EAAO,qBAAqBR,CAAa,EACxD,OAAIS,IAAW,UACN,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,8BAA8B,CAClE,CAAC,KAGI,wBAAqB,CAC1B,KAAM,EAAAC,QAAK,OAAOD,CAAM,CAC1B,CAAC,CACH,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["GetPubKeyCommand_exports", "__export", "GetPubKeyCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_bs58", "import_purify_ts", "import_SolanaApplicationErrors", "PUBKEY_LENGTH", "args", "getPubKeyArgs", "builder", "derivationPath", "path", "element", "response", "parser", "buffer", "bs58"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("@ledgerhq/device-management-kit"),s=require("./GetPubKeyCommand");const
|
|
1
|
+
"use strict";var t=require("@ledgerhq/device-management-kit"),s=require("./GetPubKeyCommand");const a=new Uint8Array([224,5,1,0,9,2,128,0,0,44,128,0,1,245]),n=new Uint8Array([224,5,0,0,9,2,128,0,0,44,128,0,1,245]),c=new Uint8Array([224,5,1,0,9,2,128,0,0,44,128,0,1,246]),i=new Uint8Array([178,167,34,220,24,221,92,73,195,244,142,155,7,38,241,27,230,103,134,233,28,172,87,52,152,214,238,136,57,44,201,106,144,0]),d=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i});describe("GetPubKeyCommand",()=>{let r;const o={derivationPath:"44'/501'",checkOnDevice:!0};beforeEach(()=>{r=new s.GetPubKeyCommand(o),vi.clearAllMocks(),vi.importActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return APDU",()=>{const e=r.getApdu();expect(e.getRawApdu()).toEqual(a)}),it("should return APDU without confirm",()=>{r=new s.GetPubKeyCommand({...o,checkOnDevice:!1});const e=r.getApdu();expect(e.getRawApdu()).toEqual(n)}),it("should return APDU with different path",()=>{r=new s.GetPubKeyCommand({...o,derivationPath:"44'/502'"});const e=r.getApdu();expect(e.getRawApdu()).toEqual(c)})}),describe("parseResponse",()=>{it("should parse the response",()=>{const e=r.parseResponse(d);expect(e).toStrictEqual((0,t.CommandResultFactory)({data:"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5"}))}),describe("error handling",()=>{it("should return error if response is not success",()=>{const e=new t.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),x=r.parseResponse(e);expect((0,t.isSuccessCommandResult)(x)).toBe(!1),(0,t.isSuccessCommandResult)(x)?assert.fail("Expected error"):expect(x.error).toEqual(expect.objectContaining({_tag:"SolanaAppCommandError",errorCode:"6a82",message:"Invalid off-chain message format"}))}),it("should return error if public key is missing",()=>{const e=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array(0)}),x=r.parseResponse(e);expect((0,t.isSuccessCommandResult)(x)).toBe(!1),(0,t.isSuccessCommandResult)(x)?assert.fail("Expected error"):expect(x.error.originalError).toEqual(expect.objectContaining({message:"Public key is missing"}))})})})});
|
|
2
2
|
//# sourceMappingURL=GetPubKeyCommand.test.js.map
|