@ledgerhq/device-signer-kit-bitcoin 1.3.0 → 1.3.2

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.
Files changed (64) hide show
  1. package/lib/cjs/internal/app-binder/BtcAppBinder.js +1 -1
  2. package/lib/cjs/internal/app-binder/BtcAppBinder.js.map +3 -3
  3. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
  4. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  5. package/lib/cjs/internal/app-binder/command/ContinueCommand.js +1 -1
  6. package/lib/cjs/internal/app-binder/command/ContinueCommand.js.map +3 -3
  7. package/lib/cjs/internal/app-binder/command/ContinueCommand.test.js +1 -1
  8. package/lib/cjs/internal/app-binder/command/ContinueCommand.test.js.map +1 -1
  9. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.js +1 -1
  10. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.js.map +3 -3
  11. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js +1 -1
  12. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js.map +1 -1
  13. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.js +1 -1
  14. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.js.map +3 -3
  15. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  16. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +1 -1
  17. package/lib/cjs/internal/app-binder/constants.js +2 -0
  18. package/lib/cjs/internal/app-binder/constants.js.map +7 -0
  19. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  20. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +3 -3
  21. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  22. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +3 -3
  23. package/lib/cjs/internal/app-binder/task/ExtractTransactionTask.js +1 -1
  24. package/lib/cjs/internal/app-binder/task/ExtractTransactionTask.js.map +2 -2
  25. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  26. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  27. package/lib/cjs/package.json +1 -1
  28. package/lib/esm/internal/app-binder/BtcAppBinder.js +1 -1
  29. package/lib/esm/internal/app-binder/BtcAppBinder.js.map +3 -3
  30. package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
  31. package/lib/esm/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  32. package/lib/esm/internal/app-binder/command/ContinueCommand.js +1 -1
  33. package/lib/esm/internal/app-binder/command/ContinueCommand.js.map +3 -3
  34. package/lib/esm/internal/app-binder/command/ContinueCommand.test.js +1 -1
  35. package/lib/esm/internal/app-binder/command/ContinueCommand.test.js.map +1 -1
  36. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.js +1 -1
  37. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.js.map +3 -3
  38. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js +1 -1
  39. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js.map +1 -1
  40. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.js +1 -1
  41. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.js.map +3 -3
  42. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  43. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +1 -1
  44. package/lib/esm/internal/app-binder/constants.js +2 -0
  45. package/lib/esm/internal/app-binder/constants.js.map +7 -0
  46. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  47. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +3 -3
  48. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  49. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +3 -3
  50. package/lib/esm/internal/app-binder/task/ExtractTransactionTask.js +1 -1
  51. package/lib/esm/internal/app-binder/task/ExtractTransactionTask.js.map +2 -2
  52. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  53. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  54. package/lib/esm/package.json +1 -1
  55. package/lib/types/internal/app-binder/BtcAppBinder.d.ts.map +1 -1
  56. package/lib/types/internal/app-binder/command/ContinueCommand.d.ts.map +1 -1
  57. package/lib/types/internal/app-binder/command/GetExtendedPublicKeyCommand.d.ts.map +1 -1
  58. package/lib/types/internal/app-binder/command/GetMasterFingerprintCommand.d.ts.map +1 -1
  59. package/lib/types/internal/app-binder/constants.d.ts +2 -0
  60. package/lib/types/internal/app-binder/constants.d.ts.map +1 -0
  61. package/lib/types/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.d.ts.map +1 -1
  62. package/lib/types/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.d.ts.map +1 -1
  63. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  64. package/package.json +7 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.ts"],
4
- "sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type GetWalletAddressDAError,\n type GetWalletAddressDAInput,\n type GetWalletAddressDAIntermediateValue,\n type GetWalletAddressDAInternalState,\n type GetWalletAddressDAOutput,\n getWalletAddressDAStateSteps,\n} from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type WalletAddress } from \"@api/model/Wallet\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { GetWalletAddressTask } from \"@internal/app-binder/task/GetWalletAddressTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type GetWalletAddressMachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly getWalletAddress: (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }) => Promise<CommandResult<WalletAddress, BtcErrorCodes>>;\n};\n\nexport type ExtractGetWalletAddressMachineDependencies = (\n internalApi: InternalApi,\n) => GetWalletAddressMachineDependencies;\n\nexport class GetWalletAddressDeviceAction extends XStateDeviceAction<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n > {\n type types = StateMachineTypes<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n >;\n\n const { getWalletAddress, prepareWalletPolicy } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n getWalletAddress: fromPromise(getWalletAddress),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"GetWalletAddressDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.OPEN_APP,\n },\n _internalState: {\n error: null,\n wallet: null,\n walletAddress: null,\n },\n }),\n states: {\n InitialState: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.OPEN_APP,\n }),\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: ({ event }) => ({\n ...event.snapshot.context.intermediateValue,\n step: getWalletAddressDAStateSteps.OPEN_APP,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: ({ event, context }) =>\n event.output.caseOf({\n Right: () => context._internalState,\n Left: (error) => ({\n ...context._internalState,\n error,\n }),\n }),\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n\n PrepareWalletPolicy: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.PREPARE_WALLET_POLICY,\n }),\n }),\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"GetWalletAddress\" },\n { target: \"Error\" },\n ],\n },\n GetWalletAddress: {\n entry: assign(({ context }) => ({\n intermediateValue: {\n requiredUserInteraction: context.input.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.GET_WALLET_ADDRESS,\n },\n })),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.GET_WALLET_ADDRESS,\n },\n }),\n invoke: {\n id: \"getWalletAddress\",\n src: \"getWalletAddress\",\n input: ({ context }) => ({\n checkOnDevice: context.input.checkOnDevice,\n wallet: context._internalState.wallet!,\n change: context.input.change,\n addressIndex: context.input.addressIndex,\n dataStoreService: context.input.dataStoreService,\n walletSerializer: context.input.walletSerializer,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"GetWalletAddressResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n walletAddress: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetWalletAddressResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.walletAddress\n ? Right(context._internalState.walletAddress)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(\n internalApi: InternalApi,\n ): GetWalletAddressMachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const getWalletAddress = async (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }): Promise<CommandResult<WalletAddress, BtcErrorCodes>> => {\n const {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n walletSerializer,\n dataStoreService,\n } = arg0.input;\n\n return await new GetWalletAddressTask(\n internalApi,\n {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n },\n walletSerializer,\n dataStoreService,\n ).run();\n };\n return {\n getWalletAddress,\n prepareWalletPolicy,\n };\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAA4B,qBAC5BC,EAA2C,kBAE3CC,EAOO,6DAIPC,EAAqC,0DACrCC,EAAwC,6DA8BjC,MAAMP,UAAqC,oBAMhD,CACA,iBACEQ,EAOA,CASA,KAAM,CAAE,iBAAAC,EAAkB,oBAAAC,CAAoB,EAC5C,KAAK,oBAAoBF,CAAW,EAEtC,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EAEA,OAAQ,CACN,oBAAqB,IAAI,sBAAoB,CAC3C,MAAO,CAAE,QAAS,SAAU,CAC9B,CAAC,EAAE,iBAAiBA,CAAW,EAC/B,uBAAqB,eAAYE,CAAmB,EACpD,oBAAkB,eAAYD,CAAgB,CAChD,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAE,CAAQ,IAAMA,EAAQ,eAAe,QAAU,KACnE,YAAa,CAAC,CAAE,QAAAA,CAAQ,IAAMA,EAAQ,MAAM,WAC9C,EACA,QAAS,CACP,wBAAsB,UAAO,CAC3B,eAAiBC,IAAO,CACtB,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,KACjB,EACF,CAAC,CACH,CACF,CAAC,EAAE,cAAc,CAEf,GAAI,+BACJ,QAAS,eACT,QAAS,CAAC,CAAE,MAAAC,CAAM,KAAO,CACvB,MAAAA,EACA,kBAAmB,CACjB,wBAAyB,0BAAwB,KACjD,KAAM,+BAA6B,QACrC,EACA,eAAgB,CACd,MAAO,KACP,OAAQ,KACR,cAAe,IACjB,CACF,GACA,OAAQ,CACN,aAAc,CACZ,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,aACT,EACA,qBACF,CACF,EACA,oBAAqB,CACnB,SAAO,UAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyB,0BAAwB,KACjD,KAAM,+BAA6B,QACrC,EACF,CAAC,EACD,OAAQ,CACN,GAAI,sBACJ,MAAO,CAAE,QAAS,SAAU,EAC5B,IAAK,sBACL,WAAY,CACV,WAAS,UAAO,CACd,kBAAmB,CAAC,CAAE,MAAAC,CAAM,KAAO,CACjC,GAAGA,EAAM,SAAS,QAAQ,kBAC1B,KAAM,+BAA6B,QACrC,EACF,CAAC,CACH,EACA,OAAQ,CACN,WAAS,UAAO,CACd,eAAgB,CAAC,CAAE,MAAAA,EAAO,QAAAH,CAAQ,IAChCG,EAAM,OAAO,OAAO,CAClB,MAAO,IAAMH,EAAQ,eACrB,KAAOI,IAAW,CAChB,GAAGJ,EAAQ,eACX,MAAAI,CACF,EACF,CAAC,CACL,CAAC,EACD,OAAQ,gCACV,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,iBACT,EACA,OACF,CACF,EAEA,oBAAqB,CACnB,SAAO,UAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyB,0BAAwB,KACjD,KAAM,+BAA6B,qBACrC,EACF,CAAC,EACD,OAAQ,CACN,GAAI,sBACJ,IAAK,sBACL,MAAO,CAAC,CAAE,QAAAJ,CAAQ,KAAO,CACvB,OAAQA,EAAQ,MAAM,OACtB,cAAeA,EAAQ,MAAM,aAC/B,GACA,OAAQ,CACN,OAAQ,iCACR,WAAS,UAAO,CACd,eAAgB,CAAC,CAAE,MAAAG,EAAO,QAAAH,CAAQ,OAC5B,0BAAuBG,EAAM,MAAM,EAC9B,CACL,GAAGH,EAAQ,eACX,OAAQG,EAAM,OAAO,IACvB,EAEK,CACL,GAAGH,EAAQ,eACX,MAAOG,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,kBAAmB,EACvD,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,iBAAkB,CAChB,SAAO,UAAO,CAAC,CAAE,QAAAH,CAAQ,KAAO,CAC9B,kBAAmB,CACjB,wBAAyBA,EAAQ,MAAM,cACnC,0BAAwB,cACxB,0BAAwB,KAC5B,KAAM,+BAA6B,kBACrC,CACF,EAAE,EACF,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,KACjD,KAAM,+BAA6B,kBACrC,CACF,CAAC,EACD,OAAQ,CACN,GAAI,mBACJ,IAAK,mBACL,MAAO,CAAC,CAAE,QAAAA,CAAQ,KAAO,CACvB,cAAeA,EAAQ,MAAM,cAC7B,OAAQA,EAAQ,eAAe,OAC/B,OAAQA,EAAQ,MAAM,OACtB,aAAcA,EAAQ,MAAM,aAC5B,iBAAkBA,EAAQ,MAAM,iBAChC,iBAAkBA,EAAQ,MAAM,iBAChC,cAAeA,EAAQ,MAAM,aAC/B,GACA,OAAQ,CACN,OAAQ,8BACR,WAAS,UAAO,CACd,eAAgB,CAAC,CAAE,MAAAG,EAAO,QAAAH,CAAQ,OAC5B,0BAAuBG,EAAM,MAAM,EAC9B,CACL,GAAGH,EAAQ,eACX,cAAeG,EAAM,OAAO,IAC9B,EAEK,CACL,GAAGH,EAAQ,eACX,MAAOG,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,4BAA6B,CAC3B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,SAAU,EAC9C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,QAAS,CACP,KAAM,OACR,EACA,MAAO,CACL,KAAM,OACR,CACF,EACA,OAAQ,CAAC,CAAE,QAAAH,CAAQ,IACjBA,EAAQ,eAAe,iBACnB,SAAMA,EAAQ,eAAe,aAAa,KAC1C,QACEA,EAAQ,eAAe,OACrB,IAAI,iBAAe,yBAAyB,CAChD,CACR,CAAC,CACH,CAEA,oBACEH,EACqC,CA6CrC,MAAO,CACL,iBAjCuB,MAAOQ,GAU4B,CAC1D,KAAM,CACJ,cAAAC,EACA,OAAAC,EACA,OAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,iBAAAC,CACF,EAAIN,EAAK,MAET,OAAO,MAAM,IAAI,uBACfR,EACA,CACE,cAAAS,EACA,OAAAC,EACA,OAAAC,EACA,aAAAC,CACF,EACAC,EACAC,CACF,EAAE,IAAI,CACR,EAGE,oBA9C0B,MAAON,GAE0B,CAC3D,KAAM,CACJ,MAAO,CAAE,cAAAO,EAAe,OAAAL,CAAO,CACjC,EAAIF,EACJ,OAAO,MAAM,IAAI,0BACfR,EACA,CAAE,OAAAU,CAAO,EACTK,CACF,EAAE,IAAI,CACR,CAoCA,CACF,CACF",
6
- "names": ["GetWalletAddressDeviceAction_exports", "__export", "GetWalletAddressDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_GetWalletAddressDeviceActionTypes", "import_GetWalletAddressTask", "import_PrepareWalletPolicyTask", "internalApi", "getWalletAddress", "prepareWalletPolicy", "context", "_", "input", "event", "error", "arg0", "checkOnDevice", "wallet", "change", "addressIndex", "walletSerializer", "dataStoreService", "walletBuilder"]
4
+ "sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type GetWalletAddressDAError,\n type GetWalletAddressDAInput,\n type GetWalletAddressDAIntermediateValue,\n type GetWalletAddressDAInternalState,\n type GetWalletAddressDAOutput,\n getWalletAddressDAStateSteps,\n} from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type WalletAddress } from \"@api/model/Wallet\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { APP_NAME } from \"@internal/app-binder/constants\";\nimport { GetWalletAddressTask } from \"@internal/app-binder/task/GetWalletAddressTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type GetWalletAddressMachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly getWalletAddress: (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }) => Promise<CommandResult<WalletAddress, BtcErrorCodes>>;\n};\n\nexport type ExtractGetWalletAddressMachineDependencies = (\n internalApi: InternalApi,\n) => GetWalletAddressMachineDependencies;\n\nexport class GetWalletAddressDeviceAction extends XStateDeviceAction<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n > {\n type types = StateMachineTypes<\n GetWalletAddressDAOutput,\n GetWalletAddressDAInput,\n GetWalletAddressDAError,\n GetWalletAddressDAIntermediateValue,\n GetWalletAddressDAInternalState\n >;\n\n const { getWalletAddress, prepareWalletPolicy } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: APP_NAME },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n getWalletAddress: fromPromise(getWalletAddress),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"GetWalletAddressDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.OPEN_APP,\n },\n _internalState: {\n error: null,\n wallet: null,\n walletAddress: null,\n },\n }),\n states: {\n InitialState: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.OPEN_APP,\n }),\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: APP_NAME },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: ({ event }) => ({\n ...event.snapshot.context.intermediateValue,\n step: getWalletAddressDAStateSteps.OPEN_APP,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: ({ event, context }) =>\n event.output.caseOf({\n Right: () => context._internalState,\n Left: (error) => ({\n ...context._internalState,\n error,\n }),\n }),\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n\n PrepareWalletPolicy: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.PREPARE_WALLET_POLICY,\n }),\n }),\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"GetWalletAddress\" },\n { target: \"Error\" },\n ],\n },\n GetWalletAddress: {\n entry: assign(({ context }) => ({\n intermediateValue: {\n requiredUserInteraction: context.input.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.GET_WALLET_ADDRESS,\n },\n })),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getWalletAddressDAStateSteps.GET_WALLET_ADDRESS,\n },\n }),\n invoke: {\n id: \"getWalletAddress\",\n src: \"getWalletAddress\",\n input: ({ context }) => ({\n checkOnDevice: context.input.checkOnDevice,\n wallet: context._internalState.wallet!,\n change: context.input.change,\n addressIndex: context.input.addressIndex,\n dataStoreService: context.input.dataStoreService,\n walletSerializer: context.input.walletSerializer,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"GetWalletAddressResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n walletAddress: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetWalletAddressResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.walletAddress\n ? Right(context._internalState.walletAddress)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(\n internalApi: InternalApi,\n ): GetWalletAddressMachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const getWalletAddress = async (arg0: {\n input: {\n checkOnDevice: boolean;\n change: boolean;\n addressIndex: number;\n wallet: InternalWallet;\n walletBuilder: WalletBuilder;\n walletSerializer: WalletSerializer;\n dataStoreService: DataStoreService;\n };\n }): Promise<CommandResult<WalletAddress, BtcErrorCodes>> => {\n const {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n walletSerializer,\n dataStoreService,\n } = arg0.input;\n\n return await new GetWalletAddressTask(\n internalApi,\n {\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n },\n walletSerializer,\n dataStoreService,\n ).run();\n };\n return {\n getWalletAddress,\n prepareWalletPolicy,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["GetWalletAddressDeviceAction_exports", "__export", "GetWalletAddressDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_GetWalletAddressDeviceActionTypes", "import_constants", "import_GetWalletAddressTask", "import_PrepareWalletPolicyTask", "internalApi", "getWalletAddress", "prepareWalletPolicy", "context", "_", "input", "event", "error", "arg0", "checkOnDevice", "wallet", "change", "addressIndex", "walletSerializer", "dataStoreService", "walletBuilder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var b=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var E=(i,n)=>{for(var o in n)b(i,o,{get:n[o],enumerable:!0})},I=(i,n,o,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of A(n))!D.call(i,l)&&l!==o&&b(i,l,{get:()=>n[l],enumerable:!(p=y(n,l))||p.enumerable});return i};var w=i=>I(b({},"__esModule",{value:!0}),i);var v={};E(v,{SignPsbtDeviceAction:()=>R});module.exports=w(v);var a=require("@ledgerhq/device-management-kit"),c=require("purify-ts"),r=require("xstate"),s=require("../../../../api/app-binder/SignPsbtDeviceActionTypes"),d=require("../../../app-binder/task/BuildPsbtTask"),m=require("../../../app-binder/task/PrepareWalletPolicyTask"),g=require("../../../app-binder/task/SignPsbtTask");class R extends a.XStateDeviceAction{makeStateMachine(n){const{signPsbt:o,prepareWalletPolicy:p,buildPsbt:l}=this.extractDependencies(n);return(0,r.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new a.OpenAppDeviceAction({input:{appName:"Bitcoin"}}).makeStateMachine(n),prepareWalletPolicy:(0,r.fromPromise)(p),buildPsbt:(0,r.fromPromise)(l),signPsbt:(0,r.fromPromise)(o)},guards:{noInternalError:({context:t})=>t._internalState.error===null,skipOpenApp:({context:t})=>t.input.skipOpenApp},actions:{assignErrorFromEvent:(0,r.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignPsbtDeviceAction",initial:"InitialState",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.OPEN_APP},_internalState:{error:null,wallet:null,buildPsbtResult:null,signatures:null,signedPsbt:null}}),states:{InitialState:{always:[{target:"PrepareWalletPolicy",guard:"skipOpenApp"},"OpenAppDeviceAction"]},OpenAppDeviceAction:{entry:(0,r.assign)({intermediateValue:()=>({requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.OPEN_APP})}),invoke:{id:"openAppStateMachine",input:{appName:"Bitcoin"},src:"openAppStateMachine",onSnapshot:{actions:(0,r.assign)({intermediateValue:({event:t})=>({...t.snapshot.context.intermediateValue,step:s.signPsbtDAStateSteps.OPEN_APP})})},onDone:{actions:(0,r.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:e=>({...t.context._internalState,error:e})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"PrepareWalletPolicy",guard:"noInternalError"},"Error"]},PrepareWalletPolicy:{entry:(0,r.assign)({intermediateValue:()=>({requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.PREPARE_WALLET_POLICY})}),invoke:{id:"prepareWalletPolicy",src:"prepareWalletPolicy",input:({context:t})=>({wallet:t.input.wallet,walletBuilder:t.input.walletBuilder}),onDone:{target:"PrepareWalletPolicyResultCheck",actions:(0,r.assign)({_internalState:({event:t,context:e})=>(0,a.isSuccessCommandResult)(t.output)?{...e._internalState,wallet:t.output.data}:{...e._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PrepareWalletPolicyResultCheck:{always:[{guard:"noInternalError",target:"BuildPsbt"},{target:"Error"}]},BuildPsbt:{entry:(0,r.assign)({intermediateValue:()=>({requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.BUILD_PSBT})}),invoke:{id:"buildPsbt",src:"buildPsbt",input:({context:t})=>({psbt:t.input.psbt,wallet:t._internalState.wallet,dataStoreService:t.input.dataStoreService,psbtMapper:t.input.psbtMapper}),onDone:{target:"BuildPsbtResultCheck",actions:(0,r.assign)({_internalState:({event:t,context:e})=>(0,a.isSuccessCommandResult)(t.output)?{...e._internalState,buildPsbtResult:t.output.data}:{...e._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildPsbtResultCheck:{always:[{guard:"noInternalError",target:"SignPsbt"},{target:"Error"}]},SignPsbt:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:a.UserInteractionRequired.SignTransaction,step:s.signPsbtDAStateSteps.SIGN_PSBT}}),exit:(0,r.assign)({intermediateValue:{requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.SIGN_PSBT}}),invoke:{id:"signPsbt",src:"signPsbt",input:({context:t})=>({walletSerializer:t.input.walletSerializer,valueParser:t.input.valueParser,buildPsbtResult:t._internalState.buildPsbtResult,wallet:t._internalState.wallet}),onDone:{target:"SignPsbtResultCheck",actions:(0,r.assign)({_internalState:({event:t,context:e})=>(0,a.isSuccessCommandResult)(t.output)?{...e._internalState,signatures:t.output.data}:{...e._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignPsbtResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:{_internalState:{signatures:t,error:e}}})=>t?(0,c.Right)(t):(0,c.Left)(e||new a.UnknownDAError("No error in final state"))})}extractDependencies(n){return{prepareWalletPolicy:async t=>{const{input:{walletBuilder:e,wallet:u}}=t;return await new m.PrepareWalletPolicyTask(n,{wallet:u},e).run()},buildPsbt:async t=>{const{input:{psbt:e,wallet:u,dataStoreService:P,psbtMapper:S}}=t;return new d.BuildPsbtTask({psbt:e,wallet:u},P,S).run()},signPsbt:async t=>{const{input:{wallet:e,buildPsbtResult:u,walletSerializer:P,valueParser:S}}=t;return await new g.SignPsbtTask(n,{wallet:e,...u},P,S).run()}}}}0&&(module.exports={SignPsbtDeviceAction});
1
+ "use strict";var b=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var I=(i,n)=>{for(var p in n)b(i,p,{get:n[p],enumerable:!0})},w=(i,n,p,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of D(n))!E.call(i,l)&&l!==p&&b(i,l,{get:()=>n[l],enumerable:!(o=A(n,l))||o.enumerable});return i};var R=i=>w(b({},"__esModule",{value:!0}),i);var W={};I(W,{SignPsbtDeviceAction:()=>v});module.exports=R(W);var a=require("@ledgerhq/device-management-kit"),P=require("purify-ts"),r=require("xstate"),s=require("../../../../api/app-binder/SignPsbtDeviceActionTypes"),d=require("../../../app-binder/constants"),m=require("../../../app-binder/task/BuildPsbtTask"),g=require("../../../app-binder/task/PrepareWalletPolicyTask"),y=require("../../../app-binder/task/SignPsbtTask");class v extends a.XStateDeviceAction{makeStateMachine(n){const{signPsbt:p,prepareWalletPolicy:o,buildPsbt:l}=this.extractDependencies(n);return(0,r.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new a.OpenAppDeviceAction({input:{appName:d.APP_NAME}}).makeStateMachine(n),prepareWalletPolicy:(0,r.fromPromise)(o),buildPsbt:(0,r.fromPromise)(l),signPsbt:(0,r.fromPromise)(p)},guards:{noInternalError:({context:t})=>t._internalState.error===null,skipOpenApp:({context:t})=>t.input.skipOpenApp},actions:{assignErrorFromEvent:(0,r.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignPsbtDeviceAction",initial:"InitialState",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.OPEN_APP},_internalState:{error:null,wallet:null,buildPsbtResult:null,signatures:null,signedPsbt:null}}),states:{InitialState:{always:[{target:"PrepareWalletPolicy",guard:"skipOpenApp"},"OpenAppDeviceAction"]},OpenAppDeviceAction:{entry:(0,r.assign)({intermediateValue:()=>({requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.OPEN_APP})}),invoke:{id:"openAppStateMachine",input:{appName:d.APP_NAME},src:"openAppStateMachine",onSnapshot:{actions:(0,r.assign)({intermediateValue:({event:t})=>({...t.snapshot.context.intermediateValue,step:s.signPsbtDAStateSteps.OPEN_APP})})},onDone:{actions:(0,r.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:e=>({...t.context._internalState,error:e})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"PrepareWalletPolicy",guard:"noInternalError"},"Error"]},PrepareWalletPolicy:{entry:(0,r.assign)({intermediateValue:()=>({requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.PREPARE_WALLET_POLICY})}),invoke:{id:"prepareWalletPolicy",src:"prepareWalletPolicy",input:({context:t})=>({wallet:t.input.wallet,walletBuilder:t.input.walletBuilder}),onDone:{target:"PrepareWalletPolicyResultCheck",actions:(0,r.assign)({_internalState:({event:t,context:e})=>(0,a.isSuccessCommandResult)(t.output)?{...e._internalState,wallet:t.output.data}:{...e._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PrepareWalletPolicyResultCheck:{always:[{guard:"noInternalError",target:"BuildPsbt"},{target:"Error"}]},BuildPsbt:{entry:(0,r.assign)({intermediateValue:()=>({requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.BUILD_PSBT})}),invoke:{id:"buildPsbt",src:"buildPsbt",input:({context:t})=>({psbt:t.input.psbt,wallet:t._internalState.wallet,dataStoreService:t.input.dataStoreService,psbtMapper:t.input.psbtMapper}),onDone:{target:"BuildPsbtResultCheck",actions:(0,r.assign)({_internalState:({event:t,context:e})=>(0,a.isSuccessCommandResult)(t.output)?{...e._internalState,buildPsbtResult:t.output.data}:{...e._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildPsbtResultCheck:{always:[{guard:"noInternalError",target:"SignPsbt"},{target:"Error"}]},SignPsbt:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:a.UserInteractionRequired.SignTransaction,step:s.signPsbtDAStateSteps.SIGN_PSBT}}),exit:(0,r.assign)({intermediateValue:{requiredUserInteraction:a.UserInteractionRequired.None,step:s.signPsbtDAStateSteps.SIGN_PSBT}}),invoke:{id:"signPsbt",src:"signPsbt",input:({context:t})=>({walletSerializer:t.input.walletSerializer,valueParser:t.input.valueParser,buildPsbtResult:t._internalState.buildPsbtResult,wallet:t._internalState.wallet}),onDone:{target:"SignPsbtResultCheck",actions:(0,r.assign)({_internalState:({event:t,context:e})=>(0,a.isSuccessCommandResult)(t.output)?{...e._internalState,signatures:t.output.data}:{...e._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignPsbtResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:{_internalState:{signatures:t,error:e}}})=>t?(0,P.Right)(t):(0,P.Left)(e||new a.UnknownDAError("No error in final state"))})}extractDependencies(n){return{prepareWalletPolicy:async t=>{const{input:{walletBuilder:e,wallet:u}}=t;return await new g.PrepareWalletPolicyTask(n,{wallet:u},e).run()},buildPsbt:async t=>{const{input:{psbt:e,wallet:u,dataStoreService:c,psbtMapper:S}}=t;return new m.BuildPsbtTask({psbt:e,wallet:u},c,S).run()},signPsbt:async t=>{const{input:{wallet:e,buildPsbtResult:u,walletSerializer:c,valueParser:S}}=t;return await new y.SignPsbtTask(n,{wallet:e,...u},c,S).run()}}}}0&&(module.exports={SignPsbtDeviceAction});
2
2
  //# sourceMappingURL=SignPsbtDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.ts"],
4
- "sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignPsbtDAError,\n type SignPsbtDAInput,\n type SignPsbtDAIntermediateValue,\n type SignPsbtDAInternalState,\n type SignPsbtDAOutput,\n signPsbtDAStateSteps,\n} from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type Psbt as ApiPsbt } from \"@api/model/Psbt\";\nimport { type PsbtSignature } from \"@api/model/Signature\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n BuildPsbtTask,\n type BuildPsbtTaskResult,\n} from \"@internal/app-binder/task/BuildPsbtTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { SignPsbtTask } from \"@internal/app-binder/task/SignPsbtTask\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type MachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly buildPsbt: (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }) => Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>>;\n readonly signPsbt: (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }) => Promise<CommandResult<PsbtSignature[], BtcErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignPsbtDeviceAction extends XStateDeviceAction<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n > {\n type types = StateMachineTypes<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n >;\n\n const { signPsbt, prepareWalletPolicy, buildPsbt } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n buildPsbt: fromPromise(buildPsbt),\n signPsbt: fromPromise(signPsbt),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignPsbtDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.OPEN_APP,\n },\n _internalState: {\n error: null,\n wallet: null,\n buildPsbtResult: null,\n signatures: null,\n signedPsbt: null,\n },\n }),\n states: {\n InitialState: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.OPEN_APP,\n }),\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: ({ event }) => ({\n ...event.snapshot.context.intermediateValue,\n step: signPsbtDAStateSteps.OPEN_APP,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignPsbtDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n PrepareWalletPolicy: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.PREPARE_WALLET_POLICY,\n }),\n }),\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"BuildPsbt\" },\n { target: \"Error\" },\n ],\n },\n BuildPsbt: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.BUILD_PSBT,\n }),\n }),\n invoke: {\n id: \"buildPsbt\",\n src: \"buildPsbt\",\n input: ({ context }) => ({\n psbt: context.input.psbt,\n wallet: context._internalState.wallet!,\n dataStoreService: context.input.dataStoreService,\n psbtMapper: context.input.psbtMapper,\n }),\n onDone: {\n target: \"BuildPsbtResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n buildPsbtResult: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"SignPsbt\" },\n { target: \"Error\" },\n ],\n },\n SignPsbt: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: signPsbtDAStateSteps.SIGN_PSBT,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.SIGN_PSBT,\n },\n }),\n invoke: {\n id: \"signPsbt\",\n src: \"signPsbt\",\n input: ({ context }) => ({\n walletSerializer: context.input.walletSerializer,\n valueParser: context.input.valueParser,\n buildPsbtResult: context._internalState.buildPsbtResult!,\n wallet: context._internalState.wallet!,\n }),\n onDone: {\n target: \"SignPsbtResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signatures: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({\n context: {\n _internalState: { signatures, error },\n },\n }) =>\n signatures\n ? Right(signatures)\n : Left(error || new UnknownDAError(\"No error in final state\")),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const buildPsbt = async (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }): Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>> => {\n const {\n input: { psbt, wallet, dataStoreService, psbtMapper },\n } = arg0;\n return new BuildPsbtTask(\n { psbt, wallet },\n dataStoreService,\n psbtMapper,\n ).run();\n };\n const signPsbt = async (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }): Promise<CommandResult<PsbtSignature[], BtcErrorCodes>> => {\n const {\n input: { wallet, buildPsbtResult, walletSerializer, valueParser },\n } = arg0;\n return await new SignPsbtTask(\n internalApi,\n { wallet, ...buildPsbtResult },\n walletSerializer,\n valueParser,\n ).run();\n };\n\n return {\n prepareWalletPolicy,\n buildPsbt,\n signPsbt,\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["SignPsbtDeviceAction_exports", "__export", "SignPsbtDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_SignPsbtDeviceActionTypes", "import_BuildPsbtTask", "import_PrepareWalletPolicyTask", "import_SignPsbtTask", "internalApi", "signPsbt", "prepareWalletPolicy", "buildPsbt", "context", "_", "input", "event", "error", "signatures", "arg0", "walletBuilder", "wallet", "psbt", "dataStoreService", "psbtMapper", "buildPsbtResult", "walletSerializer", "valueParser"]
4
+ "sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignPsbtDAError,\n type SignPsbtDAInput,\n type SignPsbtDAIntermediateValue,\n type SignPsbtDAInternalState,\n type SignPsbtDAOutput,\n signPsbtDAStateSteps,\n} from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type Psbt as ApiPsbt } from \"@api/model/Psbt\";\nimport { type PsbtSignature } from \"@api/model/Signature\";\nimport { type Wallet as ApiWallet } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { APP_NAME } from \"@internal/app-binder/constants\";\nimport {\n BuildPsbtTask,\n type BuildPsbtTaskResult,\n} from \"@internal/app-binder/task/BuildPsbtTask\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { SignPsbtTask } from \"@internal/app-binder/task/SignPsbtTask\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nexport type MachineDependencies = {\n readonly prepareWalletPolicy: (arg0: {\n input: {\n wallet: ApiWallet;\n walletBuilder: WalletBuilder;\n };\n }) => Promise<CommandResult<InternalWallet, BtcErrorCodes>>;\n readonly buildPsbt: (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }) => Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>>;\n readonly signPsbt: (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }) => Promise<CommandResult<PsbtSignature[], BtcErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignPsbtDeviceAction extends XStateDeviceAction<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n > {\n type types = StateMachineTypes<\n SignPsbtDAOutput,\n SignPsbtDAInput,\n SignPsbtDAError,\n SignPsbtDAIntermediateValue,\n SignPsbtDAInternalState\n >;\n\n const { signPsbt, prepareWalletPolicy, buildPsbt } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: APP_NAME },\n }).makeStateMachine(internalApi),\n prepareWalletPolicy: fromPromise(prepareWalletPolicy),\n buildPsbt: fromPromise(buildPsbt),\n signPsbt: fromPromise(signPsbt),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignPsbtDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.OPEN_APP,\n },\n _internalState: {\n error: null,\n wallet: null,\n buildPsbtResult: null,\n signatures: null,\n signedPsbt: null,\n },\n }),\n states: {\n InitialState: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.OPEN_APP,\n }),\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: APP_NAME },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: ({ event }) => ({\n ...event.snapshot.context.intermediateValue,\n step: signPsbtDAStateSteps.OPEN_APP,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignPsbtDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"PrepareWalletPolicy\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n PrepareWalletPolicy: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.PREPARE_WALLET_POLICY,\n }),\n }),\n invoke: {\n id: \"prepareWalletPolicy\",\n src: \"prepareWalletPolicy\",\n input: ({ context }) => ({\n wallet: context.input.wallet,\n walletBuilder: context.input.walletBuilder,\n }),\n onDone: {\n target: \"PrepareWalletPolicyResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n wallet: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PrepareWalletPolicyResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"BuildPsbt\" },\n { target: \"Error\" },\n ],\n },\n BuildPsbt: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.BUILD_PSBT,\n }),\n }),\n invoke: {\n id: \"buildPsbt\",\n src: \"buildPsbt\",\n input: ({ context }) => ({\n psbt: context.input.psbt,\n wallet: context._internalState.wallet!,\n dataStoreService: context.input.dataStoreService,\n psbtMapper: context.input.psbtMapper,\n }),\n onDone: {\n target: \"BuildPsbtResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n buildPsbtResult: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"SignPsbt\" },\n { target: \"Error\" },\n ],\n },\n SignPsbt: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: signPsbtDAStateSteps.SIGN_PSBT,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signPsbtDAStateSteps.SIGN_PSBT,\n },\n }),\n invoke: {\n id: \"signPsbt\",\n src: \"signPsbt\",\n input: ({ context }) => ({\n walletSerializer: context.input.walletSerializer,\n valueParser: context.input.valueParser,\n buildPsbtResult: context._internalState.buildPsbtResult!,\n wallet: context._internalState.wallet!,\n }),\n onDone: {\n target: \"SignPsbtResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signatures: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignPsbtResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({\n context: {\n _internalState: { signatures, error },\n },\n }) =>\n signatures\n ? Right(signatures)\n : Left(error || new UnknownDAError(\"No error in final state\")),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const prepareWalletPolicy = async (arg0: {\n input: { wallet: ApiWallet; walletBuilder: WalletBuilder };\n }): Promise<CommandResult<InternalWallet, BtcErrorCodes>> => {\n const {\n input: { walletBuilder, wallet },\n } = arg0;\n return await new PrepareWalletPolicyTask(\n internalApi,\n { wallet },\n walletBuilder,\n ).run();\n };\n const buildPsbt = async (arg0: {\n input: {\n psbt: ApiPsbt;\n wallet: InternalWallet;\n dataStoreService: DataStoreService;\n psbtMapper: PsbtMapper;\n };\n }): Promise<CommandResult<BuildPsbtTaskResult, BtcErrorCodes>> => {\n const {\n input: { psbt, wallet, dataStoreService, psbtMapper },\n } = arg0;\n return new BuildPsbtTask(\n { psbt, wallet },\n dataStoreService,\n psbtMapper,\n ).run();\n };\n const signPsbt = async (arg0: {\n input: {\n wallet: InternalWallet;\n buildPsbtResult: BuildPsbtTaskResult;\n walletSerializer: WalletSerializer;\n valueParser: ValueParser;\n };\n }): Promise<CommandResult<PsbtSignature[], BtcErrorCodes>> => {\n const {\n input: { wallet, buildPsbtResult, walletSerializer, valueParser },\n } = arg0;\n return await new SignPsbtTask(\n internalApi,\n { wallet, ...buildPsbtResult },\n walletSerializer,\n valueParser,\n ).run();\n };\n\n return {\n prepareWalletPolicy,\n buildPsbt,\n signPsbt,\n };\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAA4B,qBAC5BC,EAA2C,kBAE3CC,EAOO,qDAKPC,EAAyB,0CACzBC,EAGO,mDACPC,EAAwC,6DACxCC,EAA6B,kDAqCtB,MAAMT,UAA6B,oBAMxC,CACA,iBACEU,EAOA,CASA,KAAM,CAAE,SAAAC,EAAU,oBAAAC,EAAqB,UAAAC,CAAU,EAC/C,KAAK,oBAAoBH,CAAW,EAEtC,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EAEA,OAAQ,CACN,oBAAqB,IAAI,sBAAoB,CAC3C,MAAO,CAAE,QAAS,UAAS,CAC7B,CAAC,EAAE,iBAAiBA,CAAW,EAC/B,uBAAqB,eAAYE,CAAmB,EACpD,aAAW,eAAYC,CAAS,EAChC,YAAU,eAAYF,CAAQ,CAChC,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAG,CAAQ,IAAMA,EAAQ,eAAe,QAAU,KACnE,YAAa,CAAC,CAAE,QAAAA,CAAQ,IAAMA,EAAQ,MAAM,WAC9C,EACA,QAAS,CACP,wBAAsB,UAAO,CAC3B,eAAiBC,IAAO,CACtB,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,KACjB,EACF,CAAC,CACH,CACF,CAAC,EAAE,cAAc,CAEf,GAAI,uBACJ,QAAS,eACT,QAAS,CAAC,CAAE,MAAAC,CAAM,KAAO,CACvB,MAAAA,EACA,kBAAmB,CACjB,wBAAyB,0BAAwB,KACjD,KAAM,uBAAqB,QAC7B,EACA,eAAgB,CACd,MAAO,KACP,OAAQ,KACR,gBAAiB,KACjB,WAAY,KACZ,WAAY,IACd,CACF,GACA,OAAQ,CACN,aAAc,CACZ,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,aACT,EACA,qBACF,CACF,EACA,oBAAqB,CACnB,SAAO,UAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyB,0BAAwB,KACjD,KAAM,uBAAqB,QAC7B,EACF,CAAC,EACD,OAAQ,CACN,GAAI,sBACJ,MAAO,CAAE,QAAS,UAAS,EAC3B,IAAK,sBACL,WAAY,CACV,WAAS,UAAO,CACd,kBAAmB,CAAC,CAAE,MAAAC,CAAM,KAAO,CACjC,GAAGA,EAAM,SAAS,QAAQ,kBAC1B,KAAM,uBAAqB,QAC7B,EACF,CAAC,CACH,EACA,OAAQ,CACN,WAAS,UAAO,CACd,eAAiBF,GACRA,EAAE,MAAM,OAAO,OAAgC,CACpD,MAAO,IAAMA,EAAE,QAAQ,eACvB,KAAOG,IAAW,CAChB,GAAGH,EAAE,QAAQ,eACb,MAAAG,CACF,EACF,CAAC,CAEL,CAAC,EACD,OAAQ,gCACV,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CACE,OAAQ,sBACR,MAAO,iBACT,EACA,OACF,CACF,EACA,oBAAqB,CACnB,SAAO,UAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyB,0BAAwB,KACjD,KAAM,uBAAqB,qBAC7B,EACF,CAAC,EACD,OAAQ,CACN,GAAI,sBACJ,IAAK,sBACL,MAAO,CAAC,CAAE,QAAAJ,CAAQ,KAAO,CACvB,OAAQA,EAAQ,MAAM,OACtB,cAAeA,EAAQ,MAAM,aAC/B,GACA,OAAQ,CACN,OAAQ,iCACR,WAAS,UAAO,CACd,eAAgB,CAAC,CAAE,MAAAG,EAAO,QAAAH,CAAQ,OAC5B,0BAAuBG,EAAM,MAAM,EAC9B,CACL,GAAGH,EAAQ,eACX,OAAQG,EAAM,OAAO,IACvB,EAEK,CACL,GAAGH,EAAQ,eACX,MAAOG,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,WAAY,EAChD,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,UAAW,CACT,SAAO,UAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyB,0BAAwB,KACjD,KAAM,uBAAqB,UAC7B,EACF,CAAC,EACD,OAAQ,CACN,GAAI,YACJ,IAAK,YACL,MAAO,CAAC,CAAE,QAAAH,CAAQ,KAAO,CACvB,KAAMA,EAAQ,MAAM,KACpB,OAAQA,EAAQ,eAAe,OAC/B,iBAAkBA,EAAQ,MAAM,iBAChC,WAAYA,EAAQ,MAAM,UAC5B,GACA,OAAQ,CACN,OAAQ,uBACR,WAAS,UAAO,CACd,eAAgB,CAAC,CAAE,MAAAG,EAAO,QAAAH,CAAQ,OAC5B,0BAAuBG,EAAM,MAAM,EAC9B,CACL,GAAGH,EAAQ,eACX,gBAAiBG,EAAM,OAAO,IAChC,EAEK,CACL,GAAGH,EAAQ,eACX,MAAOG,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,qBAAsB,CACpB,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,UAAW,EAC/C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,SAAU,CACR,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBAAyB,0BAAwB,gBACjD,KAAM,uBAAqB,SAC7B,CACF,CAAC,EACD,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,KACjD,KAAM,uBAAqB,SAC7B,CACF,CAAC,EACD,OAAQ,CACN,GAAI,WACJ,IAAK,WACL,MAAO,CAAC,CAAE,QAAAH,CAAQ,KAAO,CACvB,iBAAkBA,EAAQ,MAAM,iBAChC,YAAaA,EAAQ,MAAM,YAC3B,gBAAiBA,EAAQ,eAAe,gBACxC,OAAQA,EAAQ,eAAe,MACjC,GACA,OAAQ,CACN,OAAQ,sBACR,WAAS,UAAO,CACd,eAAgB,CAAC,CAAE,MAAAG,EAAO,QAAAH,CAAQ,OAC5B,0BAAuBG,EAAM,MAAM,EAC9B,CACL,GAAGH,EAAQ,eACX,WAAYG,EAAM,OAAO,IAC3B,EAEK,CACL,GAAGH,EAAQ,eACX,MAAOG,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,oBAAqB,CACnB,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,SAAU,EAC9C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,QAAS,CACP,KAAM,OACR,EACA,MAAO,CACL,KAAM,OACR,CACF,EACA,OAAQ,CAAC,CACP,QAAS,CACP,eAAgB,CAAE,WAAAE,EAAY,MAAAD,CAAM,CACtC,CACF,IACEC,KACI,SAAMA,CAAU,KAChB,QAAKD,GAAS,IAAI,iBAAe,yBAAyB,CAAC,CACnE,CAAC,CACH,CAEA,oBAAoBR,EAA+C,CAiDjE,MAAO,CACL,oBAjD0B,MAAOU,GAE0B,CAC3D,KAAM,CACJ,MAAO,CAAE,cAAAC,EAAe,OAAAC,CAAO,CACjC,EAAIF,EACJ,OAAO,MAAM,IAAI,0BACfV,EACA,CAAE,OAAAY,CAAO,EACTD,CACF,EAAE,IAAI,CACR,EAuCE,UAtCgB,MAAOD,GAOyC,CAChE,KAAM,CACJ,MAAO,CAAE,KAAAG,EAAM,OAAAD,EAAQ,iBAAAE,EAAkB,WAAAC,CAAW,CACtD,EAAIL,EACJ,OAAO,IAAI,gBACT,CAAE,KAAAG,EAAM,OAAAD,CAAO,EACfE,EACAC,CACF,EAAE,IAAI,CACR,EAuBE,SAtBe,MAAOL,GAOsC,CAC5D,KAAM,CACJ,MAAO,CAAE,OAAAE,EAAQ,gBAAAI,EAAiB,iBAAAC,EAAkB,YAAAC,CAAY,CAClE,EAAIR,EACJ,OAAO,MAAM,IAAI,eACfV,EACA,CAAE,OAAAY,EAAQ,GAAGI,CAAgB,EAC7BC,EACAC,CACF,EAAE,IAAI,CACR,CAMA,CACF,CACF",
6
+ "names": ["SignPsbtDeviceAction_exports", "__export", "SignPsbtDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_SignPsbtDeviceActionTypes", "import_constants", "import_BuildPsbtTask", "import_PrepareWalletPolicyTask", "import_SignPsbtTask", "internalApi", "signPsbt", "prepareWalletPolicy", "buildPsbt", "context", "_", "input", "event", "error", "signatures", "arg0", "walletBuilder", "wallet", "psbt", "dataStoreService", "psbtMapper", "buildPsbtResult", "walletSerializer", "valueParser"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var T=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(n,t)=>{for(var a in t)T(n,a,{get:t[a],enumerable:!0})},E=(n,t,a,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of P(t))!U.call(n,u)&&u!==a&&T(n,u,{get:()=>t[u],enumerable:!(d=B(t,u))||d.enumerable});return n};var _=n=>E(T({},"__esModule",{value:!0}),n);var b={};V(b,{ExtractTransactionTask:()=>h});module.exports=_(b);var s=require("@ledgerhq/device-management-kit"),r=require("../../psbt/model/Psbt"),i=require("../../utils/Varint");class h{constructor(t,a){this._args=t;this._valueParser=a}run(){const{psbt:t}=this._args,a=new s.ByteArrayBuilder,d=t.getGlobalValue(r.PsbtGlobal.VERSION).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);a.add32BitUIntToData(d,!1);const u=t.getInputValue(0,r.PsbtIn.WITNESS_UTXO).isJust();u&&a.addBufferToData(Uint8Array.from([0,1]));const p=t.getGlobalValue(r.PsbtGlobal.INPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,i.encodeVarint)(p).extract());const I=new s.ByteArrayBuilder;for(let e=0;e<p;e++){a.addBufferToData(t.getInputValue(e,r.PsbtIn.PREVIOUS_TXID).mapOrDefault(o=>o.data,Buffer.from([])));const c=t.getInputValue(e,r.PsbtIn.OUTPUT_INDEX).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);a.add32BitUIntToData(c,!1);const l=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTSIG).mapOrDefault(o=>o.data,Uint8Array.from([]));a.addBufferToData((0,i.encodeVarint)(l.length).extract()),a.addBufferToData(l);const f=t.getInputValue(e,r.PsbtIn.SEQUENCE).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);if(a.add32BitUIntToData(f,!1),u){const o=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTWITNESS).mapOrDefault(m=>m.data,Uint8Array.from([]));I.addBufferToData(o)}}const g=t.getGlobalValue(r.PsbtGlobal.OUTPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,i.encodeVarint)(g).extract());for(let e=0;e<g;e++){const c=t.getOutputValue(e,r.PsbtOut.AMOUNT).chain(f=>this._valueParser.getInt64LE(f.data)).orDefault(0n),l=t.getOutputValue(e,r.PsbtOut.SCRIPT).mapOrDefault(f=>f.data,Buffer.from([]));a.add64BitIntToData(c,!1),a.addBufferToData((0,i.encodeVarint)(l.length).extract()),a.addBufferToData(l)}a.addBufferToData(I.build());const D=t.getGlobalValue(r.PsbtGlobal.FALLBACK_LOCKTIME).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);return a.add32BitUIntToData(D,!1),(0,s.CommandResultFactory)({data:(0,s.bufferToHexaString)(a.build())})}}0&&(module.exports={ExtractTransactionTask});
1
+ "use strict";var T=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var V=(n,t)=>{for(var a in t)T(n,a,{get:t[a],enumerable:!0})},E=(n,t,a,f)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of P(t))!B.call(n,s)&&s!==a&&T(n,s,{get:()=>t[s],enumerable:!(f=U(t,s))||f.enumerable});return n};var _=n=>E(T({},"__esModule",{value:!0}),n);var b={};V(b,{ExtractTransactionTask:()=>h});module.exports=_(b);var u=require("@ledgerhq/device-management-kit"),r=require("../../psbt/model/Psbt"),d=require("../../utils/Varint");class h{constructor(t,a){this._args=t;this._valueParser=a}run(){const{psbt:t}=this._args,a=new u.ByteArrayBuilder,f=t.getGlobalValue(r.PsbtGlobal.VERSION).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);a.add32BitUIntToData(f,!1);const s=t.getInputValue(0,r.PsbtIn.WITNESS_UTXO).isJust();s&&a.addBufferToData(Uint8Array.from([0,1]));const p=t.getGlobalValue(r.PsbtGlobal.INPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,d.encodeVarint)(p).extract());const I=new u.ByteArrayBuilder;for(let e=0;e<p;e++){a.addBufferToData(t.getInputValue(e,r.PsbtIn.PREVIOUS_TXID).mapOrDefault(o=>o.data,new Uint8Array));const c=t.getInputValue(e,r.PsbtIn.OUTPUT_INDEX).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);a.add32BitUIntToData(c,!1);const l=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTSIG).mapOrDefault(o=>o.data,Uint8Array.from([]));a.addBufferToData((0,d.encodeVarint)(l.length).extract()),a.addBufferToData(l);const i=t.getInputValue(e,r.PsbtIn.SEQUENCE).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);if(a.add32BitUIntToData(i,!1),s){const o=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTWITNESS).mapOrDefault(m=>m.data,Uint8Array.from([]));I.addBufferToData(o)}}const g=t.getGlobalValue(r.PsbtGlobal.OUTPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,d.encodeVarint)(g).extract());for(let e=0;e<g;e++){const c=t.getOutputValue(e,r.PsbtOut.AMOUNT).chain(i=>this._valueParser.getInt64LE(i.data)).orDefault(0n),l=t.getOutputValue(e,r.PsbtOut.SCRIPT).mapOrDefault(i=>i.data,new Uint8Array);a.add64BitIntToData(c,!1),a.addBufferToData((0,d.encodeVarint)(l.length).extract()),a.addBufferToData(l)}a.addBufferToData(I.build());const D=t.getGlobalValue(r.PsbtGlobal.FALLBACK_LOCKTIME).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);return a.add32BitUIntToData(D,!1),(0,u.CommandResultFactory)({data:(0,u.bufferToHexaString)(a.build())})}}0&&(module.exports={ExtractTransactionTask});
2
2
  //# sourceMappingURL=ExtractTransactionTask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/ExtractTransactionTask.ts"],
4
- "sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n type Psbt,\n PsbtGlobal,\n PsbtIn,\n PsbtOut,\n} from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\ntype ExtractTransactionTaskArgs = {\n psbt: Psbt;\n};\n\nexport class ExtractTransactionTask {\n constructor(\n private readonly _args: ExtractTransactionTaskArgs,\n private readonly _valueParser: ValueParser,\n ) {}\n\n /**\n * Processes a PSBT (Partially Signed Bitcoin Transaction) and constructs a finalized Bitcoin transaction.\n *\n * @return {CommandResult<HexaString, BtcErrorCodes>} A `CommandResult` object containing the resulting serialized transaction\n * as a hexadecimal string (without the \"0x\" prefix) on success, or an error code (`BtcErrorCodes`) on failure.\n */\n run(): CommandResult<HexaString, BtcErrorCodes> {\n const { psbt } = this._args;\n const transaction = new ByteArrayBuilder();\n const psbtVersion = psbt\n .getGlobalValue(PsbtGlobal.VERSION)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(psbtVersion, false);\n const isSegwit = psbt.getInputValue(0, PsbtIn.WITNESS_UTXO).isJust();\n if (isSegwit) {\n transaction.addBufferToData(Uint8Array.from([0, 0x01]));\n }\n const inputCount = psbt\n .getGlobalValue(PsbtGlobal.INPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n\n transaction.addBufferToData(encodeVarint(inputCount).extract()!);\n const witnessBuffer = new ByteArrayBuilder();\n for (let i = 0; i < inputCount; i++) {\n transaction.addBufferToData(\n psbt\n .getInputValue(i, PsbtIn.PREVIOUS_TXID)\n .mapOrDefault((v) => v.data, Buffer.from([])),\n );\n const outputIndex = psbt\n .getInputValue(i, PsbtIn.OUTPUT_INDEX)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(outputIndex, false);\n const scriptSig = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTSIG)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n transaction.addBufferToData(encodeVarint(scriptSig.length).extract()!);\n transaction.addBufferToData(scriptSig);\n const sequence = psbt\n .getInputValue(i, PsbtIn.SEQUENCE)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(sequence, false);\n if (isSegwit) {\n const witness = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTWITNESS)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n witnessBuffer.addBufferToData(witness);\n }\n }\n const outputCount = psbt\n .getGlobalValue(PsbtGlobal.OUTPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n transaction.addBufferToData(encodeVarint(outputCount).extract()!);\n for (let o = 0; o < outputCount; o++) {\n const amount = psbt\n .getOutputValue(o, PsbtOut.AMOUNT)\n .chain((value) => this._valueParser.getInt64LE(value.data))\n .orDefault(0n);\n const script = psbt\n .getOutputValue(o, PsbtOut.SCRIPT)\n .mapOrDefault((v) => v.data, Buffer.from([]));\n transaction.add64BitIntToData(amount, false);\n transaction.addBufferToData(encodeVarint(script.length).extract()!);\n transaction.addBufferToData(script);\n }\n transaction.addBufferToData(witnessBuffer.build());\n const locktime = psbt\n .getGlobalValue(PsbtGlobal.FALLBACK_LOCKTIME)\n .chain((v) => this._valueParser.getUInt32LE(v.data))\n .orDefault(0);\n transaction.add32BitUIntToData(locktime, false);\n return CommandResultFactory({\n data: bufferToHexaString(transaction.build()),\n });\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n type Psbt,\n PsbtGlobal,\n PsbtIn,\n PsbtOut,\n} from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\ntype ExtractTransactionTaskArgs = {\n psbt: Psbt;\n};\n\nexport class ExtractTransactionTask {\n constructor(\n private readonly _args: ExtractTransactionTaskArgs,\n private readonly _valueParser: ValueParser,\n ) {}\n\n /**\n * Processes a PSBT (Partially Signed Bitcoin Transaction) and constructs a finalized Bitcoin transaction.\n *\n * @return {CommandResult<HexaString, BtcErrorCodes>} A `CommandResult` object containing the resulting serialized transaction\n * as a hexadecimal string (without the \"0x\" prefix) on success, or an error code (`BtcErrorCodes`) on failure.\n */\n run(): CommandResult<HexaString, BtcErrorCodes> {\n const { psbt } = this._args;\n const transaction = new ByteArrayBuilder();\n const psbtVersion = psbt\n .getGlobalValue(PsbtGlobal.VERSION)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(psbtVersion, false);\n const isSegwit = psbt.getInputValue(0, PsbtIn.WITNESS_UTXO).isJust();\n if (isSegwit) {\n transaction.addBufferToData(Uint8Array.from([0, 0x01]));\n }\n const inputCount = psbt\n .getGlobalValue(PsbtGlobal.INPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n\n transaction.addBufferToData(encodeVarint(inputCount).extract()!);\n const witnessBuffer = new ByteArrayBuilder();\n for (let i = 0; i < inputCount; i++) {\n transaction.addBufferToData(\n psbt\n .getInputValue(i, PsbtIn.PREVIOUS_TXID)\n .mapOrDefault((v) => v.data, new Uint8Array()),\n );\n const outputIndex = psbt\n .getInputValue(i, PsbtIn.OUTPUT_INDEX)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(outputIndex, false);\n const scriptSig = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTSIG)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n transaction.addBufferToData(encodeVarint(scriptSig.length).extract()!);\n transaction.addBufferToData(scriptSig);\n const sequence = psbt\n .getInputValue(i, PsbtIn.SEQUENCE)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(sequence, false);\n if (isSegwit) {\n const witness = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTWITNESS)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n witnessBuffer.addBufferToData(witness);\n }\n }\n const outputCount = psbt\n .getGlobalValue(PsbtGlobal.OUTPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n transaction.addBufferToData(encodeVarint(outputCount).extract()!);\n for (let o = 0; o < outputCount; o++) {\n const amount = psbt\n .getOutputValue(o, PsbtOut.AMOUNT)\n .chain((value) => this._valueParser.getInt64LE(value.data))\n .orDefault(0n);\n const script = psbt\n .getOutputValue(o, PsbtOut.SCRIPT)\n .mapOrDefault((v) => v.data, new Uint8Array());\n transaction.add64BitIntToData(amount, false);\n transaction.addBufferToData(encodeVarint(script.length).extract()!);\n transaction.addBufferToData(script);\n }\n transaction.addBufferToData(witnessBuffer.build());\n const locktime = psbt\n .getGlobalValue(PsbtGlobal.FALLBACK_LOCKTIME)\n .chain((v) => this._valueParser.getUInt32LE(v.data))\n .orDefault(0);\n transaction.add32BitUIntToData(locktime, false);\n return CommandResultFactory({\n data: bufferToHexaString(transaction.build()),\n });\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["ExtractTransactionTask_exports", "__export", "ExtractTransactionTask", "__toCommonJS", "import_device_management_kit", "import_Psbt", "import_Varint", "_args", "_valueParser", "psbt", "transaction", "psbtVersion", "value", "isSegwit", "inputCount", "witnessBuffer", "i", "v", "outputIndex", "scriptSig", "sequence", "witness", "outputCount", "o", "amount", "script", "locktime"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var P=Object.create;var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var h=(o,s,c,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of k(s))!R.call(o,n)&&n!==c&&l(o,n,{get:()=>s[n],enumerable:!(a=x(s,n))||a.enumerable});return o};var S=(o,s,c)=>(c=o!=null?P(B(o)):{},h(s||!o||!o.__esModule?l(c,"default",{value:o,enumerable:!0}):c,o));var m=require("@ledgerhq/device-management-kit"),E=S(require("bitcoinjs-lib")),t=require("purify-ts"),u=require("../../../psbt/model/Psbt"),b=require("./DefaultPsbtMapper");describe("DefaultPsbtMapper tests",()=>{const o="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",s="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",c=(0,m.hexaStringToBuffer)(o),a=vi.fn(),n={deserialize:a},A=vi.fn(),d={normalize:A},f=()=>new u.Psbt;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(o);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map base64 string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(s);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map bjs transaction",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(E.Psbt.fromHex(o));expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map byte array",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map invalid string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map("some random string");expect(p.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=f();a.mockReturnValueOnce((0,t.Left)(new Error)),A.mockReturnValueOnce((0,t.Right)(e));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(i.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Left)(new Error));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(i.isRight()).toStrictEqual(!1)})});
1
+ "use strict";var P=Object.create;var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var h=(o,f,c,a)=>{if(f&&typeof f=="object"||typeof f=="function")for(let n of k(f))!R.call(o,n)&&n!==c&&l(o,n,{get:()=>f[n],enumerable:!(a=x(f,n))||a.enumerable});return o};var S=(o,f,c)=>(c=o!=null?P(B(o)):{},h(f||!o||!o.__esModule?l(c,"default",{value:o,enumerable:!0}):c,o));var m=require("@ledgerhq/device-management-kit"),E=S(require("bitcoinjs-lib")),t=require("purify-ts"),u=require("../../../psbt/model/Psbt"),b=require("./DefaultPsbtMapper");describe("DefaultPsbtMapper tests",()=>{const o="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",f="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",c=(0,m.hexaStringToBuffer)(o),a=vi.fn(),n={deserialize:a},A=vi.fn(),d={normalize:A},s=()=>new u.Psbt;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(o);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map base64 string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(f);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map bjs transaction",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(E.Psbt.fromHex(o));expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map byte array",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map invalid string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map("some non base64 string!");expect(p.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=s();a.mockReturnValueOnce((0,t.Left)(new Error)),A.mockReturnValueOnce((0,t.Right)(e));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(i.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Left)(new Error));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(i.isRight()).toStrictEqual(!1)})});
2
2
  //# sourceMappingURL=DefaultPsbtMapper.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/psbt/service/psbt/DefaultPsbtMapper.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport * as bjs from \"bitcoinjs-lib\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { Psbt } from \"@internal/psbt/model/Psbt\";\n\nimport { DefaultPsbtMapper } from \"./DefaultPsbtMapper\";\nimport { type DefaultPsbtSerializer } from \"./DefaultPsbtSerializer\";\nimport { type DefaultPsbtV2Normalizer } from \"./DefaultPsbtV2Normalizer\";\n\ndescribe(\"DefaultPsbtMapper tests\", () => {\n // Test case from https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#user-content-Test_Vectors\n const SERIALIZED_PSBT_V0_HEX =\n \"70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000\";\n const SERIALIZED_PSBT_V0_BASE64 =\n \"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=\";\n const SERIALIZED_PSBT_V0 = hexaStringToBuffer(SERIALIZED_PSBT_V0_HEX)!;\n\n // Mock PsbtSerializer\n const mockDeserialize = vi.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = vi.fn();\n const mockNormalizer: DefaultPsbtV2Normalizer = {\n normalize: mockNormalize,\n } as unknown as DefaultPsbtV2Normalizer;\n\n // Mocked psbt\n const createPsbt = () => new Psbt();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Map hex string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_HEX);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map base64 string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_BASE64);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map bjs transaction\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(bjs.Psbt.fromHex(SERIALIZED_PSBT_V0_HEX));\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map byte array\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map invalid string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(\"some random string\");\n\n // Then\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Parser failure\", () => {\n // Given\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Left(new Error()));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Normalizer failure\", () => {\n // Given\n const parsedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Left(new Error()));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n});\n"],
5
- "mappings": "wdAAA,IAAAA,EAAmC,2CACnCC,EAAqB,4BACrBC,EAA4B,qBAE5BC,EAAqB,qCAErBC,EAAkC,+BAIlC,SAAS,0BAA2B,IAAM,CAExC,MAAMC,EACJ,ymCACIC,EACJ,mvBACIC,KAAqB,sBAAmBF,CAAsB,EAG9DG,EAAkB,GAAG,GAAG,EACxBC,EAAwC,CAC5C,YAAaD,CACf,EAGME,EAAgB,GAAG,GAAG,EACtBC,EAA0C,CAC9C,UAAWD,CACb,EAGME,EAAa,IAAM,IAAI,OAE7B,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,iBAAkB,IAAM,CAEzB,MAAMC,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,uBAAoB,SAAMK,CAAU,CAAC,EACrDH,EAAc,uBAAoB,SAAMI,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAI,oBAAkBN,EAAgBE,CAAc,EAG7C,IAAIN,CAAsB,EAGhD,OAAOG,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,oBAAqB,IAAM,CAE5B,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,uBAAoB,SAAMK,CAAU,CAAC,EACrDH,EAAc,uBAAoB,SAAMI,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAI,oBAAkBN,EAAgBE,CAAc,EAG7C,IAAIL,CAAyB,EAGnD,OAAOE,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,sBAAuB,IAAM,CAE9B,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,uBAAoB,SAAMK,CAAU,CAAC,EACrDH,EAAc,uBAAoB,SAAMI,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAI,oBAAkBN,EAAgBE,CAAc,EAG7C,IAAIV,EAAI,KAAK,QAAQI,CAAsB,CAAC,EAGlE,OAAOG,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,iBAAkB,IAAM,CAEzB,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,uBAAoB,SAAMK,CAAU,CAAC,EACrDH,EAAc,uBAAoB,SAAMI,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAI,oBAAkBN,EAAgBE,CAAc,EAG7C,IAAIJ,CAAkB,EAG5C,OAAOC,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,qBAAsB,IAAM,CAE7B,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,uBAAoB,SAAMK,CAAU,CAAC,EACrDH,EAAc,uBAAoB,SAAMI,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAI,oBAAkBN,EAAgBE,CAAc,EAG7C,IAAI,oBAAoB,EAG9C,OAAOI,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAK,CAC9C,CAAC,EAED,GAAG,iBAAkB,IAAM,CAEzB,MAAMD,EAAiBF,EAAW,EAClCJ,EAAgB,uBAAoB,QAAK,IAAI,KAAO,CAAC,EACrDE,EAAc,uBAAoB,SAAMI,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAI,oBAAkBN,EAAgBE,CAAc,EAG7C,IAAIJ,CAAkB,EAG5C,OAAOC,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOQ,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAK,CAC9C,CAAC,EAED,GAAG,qBAAsB,IAAM,CAE7B,MAAMF,EAAaD,EAAW,EAC9BJ,EAAgB,uBAAoB,SAAMK,CAAU,CAAC,EACrDH,EAAc,uBAAoB,QAAK,IAAI,KAAO,CAAC,EAInD,MAAMK,EAHS,IAAI,oBAAkBN,EAAgBE,CAAc,EAG7C,IAAIJ,CAAkB,EAG5C,OAAOC,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAK,CAC9C,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport * as bjs from \"bitcoinjs-lib\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { Psbt } from \"@internal/psbt/model/Psbt\";\n\nimport { DefaultPsbtMapper } from \"./DefaultPsbtMapper\";\nimport { type DefaultPsbtSerializer } from \"./DefaultPsbtSerializer\";\nimport { type DefaultPsbtV2Normalizer } from \"./DefaultPsbtV2Normalizer\";\n\ndescribe(\"DefaultPsbtMapper tests\", () => {\n // Test case from https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#user-content-Test_Vectors\n const SERIALIZED_PSBT_V0_HEX =\n \"70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000\";\n const SERIALIZED_PSBT_V0_BASE64 =\n \"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=\";\n const SERIALIZED_PSBT_V0 = hexaStringToBuffer(SERIALIZED_PSBT_V0_HEX)!;\n\n // Mock PsbtSerializer\n const mockDeserialize = vi.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = vi.fn();\n const mockNormalizer: DefaultPsbtV2Normalizer = {\n normalize: mockNormalize,\n } as unknown as DefaultPsbtV2Normalizer;\n\n // Mocked psbt\n const createPsbt = () => new Psbt();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Map hex string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_HEX);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map base64 string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_BASE64);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map bjs transaction\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(bjs.Psbt.fromHex(SERIALIZED_PSBT_V0_HEX));\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map byte array\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map invalid string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(\"some non base64 string!\");\n\n // Then\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Parser failure\", () => {\n // Given\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Left(new Error()));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Normalizer failure\", () => {\n // Given\n const parsedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Left(new Error()));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "bjs", "import_purify_ts", "import_Psbt", "import_DefaultPsbtMapper", "SERIALIZED_PSBT_V0_HEX", "SERIALIZED_PSBT_V0_BASE64", "SERIALIZED_PSBT_V0", "mockDeserialize", "mockSerializer", "mockNormalize", "mockNormalizer", "createPsbt", "parsedPsbt", "normalizedPsbt", "mapped"]
7
7
  }
@@ -63,5 +63,5 @@
63
63
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
64
64
  },
65
65
  "types": "lib/cjs/index.d.ts",
66
- "version": "1.3.0"
66
+ "version": "1.3.2"
67
67
  }
@@ -1,2 +1,2 @@
1
- var y=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var m=(s,e,t,n)=>{for(var r=n>1?void 0:n?S(e,t):e,p=s.length-1,l;p>=0;p--)(l=s[p])&&(r=(n?l(e,t,r):l(r))||r);return n&&r&&y(e,t,r),r},i=(s,e)=>(t,n)=>e(t,n,s);import{CallTaskInAppDeviceAction as g,SendCommandInAppDeviceAction as u,UserInteractionRequired as o}from"@ledgerhq/device-management-kit";import{inject as a,injectable as h}from"inversify";import{GetExtendedPublicKeyCommand as k}from"../app-binder/command/GetExtendedPublicKeyCommand";import{GetMasterFingerprintCommand as _}from"../app-binder/command/GetMasterFingerprintCommand";import{SignPsbtDeviceAction as D}from"../app-binder/device-action/SignPsbt/SignPsbtDeviceAction";import{SignTransactionDeviceAction as b}from"../app-binder/device-action/SignTransaction/SignTransactionDeviceAction";import{RegisterWalletTask as w}from"../app-binder/task/RegisterWalletTask";import{SendSignMessageTask as I}from"../app-binder/task/SignMessageTask";import{dataStoreTypes as P}from"../data-store/di/dataStoreTypes";import{externalTypes as d}from"../externalTypes";import{psbtTypes as v}from"../psbt/di/psbtTypes";import{walletTypes as A}from"../wallet/di/walletTypes";import{GetWalletAddressDeviceAction as f}from"./device-action/GetWalletAddress/GetWalletAddressDeviceAction";let c=class{constructor(e,t,n,r,p,l,T,M){this._dmk=e;this._sessionId=t;this._walletBuilder=n;this._walletSerializer=r;this._dataStoreService=p;this._psbtMapper=l;this._valueParser=T;this._dmkLoggerFactory=M}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new u({input:{command:new k(e),appName:"Bitcoin",requiredUserInteraction:e.checkOnDevice?o.VerifyAddress:o.None,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("GetExtendedPublicKeyCommand")})})}getMasterFingerprint(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new u({input:{command:new _,appName:"Bitcoin",requiredUserInteraction:o.None,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("GetMasterFingerprintCommand")})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new g({input:{task:async t=>new I(t,{derivationPath:e.derivationPath,message:e.message,loggerFactory:this._dmkLoggerFactory},this._dataStoreService).run(),appName:"Bitcoin",requiredUserInteraction:o.SignPersonalMessage,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("SendSignMessageTask")})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new D({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp},loggerFactory:this._dmkLoggerFactory})})}getWalletAddress(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new f({input:{wallet:e.wallet,skipOpenApp:e.skipOpenApp,checkOnDevice:e.checkOnDevice,change:e.change,addressIndex:e.addressIndex,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService},loggerFactory:this._dmkLoggerFactory})})}signTransaction(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new b({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp},loggerFactory:this._dmkLoggerFactory})})}registerWallet(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new g({input:{task:async t=>new w(t,{walletPolicy:e.wallet,loggerFactory:this._dmkLoggerFactory},this._walletBuilder,this._walletSerializer,this._dataStoreService).run(),appName:"Bitcoin",requiredUserInteraction:o.RegisterWallet,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("RegisterWalletTask")})})}};c=m([h(),i(0,a(d.Dmk)),i(1,a(d.SessionId)),i(2,a(A.WalletBuilder)),i(3,a(A.WalletSerializer)),i(4,a(P.DataStoreService)),i(5,a(v.PsbtMapper)),i(6,a(v.ValueParser)),i(7,a(d.DmkLoggerFactory))],c);export{c as BtcAppBinder};
1
+ var S=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var g=(n,e,t,s)=>{for(var i=s>1?void 0:s?h(e,t):e,p=n.length-1,l;p>=0;p--)(l=n[p])&&(i=(s?l(e,t,i):l(i))||i);return s&&i&&S(e,t,i),i},r=(n,e)=>(t,s)=>e(t,s,n);import{CallTaskInAppDeviceAction as u,SendCommandInAppDeviceAction as v,UserInteractionRequired as o}from"@ledgerhq/device-management-kit";import{inject as a,injectable as k}from"inversify";import{GetExtendedPublicKeyCommand as _}from"../app-binder/command/GetExtendedPublicKeyCommand";import{GetMasterFingerprintCommand as D}from"../app-binder/command/GetMasterFingerprintCommand";import{SignPsbtDeviceAction as b}from"../app-binder/device-action/SignPsbt/SignPsbtDeviceAction";import{SignTransactionDeviceAction as w}from"../app-binder/device-action/SignTransaction/SignTransactionDeviceAction";import{RegisterWalletTask as P}from"../app-binder/task/RegisterWalletTask";import{SendSignMessageTask as I}from"../app-binder/task/SignMessageTask";import{dataStoreTypes as f}from"../data-store/di/dataStoreTypes";import{externalTypes as m}from"../externalTypes";import{psbtTypes as A}from"../psbt/di/psbtTypes";import{walletTypes as y}from"../wallet/di/walletTypes";import{GetWalletAddressDeviceAction as T}from"./device-action/GetWalletAddress/GetWalletAddressDeviceAction";import{APP_NAME as c}from"./constants";let d=class{constructor(e,t,s,i,p,l,M,W){this._dmk=e;this._sessionId=t;this._walletBuilder=s;this._walletSerializer=i;this._dataStoreService=p;this._psbtMapper=l;this._valueParser=M;this._dmkLoggerFactory=W}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new v({input:{command:new _(e),appName:c,requiredUserInteraction:e.checkOnDevice?o.VerifyAddress:o.None,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("GetExtendedPublicKeyCommand")})})}getMasterFingerprint(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new v({input:{command:new D,appName:c,requiredUserInteraction:o.None,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("GetMasterFingerprintCommand")})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new u({input:{task:async t=>new I(t,{derivationPath:e.derivationPath,message:e.message,loggerFactory:this._dmkLoggerFactory},this._dataStoreService).run(),appName:c,requiredUserInteraction:o.SignPersonalMessage,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("SendSignMessageTask")})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new b({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp},loggerFactory:this._dmkLoggerFactory})})}getWalletAddress(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new T({input:{wallet:e.wallet,skipOpenApp:e.skipOpenApp,checkOnDevice:e.checkOnDevice,change:e.change,addressIndex:e.addressIndex,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService},loggerFactory:this._dmkLoggerFactory})})}signTransaction(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new w({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp},loggerFactory:this._dmkLoggerFactory})})}registerWallet(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new u({input:{task:async t=>new P(t,{walletPolicy:e.wallet,loggerFactory:this._dmkLoggerFactory},this._walletBuilder,this._walletSerializer,this._dataStoreService).run(),appName:c,requiredUserInteraction:o.RegisterWallet,skipOpenApp:e.skipOpenApp},logger:this._dmkLoggerFactory("RegisterWalletTask")})})}};d=g([k(),r(0,a(m.Dmk)),r(1,a(m.SessionId)),r(2,a(y.WalletBuilder)),r(3,a(y.WalletSerializer)),r(4,a(f.DataStoreService)),r(5,a(A.PsbtMapper)),r(6,a(A.ValueParser)),r(7,a(m.DmkLoggerFactory))],d);export{d as BtcAppBinder};
2
2
  //# sourceMappingURL=BtcAppBinder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/BtcAppBinder.ts"],
4
- "sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n DeviceManagementKit,\n type DeviceSessionId,\n LoggerPublisherService,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport {\n GetExtendedPublicKeyDAInput,\n GetExtendedPublicKeyDAReturnType,\n} from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport {\n GetMasterFingerprintDAInput,\n GetMasterFingerprintDAReturnType,\n} from \"@api/app-binder/GetMasterFingerprintDeviceActionTypes\";\nimport {\n RegisterWalletDAInput,\n RegisterWalletDAReturnType,\n} from \"@api/app-binder/RegisterWalletDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignPsbtDAReturnType } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { GetWalletAddressDAReturnType } from \"@api/index\";\nimport { Psbt } from \"@api/model/Psbt\";\nimport { Wallet } from \"@api/model/Wallet\";\nimport { GetExtendedPublicKeyCommand } from \"@internal/app-binder/command/GetExtendedPublicKeyCommand\";\nimport { GetMasterFingerprintCommand } from \"@internal/app-binder/command/GetMasterFingerprintCommand\";\nimport { SignPsbtDeviceAction } from \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\";\nimport { SignTransactionDeviceAction } from \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { RegisterWalletTask } from \"@internal/app-binder/task/RegisterWalletTask\";\nimport { SendSignMessageTask } from \"@internal/app-binder/task/SignMessageTask\";\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { psbtTypes } from \"@internal/psbt/di/psbtTypes\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { walletTypes } from \"@internal/wallet/di/walletTypes\";\nimport type { WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport type { WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { GetWalletAddressDeviceAction } from \"./device-action/GetWalletAddress/GetWalletAddressDeviceAction\";\n\n@injectable()\nexport class BtcAppBinder {\n constructor(\n @inject(externalTypes.Dmk)\n private readonly _dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId)\n private readonly _sessionId: DeviceSessionId,\n @inject(walletTypes.WalletBuilder)\n private readonly _walletBuilder: WalletBuilder,\n @inject(walletTypes.WalletSerializer)\n private readonly _walletSerializer: WalletSerializer,\n @inject(dataStoreTypes.DataStoreService)\n private readonly _dataStoreService: DataStoreService,\n @inject(psbtTypes.PsbtMapper)\n private readonly _psbtMapper: PsbtMapper,\n @inject(psbtTypes.ValueParser)\n private readonly _valueParser: ValueParser,\n @inject(externalTypes.DmkLoggerFactory)\n private readonly _dmkLoggerFactory: (tag: string) => LoggerPublisherService,\n ) {}\n\n getExtendedPublicKey(\n args: GetExtendedPublicKeyDAInput,\n ): GetExtendedPublicKeyDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(args),\n appName: \"Bitcoin\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"GetExtendedPublicKeyCommand\"),\n }),\n });\n }\n\n getMasterFingerprint(\n args: GetMasterFingerprintDAInput,\n ): GetMasterFingerprintDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetMasterFingerprintCommand(),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"GetMasterFingerprintCommand\"),\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(\n internalApi,\n {\n derivationPath: args.derivationPath,\n message: args.message,\n loggerFactory: this._dmkLoggerFactory,\n },\n this._dataStoreService,\n ).run(),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"SendSignMessageTask\"),\n }),\n });\n }\n\n signPsbt(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignPsbtDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignPsbtDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n loggerFactory: this._dmkLoggerFactory,\n }),\n });\n }\n\n getWalletAddress(args: {\n checkOnDevice: boolean;\n wallet: Wallet;\n change: boolean;\n addressIndex: number;\n skipOpenApp: boolean;\n }): GetWalletAddressDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new GetWalletAddressDeviceAction({\n input: {\n wallet: args.wallet,\n skipOpenApp: args.skipOpenApp,\n checkOnDevice: args.checkOnDevice,\n change: args.change,\n addressIndex: args.addressIndex,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n },\n loggerFactory: this._dmkLoggerFactory,\n }),\n });\n }\n\n signTransaction(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignTransactionDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n loggerFactory: this._dmkLoggerFactory,\n }),\n });\n }\n\n registerWallet(args: RegisterWalletDAInput): RegisterWalletDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new RegisterWalletTask(\n internalApi,\n {\n walletPolicy: args.wallet,\n loggerFactory: this._dmkLoggerFactory,\n },\n this._walletBuilder,\n this._walletSerializer,\n this._dataStoreService,\n ).run(),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.RegisterWallet,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"RegisterWalletTask\"),\n }),\n });\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["CallTaskInAppDeviceAction", "SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "GetExtendedPublicKeyCommand", "GetMasterFingerprintCommand", "SignPsbtDeviceAction", "SignTransactionDeviceAction", "RegisterWalletTask", "SendSignMessageTask", "dataStoreTypes", "externalTypes", "psbtTypes", "walletTypes", "GetWalletAddressDeviceAction", "BtcAppBinder", "_dmk", "_sessionId", "_walletBuilder", "_walletSerializer", "_dataStoreService", "_psbtMapper", "_valueParser", "_dmkLoggerFactory", "args", "SendCommandInAppDeviceAction", "GetExtendedPublicKeyCommand", "UserInteractionRequired", "GetMasterFingerprintCommand", "CallTaskInAppDeviceAction", "internalApi", "SendSignMessageTask", "SignPsbtDeviceAction", "GetWalletAddressDeviceAction", "SignTransactionDeviceAction", "RegisterWalletTask", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "walletTypes", "dataStoreTypes", "psbtTypes"]
4
+ "sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n DeviceManagementKit,\n type DeviceSessionId,\n LoggerPublisherService,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport {\n GetExtendedPublicKeyDAInput,\n GetExtendedPublicKeyDAReturnType,\n} from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport {\n GetMasterFingerprintDAInput,\n GetMasterFingerprintDAReturnType,\n} from \"@api/app-binder/GetMasterFingerprintDeviceActionTypes\";\nimport {\n RegisterWalletDAInput,\n RegisterWalletDAReturnType,\n} from \"@api/app-binder/RegisterWalletDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignPsbtDAReturnType } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { GetWalletAddressDAReturnType } from \"@api/index\";\nimport { Psbt } from \"@api/model/Psbt\";\nimport { Wallet } from \"@api/model/Wallet\";\nimport { GetExtendedPublicKeyCommand } from \"@internal/app-binder/command/GetExtendedPublicKeyCommand\";\nimport { GetMasterFingerprintCommand } from \"@internal/app-binder/command/GetMasterFingerprintCommand\";\nimport { SignPsbtDeviceAction } from \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\";\nimport { SignTransactionDeviceAction } from \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { RegisterWalletTask } from \"@internal/app-binder/task/RegisterWalletTask\";\nimport { SendSignMessageTask } from \"@internal/app-binder/task/SignMessageTask\";\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { psbtTypes } from \"@internal/psbt/di/psbtTypes\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { walletTypes } from \"@internal/wallet/di/walletTypes\";\nimport type { WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport type { WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { GetWalletAddressDeviceAction } from \"./device-action/GetWalletAddress/GetWalletAddressDeviceAction\";\nimport { APP_NAME } from \"./constants\";\n\n@injectable()\nexport class BtcAppBinder {\n constructor(\n @inject(externalTypes.Dmk)\n private readonly _dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId)\n private readonly _sessionId: DeviceSessionId,\n @inject(walletTypes.WalletBuilder)\n private readonly _walletBuilder: WalletBuilder,\n @inject(walletTypes.WalletSerializer)\n private readonly _walletSerializer: WalletSerializer,\n @inject(dataStoreTypes.DataStoreService)\n private readonly _dataStoreService: DataStoreService,\n @inject(psbtTypes.PsbtMapper)\n private readonly _psbtMapper: PsbtMapper,\n @inject(psbtTypes.ValueParser)\n private readonly _valueParser: ValueParser,\n @inject(externalTypes.DmkLoggerFactory)\n private readonly _dmkLoggerFactory: (tag: string) => LoggerPublisherService,\n ) {}\n\n getExtendedPublicKey(\n args: GetExtendedPublicKeyDAInput,\n ): GetExtendedPublicKeyDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(args),\n appName: APP_NAME,\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"GetExtendedPublicKeyCommand\"),\n }),\n });\n }\n\n getMasterFingerprint(\n args: GetMasterFingerprintDAInput,\n ): GetMasterFingerprintDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetMasterFingerprintCommand(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"GetMasterFingerprintCommand\"),\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(\n internalApi,\n {\n derivationPath: args.derivationPath,\n message: args.message,\n loggerFactory: this._dmkLoggerFactory,\n },\n this._dataStoreService,\n ).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"SendSignMessageTask\"),\n }),\n });\n }\n\n signPsbt(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignPsbtDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignPsbtDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n loggerFactory: this._dmkLoggerFactory,\n }),\n });\n }\n\n getWalletAddress(args: {\n checkOnDevice: boolean;\n wallet: Wallet;\n change: boolean;\n addressIndex: number;\n skipOpenApp: boolean;\n }): GetWalletAddressDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new GetWalletAddressDeviceAction({\n input: {\n wallet: args.wallet,\n skipOpenApp: args.skipOpenApp,\n checkOnDevice: args.checkOnDevice,\n change: args.change,\n addressIndex: args.addressIndex,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n },\n loggerFactory: this._dmkLoggerFactory,\n }),\n });\n }\n\n signTransaction(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignTransactionDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n loggerFactory: this._dmkLoggerFactory,\n }),\n });\n }\n\n registerWallet(args: RegisterWalletDAInput): RegisterWalletDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new RegisterWalletTask(\n internalApi,\n {\n walletPolicy: args.wallet,\n loggerFactory: this._dmkLoggerFactory,\n },\n this._walletBuilder,\n this._walletSerializer,\n this._dataStoreService,\n ).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.RegisterWallet,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this._dmkLoggerFactory(\"RegisterWalletTask\"),\n }),\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OACE,6BAAAA,EAIA,gCAAAC,EACA,2BAAAC,MACK,kCACP,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YAoBnC,OAAS,+BAAAC,MAAmC,2DAC5C,OAAS,+BAAAC,MAAmC,2DAC5C,OAAS,wBAAAC,MAA4B,mEACrC,OAAS,+BAAAC,MAAmC,iFAC5C,OAAS,sBAAAC,MAA0B,+CACnC,OAAS,uBAAAC,MAA2B,4CACpC,OAAS,kBAAAC,MAAsB,yCAE/B,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,aAAAC,MAAiB,8BAG1B,OAAS,eAAAC,MAAmB,kCAI5B,OAAS,gCAAAC,MAAoC,gEAC7C,OAAS,YAAAC,MAAgB,cAGlB,IAAMC,EAAN,KAAmB,CACxB,YAEmBC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EACjB,CAfiB,UAAAP,EAEA,gBAAAC,EAEA,oBAAAC,EAEA,uBAAAC,EAEA,uBAAAC,EAEA,iBAAAC,EAEA,kBAAAC,EAEA,uBAAAC,CAChB,CAEH,qBACEC,EACkC,CAClC,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIC,EAA6B,CAC7C,MAAO,CACL,QAAS,IAAIC,EAA4BF,CAAI,EAC7C,QAASG,EACT,wBAAyBH,EAAK,cAC1BI,EAAwB,cACxBA,EAAwB,KAC5B,YAAaJ,EAAK,WACpB,EACA,OAAQ,KAAK,kBAAkB,6BAA6B,CAC9D,CAAC,CACH,CAAC,CACH,CAEA,qBACEA,EACkC,CAClC,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIC,EAA6B,CAC7C,MAAO,CACL,QAAS,IAAII,EACb,QAASF,EACT,wBAAyBC,EAAwB,KACjD,YAAaJ,EAAK,WACpB,EACA,OAAQ,KAAK,kBAAkB,6BAA6B,CAC9D,CAAC,CACH,CAAC,CACH,CAEA,YAAYA,EAIgB,CAC1B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIM,EAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAIC,EACFD,EACA,CACE,eAAgBP,EAAK,eACrB,QAASA,EAAK,QACd,cAAe,KAAK,iBACtB,EACA,KAAK,iBACP,EAAE,IAAI,EACR,QAASG,EACT,wBAAyBC,EAAwB,oBACjD,YAAaJ,EAAK,WACpB,EACA,OAAQ,KAAK,kBAAkB,qBAAqB,CACtD,CAAC,CACH,CAAC,CACH,CAEA,SAASA,EAIgB,CACvB,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIS,EAAqB,CACrC,MAAO,CACL,KAAMT,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,aAClB,YAAaA,EAAK,WACpB,EACA,cAAe,KAAK,iBACtB,CAAC,CACH,CAAC,CACH,CAEA,iBAAiBA,EAMgB,CAC/B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIU,EAA6B,CAC7C,MAAO,CACL,OAAQV,EAAK,OACb,YAAaA,EAAK,YAClB,cAAeA,EAAK,cACpB,OAAQA,EAAK,OACb,aAAcA,EAAK,aACnB,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,iBACzB,EACA,cAAe,KAAK,iBACtB,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIW,EAA4B,CAC5C,MAAO,CACL,KAAMX,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,aAClB,YAAaA,EAAK,WACpB,EACA,cAAe,KAAK,iBACtB,CAAC,CACH,CAAC,CACH,CAEA,eAAeA,EAAyD,CACtE,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIM,EAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAIK,EACFL,EACA,CACE,aAAcP,EAAK,OACnB,cAAe,KAAK,iBACtB,EACA,KAAK,eACL,KAAK,kBACL,KAAK,iBACP,EAAE,IAAI,EACR,QAASG,EACT,wBAAyBC,EAAwB,eACjD,YAAaJ,EAAK,WACpB,EACA,OAAQ,KAAK,kBAAkB,oBAAoB,CACrD,CAAC,CACH,CAAC,CACH,CACF,EAnLaT,EAANsB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAc,GAAG,GAExBF,EAAA,EAAAC,EAAOC,EAAc,SAAS,GAE9BF,EAAA,EAAAC,EAAOE,EAAY,aAAa,GAEhCH,EAAA,EAAAC,EAAOE,EAAY,gBAAgB,GAEnCH,EAAA,EAAAC,EAAOG,EAAe,gBAAgB,GAEtCJ,EAAA,EAAAC,EAAOI,EAAU,UAAU,GAE3BL,EAAA,EAAAC,EAAOI,EAAU,WAAW,GAE5BL,EAAA,EAAAC,EAAOC,EAAc,gBAAgB,IAhB7B1B",
6
+ "names": ["CallTaskInAppDeviceAction", "SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "GetExtendedPublicKeyCommand", "GetMasterFingerprintCommand", "SignPsbtDeviceAction", "SignTransactionDeviceAction", "RegisterWalletTask", "SendSignMessageTask", "dataStoreTypes", "externalTypes", "psbtTypes", "walletTypes", "GetWalletAddressDeviceAction", "APP_NAME", "BtcAppBinder", "_dmk", "_sessionId", "_walletBuilder", "_walletSerializer", "_dataStoreService", "_psbtMapper", "_valueParser", "_dmkLoggerFactory", "args", "SendCommandInAppDeviceAction", "GetExtendedPublicKeyCommand", "APP_NAME", "UserInteractionRequired", "GetMasterFingerprintCommand", "CallTaskInAppDeviceAction", "internalApi", "SendSignMessageTask", "SignPsbtDeviceAction", "GetWalletAddressDeviceAction", "SignTransactionDeviceAction", "RegisterWalletTask", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "walletTypes", "dataStoreTypes", "psbtTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DeviceActionStatus as l,UserInteractionRequired as m}from"@ledgerhq/device-management-kit";import{from as v}from"rxjs";import{RegisteredWallet as g,WalletPolicy as D}from"../../api/model/Wallet";import{BtcAppBinder as c}from"../app-binder/BtcAppBinder";import{GetExtendedPublicKeyCommand as A}from"../app-binder/command/GetExtendedPublicKeyCommand";import{GetMasterFingerprintCommand as b}from"../app-binder/command/GetMasterFingerprintCommand";const p=()=>({debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn(),subscribers:[]});describe("BtcAppBinder",()=>{const t={sendCommand:vi.fn(),executeDeviceAction:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const s=new c({},{},{},{},{},{},{},p);expect(s).toBeDefined()}),describe("getExtendedPublicKey",()=>{let s;afterEach(()=>{s&&s.unsubscribe()}),it("should return the pub key",()=>new Promise((i,a)=>{const r="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:v([{status:l.Completed,output:{extendedPublicKey:r}}]),cancel:vi.fn()});const n=new c(t,"sessionId",{},{},{},{},{},p),{observable:u}=n.getExtendedPublicKey({derivationPath:"44'/501'",checkOnDevice:!1,skipOpenApp:!1}),o=[];s=u.subscribe({next:e=>{o.push(e)},error:e=>{a(e)},complete:()=>{try{expect(o).toEqual([{status:l.Completed,output:{extendedPublicKey:r}}]),i()}catch(e){a(e)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const i={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1,skipOpenApp:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const r={...i,checkOnDevice:!0};new c(t,"sessionId",{},{},{},{},{},p).getExtendedPublicKey(r),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new A(r),appName:"Bitcoin",requiredUserInteraction:m.VerifyAddress,skipOpenApp:!1}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const r={...i,checkOnDevice:!1};new c(t,"sessionId",{},{},{},{},{},p).getExtendedPublicKey(r),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new A(r),appName:"Bitcoin",requiredUserInteraction:m.None,skipOpenApp:!1}})})})})}),describe("getMasterFingerprint",()=>{let s;afterEach(()=>{s&&s.unsubscribe()}),it("should return the master fingerprint",()=>new Promise((i,a)=>{const r=Uint8Array.from([130,141,194,243]);vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:v([{status:l.Completed,output:{masterFingerprint:r}}]),cancel:vi.fn()});const n=new c(t,"sessionId",{},{},{},{},{},p),{observable:u}=n.getMasterFingerprint({skipOpenApp:!1}),o=[];s=u.subscribe({next:e=>{o.push(e)},error:e=>{a(e)},complete:()=>{try{expect(o).toEqual([{status:l.Completed,output:{masterFingerprint:r}}]),i()}catch(e){a(e)}}})})),it("should call executeDeviceAction with the correct params",()=>{const i={skipOpenApp:!1};new c(t,"sessionId",{},{},{},{},{},p).getMasterFingerprint(i),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new b,appName:"Bitcoin",requiredUserInteraction:m.None,skipOpenApp:!1}})})}),it("should pass skipOpenApp option correctly",()=>{const i={skipOpenApp:!0};new c(t,"sessionId",{},{},{},{},{},p).getMasterFingerprint(i),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new b,appName:"Bitcoin",requiredUserInteraction:m.None,skipOpenApp:!0}})})})}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((s,i)=>{const a={r:"0xDEF1",s:"0xAFAF",v:0},r="Hello, World!";vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:v([{status:l.Completed,output:a}]),cancel:vi.fn()});const n=new c(t,"sessionId",{},{},{},{},{},p),{observable:u}=n.signMessage({derivationPath:"44'/60'/3'/2/1",message:r,skipOpenApp:!1}),o=[];u.subscribe({next:e=>{o.push(e)},error:e=>{i(e)},complete:()=>{try{expect(o).toEqual([{status:l.Completed,output:a}]),s()}catch(e){i(e)}}})}))}),describe("registerWallet",()=>{let s;afterEach(()=>{s&&s.unsubscribe()}),it("should return the registered wallet with hmac",()=>new Promise((i,a)=>{const r=new D("My Multisig","wsh(sortedmulti(2,@0/**,@1/**))",["[f5acc2fd/48'/1'/0'/2']tpubXXX","tpubYYY"]),n=new g(r.name,r.descriptorTemplate,r.keys,Uint8Array.from(new Array(32).fill(66)));vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:v([{status:l.Completed,output:n}]),cancel:vi.fn()});const u=new c(t,"sessionId",{},{},{},{},{},p),{observable:o}=u.registerWallet({wallet:r,skipOpenApp:!1}),e=[];s=o.subscribe({next:d=>{e.push(d)},error:d=>{a(d)},complete:()=>{try{expect(e).toEqual([{status:l.Completed,output:n}]),i()}catch(d){a(d)}}})})),it("should call executeDeviceAction",()=>{const i=new D("My Multisig","wsh(sortedmulti(2,@0/**,@1/**))",["[f5acc2fd/48'/1'/0'/2']tpubXXX","tpubYYY"]);new c(t,"sessionId",{},{},{},{},{},p).registerWallet({wallet:i,skipOpenApp:!1}),expect(t.executeDeviceAction).toHaveBeenCalled()})})});
1
+ import{DeviceActionStatus as l,UserInteractionRequired as m}from"@ledgerhq/device-management-kit";import{from as A}from"rxjs";import{RegisteredWallet as f,WalletPolicy as D}from"../../api/model/Wallet";import{BtcAppBinder as c}from"../app-binder/BtcAppBinder";import{GetExtendedPublicKeyCommand as b}from"../app-binder/command/GetExtendedPublicKeyCommand";import{GetMasterFingerprintCommand as g}from"../app-binder/command/GetMasterFingerprintCommand";import{APP_NAME as v}from"./constants";const p=()=>({debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn(),subscribers:[]});describe("BtcAppBinder",()=>{const t={sendCommand:vi.fn(),executeDeviceAction:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const s=new c({},{},{},{},{},{},{},p);expect(s).toBeDefined()}),describe("getExtendedPublicKey",()=>{let s;afterEach(()=>{s&&s.unsubscribe()}),it("should return the pub key",()=>new Promise((i,a)=>{const r="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:A([{status:l.Completed,output:{extendedPublicKey:r}}]),cancel:vi.fn()});const n=new c(t,"sessionId",{},{},{},{},{},p),{observable:u}=n.getExtendedPublicKey({derivationPath:"44'/501'",checkOnDevice:!1,skipOpenApp:!1}),o=[];s=u.subscribe({next:e=>{o.push(e)},error:e=>{a(e)},complete:()=>{try{expect(o).toEqual([{status:l.Completed,output:{extendedPublicKey:r}}]),i()}catch(e){a(e)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const i={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1,skipOpenApp:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const r={...i,checkOnDevice:!0};new c(t,"sessionId",{},{},{},{},{},p).getExtendedPublicKey(r),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new b(r),appName:v,requiredUserInteraction:m.VerifyAddress,skipOpenApp:!1}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const r={...i,checkOnDevice:!1};new c(t,"sessionId",{},{},{},{},{},p).getExtendedPublicKey(r),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new b(r),appName:v,requiredUserInteraction:m.None,skipOpenApp:!1}})})})})}),describe("getMasterFingerprint",()=>{let s;afterEach(()=>{s&&s.unsubscribe()}),it("should return the master fingerprint",()=>new Promise((i,a)=>{const r=Uint8Array.from([130,141,194,243]);vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:A([{status:l.Completed,output:{masterFingerprint:r}}]),cancel:vi.fn()});const n=new c(t,"sessionId",{},{},{},{},{},p),{observable:u}=n.getMasterFingerprint({skipOpenApp:!1}),o=[];s=u.subscribe({next:e=>{o.push(e)},error:e=>{a(e)},complete:()=>{try{expect(o).toEqual([{status:l.Completed,output:{masterFingerprint:r}}]),i()}catch(e){a(e)}}})})),it("should call executeDeviceAction with the correct params",()=>{const i={skipOpenApp:!1};new c(t,"sessionId",{},{},{},{},{},p).getMasterFingerprint(i),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new g,appName:v,requiredUserInteraction:m.None,skipOpenApp:!1}})})}),it("should pass skipOpenApp option correctly",()=>{const i={skipOpenApp:!0};new c(t,"sessionId",{},{},{},{},{},p).getMasterFingerprint(i),expect(t.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:expect.objectContaining({input:{command:new g,appName:v,requiredUserInteraction:m.None,skipOpenApp:!0}})})})}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((s,i)=>{const a={r:"0xDEF1",s:"0xAFAF",v:0},r="Hello, World!";vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:A([{status:l.Completed,output:a}]),cancel:vi.fn()});const n=new c(t,"sessionId",{},{},{},{},{},p),{observable:u}=n.signMessage({derivationPath:"44'/60'/3'/2/1",message:r,skipOpenApp:!1}),o=[];u.subscribe({next:e=>{o.push(e)},error:e=>{i(e)},complete:()=>{try{expect(o).toEqual([{status:l.Completed,output:a}]),s()}catch(e){i(e)}}})}))}),describe("registerWallet",()=>{let s;afterEach(()=>{s&&s.unsubscribe()}),it("should return the registered wallet with hmac",()=>new Promise((i,a)=>{const r=new D("My Multisig","wsh(sortedmulti(2,@0/**,@1/**))",["[f5acc2fd/48'/1'/0'/2']tpubXXX","tpubYYY"]),n=new f(r.name,r.descriptorTemplate,r.keys,Uint8Array.from(new Array(32).fill(66)));vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:A([{status:l.Completed,output:n}]),cancel:vi.fn()});const u=new c(t,"sessionId",{},{},{},{},{},p),{observable:o}=u.registerWallet({wallet:r,skipOpenApp:!1}),e=[];s=o.subscribe({next:d=>{e.push(d)},error:d=>{a(d)},complete:()=>{try{expect(e).toEqual([{status:l.Completed,output:n}]),i()}catch(d){a(d)}}})})),it("should call executeDeviceAction",()=>{const i=new D("My Multisig","wsh(sortedmulti(2,@0/**,@1/**))",["[f5acc2fd/48'/1'/0'/2']tpubXXX","tpubYYY"]);new c(t,"sessionId",{},{},{},{},{},p).registerWallet({wallet:i,skipOpenApp:!1}),expect(t.executeDeviceAction).toHaveBeenCalled()})})});
2
2
  //# sourceMappingURL=BtcAppBinder.test.js.map