@ledgerhq/device-signer-kit-solana 0.0.0-develop-20250409001307 → 0.0.0-develop-20250514001147
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/api/SignerSolana.js +1 -1
- package/lib/cjs/api/SignerSolana.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/internal/DefaultSignerSolana.js +1 -1
- package/lib/cjs/internal/DefaultSignerSolana.js.map +2 -2
- package/lib/cjs/internal/app-binder/SolanaAppBinder.js +1 -1
- package/lib/cjs/internal/app-binder/SolanaAppBinder.js.map +2 -2
- 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/device-action/SignTransactionDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +2 -2
- 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/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/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/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 +10 -11
- 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/app-binder/SolanaAppBinder.js +1 -1
- package/lib/esm/internal/app-binder/SolanaAppBinder.js.map +2 -2
- 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/device-action/SignTransactionDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +2 -2
- 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/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/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/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 +10 -11
- 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/SignTransactionDeviceActionTypes.d.ts +1 -2
- 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/utils/SolanaApplicationErrors.d.ts.map +1 -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.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/di/appBinderModule.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 +12 -13
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/device-action/SignTransactionDeviceAction.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, type Maybe, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { SignTransactionCommand } from \"@internal/app-binder/command/SignTransactionCommand\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\nimport { SignDataTask } from \"@internal/app-binder/task/SendSignDataTask\";\n\nexport type MachineDependencies = {\n readonly signTransaction: (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n };\n }) => Promise<\n CommandResult<Maybe<Signature | SolanaAppErrorCodes>, SolanaAppErrorCodes>\n >;\n};\n\nexport class SignTransactionDeviceAction extends XStateDeviceAction<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n > {\n type types = StateMachineTypes<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n >;\n\n const { signTransaction } = this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Solana\" },\n }).makeStateMachine(internalApi),\n signTransaction: fromPromise(signTransaction),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AVATgQw1jwGMAXVAewwBEwA3VYsAQTMowDoB5ABzA2Y8etBk1bkqAYghUwHVBjoUA1nIp8BQ5KTykwAWRIALBWADaABgC6iUDwqxUEjLZAAPRABYAzAHYOAJwAHABMFgCMnhYWUSFBvgA0IACeiEEAbOkcAKxBQQGeASG+3tmeISEAvpVJaJi4BERsVCKMLM2cAMJGYMTKvPyCwvRt4uwASnAArgA2pJKWNkgg9o7Orh4IAQEWHN7RvgGH2dne4UHhSakI+Vnpvtkh4eme2Udh3tW16Nj4hCTOVpiDocbq9foaIZA9rOSawWbzMzhJZ2BxOdgbRDbXb7CyHY6nc6XFJpcIcc6+OLebzxCoBbLhL4gOq-RoA9jQsZUDgAcTApG6eBmM34MGksnkihUchgAqMQpFGBgi1cq3RVExCEi+Q4nnO6RC3ji232QSuiBKZPCEQyZwsmSCNKZLIa-w6nJBfLlCtFYEkYBwOAoOA4PBmugAZsGALYcWWC4W+lXLNXrZabbUBXX6w3GgKm803eLk7ZBTwZF6Uz41Zk-V1NQEjYHODgAISmqBmEE6VD0bnmMgwcgUSlUHAARh2uz2MH3SMnUWsMenEOFtv5HhYghEdt5PPvC7ks2v89EAvdwuFDc6638GxymzD2G2p93e2B+-7A8HQ+HSFGcFjSdOzfWcP3naxVTRNNQAzdccjCbc1wsPcDxJBBfFeDgQneDJHgZAib3qO92RaR8uU4AAFIMGAgMAZzncUh0lUc5B4GjUDohjwIXFZoOXWDEBCU4sl8DJwl8Xxogsc8YkLTwxI4TDlMwjJfHSCwqhrF0SPdciQWoihaPo99PwDIMQzDSMY1DDiuNMiCUT4pcNRXBBhO8UTxMk6TZM8QsNO8PYCkpHwghOIIiNZN1G1EJ9uUM4zuP7OEETBPoFkglN+NcwSEFxHEtziB49wCYlrj3XZhM8e5HQiCJCii+tSJofSW0SziTLAlLpjmdLlAWZEoJclw3IKvYiviU5CnKxBsi3DhHT8fd7hwmk9ya3TYtGEEdLZDomOHKUx0cYj9ucXjUwE9xEFKHDyRCfcHhCF411m9zIiU88jXyQ4-CvTbzofOKKI4PaYvYL8LN-azAI4U7ovvKhLpy0a8ru49HoUx5XrKwtqSzfdSgeeILjKmJAYhsiQd228gaoVK+p6DKUZGzVvHghrNKNEoHn89CT2zHYyjOalPIB7S6ap1qaZbcGkYwRm5XBQanKu3KbvyznIm54o-DKQsscW0I3nSZ4TkKalqhrDAKDo+BlnllqPRg5z1TRzWAFp0kLb2OGkgPA4OSmFZd58Bk0YZZeu9WPc2cpCzLEJdRkix5oI-cQ+dtrn36iOoRzhnetIYb3c1dIy11alHWyTIzfSbJEnQvIgmw14t1KwpMOrb4zulsPuS9BNFRgUvXYzc4goZTzgntE980T3wySNPEJPCfZyg5rO9Oj7l2xA5KS+ytm3OeI5FoqGrMiiEofELSlCaJMpsXCx7t+25tnw6+zuqPxcy7chUNOgRHovHwuUbGh5iwETeHEBkcR7Tv2BjtdqdkupziVv1Me11NjFCwshTSKEGTqX5tceauwojiwkluNcb9JZ91DoXTgTsOjYI1psM4+YEKXniK9N4704itx2CUUI4UGTBC0r3RG2dd7MKlgrTBzNlBsLjrdXmCFHT6kiNsV4htPK6keDVFeW4UKZ3odIneKDnzICmMQJgsAHb-3Hl4J4VUXpFGrjEUohY1xZHCLXE4-j8zkIUkg6mVjuQAFFvw4BUZqco1psLuMNDSLx2RDzAMblePU9I7QvWrNUIAA */\n id: \"SignTransactionDeviceAction\",\n initial: \"
|
|
5
|
-
"mappings": "AAAA,OAIE,0BAAAA,EACA,uBAAAC,EAEA,kBAAAC,EACA,2BAAAC,EACA,sBAAAC,MACK,kCACP,OAAS,QAAAC,EAAkB,SAAAC,MAAa,YACxC,OAAS,UAAAC,EAAQ,eAAAC,EAAa,SAAAC,MAAa,SAU3C,OAAS,0BAAAC,MAA8B,sDAEvC,OAAS,gBAAAC,MAAoB,6CAatB,MAAMC,UAAoCR,CAM/C,CACA,iBACES,EAOA,CASA,KAAM,CAAE,gBAAAC,CAAgB,EAAI,KAAK,oBAAoBD,CAAW,EAEhE,OAAOJ,EAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EACA,OAAQ,CACN,oBAAqB,IAAIR,EAAoB,CAC3C,MAAO,CAAE,QAAS,QAAS,CAC7B,CAAC,EAAE,iBAAiBY,CAAW,EAC/B,gBAAiBL,EAAYM,CAAe,CAC9C,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAC,CAAQ,IAAMA,EAAQ,eAAe,QAAU,
|
|
4
|
+
"sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, type Maybe, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { SignTransactionCommand } from \"@internal/app-binder/command/SignTransactionCommand\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\nimport { SignDataTask } from \"@internal/app-binder/task/SendSignDataTask\";\n\nexport type MachineDependencies = {\n readonly signTransaction: (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n };\n }) => Promise<\n CommandResult<Maybe<Signature | SolanaAppErrorCodes>, SolanaAppErrorCodes>\n >;\n};\n\nexport class SignTransactionDeviceAction extends XStateDeviceAction<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n > {\n type types = StateMachineTypes<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n >;\n\n const { signTransaction } = this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Solana\" },\n }).makeStateMachine(internalApi),\n signTransaction: fromPromise(signTransaction),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AVATgQw1jwGMAXVAewwBEwA3VYsAQTMowDoB5ABzA2Y8etBk1bkqAYghUwHVBjoUA1nIp8BQ5KTykwAWRIALBWADaABgC6iUDwqxUEjLZAAPRABYAzAHYOAJwAHABMFgCMnhYWUSFBvgA0IACeiEEAbOkcAKxBQQGeASG+3tmeISEAvpVJaJi4BERsVCKMLM2cAMJGYMTKvPyCwvRt4uwASnAArgA2pJKWNkgg9o7Orh4IAQEWHN7RvgGH2dne4UHhSakI+Vnpvtkh4eme2Udh3tW16Nj4hCTOVpiDocbq9foaIZA9rOSawWbzMzhJZ2BxOdgbRDbXb7CyHY6nc6XFJpcIcc6+OLebzxCoBbLhL4gOq-RoA9jQsZUDgAcTApG6eBmM34MGksnkihUchgAqMQpFGBgi1cq3RVExCEi+Q4nnO6RC3ji232QSuiBKZPCEQyZwsmSCNKZLIa-w6nJBfLlCtFYEkYBwOAoOA4PBmugAZsGALYcWWC4W+lXLNXrZabbUBXX6w3GgKm803eLk7ZBTwZF6Uz41Zk-V1NQEjYHODgAISmqBmEE6VD0bnmMgwcgUSlUHAARh2uz2MH3SMnUWsMenEOFtv5HhYghEdt5PPvC7ks2v89EAvdwuFDc6638GxymzD2G2p93e2B+-7A8HQ+HSFGcFjSdOzfWcP3naxVTRNNQAzdccjCbc1wsPcDxJBBfFeDgQneDJHgZAib3qO92RaR8uU4AAFIMGAgMAZzncUh0lUc5B4GjUDohjwIXFZoOXWDEBCU4sl8DJwl8Xxogsc8YkLTwxI4TDlMwjJfHSCwqhrF0SPdciQWoihaPo99PwDIMQzDSMY1DDiuNMiCUT4pcNRXBBhO8UTxMk6TZM8QsNO8PYCkpHwghOIIiNZN1G1EJ9uUM4zuP7OEETBPoFkglN+NcwSEFxHEtziB49wCYlrj3XZhM8e5HQiCJCii+tSJofSW0SziTLAlLpjmdLlAWZEoJclw3IKvYiviU5CnKxBsi3DhHT8fd7hwmk9ya3TYtGEEdLZDomOHKUx0cYj9ucXjUwE9xEFKHDyRCfcHhCF411m9zIiU88jXyQ4-CvTbzofOKKI4PaYvYL8LN-azAI4U7ovvKhLpy0a8ru49HoUx5XrKwtqSzfdSgeeILjKmJAYhsiQd228gaoVK+p6DKUZGzVvHghrNKNEoHn89CT2zHYyjOalPIB7S6ap1qaZbcGkYwRm5XBQanKu3KbvyznIm54o-DKQsscW0I3nSZ4TkKalqhrDAKDo+BlnllqPRg5z1TRzWAFp0kLb2OGkgPA4OSmFZd58Bk0YZZeu9WPc2cpCzLEJdRkix5oI-cQ+dtrn36iOoRzhnetIYb3c1dIy11alHWyTIzfSbJEnQvIgmw14t1KwpMOrb4zulsPuS9BNFRgUvXYzc4goZTzgntE980T3wySNPEJPCfZyg5rO9Oj7l2xA5KS+ytm3OeI5FoqGrMiiEofELSlCaJMpsXCx7t+25tnw6+zuqPxcy7chUNOgRHovHwuUbGh5iwETeHEBkcR7Tv2BjtdqdkupziVv1Me11NjFCwshTSKEGTqX5tceauwojiwkluNcb9JZ91DoXTgTsOjYI1psM4+YEKXniK9N4704itx2CUUI4UGTBC0r3RG2dd7MKlgrTBzNlBsLjrdXmCFHT6kiNsV4htPK6keDVFeW4UKZ3odIneKDnzICmMQJgsAHb-3Hl4J4VUXpFGrjEUohY1xZHCLXE4-j8zkIUkg6mVjuQAFFvw4BUZqco1psLuMNDSLx2RDzAMblePU9I7QvWrNUIAA */\n id: \"SignTransactionDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n signature: null,\n },\n };\n },\n states: {\n InitialState: {\n always: [\n {\n target: \"SignTransaction\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Solana\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignTransactionDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"SignTransaction\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n SignTransaction: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signTransaction\",\n src: \"signTransaction\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n serializedTransaction: context.input.transaction,\n }),\n onDone: {\n target: \"SignTransactionResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (!isSuccessCommandResult(event.output))\n return {\n ...context._internalState,\n error: event.output.error,\n };\n\n const data = event.output.data.extract();\n if (\n event.output.data.isJust() &&\n data instanceof Uint8Array\n )\n return {\n ...context._internalState,\n signature: data,\n };\n\n return {\n ...context._internalState,\n error: new UnknownDAError(\"No Signature available\"),\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransactionResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error or signature available\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const signTransaction = async (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n };\n }) => {\n return new SignDataTask(internalApi, {\n commandFactory: (args) =>\n new SignTransactionCommand({\n serializedTransaction: args.chunkedData,\n more: args.more,\n extend: args.extend,\n }),\n derivationPath: arg0.input.derivationPath,\n sendingData: arg0.input.serializedTransaction,\n }).run();\n };\n\n return {\n signTransaction,\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["isSuccessCommandResult", "OpenAppDeviceAction", "UnknownDAError", "UserInteractionRequired", "XStateDeviceAction", "Left", "Right", "assign", "fromPromise", "setup", "SignTransactionCommand", "SignDataTask", "SignTransactionDeviceAction", "internalApi", "signTransaction", "context", "_", "input", "error", "event", "data", "arg0", "args"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{CommandResultFactory as
|
|
1
|
+
import{CommandResultFactory as p,DeviceActionStatus as n,InvalidStatusWordError as g,UnknownDAError as v,UserInteractionRequired as i}from"@ledgerhq/device-management-kit";import{Just as A,Nothing as x}from"purify-ts";import{makeDeviceActionInternalApiMock as d}from"../../app-binder/device-action/__test-utils__/makeInternalApi";import{setupOpenAppDAMock as l}from"../../app-binder/device-action/__test-utils__/setupOpenAppDAMock";import{testDeviceActionStates as m}from"../../app-binder/device-action/__test-utils__/testDeviceActionStates";import{SignTransactionDeviceAction as u}from"./SignTransactionDeviceAction";vi.mock("@ledgerhq/device-management-kit",async o=>({...await o(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignTransactionDeviceAction",()=>{const o=vi.fn();function c(){return{signTransaction:o}}let s;beforeEach(()=>{vi.clearAllMocks(),s=new Uint8Array([1,2,3])}),describe("Happy path",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((r,t)=>{l();const e=new u({input:{derivationPath:"44'/501'/0'/0'",transaction:s,skipOpenApp:!1}});o.mockResolvedValueOnce(p({data:A(new Uint8Array([5,6,7]))})),vi.spyOn(e,"extractDependencies").mockReturnValue(c());const a=[{intermediateValue:{requiredUserInteraction:i.None},status:n.Pending},{intermediateValue:{requiredUserInteraction:i.ConfirmOpenApp},status:n.Pending},{intermediateValue:{requiredUserInteraction:i.SignTransaction},status:n.Pending},{output:new Uint8Array([5,6,7]),status:n.Completed}];m(e,a,d(),{onError:t,onDone:()=>{expect(o).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/501'/0'/0'",serializedTransaction:new Uint8Array([1,2,3])}})),r()}})})),it("should be successful while skipping OpenApp",()=>new Promise((r,t)=>{l();const e=new u({input:{derivationPath:"44'/501'/0'/0'",transaction:s,skipOpenApp:!0}});o.mockResolvedValueOnce(p({data:A(new Uint8Array([5,6,7]))})),vi.spyOn(e,"extractDependencies").mockReturnValue(c());const a=[{intermediateValue:{requiredUserInteraction:i.SignTransaction},status:n.Pending},{output:new Uint8Array([5,6,7]),status:n.Completed}];m(e,a,d(),{onError:t,onDone:r})}))}),describe("OpenApp errors",()=>{it("should fail if OpenApp throw an error",()=>new Promise((r,t)=>{l(new v("OpenApp error"));const e=new u({input:{derivationPath:"44'/501'/0'/0'",transaction:s,skipOpenApp:!1}});vi.spyOn(e,"extractDependencies").mockReturnValue(c());const a=[{intermediateValue:{requiredUserInteraction:i.None},status:n.Pending},{intermediateValue:{requiredUserInteraction:i.ConfirmOpenApp},status:n.Pending},{error:new v("OpenApp error"),status:n.Error}];m(e,a,d(),{onDone:r,onError:t})}))}),describe("SignTransaction errors",()=>{it("should fail if signTransaction returns an error",()=>new Promise((r,t)=>{l();const e=new u({input:{derivationPath:"44'/501'/0'/0'",transaction:s,skipOpenApp:!1}});o.mockResolvedValueOnce(p({error:new g("signTransaction error")})),vi.spyOn(e,"extractDependencies").mockReturnValue(c());const a=[{intermediateValue:{requiredUserInteraction:i.None},status:n.Pending},{intermediateValue:{requiredUserInteraction:i.ConfirmOpenApp},status:n.Pending},{intermediateValue:{requiredUserInteraction:i.SignTransaction},status:n.Pending},{error:new g("signTransaction error"),status:n.Error}];m(e,a,d(),{onDone:r,onError:t})})),it("should fail if signTransaction returns nothing",()=>new Promise((r,t)=>{l();const e=new u({input:{derivationPath:"44'/501'/0'/0'",transaction:s,skipOpenApp:!1}});o.mockResolvedValueOnce(p({data:x})),vi.spyOn(e,"extractDependencies").mockReturnValue(c());const a=[{intermediateValue:{requiredUserInteraction:i.None},status:n.Pending},{intermediateValue:{requiredUserInteraction:i.ConfirmOpenApp},status:n.Pending},{intermediateValue:{requiredUserInteraction:i.SignTransaction},status:n.Pending},{error:new v("No Signature available"),status:n.Error}];m(e,a,d(),{onDone:r,onError:t})}))}),describe("extractDependencies",()=>{it("should extract dependencies",async()=>{const r=new u({input:{derivationPath:"44'/501'/0'/0'",transaction:s,skipOpenApp:!1}}),t=d();vi.spyOn(t,"sendCommand").mockResolvedValue(p({data:A(new Uint8Array([5,6,7]))}));const e=r.extractDependencies(t),a=await e.signTransaction({input:{derivationPath:"44'/501'/0'/0'",serializedTransaction:s}});expect(e.signTransaction).toBeInstanceOf(Function),expect(a).toEqual(p({data:A(new Uint8Array([5,6,7]))})),expect(t.sendCommand).toHaveBeenCalledTimes(1)})})});
|
|
2
2
|
//# sourceMappingURL=SignTransactionDeviceAction.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/device-action/SignTransactionDeviceAction.test.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports: off */\nimport {\n CommandResultFactory,\n DeviceActionStatus,\n InvalidStatusWordError,\n UnknownDAError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { type SignTransactionDAState } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\n\nimport { SignTransactionDeviceAction } from \"./SignTransactionDeviceAction\";\n\nvi.mock(\"@ledgerhq/device-management-kit\", async (importOriginal) => {\n const original =\n await importOriginal<typeof import(\"@ledgerhq/device-management-kit\")>();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n});\n\ndescribe(\"SignTransactionDeviceAction\", () => {\n const signTransactionMock = vi.fn();\n function extractDependenciesMock() {\n return {\n signTransaction: signTransactionMock,\n };\n }\n const defaultOptions = {};\n let defaultTransaction: Transaction;\n\n beforeEach(() => {\n vi.clearAllMocks();\n defaultTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n });\n\n describe(\"Happy path\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n options: defaultOptions,\n },\n });\n\n // Mock the dependencies to return some sample data\n signTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: Just(new Uint8Array([0x05, 0x06, 0x07])),\n }),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> GetChallenge -> BuildContext -> ProvideContext -> SignTransaction\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n // Final state\n {\n output: new Uint8Array([0x05, 0x06, 0x07]),\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onError: reject,\n onDone: () => {\n // Verify mocks calls parameters\n expect(signTransactionMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n serializedTransaction: new Uint8Array([0x01, 0x02, 0x03]),\n },\n }),\n );\n resolve();\n },\n },\n );\n }));\n });\n\n describe(\"OpenApp errors\", () => {\n it(\"should fail if OpenApp throw an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDAError(\"OpenApp error\"));\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n options: defaultOptions,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp error\n {\n error: new UnknownDAError(\"OpenApp error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"SignTransaction errors\", () => {\n it(\"should fail if signTransaction returns an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n options: defaultOptions,\n },\n });\n\n signTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"signTransaction error\"),\n }),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction error\n {\n error: new InvalidStatusWordError(\"signTransaction error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should fail if signTransaction returns nothing\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n options: defaultOptions,\n },\n });\n\n signTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: Nothing,\n }),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction error\n {\n error: new UnknownDAError(\"No Signature available\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"extractDependencies\", () => {\n it(\"should extract dependencies\", async () => {\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n options: defaultOptions,\n },\n });\n // mock sendCommand to return a successful result\n const api = makeDeviceActionInternalApiMock();\n vi.spyOn(api, \"sendCommand\").mockResolvedValue(\n CommandResultFactory({\n data: Just(new Uint8Array([0x05, 0x06, 0x07])),\n }),\n );\n\n const dependencies = deviceAction.extractDependencies(\n makeDeviceActionInternalApiMock(),\n );\n const signature = await dependencies.signTransaction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n serializedTransaction: defaultTransaction,\n },\n });\n\n expect(dependencies.signTransaction).toBeInstanceOf(Function);\n expect(signature).toEqual(\n CommandResultFactory({\n data: Just(new Uint8Array([0x05, 0x06, 0x07])),\n }),\n );\n expect(api.sendCommand).toHaveBeenCalledTimes(1);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "AACA,OACE,wBAAAA,EACA,sBAAAC,EACA,0BAAAC,EACA,kBAAAC,EACA,2BAAAC,MACK,kCACP,OAAS,QAAAC,EAAM,WAAAC,MAAe,YAI9B,OAAS,mCAAAC,MAAuC,oEAChD,OAAS,sBAAAC,MAA0B,uEACnC,OAAS,0BAAAC,MAA8B,2EAEvC,OAAS,+BAAAC,MAAmC,gCAE5C,GAAG,KAAK,kCAAmC,MAAOC,IAGzC,CACL,GAFA,MAAMA,EAAiE,EAGvE,oBAAqB,GAAG,GAAG,KAAO,CAChC,iBAAkB,GAAG,GAAG,CAC1B,EAAE,CACJ,EACD,EAED,SAAS,8BAA+B,IAAM,CAC5C,MAAMC,EAAsB,GAAG,GAAG,EAClC,SAASC,GAA0B,CACjC,MAAO,CACL,gBAAiBD,CACnB,CACF,CACA,
|
|
6
|
-
"names": ["CommandResultFactory", "DeviceActionStatus", "InvalidStatusWordError", "UnknownDAError", "UserInteractionRequired", "Just", "Nothing", "makeDeviceActionInternalApiMock", "setupOpenAppDAMock", "testDeviceActionStates", "SignTransactionDeviceAction", "importOriginal", "signTransactionMock", "extractDependenciesMock", "
|
|
4
|
+
"sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports: off */\nimport {\n CommandResultFactory,\n DeviceActionStatus,\n InvalidStatusWordError,\n UnknownDAError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { type SignTransactionDAState } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\n\nimport { SignTransactionDeviceAction } from \"./SignTransactionDeviceAction\";\n\nvi.mock(\"@ledgerhq/device-management-kit\", async (importOriginal) => {\n const original =\n await importOriginal<typeof import(\"@ledgerhq/device-management-kit\")>();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n});\n\ndescribe(\"SignTransactionDeviceAction\", () => {\n const signTransactionMock = vi.fn();\n function extractDependenciesMock() {\n return {\n signTransaction: signTransactionMock,\n };\n }\n let defaultTransaction: Transaction;\n\n beforeEach(() => {\n vi.clearAllMocks();\n defaultTransaction = new Uint8Array([0x01, 0x02, 0x03]);\n });\n\n describe(\"Happy path\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n signTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: Just(new Uint8Array([0x05, 0x06, 0x07])),\n }),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> GetChallenge -> BuildContext -> ProvideContext -> SignTransaction\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n // Final state\n {\n output: new Uint8Array([0x05, 0x06, 0x07]),\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onError: reject,\n onDone: () => {\n // Verify mocks calls parameters\n expect(signTransactionMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n serializedTransaction: new Uint8Array([0x01, 0x02, 0x03]),\n },\n }),\n );\n resolve();\n },\n },\n );\n }));\n\n it(\"should be successful while skipping OpenApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n skipOpenApp: true,\n },\n });\n\n // Mock the dependencies to return some sample data\n signTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: Just(new Uint8Array([0x05, 0x06, 0x07])),\n }),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n // Expected intermediate values for the following state sequence:\n const expectedStates: Array<SignTransactionDAState> = [\n // SignTransaction state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n // Final state\n {\n output: new Uint8Array([0x05, 0x06, 0x07]),\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onError: reject,\n onDone: resolve,\n },\n );\n }));\n });\n\n describe(\"OpenApp errors\", () => {\n it(\"should fail if OpenApp throw an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDAError(\"OpenApp error\"));\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n skipOpenApp: false,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp error\n {\n error: new UnknownDAError(\"OpenApp error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"SignTransaction errors\", () => {\n it(\"should fail if signTransaction returns an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n skipOpenApp: false,\n },\n });\n\n signTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"signTransaction error\"),\n }),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction error\n {\n error: new InvalidStatusWordError(\"signTransaction error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should fail if signTransaction returns nothing\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n skipOpenApp: false,\n },\n });\n\n signTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: Nothing,\n }),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n // Initial state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp interaction\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction state\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n // SignTransaction error\n {\n error: new UnknownDAError(\"No Signature available\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"extractDependencies\", () => {\n it(\"should extract dependencies\", async () => {\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n transaction: defaultTransaction,\n skipOpenApp: false,\n },\n });\n // mock sendCommand to return a successful result\n const api = makeDeviceActionInternalApiMock();\n vi.spyOn(api, \"sendCommand\").mockResolvedValue(\n CommandResultFactory({\n data: Just(new Uint8Array([0x05, 0x06, 0x07])),\n }),\n );\n\n const dependencies = deviceAction.extractDependencies(api);\n const signature = await dependencies.signTransaction({\n input: {\n derivationPath: \"44'/501'/0'/0'\",\n serializedTransaction: defaultTransaction,\n },\n });\n\n expect(dependencies.signTransaction).toBeInstanceOf(Function);\n expect(signature).toEqual(\n CommandResultFactory({\n data: Just(new Uint8Array([0x05, 0x06, 0x07])),\n }),\n );\n expect(api.sendCommand).toHaveBeenCalledTimes(1);\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["CommandResultFactory", "DeviceActionStatus", "InvalidStatusWordError", "UnknownDAError", "UserInteractionRequired", "Just", "Nothing", "makeDeviceActionInternalApiMock", "setupOpenAppDAMock", "testDeviceActionStates", "SignTransactionDeviceAction", "importOriginal", "signTransactionMock", "extractDependenciesMock", "defaultTransaction", "resolve", "reject", "deviceAction", "expectedStates", "api", "dependencies", "signature"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
function e(){return{sendApdu:vi.fn(),sendCommand:vi.fn().mockResolvedValue(void 0),getDeviceModel:vi.fn(),getDeviceSessionState:vi.fn(),getDeviceSessionStateObservable:vi.fn(),setDeviceSessionState:vi.fn(),getManagerApiService:vi.fn(),getSecureChannelService:vi.fn(),disableRefresher:vi.fn()}}export{e as makeDeviceActionInternalApiMock};
|
|
2
2
|
//# sourceMappingURL=makeInternalApi.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/makeInternalApi.ts"],
|
|
4
|
-
"sourcesContent": ["import { type InternalApi } from \"@ledgerhq/device-management-kit\";\nimport { type Mocked } from \"vitest\";\n\
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { type InternalApi } from \"@ledgerhq/device-management-kit\";\nimport { type Mocked } from \"vitest\";\n\nexport function makeDeviceActionInternalApiMock(): Mocked<InternalApi> {\n return {\n sendApdu: vi.fn(),\n sendCommand: vi.fn().mockResolvedValue(undefined),\n getDeviceModel: vi.fn(),\n getDeviceSessionState: vi.fn(),\n getDeviceSessionStateObservable: vi.fn(),\n setDeviceSessionState: vi.fn(),\n getManagerApiService: vi.fn(),\n getSecureChannelService: vi.fn(),\n disableRefresher: vi.fn(),\n };\n}\n"],
|
|
5
|
+
"mappings": "AAGO,SAASA,GAAuD,CACrE,MAAO,CACL,SAAU,GAAG,GAAG,EAChB,YAAa,GAAG,GAAG,EAAE,kBAAkB,MAAS,EAChD,eAAgB,GAAG,GAAG,EACtB,sBAAuB,GAAG,GAAG,EAC7B,gCAAiC,GAAG,GAAG,EACvC,sBAAuB,GAAG,GAAG,EAC7B,qBAAsB,GAAG,GAAG,EAC5B,wBAAyB,GAAG,GAAG,EAC/B,iBAAkB,GAAG,GAAG,CAC1B,CACF",
|
|
6
|
+
"names": ["makeDeviceActionInternalApiMock"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ContainerModule as
|
|
1
|
+
import{ContainerModule as p}from"inversify";import{appBinderTypes as r}from"../../app-binder/di/appBinderTypes";import{SolanaAppBinder as e}from"../../app-binder/SolanaAppBinder";const a=()=>new p(({bind:o})=>{o(r.AppBinder).to(e)});export{a as appBinderModuleFactory};
|
|
2
2
|
//# sourceMappingURL=appBinderModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/di/appBinderModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nexport const appBinderModuleFactory = () =>\n new ContainerModule(
|
|
5
|
-
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,yCAC/B,OAAS,mBAAAC,MAAuB,uCAEzB,MAAMC,EAAyB,IACpC,IAAIH,
|
|
6
|
-
"names": ["ContainerModule", "appBinderTypes", "SolanaAppBinder", "appBinderModuleFactory", "bind"
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nexport const appBinderModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(appBinderTypes.AppBinder).to(SolanaAppBinder);\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,yCAC/B,OAAS,mBAAAC,MAAuB,uCAEzB,MAAMC,EAAyB,IACpC,IAAIH,EAAgB,CAAC,CAAE,KAAAI,CAAK,IAAM,CAChCA,EAAKH,EAAe,SAAS,EAAE,GAAGC,CAAe,CACnD,CAAC",
|
|
6
|
+
"names": ["ContainerModule", "appBinderTypes", "SolanaAppBinder", "appBinderModuleFactory", "bind"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as r}from"inversify";import{appBinderModuleFactory as t}from"./appBinderModule";describe("appBinderModule",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=t(),o=new r,o.
|
|
1
|
+
import{Container as r}from"inversify";import{appBinderModuleFactory as t}from"./appBinderModule";describe("appBinderModule",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=t(),o=new r,o.loadSync(e)}),it("should return appBinder module",()=>{expect(e).toBeDefined()})})});
|
|
2
2
|
//# sourceMappingURL=appBinderModule.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/di/appBinderModule.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./appBinderModule\";\n\ndescribe(\"appBinderModule\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof appBinderModuleFactory>;\n beforeEach(() => {\n mod = appBinderModuleFactory();\n container = new Container();\n container.
|
|
5
|
-
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,kBAAmB,IAAM,CAChC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,
|
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./appBinderModule\";\n\ndescribe(\"appBinderModule\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof appBinderModuleFactory>;\n beforeEach(() => {\n mod = appBinderModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return appBinder module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,kBAAmB,IAAM,CAChC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["Container", "appBinderModuleFactory", "container", "mod"]
|
|
7
7
|
}
|
package/lib/esm/internal/di.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as i}from"inversify";import{appBinderModuleFactory as r}from"./app-binder/di/appBinderModule";import{useCasesModuleFactory as a}from"./use-cases/di/useCasesModule";import{externalTypes as o}from"./externalTypes";const
|
|
1
|
+
import{Container as i}from"inversify";import{appBinderModuleFactory as r}from"./app-binder/di/appBinderModule";import{useCasesModuleFactory as a}from"./use-cases/di/useCasesModule";import{externalTypes as o}from"./externalTypes";const d=({dmk:n,sessionId:t})=>{const e=new i;return e.bind(o.Dmk).toConstantValue(n),e.bind(o.SessionId).toConstantValue(t),e.loadSync(r(),a()),e};export{d as makeContainer};
|
|
2
2
|
//# sourceMappingURL=di.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/internal/di.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { Container } from \"inversify\";\n\
|
|
5
|
-
"mappings": "AAIA,OAAS,aAAAA,MAAiB,
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./app-binder/di/appBinderModule\";\nimport { useCasesModuleFactory } from \"./use-cases/di/useCasesModule\";\nimport { externalTypes } from \"./externalTypes\";\n\nexport type MakeContainerProps = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\nexport const makeContainer = ({ dmk, sessionId }: MakeContainerProps) => {\n const container = new Container();\n\n container.bind<DeviceManagementKit>(externalTypes.Dmk).toConstantValue(dmk);\n container\n .bind<DeviceSessionId>(externalTypes.SessionId)\n .toConstantValue(sessionId);\n\n container.loadSync(appBinderModuleFactory(), useCasesModuleFactory());\n\n return container;\n};\n"],
|
|
5
|
+
"mappings": "AAIA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,kCACvC,OAAS,yBAAAC,MAA6B,gCACtC,OAAS,iBAAAC,MAAqB,kBAMvB,MAAMC,EAAgB,CAAC,CAAE,IAAAC,EAAK,UAAAC,CAAU,IAA0B,CACvE,MAAMC,EAAY,IAAIP,EAEtB,OAAAO,EAAU,KAA0BJ,EAAc,GAAG,EAAE,gBAAgBE,CAAG,EAC1EE,EACG,KAAsBJ,EAAc,SAAS,EAC7C,gBAAgBG,CAAS,EAE5BC,EAAU,SAASN,EAAuB,EAAGC,EAAsB,CAAC,EAE7DK,CACT",
|
|
6
6
|
"names": ["Container", "appBinderModuleFactory", "useCasesModuleFactory", "externalTypes", "makeContainer", "dmk", "sessionId", "container"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=(
|
|
1
|
+
var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=(n,p,e,i)=>{for(var r=i>1?void 0:i?s(p,e):p,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(i?c(p,e,r):c(r))||r);return i&&r&&a(p,e,r),r},m=(n,p)=>(e,i)=>p(e,i,n);import{inject as A,injectable as f}from"inversify";import{appBinderTypes as l}from"../../app-binder/di/appBinderTypes";let t=class{constructor(p){this.appBinder=p}execute(p,e){return this.appBinder.getAddress({derivationPath:p,checkOnDevice:e?.checkOnDevice??!1,skipOpenApp:e?.skipOpenApp??!1})}};t=d([f(),m(0,A(l.AppBinder))],t);export{t as GetAddressUseCase};
|
|
2
2
|
//# sourceMappingURL=GetAddressUseCase.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/address/GetAddressUseCase.ts"],
|
|
4
|
-
"sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class GetAddressUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this.appBinder.getAddress({\n derivationPath,\n checkOnDevice: options?.checkOnDevice ?? false,\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAwB,CAC7B,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACwB,CACxB,OAAO,KAAK,UAAU,WAAW,CAC/B,eAAAD,EACA,cAAeC,GAAS,eAAiB,
|
|
4
|
+
"sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class GetAddressUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this.appBinder.getAddress({\n derivationPath,\n checkOnDevice: options?.checkOnDevice ?? false,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAwB,CAC7B,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACwB,CACxB,OAAO,KAAK,UAAU,WAAW,CAC/B,eAAAD,EACA,cAAeC,GAAS,eAAiB,GACzC,YAAaA,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EAfaH,EAANI,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAFvBR",
|
|
6
6
|
"names": ["inject", "injectable", "appBinderTypes", "GetAddressUseCase", "appBinder", "derivationPath", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{GetAddressUseCase as
|
|
1
|
+
import{GetAddressUseCase as p}from"./GetAddressUseCase";describe("GetAddressUseCase",()=>{const e="44'/501'",s="some-address",t=vi.fn().mockReturnValue(s),r={getAddress:t};let d;beforeEach(()=>{vi.clearAllMocks(),d=new p(r)}),it("should return the address from the appBinder's getAddress method",()=>{const o=d.execute(e,{checkOnDevice:!0,skipOpenApp:!0});expect(o).toEqual(s),expect(t).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0,skipOpenApp:!0})}),it("should return the address from the appBinder's getAddress method with default options",()=>{const n=d.execute(e);expect(n).toEqual(s),expect(t).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!1,skipOpenApp:!1})})});
|
|
2
2
|
//# sourceMappingURL=GetAddressUseCase.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/address/GetAddressUseCase.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { GetAddressUseCase } from \"./GetAddressUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n const derivationPath = \"44'/501'\";\n const address = \"some-address\";\n const getAddressMock = vi.fn().mockReturnValue(address);\n const appBinderMock = {\n getAddress: getAddressMock,\n } as unknown as SolanaAppBinder;\n let useCase: GetAddressUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new GetAddressUseCase(appBinderMock);\n });\n\n it(\"should return the address from the appBinder's getAddress method\", () => {\n // GIVEN\n const checkOnDevice = true;\n\n // WHEN\n const result = useCase.execute(derivationPath, {
|
|
5
|
-
"mappings": "AAEA,OAAS,qBAAAA,MAAyB,sBAElC,SAAS,oBAAqB,IAAM,CAClC,MAAMC,EAAiB,WACjBC,EAAU,eACVC,EAAiB,GAAG,GAAG,EAAE,gBAAgBD,CAAO,EAChDE,EAAgB,CACpB,WAAYD,CACd,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIL,EAAkBI,CAAa,CAC/C,CAAC,EAED,GAAG,mEAAoE,IAAM,
|
|
4
|
+
"sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { GetAddressUseCase } from \"./GetAddressUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n const derivationPath = \"44'/501'\";\n const address = \"some-address\";\n const getAddressMock = vi.fn().mockReturnValue(address);\n const appBinderMock = {\n getAddress: getAddressMock,\n } as unknown as SolanaAppBinder;\n let useCase: GetAddressUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new GetAddressUseCase(appBinderMock);\n });\n\n it(\"should return the address from the appBinder's getAddress method\", () => {\n // GIVEN\n const checkOnDevice = true;\n const skipOpenApp = true;\n\n // WHEN\n const result = useCase.execute(derivationPath, {\n checkOnDevice,\n skipOpenApp,\n });\n\n // THEN\n expect(result).toEqual(address);\n expect(getAddressMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice,\n skipOpenApp,\n });\n });\n\n it(\"should return the address from the appBinder's getAddress method with default options\", () => {\n // WHEN\n const result = useCase.execute(derivationPath);\n\n // THEN\n expect(result).toEqual(address);\n expect(getAddressMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice: false,\n skipOpenApp: false,\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,qBAAAA,MAAyB,sBAElC,SAAS,oBAAqB,IAAM,CAClC,MAAMC,EAAiB,WACjBC,EAAU,eACVC,EAAiB,GAAG,GAAG,EAAE,gBAAgBD,CAAO,EAChDE,EAAgB,CACpB,WAAYD,CACd,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIL,EAAkBI,CAAa,CAC/C,CAAC,EAED,GAAG,mEAAoE,IAAM,CAM3E,MAAME,EAASD,EAAQ,QAAQJ,EAAgB,CAC7C,iBACA,cACF,CAAC,EAGD,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAc,EAAE,qBAAqB,CAC1C,eAAAF,EACA,iBACA,cACF,CAAC,CACH,CAAC,EAED,GAAG,wFAAyF,IAAM,CAEhG,MAAMK,EAASD,EAAQ,QAAQJ,CAAc,EAG7C,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAc,EAAE,qBAAqB,CAC1C,eAAAF,EACA,cAAe,GACf,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["GetAddressUseCase", "derivationPath", "address", "getAddressMock", "appBinderMock", "useCase", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ContainerModule as o}from"inversify";import{GetAddressUseCase as t}from"../../use-cases/address/GetAddressUseCase";import{GetAppConfigurationUseCase as
|
|
1
|
+
import{ContainerModule as o}from"inversify";import{GetAddressUseCase as t}from"../../use-cases/address/GetAddressUseCase";import{GetAppConfigurationUseCase as r}from"../../use-cases/app-configuration/GetAppConfigurationUseCase";import{useCasesTypes as s}from"../../use-cases/di/useCasesTypes";import{SignMessageUseCase as a}from"../../use-cases/message/SignMessageUseCase";import{SignTransactionUseCase as i}from"../../use-cases/transaction/SignTransactionUseCase";const U=()=>new o(({bind:e})=>{e(s.GetAddressUseCase).to(t),e(s.GetAppConfigurationUseCase).to(r),e(s.SignTransactionUseCase).to(i),e(s.SignMessageUseCase).to(a)});export{U as useCasesModuleFactory};
|
|
2
2
|
//# sourceMappingURL=useCasesModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/di/useCasesModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { GetAddressUseCase } from \"@internal/use-cases/address/GetAddressUseCase\";\nimport { GetAppConfigurationUseCase } from \"@internal/use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"@internal/use-cases/di/useCasesTypes\";\nimport { SignMessageUseCase } from \"@internal/use-cases/message/SignMessageUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\n\nexport const useCasesModuleFactory = () =>\n new ContainerModule(
|
|
5
|
-
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,qBAAAC,MAAyB,gDAClC,OAAS,8BAAAC,MAAkC,mEAC3C,OAAS,iBAAAC,MAAqB,uCAC9B,OAAS,sBAAAC,MAA0B,iDACnC,OAAS,0BAAAC,MAA8B,yDAEhC,MAAMC,EAAwB,IACnC,IAAIN,
|
|
6
|
-
"names": ["ContainerModule", "GetAddressUseCase", "GetAppConfigurationUseCase", "useCasesTypes", "SignMessageUseCase", "SignTransactionUseCase", "useCasesModuleFactory", "bind"
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { GetAddressUseCase } from \"@internal/use-cases/address/GetAddressUseCase\";\nimport { GetAppConfigurationUseCase } from \"@internal/use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"@internal/use-cases/di/useCasesTypes\";\nimport { SignMessageUseCase } from \"@internal/use-cases/message/SignMessageUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\n\nexport const useCasesModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(useCasesTypes.GetAddressUseCase).to(GetAddressUseCase);\n bind(useCasesTypes.GetAppConfigurationUseCase).to(\n GetAppConfigurationUseCase,\n );\n bind(useCasesTypes.SignTransactionUseCase).to(SignTransactionUseCase);\n bind(useCasesTypes.SignMessageUseCase).to(SignMessageUseCase);\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,qBAAAC,MAAyB,gDAClC,OAAS,8BAAAC,MAAkC,mEAC3C,OAAS,iBAAAC,MAAqB,uCAC9B,OAAS,sBAAAC,MAA0B,iDACnC,OAAS,0BAAAC,MAA8B,yDAEhC,MAAMC,EAAwB,IACnC,IAAIN,EAAgB,CAAC,CAAE,KAAAO,CAAK,IAAM,CAChCA,EAAKJ,EAAc,iBAAiB,EAAE,GAAGF,CAAiB,EAC1DM,EAAKJ,EAAc,0BAA0B,EAAE,GAC7CD,CACF,EACAK,EAAKJ,EAAc,sBAAsB,EAAE,GAAGE,CAAsB,EACpEE,EAAKJ,EAAc,kBAAkB,EAAE,GAAGC,CAAkB,CAC9D,CAAC",
|
|
6
|
+
"names": ["ContainerModule", "GetAddressUseCase", "GetAppConfigurationUseCase", "useCasesTypes", "SignMessageUseCase", "SignTransactionUseCase", "useCasesModuleFactory", "bind"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Container as o}from"inversify";import{useCasesModuleFactory as i}from"./useCasesModule";import{useCasesTypes as s}from"./useCasesTypes";describe("useCasesModuleFactory",()=>{describe("Default",()=>{let e,t;beforeEach(()=>{t=i(),e=new o,e.
|
|
1
|
+
import{Container as o}from"inversify";import{useCasesModuleFactory as i}from"./useCasesModule";import{useCasesTypes as s}from"./useCasesTypes";describe("useCasesModuleFactory",()=>{describe("Default",()=>{let e,t;beforeEach(()=>{t=i(),e=new o,e.loadSync(t)}),it("should return the address module",()=>{expect(t).toBeDefined()}),it("should bind GetAddressUseCase",()=>{expect(e.isBound(s.GetAddressUseCase)).toBeTruthy()}),it("should bind GetAppConfigurationUseCase",()=>{expect(e.isBound(s.GetAppConfigurationUseCase)).toBeTruthy()}),it("should bind SignTransactionUseCase",()=>{expect(e.isBound(s.SignTransactionUseCase)).toBeTruthy()}),it("should bind SignMessageUseCase",()=>{expect(e.isBound(s.SignMessageUseCase)).toBeTruthy()})})});
|
|
2
2
|
//# sourceMappingURL=useCasesModule.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/di/useCasesModule.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { useCasesModuleFactory } from \"./useCasesModule\";\nimport { useCasesTypes } from \"./useCasesTypes\";\n\ndescribe(\"useCasesModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof useCasesModuleFactory>;\n beforeEach(() => {\n mod = useCasesModuleFactory();\n container = new Container();\n container.
|
|
5
|
-
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,yBAAAC,MAA6B,mBACtC,OAAS,iBAAAC,MAAqB,kBAE9B,SAAS,wBAAyB,IAAM,CACtC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAsB,EAC5BE,EAAY,IAAIH,EAChBG,EAAU,
|
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { useCasesModuleFactory } from \"./useCasesModule\";\nimport { useCasesTypes } from \"./useCasesTypes\";\n\ndescribe(\"useCasesModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof useCasesModuleFactory>;\n beforeEach(() => {\n mod = useCasesModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the address module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should bind GetAddressUseCase\", () => {\n expect(container.isBound(useCasesTypes.GetAddressUseCase)).toBeTruthy();\n });\n\n it(\"should bind GetAppConfigurationUseCase\", () => {\n expect(\n container.isBound(useCasesTypes.GetAppConfigurationUseCase),\n ).toBeTruthy();\n });\n\n it(\"should bind SignTransactionUseCase\", () => {\n expect(\n container.isBound(useCasesTypes.SignTransactionUseCase),\n ).toBeTruthy();\n });\n\n it(\"should bind SignMessageUseCase\", () => {\n expect(container.isBound(useCasesTypes.SignMessageUseCase)).toBeTruthy();\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,yBAAAC,MAA6B,mBACtC,OAAS,iBAAAC,MAAqB,kBAE9B,SAAS,wBAAyB,IAAM,CACtC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAsB,EAC5BE,EAAY,IAAIH,EAChBG,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,gCAAiC,IAAM,CACxC,OAAOD,EAAU,QAAQD,EAAc,iBAAiB,CAAC,EAAE,WAAW,CACxE,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,OACEC,EAAU,QAAQD,EAAc,0BAA0B,CAC5D,EAAE,WAAW,CACf,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,OACEC,EAAU,QAAQD,EAAc,sBAAsB,CACxD,EAAE,WAAW,CACf,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOC,EAAU,QAAQD,EAAc,kBAAkB,CAAC,EAAE,WAAW,CACzE,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["Container", "useCasesModuleFactory", "useCasesTypes", "container", "mod"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var d=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var s=(n,p,e,r)=>{for(var i=r>1?void 0:r?A(p,e):p,o=n.length-1,a;o>=0;o--)(a=n[o])&&(i=(r?a(p,e,i):a(i))||i);return r&&i&&d(p,e,i),i},m=(n,p)=>(e,r)=>p(e,r,n);import{inject as B,injectable as c}from"inversify";import{appBinderTypes as f}from"../../app-binder/di/appBinderTypes";let t=class{_appBinder;constructor(p){this._appBinder=p}execute(p,e,r){return this._appBinder.signMessage({derivationPath:p,message:e,skipOpenApp:r?.skipOpenApp??!1})}};t=s([c(),m(0,B(f.AppBinder))],t);export{t as SignMessageUseCase};
|
|
2
2
|
//# sourceMappingURL=SignMessageUseCase.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/message/SignMessageUseCase.ts"],
|
|
4
|
-
"sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignMessageUseCase {\n private _appBinder: SolanaAppBinder;\n\n constructor(\n @inject(appBinderTypes.AppBinder)\n appBinding: SolanaAppBinder,\n ) {\n this._appBinder = appBinding;\n }\n\n execute(derivationPath: string
|
|
5
|
-
"mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,
|
|
6
|
-
"names": ["inject", "injectable", "appBinderTypes", "SignMessageUseCase", "appBinding", "derivationPath", "message", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
|
|
4
|
+
"sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignMessageUseCase {\n private _appBinder: SolanaAppBinder;\n\n constructor(\n @inject(appBinderTypes.AppBinder)\n appBinding: SolanaAppBinder,\n ) {\n this._appBinder = appBinding;\n }\n\n execute(\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ): SignMessageDAReturnType {\n return this._appBinder.signMessage({\n derivationPath,\n message,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAyB,CACtB,WAER,YAEEC,EACA,CACA,KAAK,WAAaA,CACpB,CAEA,QACEC,EACAC,EACAC,EACyB,CACzB,OAAO,KAAK,WAAW,YAAY,CACjC,eAAAF,EACA,QAAAC,EACA,YAAaC,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EArBaJ,EAANK,EAAA,CADNC,EAAW,EAKPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAJvBT",
|
|
6
|
+
"names": ["inject", "injectable", "appBinderTypes", "SignMessageUseCase", "appBinding", "derivationPath", "message", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{SignMessageUseCase as n}from"./SignMessageUseCase";describe("SignMessageUseCase",()=>{it("should call signMessage on appBinder with the correct arguments",()=>{const e="44'/501'/0'/0'",s="Hello world",a={signMessage:vi.fn()};new n(a).execute(e,s),expect(a.signMessage).toHaveBeenCalledWith({derivationPath:e,message:s})})});
|
|
1
|
+
import{SignMessageUseCase as n}from"./SignMessageUseCase";describe("SignMessageUseCase",()=>{it("should call signMessage on appBinder with the correct arguments",()=>{const e="44'/501'/0'/0'",s="Hello world",a={signMessage:vi.fn()};new n(a).execute(e,s),expect(a.signMessage).toHaveBeenCalledWith({derivationPath:e,message:s,skipOpenApp:!1})})});
|
|
2
2
|
//# sourceMappingURL=SignMessageUseCase.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/message/SignMessageUseCase.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignMessageUseCase } from \"./SignMessageUseCase\";\n\ndescribe(\"SignMessageUseCase\", () => {\n it(\"should call signMessage on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"44'/501'/0'/0'\";\n const message = \"Hello world\";\n const appBinder = {\n signMessage: vi.fn(),\n };\n const signMessageUseCase = new SignMessageUseCase(\n appBinder as unknown as SolanaAppBinder,\n );\n\n // When\n signMessageUseCase.execute(derivationPath, message);\n\n // Then\n expect(appBinder.signMessage).toHaveBeenCalledWith({\n derivationPath,\n message,\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "AAEA,OAAS,sBAAAA,MAA0B,uBAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,kEAAmE,IAAM,CAE1E,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,GAAG,GAAG,CACrB,EAC2B,IAAIH,EAC7BG,CACF,EAGmB,QAAQF,EAAgBC,CAAO,EAGlD,OAAOC,EAAU,WAAW,EAAE,qBAAqB,CACjD,eAAAF,EACA,QAAAC,
|
|
4
|
+
"sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignMessageUseCase } from \"./SignMessageUseCase\";\n\ndescribe(\"SignMessageUseCase\", () => {\n it(\"should call signMessage on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"44'/501'/0'/0'\";\n const message = \"Hello world\";\n const appBinder = {\n signMessage: vi.fn(),\n };\n const signMessageUseCase = new SignMessageUseCase(\n appBinder as unknown as SolanaAppBinder,\n );\n\n // When\n signMessageUseCase.execute(derivationPath, message);\n\n // Then\n expect(appBinder.signMessage).toHaveBeenCalledWith({\n derivationPath,\n message,\n skipOpenApp: false,\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,sBAAAA,MAA0B,uBAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,kEAAmE,IAAM,CAE1E,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,GAAG,GAAG,CACrB,EAC2B,IAAIH,EAC7BG,CACF,EAGmB,QAAQF,EAAgBC,CAAO,EAGlD,OAAOC,EAAU,WAAW,EAAE,qBAAqB,CACjD,eAAAF,EACA,QAAAC,EACA,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["SignMessageUseCase", "derivationPath", "message", "appBinder"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var s=Object.defineProperty;var
|
|
1
|
+
var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var m=(t,p,n,r)=>{for(var i=r>1?void 0:r?f(p,n):p,e=t.length-1,a;e>=0;e--)(a=t[e])&&(i=(r?a(p,n,i):a(i))||i);return r&&i&&s(p,n,i),i},c=(t,p)=>(n,r)=>p(n,r,t);import{inject as A,injectable as T}from"inversify";import{appBinderTypes as d}from"../../app-binder/di/appBinderTypes";let o=class{constructor(p){this.appBinder=p}execute(p,n,r){return this.appBinder.signTransaction({derivationPath:p,transaction:n,skipOpenApp:r?.skipOpenApp??!1})}};o=m([T(),c(0,A(d.AppBinder))],o);export{o as SignTransactionUseCase};
|
|
2
2
|
//# sourceMappingURL=SignTransactionUseCase.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/transaction/SignTransactionUseCase.ts"],
|
|
4
|
-
"sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport { TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignTransactionUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n transaction: Transaction,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this.appBinder.signTransaction({\n derivationPath,\n transaction,\n options,\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAKnC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAA6B,CAClC,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,UAAU,gBAAgB,CACpC,eAAAF,EACA,YAAAC,EACA,
|
|
4
|
+
"sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport { TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignTransactionUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n transaction: Transaction,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this.appBinder.signTransaction({\n derivationPath,\n transaction,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAKnC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAA6B,CAClC,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,UAAU,gBAAgB,CACpC,eAAAF,EACA,YAAAC,EACA,YAAaC,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EAhBaJ,EAANK,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAFvBT",
|
|
6
6
|
"names": ["inject", "injectable", "appBinderTypes", "SignTransactionUseCase", "appBinder", "derivationPath", "transaction", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{SignTransactionUseCase as i}from"./SignTransactionUseCase";describe("GetAppConfigurationUseCase",()=>{const
|
|
1
|
+
import{SignTransactionUseCase as i}from"./SignTransactionUseCase";describe("GetAppConfigurationUseCase",()=>{const e=vi.fn(),a={signTransaction:e};let n;beforeEach(()=>{vi.clearAllMocks(),n=new i(a)}),it("should return the config from the appBinder's getAppConfiguration method",()=>{e.mockReturnValue(new Uint8Array([66]));const t=n.execute("44'/501'/0'/0'",new Uint8Array([1,2,3,4]));expect(e).toHaveBeenCalledWith({derivationPath:"44'/501'/0'/0'",transaction:new Uint8Array([1,2,3,4]),skipOpenApp:!1}),expect(t).toEqual(new Uint8Array([66]))})});
|
|
2
2
|
//# sourceMappingURL=SignTransactionUseCase.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/transaction/SignTransactionUseCase.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignTransactionUseCase } from \"./SignTransactionUseCase\";\n\ndescribe(\"GetAppConfigurationUseCase\", () => {\n const signTransactionMock = vi.fn();\n const appBinderMock = {\n signTransaction: signTransactionMock,\n } as unknown as SolanaAppBinder;\n let useCase: SignTransactionUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new SignTransactionUseCase(appBinderMock);\n });\n\n it(\"should return the config from the appBinder's getAppConfiguration method\", () => {\n // GIVEN\n signTransactionMock.mockReturnValue(new Uint8Array([0x042]));\n\n // WHEN\n const result = useCase.execute(\n \"44'/501'/0'/0'\",\n new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n );\n\n // THEN\n expect(signTransactionMock).toHaveBeenCalledWith({\n derivationPath: \"44'/501'/0'/0'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n
|
|
5
|
-
"mappings": "AAEA,OAAS,0BAAAA,MAA8B,2BAEvC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAsB,GAAG,GAAG,EAC5BC,EAAgB,CACpB,gBAAiBD,CACnB,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIH,EAAuBE,CAAa,CACpD,CAAC,EAED,GAAG,2EAA4E,IAAM,CAEnFD,EAAoB,gBAAgB,IAAI,WAAW,CAAC,EAAK,CAAC,CAAC,EAG3D,MAAMG,EAASD,EAAQ,QACrB,iBACA,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CACzC,EAGA,OAAOF,CAAmB,EAAE,qBAAqB,CAC/C,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACpD,
|
|
4
|
+
"sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignTransactionUseCase } from \"./SignTransactionUseCase\";\n\ndescribe(\"GetAppConfigurationUseCase\", () => {\n const signTransactionMock = vi.fn();\n const appBinderMock = {\n signTransaction: signTransactionMock,\n } as unknown as SolanaAppBinder;\n let useCase: SignTransactionUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new SignTransactionUseCase(appBinderMock);\n });\n\n it(\"should return the config from the appBinder's getAppConfiguration method\", () => {\n // GIVEN\n signTransactionMock.mockReturnValue(new Uint8Array([0x042]));\n\n // WHEN\n const result = useCase.execute(\n \"44'/501'/0'/0'\",\n new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n );\n\n // THEN\n expect(signTransactionMock).toHaveBeenCalledWith({\n derivationPath: \"44'/501'/0'/0'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n skipOpenApp: false,\n });\n expect(result).toEqual(new Uint8Array([0x042]));\n });\n});\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,0BAAAA,MAA8B,2BAEvC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAsB,GAAG,GAAG,EAC5BC,EAAgB,CACpB,gBAAiBD,CACnB,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIH,EAAuBE,CAAa,CACpD,CAAC,EAED,GAAG,2EAA4E,IAAM,CAEnFD,EAAoB,gBAAgB,IAAI,WAAW,CAAC,EAAK,CAAC,CAAC,EAG3D,MAAMG,EAASD,EAAQ,QACrB,iBACA,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CACzC,EAGA,OAAOF,CAAmB,EAAE,qBAAqB,CAC/C,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACpD,YAAa,EACf,CAAC,EACD,OAAOG,CAAM,EAAE,QAAQ,IAAI,WAAW,CAAC,EAAK,CAAC,CAAC,CAChD,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["SignTransactionUseCase", "signTransactionMock", "appBinderMock", "useCase", "result"]
|
|
7
7
|
}
|
package/lib/esm/package.json
CHANGED
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"prebuild": "rimraf lib",
|
|
23
|
-
"build": "pnpm
|
|
23
|
+
"build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
24
24
|
"dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
|
|
25
|
-
"watch:builds": "pnpm
|
|
25
|
+
"watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
26
26
|
"watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
|
|
27
27
|
"lint": "eslint",
|
|
28
28
|
"lint:fix": "pnpm lint --fix",
|
|
@@ -36,22 +36,21 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@ledgerhq/signer-utils": "workspace:*",
|
|
39
|
-
"bs58": "
|
|
40
|
-
"inversify": "
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"xstate": "^5.19.2"
|
|
39
|
+
"bs58": "catalog:",
|
|
40
|
+
"inversify": "catalog:",
|
|
41
|
+
"purify-ts": "catalog:",
|
|
42
|
+
"reflect-metadata": "catalog:",
|
|
43
|
+
"xstate": "catalog:"
|
|
45
44
|
},
|
|
46
45
|
"devDependencies": {
|
|
47
46
|
"@ledgerhq/device-management-kit": "workspace:*",
|
|
48
|
-
"@ledgerhq/
|
|
47
|
+
"@ledgerhq/ldmk-tool": "workspace:*",
|
|
49
48
|
"@ledgerhq/eslint-config-dsdk": "workspace:*",
|
|
50
49
|
"@ledgerhq/prettier-config-dsdk": "workspace:*",
|
|
51
50
|
"@ledgerhq/tsconfig-dsdk": "workspace:*",
|
|
52
51
|
"@ledgerhq/vitest-config-dmk": "workspace:*",
|
|
53
|
-
"rxjs": "
|
|
54
|
-
"ts-node": "
|
|
52
|
+
"rxjs": "catalog:",
|
|
53
|
+
"ts-node": "catalog:"
|
|
55
54
|
},
|
|
56
55
|
"peerDependencies": {
|
|
57
56
|
"@ledgerhq/device-management-kit": "workspace:*"
|
|
@@ -3,11 +3,12 @@ import { type GetAppConfigurationDAReturnType } from "./app-binder/GetAppConfigu
|
|
|
3
3
|
import { type SignMessageDAReturnType } from "./app-binder/SignMessageDeviceActionTypes";
|
|
4
4
|
import { type SignTransactionDAReturnType } from "./app-binder/SignTransactionDeviceActionTypes";
|
|
5
5
|
import { type AddressOptions } from "./model/AddressOption";
|
|
6
|
+
import { type MessageOptions } from "./model/MessageOptions";
|
|
6
7
|
import { type Transaction } from "./model/Transaction";
|
|
7
8
|
import { type TransactionOptions } from "./model/TransactionOptions";
|
|
8
9
|
export interface SignerSolana {
|
|
9
10
|
signTransaction: (derivationPath: string, transaction: Transaction, options?: TransactionOptions) => SignTransactionDAReturnType;
|
|
10
|
-
signMessage: (derivationPath: string, message: string) => SignMessageDAReturnType;
|
|
11
|
+
signMessage: (derivationPath: string, message: string, options?: MessageOptions) => SignMessageDAReturnType;
|
|
11
12
|
getAddress: (derivationPath: string, options?: AddressOptions) => GetAddressDAReturnType;
|
|
12
13
|
getAppConfiguration: () => GetAppConfigurationDAReturnType;
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignerSolana.d.ts","sourceRoot":"","sources":["../../../src/api/SignerSolana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,sDAAsD,CAAC;AAC5G,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,CACf,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,2BAA2B,CAAC;IACjC,WAAW,EAAE,CACX,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SignerSolana.d.ts","sourceRoot":"","sources":["../../../src/api/SignerSolana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,sDAAsD,CAAC;AAC5G,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,CACf,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,2BAA2B,CAAC;IACjC,WAAW,EAAE,CACX,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,cAAc,KACrB,uBAAuB,CAAC;IAC7B,UAAU,EAAE,CACV,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,cAAc,KACrB,sBAAsB,CAAC;IAC5B,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;CAC5D"}
|