@ledgerhq/device-signer-kit-bitcoin 0.0.0-20250216001123 → 0.0.0-webhid-20250124103640

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 (179) hide show
  1. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js +1 -1
  2. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js.map +1 -1
  3. package/lib/cjs/internal/DefaultSignerBtc.test.js +1 -1
  4. package/lib/cjs/internal/DefaultSignerBtc.test.js.map +2 -2
  5. package/lib/cjs/internal/app-binder/BtcAppBinder.js +1 -1
  6. package/lib/cjs/internal/app-binder/BtcAppBinder.js.map +3 -3
  7. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
  8. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  9. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  10. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  11. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  12. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  13. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  14. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  15. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  16. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  17. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  18. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  19. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  20. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  21. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  22. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  23. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  24. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  25. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  26. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  27. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  28. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  29. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +2 -0
  30. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +7 -0
  31. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +2 -0
  32. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +7 -0
  33. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  34. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  35. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  36. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  37. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  38. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  39. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  40. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  41. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  42. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  43. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  44. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  45. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  46. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  47. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js +1 -1
  48. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  49. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  50. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  51. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  52. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  53. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js +1 -1
  54. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  55. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  56. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  57. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  58. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  59. package/lib/cjs/internal/data-store/model/DataStore.test.js +1 -1
  60. package/lib/cjs/internal/data-store/model/DataStore.test.js.map +2 -2
  61. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  62. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  63. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  64. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  65. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  66. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  67. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  68. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  69. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  70. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  71. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  72. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +2 -2
  73. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  74. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  75. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  76. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +2 -2
  77. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  78. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +2 -2
  79. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  80. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  81. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  82. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  83. package/lib/cjs/package.json +5 -6
  84. package/lib/esm/internal/DefaultSignerBtc.test.js +1 -1
  85. package/lib/esm/internal/DefaultSignerBtc.test.js.map +2 -2
  86. package/lib/esm/internal/app-binder/BtcAppBinder.js +1 -1
  87. package/lib/esm/internal/app-binder/BtcAppBinder.js.map +3 -3
  88. package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
  89. package/lib/esm/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  90. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  91. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  92. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  93. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  94. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  95. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  96. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  97. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  98. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  99. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  100. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  101. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  102. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  103. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  104. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  105. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  106. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  107. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  108. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  109. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  110. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +2 -0
  111. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +7 -0
  112. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +2 -0
  113. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +7 -0
  114. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  115. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  116. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  117. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  118. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  119. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  120. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  121. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  122. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  123. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  124. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  125. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  126. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  127. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  128. package/lib/esm/internal/app-binder/task/ContinueTask.test.js +1 -1
  129. package/lib/esm/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  130. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  131. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  132. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  133. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  134. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js +1 -1
  135. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  136. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  137. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  138. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  139. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  140. package/lib/esm/internal/data-store/model/DataStore.test.js +1 -1
  141. package/lib/esm/internal/data-store/model/DataStore.test.js.map +2 -2
  142. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  143. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  144. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  145. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  146. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  147. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  148. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  149. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  150. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  151. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  152. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  153. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +2 -2
  154. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  155. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  156. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  157. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +2 -2
  158. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  159. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +2 -2
  160. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  161. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  162. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  163. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  164. package/lib/esm/package.json +5 -6
  165. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +12 -1
  166. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
  167. package/lib/types/internal/app-binder/BtcAppBinder.d.ts.map +1 -1
  168. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts +19 -0
  169. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts.map +1 -0
  170. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts +2 -0
  171. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts.map +1 -0
  172. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +1 -2
  173. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  174. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  175. package/lib/types/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.d.ts.map +1 -1
  176. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +2 -5
  177. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  178. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  179. package/package.json +10 -11
@@ -1,2 +1,2 @@
1
- import{MerkleMapBuilder as l}from"./MerkleMapBuilder";describe("MerkleMapBuilder",()=>{const r=[Uint8Array.from([0,1,2,3]),Uint8Array.from([0,1,2,4]),Uint8Array.from([0,1,2,5]),Uint8Array.from([0,2,2,3]),Uint8Array.from([1,1,2,3])],t=[Uint8Array.from([0,0]),Uint8Array.from([255,255,255,255]),Uint8Array.from([0,1,2,5]),Uint8Array.from([0,255]),Uint8Array.from([254,57])],o=vi.fn(),a={build:o};let i;beforeEach(()=>{vi.resetAllMocks(),i=new l(a)}),it("Invalid value count",()=>{const e=i.build(r,[Uint8Array.from([0]),...t]);expect(e.isRight()).toStrictEqual(!1)}),it("Invalid ordering",()=>{const e=i.build([Uint8Array.from([0,1,2,5]),...r],[Uint8Array.from([0]),...t]);expect(e.isRight()).toStrictEqual(!1)}),it("Dupplicate key",()=>{const e=i.build([Uint8Array.from([0,1,2,3]),...r],[Uint8Array.from([0]),...t]);expect(e.isRight()).toStrictEqual(!1)}),it("correct value",()=>{o.mockReturnValueOnce({getRoot:()=>Uint8Array.from([42,43]),size:()=>r.length}).mockReturnValueOnce({getRoot:()=>Uint8Array.from([44,45]),size:()=>t.length});const e=i.build(r,t);expect(e.isRight()).toStrictEqual(!0),expect(o).toHaveBeenCalledWith(r),expect(o).toHaveBeenCalledWith(t)})});
1
+ import{MerkleMapBuilder as l}from"./MerkleMapBuilder";describe("MerkleMapBuilder",()=>{const r=[Uint8Array.from([0,1,2,3]),Uint8Array.from([0,1,2,4]),Uint8Array.from([0,1,2,5]),Uint8Array.from([0,2,2,3]),Uint8Array.from([1,1,2,3])],t=[Uint8Array.from([0,0]),Uint8Array.from([255,255,255,255]),Uint8Array.from([0,1,2,5]),Uint8Array.from([0,255]),Uint8Array.from([254,57])],o=jest.fn(),a={build:o};let i;beforeEach(()=>{jest.resetAllMocks(),i=new l(a)}),it("Invalid value count",()=>{const e=i.build(r,[Uint8Array.from([0]),...t]);expect(e.isRight()).toStrictEqual(!1)}),it("Invalid ordering",()=>{const e=i.build([Uint8Array.from([0,1,2,5]),...r],[Uint8Array.from([0]),...t]);expect(e.isRight()).toStrictEqual(!1)}),it("Dupplicate key",()=>{const e=i.build([Uint8Array.from([0,1,2,3]),...r],[Uint8Array.from([0]),...t]);expect(e.isRight()).toStrictEqual(!1)}),it("correct value",()=>{o.mockReturnValueOnce({getRoot:()=>Uint8Array.from([42,43]),size:()=>r.length}).mockReturnValueOnce({getRoot:()=>Uint8Array.from([44,45]),size:()=>t.length});const e=i.build(r,t);expect(e.isRight()).toStrictEqual(!0),expect(o).toHaveBeenCalledWith(r),expect(o).toHaveBeenCalledWith(t)})});
2
2
  //# sourceMappingURL=MerkleMapBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/merkle-tree/service/MerkleMapBuilder.test.ts"],
4
- "sourcesContent": ["import { type MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\n\nimport { MerkleMapBuilder } from \"./MerkleMapBuilder\";\n\ndescribe(\"MerkleMapBuilder\", () => {\n const TEST_KEYS = [\n Uint8Array.from([0, 1, 2, 3]),\n Uint8Array.from([0, 1, 2, 4]),\n Uint8Array.from([0, 1, 2, 5]),\n Uint8Array.from([0, 2, 2, 3]),\n Uint8Array.from([1, 1, 2, 3]),\n ];\n\n const TEST_VALUES = [\n Uint8Array.from([0, 0]),\n Uint8Array.from([0xff, 0xff, 0xff, 0xff]),\n Uint8Array.from([0, 1, 2, 5]),\n Uint8Array.from([0, 0xff]),\n Uint8Array.from([0xfe, 57]),\n ];\n\n const mockCreateMerkleTree = vi.fn();\n const mockMerkleTree: MerkleTreeBuilder = {\n build: mockCreateMerkleTree,\n } as unknown as MerkleTreeBuilder;\n let builder: MerkleMapBuilder;\n\n beforeEach(() => {\n vi.resetAllMocks();\n builder = new MerkleMapBuilder(mockMerkleTree);\n });\n\n it(\"Invalid value count\", () => {\n const eitherMap = builder.build(TEST_KEYS, [\n Uint8Array.from([0]),\n ...TEST_VALUES,\n ]);\n expect(eitherMap.isRight()).toStrictEqual(false);\n });\n\n it(\"Invalid ordering\", () => {\n const eitherMap = builder.build(\n [Uint8Array.from([0, 1, 2, 5]), ...TEST_KEYS],\n [Uint8Array.from([0]), ...TEST_VALUES],\n );\n expect(eitherMap.isRight()).toStrictEqual(false);\n });\n\n it(\"Dupplicate key\", () => {\n const eitherMap = builder.build(\n [Uint8Array.from([0, 1, 2, 3]), ...TEST_KEYS],\n [Uint8Array.from([0]), ...TEST_VALUES],\n );\n expect(eitherMap.isRight()).toStrictEqual(false);\n });\n\n it(\"correct value\", () => {\n mockCreateMerkleTree\n .mockReturnValueOnce({\n getRoot: () => Uint8Array.from([42, 43]),\n size: () => TEST_KEYS.length,\n })\n .mockReturnValueOnce({\n getRoot: () => Uint8Array.from([44, 45]),\n size: () => TEST_VALUES.length,\n });\n\n const eitherMap = builder.build(TEST_KEYS, TEST_VALUES);\n expect(eitherMap.isRight()).toStrictEqual(true);\n expect(mockCreateMerkleTree).toHaveBeenCalledWith(TEST_KEYS);\n expect(mockCreateMerkleTree).toHaveBeenCalledWith(TEST_VALUES);\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,oBAAAA,MAAwB,qBAEjC,SAAS,mBAAoB,IAAM,CACjC,MAAMC,EAAY,CAChB,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,CAC9B,EAEMC,EAAc,CAClB,WAAW,KAAK,CAAC,EAAG,CAAC,CAAC,EACtB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACxC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,GAAI,CAAC,EACzB,WAAW,KAAK,CAAC,IAAM,EAAE,CAAC,CAC5B,EAEMC,EAAuB,GAAG,GAAG,EAC7BC,EAAoC,CACxC,MAAOD,CACT,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIL,EAAiBI,CAAc,CAC/C,CAAC,EAED,GAAG,sBAAuB,IAAM,CAC9B,MAAME,EAAYD,EAAQ,MAAMJ,EAAW,CACzC,WAAW,KAAK,CAAC,CAAC,CAAC,EACnB,GAAGC,CACL,CAAC,EACD,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAK,CACjD,CAAC,EAED,GAAG,mBAAoB,IAAM,CAC3B,MAAMA,EAAYD,EAAQ,MACxB,CAAC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAG,GAAGJ,CAAS,EAC5C,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,EAAG,GAAGC,CAAW,CACvC,EACA,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAK,CACjD,CAAC,EAED,GAAG,iBAAkB,IAAM,CACzB,MAAMA,EAAYD,EAAQ,MACxB,CAAC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAG,GAAGJ,CAAS,EAC5C,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,EAAG,GAAGC,CAAW,CACvC,EACA,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAK,CACjD,CAAC,EAED,GAAG,gBAAiB,IAAM,CACxBH,EACG,oBAAoB,CACnB,QAAS,IAAM,WAAW,KAAK,CAAC,GAAI,EAAE,CAAC,EACvC,KAAM,IAAMF,EAAU,MACxB,CAAC,EACA,oBAAoB,CACnB,QAAS,IAAM,WAAW,KAAK,CAAC,GAAI,EAAE,CAAC,EACvC,KAAM,IAAMC,EAAY,MAC1B,CAAC,EAEH,MAAMI,EAAYD,EAAQ,MAAMJ,EAAWC,CAAW,EACtD,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC9C,OAAOH,CAAoB,EAAE,qBAAqBF,CAAS,EAC3D,OAAOE,CAAoB,EAAE,qBAAqBD,CAAW,CAC/D,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\n\nimport { MerkleMapBuilder } from \"./MerkleMapBuilder\";\n\ndescribe(\"MerkleMapBuilder\", () => {\n const TEST_KEYS = [\n Uint8Array.from([0, 1, 2, 3]),\n Uint8Array.from([0, 1, 2, 4]),\n Uint8Array.from([0, 1, 2, 5]),\n Uint8Array.from([0, 2, 2, 3]),\n Uint8Array.from([1, 1, 2, 3]),\n ];\n\n const TEST_VALUES = [\n Uint8Array.from([0, 0]),\n Uint8Array.from([0xff, 0xff, 0xff, 0xff]),\n Uint8Array.from([0, 1, 2, 5]),\n Uint8Array.from([0, 0xff]),\n Uint8Array.from([0xfe, 57]),\n ];\n\n const mockCreateMerkleTree = jest.fn();\n const mockMerkleTree: MerkleTreeBuilder = {\n build: mockCreateMerkleTree,\n } as unknown as MerkleTreeBuilder;\n let builder: MerkleMapBuilder;\n\n beforeEach(() => {\n jest.resetAllMocks();\n builder = new MerkleMapBuilder(mockMerkleTree);\n });\n\n it(\"Invalid value count\", () => {\n const eitherMap = builder.build(TEST_KEYS, [\n Uint8Array.from([0]),\n ...TEST_VALUES,\n ]);\n expect(eitherMap.isRight()).toStrictEqual(false);\n });\n\n it(\"Invalid ordering\", () => {\n const eitherMap = builder.build(\n [Uint8Array.from([0, 1, 2, 5]), ...TEST_KEYS],\n [Uint8Array.from([0]), ...TEST_VALUES],\n );\n expect(eitherMap.isRight()).toStrictEqual(false);\n });\n\n it(\"Dupplicate key\", () => {\n const eitherMap = builder.build(\n [Uint8Array.from([0, 1, 2, 3]), ...TEST_KEYS],\n [Uint8Array.from([0]), ...TEST_VALUES],\n );\n expect(eitherMap.isRight()).toStrictEqual(false);\n });\n\n it(\"correct value\", () => {\n mockCreateMerkleTree\n .mockReturnValueOnce({\n getRoot: () => Uint8Array.from([42, 43]),\n size: () => TEST_KEYS.length,\n })\n .mockReturnValueOnce({\n getRoot: () => Uint8Array.from([44, 45]),\n size: () => TEST_VALUES.length,\n });\n\n const eitherMap = builder.build(TEST_KEYS, TEST_VALUES);\n expect(eitherMap.isRight()).toStrictEqual(true);\n expect(mockCreateMerkleTree).toHaveBeenCalledWith(TEST_KEYS);\n expect(mockCreateMerkleTree).toHaveBeenCalledWith(TEST_VALUES);\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,oBAAAA,MAAwB,qBAEjC,SAAS,mBAAoB,IAAM,CACjC,MAAMC,EAAY,CAChB,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,CAC9B,EAEMC,EAAc,CAClB,WAAW,KAAK,CAAC,EAAG,CAAC,CAAC,EACtB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACxC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5B,WAAW,KAAK,CAAC,EAAG,GAAI,CAAC,EACzB,WAAW,KAAK,CAAC,IAAM,EAAE,CAAC,CAC5B,EAEMC,EAAuB,KAAK,GAAG,EAC/BC,EAAoC,CACxC,MAAOD,CACT,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,KAAK,cAAc,EACnBA,EAAU,IAAIL,EAAiBI,CAAc,CAC/C,CAAC,EAED,GAAG,sBAAuB,IAAM,CAC9B,MAAME,EAAYD,EAAQ,MAAMJ,EAAW,CACzC,WAAW,KAAK,CAAC,CAAC,CAAC,EACnB,GAAGC,CACL,CAAC,EACD,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAK,CACjD,CAAC,EAED,GAAG,mBAAoB,IAAM,CAC3B,MAAMA,EAAYD,EAAQ,MACxB,CAAC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAG,GAAGJ,CAAS,EAC5C,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,EAAG,GAAGC,CAAW,CACvC,EACA,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAK,CACjD,CAAC,EAED,GAAG,iBAAkB,IAAM,CACzB,MAAMA,EAAYD,EAAQ,MACxB,CAAC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAG,GAAGJ,CAAS,EAC5C,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,EAAG,GAAGC,CAAW,CACvC,EACA,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAK,CACjD,CAAC,EAED,GAAG,gBAAiB,IAAM,CACxBH,EACG,oBAAoB,CACnB,QAAS,IAAM,WAAW,KAAK,CAAC,GAAI,EAAE,CAAC,EACvC,KAAM,IAAMF,EAAU,MACxB,CAAC,EACA,oBAAoB,CACnB,QAAS,IAAM,WAAW,KAAK,CAAC,GAAI,EAAE,CAAC,EACvC,KAAM,IAAMC,EAAY,MAC1B,CAAC,EAEH,MAAMI,EAAYD,EAAQ,MAAMJ,EAAWC,CAAW,EACtD,OAAOI,EAAU,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC9C,OAAOH,CAAoB,EAAE,qBAAqBF,CAAS,EAC3D,OAAOE,CAAoB,EAAE,qBAAqBD,CAAW,CAC/D,CAAC,CACH,CAAC",
6
6
  "names": ["MerkleMapBuilder", "TEST_KEYS", "TEST_VALUES", "mockCreateMerkleTree", "mockMerkleTree", "builder", "eitherMap"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{hexaStringToBuffer as e}from"@ledgerhq/device-management-kit";import{Just as i,Nothing as o}from"purify-ts";import{MerkleTreeBuilder as l}from"./MerkleTreeBuilder";import{Sha256HasherService as u}from"./Sha256HasherService";const n={data:[],leaves:[],nodes:[],root:e("0000000000000000000000000000000000000000000000000000000000000000")},s={data:[Uint8Array.from([42,43])],leaves:[Uint8Array.from([0,42,43])],nodes:[],root:e("8a707e40cad3d1070b0a1c87dd362cdf4d546e6d2a7aaf155c798932f71de4ad")},b={data:[Uint8Array.from([0,1,2,3,4]),Uint8Array.from([5,6,7,8,9])],leaves:[Uint8Array.from([0,0,1,2,3,4]),Uint8Array.from([0,5,6,7,8,9])],nodes:[[e("9d1cf1e12fa64e20ccd2a5387504b99e89e24ef55dba8399637c3f5b6615c0ad"),e("7dc17a7849e10103f73b8fa5a4b829f6292a1a59272e0e0c9def83a9c0f86de1")]],root:e("dc65c307a70fb21f4c8ea0cdfc5ff3291adae1db9ce5410b93dcb43c5eddd793")},r={data:[Uint8Array.from([0]),Uint8Array.from([1]),Uint8Array.from([2]),Uint8Array.from([3])],leaves:[Uint8Array.from([0,0]),Uint8Array.from([0,1]),Uint8Array.from([0,2]),Uint8Array.from([0,3])],nodes:[[e("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),e("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),e("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),e("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d")],[e("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),e("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825")]],root:e("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb")},f={data:[Uint8Array.from([0]),Uint8Array.from([1]),Uint8Array.from([2]),Uint8Array.from([3]),Uint8Array.from([4]),Uint8Array.from([5]),Uint8Array.from([6]),Uint8Array.from([7]),Uint8Array.from([8]),Uint8Array.from([9]),Uint8Array.from([10])],leaves:[Uint8Array.from([0,0]),Uint8Array.from([0,1]),Uint8Array.from([0,2]),Uint8Array.from([0,3]),Uint8Array.from([0,4]),Uint8Array.from([0,5]),Uint8Array.from([0,6]),Uint8Array.from([0,7]),Uint8Array.from([0,8]),Uint8Array.from([0,9]),Uint8Array.from([0,10])],nodes:[[e("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),e("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),e("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),e("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d"),e("4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4"),e("9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d"),e("40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd"),e("2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7"),e("b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315"),e("c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4"),e("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[e("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),e("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825"),e("4b8c129ed14cce2c08cfc6766db7f8cdb133b5f698b8de3d5890ea7ff7f0a8d1"),e("bbb0feb32f648c73fe170518bcec1f675af1b780dc23d6fbf30b745c1ca5fa11"),e("f7e08e9a9e87822bd79a0bf24d14c7a431be807336bd3c50ccb2d249b2a91404"),e("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[e("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb"),e("c1fe42b33ebb8e8a7e4a90abc481c7434e2be02cff2f6a18d7ffab4f1e25891b"),e("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")],[e("ef7f49b620f6c7ea9b963a214da34b5021c6ded8ed57734380a311ab726aa907"),e("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")]],root:e("e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac")};describe("MerkleTreeBuilder",()=>{let c;beforeEach(()=>{vi.resetAllMocks(),c=new l(new u)}),it("Get small tree root and leaves",()=>{const a=c.build(r.data);expect(a.getRoot()).toStrictEqual(r.root),expect(a.size()).toStrictEqual(r.leaves.length),expect(a.getLeaves().map(t=>t.value)).toStrictEqual(r.leaves),expect(a.getLeaves().map(t=>t.hash)).toStrictEqual(r.nodes[0]),r.nodes[0].forEach((t,d)=>{expect(a.getLeafHash(d)).toStrictEqual(i(t))}),expect(a.getLeafHash(-1)).toStrictEqual(o),expect(a.getLeafHash(r.nodes[0].length)).toStrictEqual(o)}),it("Get big tree root and leaves",()=>{const a=c.build(f.data);expect(a.getRoot()).toStrictEqual(f.root),expect(a.size()).toStrictEqual(f.leaves.length),expect(a.getLeaves().map(t=>t.value)).toStrictEqual(f.leaves),expect(a.getLeaves().map(t=>t.hash)).toStrictEqual(f.nodes[0]),f.nodes[0].forEach((t,d)=>{expect(a.getLeafHash(d)).toStrictEqual(i(t))}),expect(a.getLeafHash(-1)).toStrictEqual(o),expect(a.getLeafHash(f.nodes[0].length)).toStrictEqual(o)}),it("Get small tree merkle proof",()=>{const t=c.build(r.data).getProof(2);expect(t.isJust()).toStrictEqual(!0);const d=t.unsafeCoerce();expect(d).toStrictEqual([r.nodes[0][3],r.nodes[1][0]])}),it("Get big tree merkle proof",()=>{const t=c.build(f.data).getProof(2);expect(t.isJust()).toStrictEqual(!0);const d=t.unsafeCoerce();expect(d).toStrictEqual([f.nodes[0][3],f.nodes[1][0],f.nodes[2][1],f.nodes[3][1]])}),it("Get out-of-bound merkle proof",()=>{const a=c.build(r.data);let t=a.getProof(-1);expect(t.isJust()).toStrictEqual(!1),t=a.getProof(5),expect(t.isJust()).toStrictEqual(!1)}),it("Empty tree",()=>{const a=c.build(n.data);expect(a.getRoot()).toStrictEqual(n.root);const t=a.getProof(0);expect(t.isJust()).toStrictEqual(!1)}),it("One-leaf tree",()=>{const a=c.build(s.data);expect(a.getRoot()).toStrictEqual(s.root);const t=a.getProof(0);expect(t.isJust()).toStrictEqual(!0),expect(t.unsafeCoerce()).toStrictEqual([])}),it("Tiny tree",()=>{const a=c.build(b.data);expect(a.getRoot()).toStrictEqual(b.root);const t=a.getProof(0);expect(t.isJust()).toStrictEqual(!0),expect(t.unsafeCoerce()).toStrictEqual([b.nodes[0][1]])})});
1
+ import{hexaStringToBuffer as e}from"@ledgerhq/device-management-kit";import{Just as i,Nothing as o}from"purify-ts";import{MerkleTreeBuilder as l}from"./MerkleTreeBuilder";import{Sha256HasherService as u}from"./Sha256HasherService";const s={data:[],leaves:[],nodes:[],root:e("0000000000000000000000000000000000000000000000000000000000000000")},n={data:[Uint8Array.from([42,43])],leaves:[Uint8Array.from([0,42,43])],nodes:[],root:e("8a707e40cad3d1070b0a1c87dd362cdf4d546e6d2a7aaf155c798932f71de4ad")},b={data:[Uint8Array.from([0,1,2,3,4]),Uint8Array.from([5,6,7,8,9])],leaves:[Uint8Array.from([0,0,1,2,3,4]),Uint8Array.from([0,5,6,7,8,9])],nodes:[[e("9d1cf1e12fa64e20ccd2a5387504b99e89e24ef55dba8399637c3f5b6615c0ad"),e("7dc17a7849e10103f73b8fa5a4b829f6292a1a59272e0e0c9def83a9c0f86de1")]],root:e("dc65c307a70fb21f4c8ea0cdfc5ff3291adae1db9ce5410b93dcb43c5eddd793")},r={data:[Uint8Array.from([0]),Uint8Array.from([1]),Uint8Array.from([2]),Uint8Array.from([3])],leaves:[Uint8Array.from([0,0]),Uint8Array.from([0,1]),Uint8Array.from([0,2]),Uint8Array.from([0,3])],nodes:[[e("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),e("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),e("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),e("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d")],[e("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),e("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825")]],root:e("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb")},f={data:[Uint8Array.from([0]),Uint8Array.from([1]),Uint8Array.from([2]),Uint8Array.from([3]),Uint8Array.from([4]),Uint8Array.from([5]),Uint8Array.from([6]),Uint8Array.from([7]),Uint8Array.from([8]),Uint8Array.from([9]),Uint8Array.from([10])],leaves:[Uint8Array.from([0,0]),Uint8Array.from([0,1]),Uint8Array.from([0,2]),Uint8Array.from([0,3]),Uint8Array.from([0,4]),Uint8Array.from([0,5]),Uint8Array.from([0,6]),Uint8Array.from([0,7]),Uint8Array.from([0,8]),Uint8Array.from([0,9]),Uint8Array.from([0,10])],nodes:[[e("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),e("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),e("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),e("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d"),e("4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4"),e("9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d"),e("40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd"),e("2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7"),e("b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315"),e("c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4"),e("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[e("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),e("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825"),e("4b8c129ed14cce2c08cfc6766db7f8cdb133b5f698b8de3d5890ea7ff7f0a8d1"),e("bbb0feb32f648c73fe170518bcec1f675af1b780dc23d6fbf30b745c1ca5fa11"),e("f7e08e9a9e87822bd79a0bf24d14c7a431be807336bd3c50ccb2d249b2a91404"),e("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[e("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb"),e("c1fe42b33ebb8e8a7e4a90abc481c7434e2be02cff2f6a18d7ffab4f1e25891b"),e("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")],[e("ef7f49b620f6c7ea9b963a214da34b5021c6ded8ed57734380a311ab726aa907"),e("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")]],root:e("e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac")};describe("MerkleTreeBuilder",()=>{let c;beforeEach(()=>{jest.resetAllMocks(),c=new l(new u)}),it("Get small tree root and leaves",()=>{const a=c.build(r.data);expect(a.getRoot()).toStrictEqual(r.root),expect(a.size()).toStrictEqual(r.leaves.length),expect(a.getLeaves().map(t=>t.value)).toStrictEqual(r.leaves),expect(a.getLeaves().map(t=>t.hash)).toStrictEqual(r.nodes[0]),r.nodes[0].forEach((t,d)=>{expect(a.getLeafHash(d)).toStrictEqual(i(t))}),expect(a.getLeafHash(-1)).toStrictEqual(o),expect(a.getLeafHash(r.nodes[0].length)).toStrictEqual(o)}),it("Get big tree root and leaves",()=>{const a=c.build(f.data);expect(a.getRoot()).toStrictEqual(f.root),expect(a.size()).toStrictEqual(f.leaves.length),expect(a.getLeaves().map(t=>t.value)).toStrictEqual(f.leaves),expect(a.getLeaves().map(t=>t.hash)).toStrictEqual(f.nodes[0]),f.nodes[0].forEach((t,d)=>{expect(a.getLeafHash(d)).toStrictEqual(i(t))}),expect(a.getLeafHash(-1)).toStrictEqual(o),expect(a.getLeafHash(f.nodes[0].length)).toStrictEqual(o)}),it("Get small tree merkle proof",()=>{const t=c.build(r.data).getProof(2);expect(t.isJust()).toStrictEqual(!0);const d=t.unsafeCoerce();expect(d).toStrictEqual([r.nodes[0][3],r.nodes[1][0]])}),it("Get big tree merkle proof",()=>{const t=c.build(f.data).getProof(2);expect(t.isJust()).toStrictEqual(!0);const d=t.unsafeCoerce();expect(d).toStrictEqual([f.nodes[0][3],f.nodes[1][0],f.nodes[2][1],f.nodes[3][1]])}),it("Get out-of-bound merkle proof",()=>{const a=c.build(r.data);let t=a.getProof(-1);expect(t.isJust()).toStrictEqual(!1),t=a.getProof(5),expect(t.isJust()).toStrictEqual(!1)}),it("Empty tree",()=>{const a=c.build(s.data);expect(a.getRoot()).toStrictEqual(s.root);const t=a.getProof(0);expect(t.isJust()).toStrictEqual(!1)}),it("One-leaf tree",()=>{const a=c.build(n.data);expect(a.getRoot()).toStrictEqual(n.root);const t=a.getProof(0);expect(t.isJust()).toStrictEqual(!0),expect(t.unsafeCoerce()).toStrictEqual([])}),it("Tiny tree",()=>{const a=c.build(b.data);expect(a.getRoot()).toStrictEqual(b.root);const t=a.getProof(0);expect(t.isJust()).toStrictEqual(!0),expect(t.unsafeCoerce()).toStrictEqual([b.nodes[0][1]])})});
2
2
  //# sourceMappingURL=MerkleTreeBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/merkle-tree/service/MerkleTreeBuilder.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { MerkleTreeBuilder } from \"./MerkleTreeBuilder\";\nimport { Sha256HasherService } from \"./Sha256HasherService\";\n\nconst EMPTY_TREE = {\n data: [],\n leaves: [],\n nodes: [],\n root: hexaStringToBuffer(\n \"0000000000000000000000000000000000000000000000000000000000000000\",\n ),\n};\n\nconst ONE_LEAF_TREE = {\n data: [Uint8Array.from([42, 43])],\n leaves: [Uint8Array.from([0, 42, 43])],\n nodes: [],\n root: hexaStringToBuffer(\n \"8a707e40cad3d1070b0a1c87dd362cdf4d546e6d2a7aaf155c798932f71de4ad\",\n ),\n};\n\nconst TINY_TREE = {\n data: [Uint8Array.from([0, 1, 2, 3, 4]), Uint8Array.from([5, 6, 7, 8, 9])],\n leaves: [\n Uint8Array.from([0, 0, 1, 2, 3, 4]),\n Uint8Array.from([0, 5, 6, 7, 8, 9]),\n ],\n nodes: [\n [\n hexaStringToBuffer(\n \"9d1cf1e12fa64e20ccd2a5387504b99e89e24ef55dba8399637c3f5b6615c0ad\",\n )!,\n hexaStringToBuffer(\n \"7dc17a7849e10103f73b8fa5a4b829f6292a1a59272e0e0c9def83a9c0f86de1\",\n )!,\n ],\n ],\n root: hexaStringToBuffer(\n \"dc65c307a70fb21f4c8ea0cdfc5ff3291adae1db9ce5410b93dcb43c5eddd793\",\n )!,\n};\n\nconst SMALL_TREE = {\n data: [\n Uint8Array.from([0]),\n Uint8Array.from([1]),\n Uint8Array.from([2]),\n Uint8Array.from([3]),\n ],\n leaves: [\n Uint8Array.from([0, 0]),\n Uint8Array.from([0, 1]),\n Uint8Array.from([0, 2]),\n Uint8Array.from([0, 3]),\n ],\n nodes: [\n [\n hexaStringToBuffer(\n \"96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7\",\n )!,\n hexaStringToBuffer(\n \"b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2\",\n )!,\n hexaStringToBuffer(\n \"fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f\",\n )!,\n hexaStringToBuffer(\n \"583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a\",\n )!,\n hexaStringToBuffer(\n \"52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825\",\n )!,\n ],\n ],\n root: hexaStringToBuffer(\n \"9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb\",\n )!,\n};\n\nconst BIG_TREE = {\n data: [\n Uint8Array.from([0]),\n Uint8Array.from([1]),\n Uint8Array.from([2]),\n Uint8Array.from([3]),\n Uint8Array.from([4]),\n Uint8Array.from([5]),\n Uint8Array.from([6]),\n Uint8Array.from([7]),\n Uint8Array.from([8]),\n Uint8Array.from([9]),\n Uint8Array.from([10]),\n ],\n leaves: [\n Uint8Array.from([0, 0]),\n Uint8Array.from([0, 1]),\n Uint8Array.from([0, 2]),\n Uint8Array.from([0, 3]),\n Uint8Array.from([0, 4]),\n Uint8Array.from([0, 5]),\n Uint8Array.from([0, 6]),\n Uint8Array.from([0, 7]),\n Uint8Array.from([0, 8]),\n Uint8Array.from([0, 9]),\n Uint8Array.from([0, 10]),\n ],\n nodes: [\n [\n hexaStringToBuffer(\n \"96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7\",\n )!,\n hexaStringToBuffer(\n \"b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2\",\n )!,\n hexaStringToBuffer(\n \"fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f\",\n )!,\n hexaStringToBuffer(\n \"583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d\",\n )!,\n hexaStringToBuffer(\n \"4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4\",\n )!,\n hexaStringToBuffer(\n \"9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d\",\n )!,\n hexaStringToBuffer(\n \"40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd\",\n )!,\n hexaStringToBuffer(\n \"2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7\",\n )!,\n hexaStringToBuffer(\n \"b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315\",\n )!,\n hexaStringToBuffer(\n \"c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4\",\n )!,\n hexaStringToBuffer(\n \"67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a\",\n )!,\n hexaStringToBuffer(\n \"52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825\",\n )!,\n hexaStringToBuffer(\n \"4b8c129ed14cce2c08cfc6766db7f8cdb133b5f698b8de3d5890ea7ff7f0a8d1\",\n )!,\n hexaStringToBuffer(\n \"bbb0feb32f648c73fe170518bcec1f675af1b780dc23d6fbf30b745c1ca5fa11\",\n )!,\n hexaStringToBuffer(\n \"f7e08e9a9e87822bd79a0bf24d14c7a431be807336bd3c50ccb2d249b2a91404\",\n )!,\n hexaStringToBuffer(\n \"67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb\",\n )!,\n hexaStringToBuffer(\n \"c1fe42b33ebb8e8a7e4a90abc481c7434e2be02cff2f6a18d7ffab4f1e25891b\",\n )!,\n hexaStringToBuffer(\n \"e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"ef7f49b620f6c7ea9b963a214da34b5021c6ded8ed57734380a311ab726aa907\",\n )!,\n hexaStringToBuffer(\n \"e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50\",\n )!,\n ],\n ],\n root: hexaStringToBuffer(\n \"e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac\",\n )!,\n};\n\ndescribe(\"MerkleTreeBuilder\", () => {\n let builder: MerkleTreeBuilder;\n\n beforeEach(() => {\n vi.resetAllMocks();\n builder = new MerkleTreeBuilder(new Sha256HasherService());\n });\n\n it(\"Get small tree root and leaves\", () => {\n const tree = builder.build(SMALL_TREE.data);\n expect(tree.getRoot()).toStrictEqual(SMALL_TREE.root);\n expect(tree.size()).toStrictEqual(SMALL_TREE.leaves.length);\n expect(tree.getLeaves().map((l) => l.value)).toStrictEqual(\n SMALL_TREE.leaves,\n );\n expect(tree.getLeaves().map((l) => l.hash)).toStrictEqual(\n SMALL_TREE.nodes[0],\n );\n SMALL_TREE.nodes[0]!.forEach((hash, index) => {\n expect(tree.getLeafHash(index)).toStrictEqual(Just(hash));\n });\n expect(tree.getLeafHash(-1)).toStrictEqual(Nothing);\n expect(tree.getLeafHash(SMALL_TREE.nodes[0]!.length)).toStrictEqual(\n Nothing,\n );\n });\n\n it(\"Get big tree root and leaves\", () => {\n const tree = builder.build(BIG_TREE.data);\n expect(tree.getRoot()).toStrictEqual(BIG_TREE.root);\n expect(tree.size()).toStrictEqual(BIG_TREE.leaves.length);\n expect(tree.getLeaves().map((l) => l.value)).toStrictEqual(BIG_TREE.leaves);\n expect(tree.getLeaves().map((l) => l.hash)).toStrictEqual(\n BIG_TREE.nodes[0],\n );\n BIG_TREE.nodes[0]!.forEach((hash, index) => {\n expect(tree.getLeafHash(index)).toStrictEqual(Just(hash));\n });\n expect(tree.getLeafHash(-1)).toStrictEqual(Nothing);\n expect(tree.getLeafHash(BIG_TREE.nodes[0]!.length)).toStrictEqual(Nothing);\n });\n\n it(\"Get small tree merkle proof\", () => {\n const tree = builder.build(SMALL_TREE.data);\n const maybeProof = tree.getProof(2);\n expect(maybeProof.isJust()).toStrictEqual(true);\n const proof = maybeProof.unsafeCoerce();\n\n expect(proof).toStrictEqual([\n SMALL_TREE.nodes[0]![3],\n SMALL_TREE.nodes[1]![0],\n ]);\n });\n\n it(\"Get big tree merkle proof\", () => {\n const tree = builder.build(BIG_TREE.data);\n const maybeProof = tree.getProof(2);\n expect(maybeProof.isJust()).toStrictEqual(true);\n const proof = maybeProof.unsafeCoerce();\n\n expect(proof).toStrictEqual([\n BIG_TREE.nodes[0]![3],\n BIG_TREE.nodes[1]![0],\n BIG_TREE.nodes[2]![1],\n BIG_TREE.nodes[3]![1],\n ]);\n });\n\n it(\"Get out-of-bound merkle proof\", () => {\n const tree = builder.build(SMALL_TREE.data);\n let maybeProof = tree.getProof(-1);\n expect(maybeProof.isJust()).toStrictEqual(false);\n maybeProof = tree.getProof(5);\n expect(maybeProof.isJust()).toStrictEqual(false);\n });\n\n it(\"Empty tree\", () => {\n const tree = builder.build(EMPTY_TREE.data);\n expect(tree.getRoot()).toStrictEqual(EMPTY_TREE.root);\n const proof = tree.getProof(0);\n expect(proof.isJust()).toStrictEqual(false);\n });\n\n it(\"One-leaf tree\", () => {\n const tree = builder.build(ONE_LEAF_TREE.data);\n expect(tree.getRoot()).toStrictEqual(ONE_LEAF_TREE.root);\n const proof = tree.getProof(0);\n expect(proof.isJust()).toStrictEqual(true);\n expect(proof.unsafeCoerce()).toStrictEqual([]);\n });\n\n it(\"Tiny tree\", () => {\n const tree = builder.build(TINY_TREE.data);\n expect(tree.getRoot()).toStrictEqual(TINY_TREE.root);\n const proof = tree.getProof(0);\n expect(proof.isJust()).toStrictEqual(true);\n expect(proof.unsafeCoerce()).toStrictEqual([TINY_TREE.nodes[0]![1]]);\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { MerkleTreeBuilder } from \"./MerkleTreeBuilder\";\nimport { Sha256HasherService } from \"./Sha256HasherService\";\n\nconst EMPTY_TREE = {\n data: [],\n leaves: [],\n nodes: [],\n root: hexaStringToBuffer(\n \"0000000000000000000000000000000000000000000000000000000000000000\",\n ),\n};\n\nconst ONE_LEAF_TREE = {\n data: [Uint8Array.from([42, 43])],\n leaves: [Uint8Array.from([0, 42, 43])],\n nodes: [],\n root: hexaStringToBuffer(\n \"8a707e40cad3d1070b0a1c87dd362cdf4d546e6d2a7aaf155c798932f71de4ad\",\n ),\n};\n\nconst TINY_TREE = {\n data: [Uint8Array.from([0, 1, 2, 3, 4]), Uint8Array.from([5, 6, 7, 8, 9])],\n leaves: [\n Uint8Array.from([0, 0, 1, 2, 3, 4]),\n Uint8Array.from([0, 5, 6, 7, 8, 9]),\n ],\n nodes: [\n [\n hexaStringToBuffer(\n \"9d1cf1e12fa64e20ccd2a5387504b99e89e24ef55dba8399637c3f5b6615c0ad\",\n )!,\n hexaStringToBuffer(\n \"7dc17a7849e10103f73b8fa5a4b829f6292a1a59272e0e0c9def83a9c0f86de1\",\n )!,\n ],\n ],\n root: hexaStringToBuffer(\n \"dc65c307a70fb21f4c8ea0cdfc5ff3291adae1db9ce5410b93dcb43c5eddd793\",\n )!,\n};\n\nconst SMALL_TREE = {\n data: [\n Uint8Array.from([0]),\n Uint8Array.from([1]),\n Uint8Array.from([2]),\n Uint8Array.from([3]),\n ],\n leaves: [\n Uint8Array.from([0, 0]),\n Uint8Array.from([0, 1]),\n Uint8Array.from([0, 2]),\n Uint8Array.from([0, 3]),\n ],\n nodes: [\n [\n hexaStringToBuffer(\n \"96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7\",\n )!,\n hexaStringToBuffer(\n \"b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2\",\n )!,\n hexaStringToBuffer(\n \"fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f\",\n )!,\n hexaStringToBuffer(\n \"583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a\",\n )!,\n hexaStringToBuffer(\n \"52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825\",\n )!,\n ],\n ],\n root: hexaStringToBuffer(\n \"9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb\",\n )!,\n};\n\nconst BIG_TREE = {\n data: [\n Uint8Array.from([0]),\n Uint8Array.from([1]),\n Uint8Array.from([2]),\n Uint8Array.from([3]),\n Uint8Array.from([4]),\n Uint8Array.from([5]),\n Uint8Array.from([6]),\n Uint8Array.from([7]),\n Uint8Array.from([8]),\n Uint8Array.from([9]),\n Uint8Array.from([10]),\n ],\n leaves: [\n Uint8Array.from([0, 0]),\n Uint8Array.from([0, 1]),\n Uint8Array.from([0, 2]),\n Uint8Array.from([0, 3]),\n Uint8Array.from([0, 4]),\n Uint8Array.from([0, 5]),\n Uint8Array.from([0, 6]),\n Uint8Array.from([0, 7]),\n Uint8Array.from([0, 8]),\n Uint8Array.from([0, 9]),\n Uint8Array.from([0, 10]),\n ],\n nodes: [\n [\n hexaStringToBuffer(\n \"96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7\",\n )!,\n hexaStringToBuffer(\n \"b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2\",\n )!,\n hexaStringToBuffer(\n \"fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f\",\n )!,\n hexaStringToBuffer(\n \"583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d\",\n )!,\n hexaStringToBuffer(\n \"4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4\",\n )!,\n hexaStringToBuffer(\n \"9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d\",\n )!,\n hexaStringToBuffer(\n \"40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd\",\n )!,\n hexaStringToBuffer(\n \"2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7\",\n )!,\n hexaStringToBuffer(\n \"b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315\",\n )!,\n hexaStringToBuffer(\n \"c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4\",\n )!,\n hexaStringToBuffer(\n \"67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a\",\n )!,\n hexaStringToBuffer(\n \"52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825\",\n )!,\n hexaStringToBuffer(\n \"4b8c129ed14cce2c08cfc6766db7f8cdb133b5f698b8de3d5890ea7ff7f0a8d1\",\n )!,\n hexaStringToBuffer(\n \"bbb0feb32f648c73fe170518bcec1f675af1b780dc23d6fbf30b745c1ca5fa11\",\n )!,\n hexaStringToBuffer(\n \"f7e08e9a9e87822bd79a0bf24d14c7a431be807336bd3c50ccb2d249b2a91404\",\n )!,\n hexaStringToBuffer(\n \"67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb\",\n )!,\n hexaStringToBuffer(\n \"c1fe42b33ebb8e8a7e4a90abc481c7434e2be02cff2f6a18d7ffab4f1e25891b\",\n )!,\n hexaStringToBuffer(\n \"e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50\",\n )!,\n ],\n [\n hexaStringToBuffer(\n \"ef7f49b620f6c7ea9b963a214da34b5021c6ded8ed57734380a311ab726aa907\",\n )!,\n hexaStringToBuffer(\n \"e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50\",\n )!,\n ],\n ],\n root: hexaStringToBuffer(\n \"e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac\",\n )!,\n};\n\ndescribe(\"MerkleTreeBuilder\", () => {\n let builder: MerkleTreeBuilder;\n\n beforeEach(() => {\n jest.resetAllMocks();\n builder = new MerkleTreeBuilder(new Sha256HasherService());\n });\n\n it(\"Get small tree root and leaves\", () => {\n const tree = builder.build(SMALL_TREE.data);\n expect(tree.getRoot()).toStrictEqual(SMALL_TREE.root);\n expect(tree.size()).toStrictEqual(SMALL_TREE.leaves.length);\n expect(tree.getLeaves().map((l) => l.value)).toStrictEqual(\n SMALL_TREE.leaves,\n );\n expect(tree.getLeaves().map((l) => l.hash)).toStrictEqual(\n SMALL_TREE.nodes[0],\n );\n SMALL_TREE.nodes[0]!.forEach((hash, index) => {\n expect(tree.getLeafHash(index)).toStrictEqual(Just(hash));\n });\n expect(tree.getLeafHash(-1)).toStrictEqual(Nothing);\n expect(tree.getLeafHash(SMALL_TREE.nodes[0]!.length)).toStrictEqual(\n Nothing,\n );\n });\n\n it(\"Get big tree root and leaves\", () => {\n const tree = builder.build(BIG_TREE.data);\n expect(tree.getRoot()).toStrictEqual(BIG_TREE.root);\n expect(tree.size()).toStrictEqual(BIG_TREE.leaves.length);\n expect(tree.getLeaves().map((l) => l.value)).toStrictEqual(BIG_TREE.leaves);\n expect(tree.getLeaves().map((l) => l.hash)).toStrictEqual(\n BIG_TREE.nodes[0],\n );\n BIG_TREE.nodes[0]!.forEach((hash, index) => {\n expect(tree.getLeafHash(index)).toStrictEqual(Just(hash));\n });\n expect(tree.getLeafHash(-1)).toStrictEqual(Nothing);\n expect(tree.getLeafHash(BIG_TREE.nodes[0]!.length)).toStrictEqual(Nothing);\n });\n\n it(\"Get small tree merkle proof\", () => {\n const tree = builder.build(SMALL_TREE.data);\n const maybeProof = tree.getProof(2);\n expect(maybeProof.isJust()).toStrictEqual(true);\n const proof = maybeProof.unsafeCoerce();\n\n expect(proof).toStrictEqual([\n SMALL_TREE.nodes[0]![3],\n SMALL_TREE.nodes[1]![0],\n ]);\n });\n\n it(\"Get big tree merkle proof\", () => {\n const tree = builder.build(BIG_TREE.data);\n const maybeProof = tree.getProof(2);\n expect(maybeProof.isJust()).toStrictEqual(true);\n const proof = maybeProof.unsafeCoerce();\n\n expect(proof).toStrictEqual([\n BIG_TREE.nodes[0]![3],\n BIG_TREE.nodes[1]![0],\n BIG_TREE.nodes[2]![1],\n BIG_TREE.nodes[3]![1],\n ]);\n });\n\n it(\"Get out-of-bound merkle proof\", () => {\n const tree = builder.build(SMALL_TREE.data);\n let maybeProof = tree.getProof(-1);\n expect(maybeProof.isJust()).toStrictEqual(false);\n maybeProof = tree.getProof(5);\n expect(maybeProof.isJust()).toStrictEqual(false);\n });\n\n it(\"Empty tree\", () => {\n const tree = builder.build(EMPTY_TREE.data);\n expect(tree.getRoot()).toStrictEqual(EMPTY_TREE.root);\n const proof = tree.getProof(0);\n expect(proof.isJust()).toStrictEqual(false);\n });\n\n it(\"One-leaf tree\", () => {\n const tree = builder.build(ONE_LEAF_TREE.data);\n expect(tree.getRoot()).toStrictEqual(ONE_LEAF_TREE.root);\n const proof = tree.getProof(0);\n expect(proof.isJust()).toStrictEqual(true);\n expect(proof.unsafeCoerce()).toStrictEqual([]);\n });\n\n it(\"Tiny tree\", () => {\n const tree = builder.build(TINY_TREE.data);\n expect(tree.getRoot()).toStrictEqual(TINY_TREE.root);\n const proof = tree.getProof(0);\n expect(proof.isJust()).toStrictEqual(true);\n expect(proof.unsafeCoerce()).toStrictEqual([TINY_TREE.nodes[0]![1]]);\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["hexaStringToBuffer", "Just", "Nothing", "MerkleTreeBuilder", "Sha256HasherService", "EMPTY_TREE", "ONE_LEAF_TREE", "TINY_TREE", "SMALL_TREE", "BIG_TREE", "builder", "tree", "l", "hash", "index", "maybeProof", "proof"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import*as u from"bitcoinjs-lib";import{Left as d,Right as n}from"purify-ts";import{Psbt as P}from"../../../psbt/model/Psbt";import{DefaultPsbtMapper as i}from"./DefaultPsbtMapper";describe("DefaultPsbtMapper tests",()=>{const b="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",l="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",A=m(b),t=vi.fn(),f={deserialize:t},c=vi.fn(),s={normalize:c},o=()=>new P;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(b);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map base64 string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(l);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map bjs transaction",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(u.Psbt.fromHex(b));expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map byte array",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map invalid string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map("some random string");expect(r.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=o();t.mockReturnValueOnce(d(new Error)),c.mockReturnValueOnce(n(e));const p=new i(f,s).map(A);expect(t).toHaveBeenCalledWith(A),expect(p.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(d(new Error));const p=new i(f,s).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!1)})});
1
+ import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import*as u from"bitcoinjs-lib";import{Left as d,Right as n}from"purify-ts";import{Psbt as P}from"../../../psbt/model/Psbt";import{DefaultPsbtMapper as i}from"./DefaultPsbtMapper";describe("DefaultPsbtMapper tests",()=>{const b="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",l="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",A=m(b),t=jest.fn(),s={deserialize:t},c=jest.fn(),f={normalize:c},o=()=>new P;beforeEach(()=>{jest.resetAllMocks()}),it("Map hex string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(b);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map base64 string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(l);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map bjs transaction",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(u.Psbt.fromHex(b));expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map byte array",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map invalid string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map("some random string");expect(r.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=o();t.mockReturnValueOnce(d(new Error)),c.mockReturnValueOnce(n(e));const p=new i(s,f).map(A);expect(t).toHaveBeenCalledWith(A),expect(p.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(d(new Error));const p=new i(s,f).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(p.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": "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",
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 = jest.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = jest.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 jest.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": "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",
6
6
  "names": ["hexaStringToBuffer", "bjs", "Left", "Right", "Psbt", "DefaultPsbtMapper", "SERIALIZED_PSBT_V0_HEX", "SERIALIZED_PSBT_V0_BASE64", "SERIALIZED_PSBT_V0", "mockDeserialize", "mockSerializer", "mockNormalize", "mockNormalizer", "createPsbt", "parsedPsbt", "normalizedPsbt", "mapped"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{GetExtendedPublicKeyUseCase as o}from"./GetExtendedPublicKeyUseCase";describe("GetAddressUseCase",()=>{const e="44'/501'",t="some-pkey",c=vi.fn().mockReturnValue(t),n={getExtendedPublicKey:c};let s;beforeEach(()=>{vi.clearAllMocks(),s=new o(n)}),it("should return the address from the appBinder's getExtendedPublicKey method",()=>{const d=s.execute(e,{checkOnDevice:!0});expect(d).toEqual(t),expect(c).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0})})});
1
+ import{GetExtendedPublicKeyUseCase as o}from"./GetExtendedPublicKeyUseCase";describe("GetAddressUseCase",()=>{const e="44'/501'",t="some-pkey",c=jest.fn().mockReturnValue(t),n={getExtendedPublicKey:c};let s;beforeEach(()=>{jest.clearAllMocks(),s=new o(n)}),it("should return the address from the appBinder's getExtendedPublicKey method",()=>{const d=s.execute(e,{checkOnDevice:!0});expect(d).toEqual(t),expect(c).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0})})});
2
2
  //# sourceMappingURL=GetExtendedPublicKeyUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.ts"],
4
- "sourcesContent": ["import { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\n\nimport { GetExtendedPublicKeyUseCase } from \"./GetExtendedPublicKeyUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n const derivationPath = \"44'/501'\";\n const address = \"some-pkey\";\n const getExtendedPublicKeyMock = vi.fn().mockReturnValue(address);\n const appBinderMock = {\n getExtendedPublicKey: getExtendedPublicKeyMock,\n } as unknown as BtcAppBinder;\n let useCase: GetExtendedPublicKeyUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new GetExtendedPublicKeyUseCase(appBinderMock);\n });\n\n it(\"should return the address from the appBinder's getExtendedPublicKey method\", () => {\n // GIVEN\n const checkOnDevice = true;\n\n // WHEN\n const result = useCase.execute(derivationPath, { checkOnDevice });\n\n // THEN\n expect(result).toEqual(address);\n expect(getExtendedPublicKeyMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice,\n });\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,+BAAAA,MAAmC,gCAE5C,SAAS,oBAAqB,IAAM,CAClC,MAAMC,EAAiB,WACjBC,EAAU,YACVC,EAA2B,GAAG,GAAG,EAAE,gBAAgBD,CAAO,EAC1DE,EAAgB,CACpB,qBAAsBD,CACxB,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIL,EAA4BI,CAAa,CACzD,CAAC,EAED,GAAG,6EAA8E,IAAM,CAKrF,MAAME,EAASD,EAAQ,QAAQJ,EAAgB,CAAE,gBAAc,CAAC,EAGhE,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAwB,EAAE,qBAAqB,CACpD,eAAAF,EACA,gBACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\n\nimport { GetExtendedPublicKeyUseCase } from \"./GetExtendedPublicKeyUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n const derivationPath = \"44'/501'\";\n const address = \"some-pkey\";\n const getExtendedPublicKeyMock = jest.fn().mockReturnValue(address);\n const appBinderMock = {\n getExtendedPublicKey: getExtendedPublicKeyMock,\n } as unknown as BtcAppBinder;\n let useCase: GetExtendedPublicKeyUseCase;\n\n beforeEach(() => {\n jest.clearAllMocks();\n useCase = new GetExtendedPublicKeyUseCase(appBinderMock);\n });\n\n it(\"should return the address from the appBinder's getExtendedPublicKey method\", () => {\n // GIVEN\n const checkOnDevice = true;\n\n // WHEN\n const result = useCase.execute(derivationPath, { checkOnDevice });\n\n // THEN\n expect(result).toEqual(address);\n expect(getExtendedPublicKeyMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice,\n });\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,+BAAAA,MAAmC,gCAE5C,SAAS,oBAAqB,IAAM,CAClC,MAAMC,EAAiB,WACjBC,EAAU,YACVC,EAA2B,KAAK,GAAG,EAAE,gBAAgBD,CAAO,EAC5DE,EAAgB,CACpB,qBAAsBD,CACxB,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,KAAK,cAAc,EACnBA,EAAU,IAAIL,EAA4BI,CAAa,CACzD,CAAC,EAED,GAAG,6EAA8E,IAAM,CAKrF,MAAME,EAASD,EAAQ,QAAQJ,EAAgB,CAAE,gBAAc,CAAC,EAGhE,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAwB,EAAE,qBAAqB,CACpD,eAAAF,EACA,gBACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["GetExtendedPublicKeyUseCase", "derivationPath", "address", "getExtendedPublicKeyMock", "appBinderMock", "useCase", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Leaf as l}from"../../merkle-tree/model/Leaf";import{MerkleTree as n}from"../../merkle-tree/model/MerkleTree";import{GetWalletAddressUseCase as d}from"./GetWalletAddressUseCase";describe("GetWalletAddressUseCase",()=>{it("should call getWalletAddress on appBinder with the correct arguments",()=>{const e={name:"wallet-name",descriptorTemplate:"wpkh(@0/**)",keys:["key1","key2"],hmac:new Uint8Array(32).fill(42),keysTree:new n(new l(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:new Uint8Array(31).fill(16)},t=!1,s=!1,r=0,a={getWalletAddress:vi.fn()};new d(a).execute(t,e,s,r),expect(a.getWalletAddress).toHaveBeenCalledWith({wallet:e,checkOnDevice:t,change:s,addressIndex:r})})});
1
+ import{Leaf as l}from"../../merkle-tree/model/Leaf";import{MerkleTree as n}from"../../merkle-tree/model/MerkleTree";import{GetWalletAddressUseCase as d}from"./GetWalletAddressUseCase";describe("GetWalletAddressUseCase",()=>{it("should call getWalletAddress on appBinder with the correct arguments",()=>{const e={name:"wallet-name",descriptorTemplate:"wpkh(@0/**)",keys:["key1","key2"],hmac:new Uint8Array(32).fill(42),keysTree:new n(new l(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:new Uint8Array(31).fill(16)},t=!1,s=!1,r=0,a={getWalletAddress:jest.fn()};new d(a).execute(t,e,s,r),expect(a.getWalletAddress).toHaveBeenCalledWith({wallet:e,checkOnDevice:t,change:s,addressIndex:r})})});
2
2
  //# sourceMappingURL=GetWalletAddressUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.ts"],
4
- "sourcesContent": ["import { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\n\nimport { GetWalletAddressUseCase } from \"./GetWalletAddressUseCase\";\n\ndescribe(\"GetWalletAddressUseCase\", () => {\n it(\"should call getWalletAddress on appBinder with the correct arguments\", () => {\n // given\n const wallet = {\n name: \"wallet-name\",\n descriptorTemplate: \"wpkh(@0/**)\",\n keys: [\"key1\", \"key2\"],\n hmac: new Uint8Array(32).fill(42),\n keysTree: new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n ),\n descriptorBuffer: new Uint8Array(31).fill(16),\n };\n const checkOnDevice = false;\n const change = false;\n const addressIndex = 0;\n\n const appBinder = {\n getWalletAddress: vi.fn(),\n };\n const getWalletAddressUseCase = new GetWalletAddressUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // when\n getWalletAddressUseCase.execute(\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n );\n\n // then\n expect(appBinder.getWalletAddress).toHaveBeenCalledWith({\n wallet,\n checkOnDevice,\n change,\n addressIndex,\n });\n });\n});\n"],
5
- "mappings": "AACA,OAAS,QAAAA,MAAY,mCACrB,OAAS,cAAAC,MAAkB,yCAE3B,OAAS,2BAAAC,MAA+B,4BAExC,SAAS,0BAA2B,IAAM,CACxC,GAAG,uEAAwE,IAAM,CAE/E,MAAMC,EAAS,CACb,KAAM,cACN,mBAAoB,cACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAChC,SAAU,IAAIF,EACZ,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAkB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC9C,EACMI,EAAgB,GAChBC,EAAS,GACTC,EAAe,EAEfC,EAAY,CAChB,iBAAkB,GAAG,GAAG,CAC1B,EACgC,IAAIL,EAClCK,CACF,EAGwB,QACtBH,EACAD,EACAE,EACAC,CACF,EAGA,OAAOC,EAAU,gBAAgB,EAAE,qBAAqB,CACtD,OAAAJ,EACA,cAAAC,EACA,OAAAC,EACA,aAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\n\nimport { GetWalletAddressUseCase } from \"./GetWalletAddressUseCase\";\n\ndescribe(\"GetWalletAddressUseCase\", () => {\n it(\"should call getWalletAddress on appBinder with the correct arguments\", () => {\n // given\n const wallet = {\n name: \"wallet-name\",\n descriptorTemplate: \"wpkh(@0/**)\",\n keys: [\"key1\", \"key2\"],\n hmac: new Uint8Array(32).fill(42),\n keysTree: new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n ),\n descriptorBuffer: new Uint8Array(31).fill(16),\n };\n const checkOnDevice = false;\n const change = false;\n const addressIndex = 0;\n\n const appBinder = {\n getWalletAddress: jest.fn(),\n };\n const getWalletAddressUseCase = new GetWalletAddressUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // when\n getWalletAddressUseCase.execute(\n checkOnDevice,\n wallet,\n change,\n addressIndex,\n );\n\n // then\n expect(appBinder.getWalletAddress).toHaveBeenCalledWith({\n wallet,\n checkOnDevice,\n change,\n addressIndex,\n });\n });\n});\n"],
5
+ "mappings": "AACA,OAAS,QAAAA,MAAY,mCACrB,OAAS,cAAAC,MAAkB,yCAE3B,OAAS,2BAAAC,MAA+B,4BAExC,SAAS,0BAA2B,IAAM,CACxC,GAAG,uEAAwE,IAAM,CAE/E,MAAMC,EAAS,CACb,KAAM,cACN,mBAAoB,cACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAChC,SAAU,IAAIF,EACZ,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAkB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC9C,EACMI,EAAgB,GAChBC,EAAS,GACTC,EAAe,EAEfC,EAAY,CAChB,iBAAkB,KAAK,GAAG,CAC5B,EACgC,IAAIL,EAClCK,CACF,EAGwB,QACtBH,EACAD,EACAE,EACAC,CACF,EAGA,OAAOC,EAAU,gBAAgB,EAAE,qBAAqB,CACtD,OAAAJ,EACA,cAAAC,EACA,OAAAC,EACA,aAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Leaf", "MerkleTree", "GetWalletAddressUseCase", "wallet", "checkOnDevice", "change", "addressIndex", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{SignMessageUseCase as a}from"./SignMessageUseCase";describe("SignMessageUseCase",()=>{it("should call signPersonalMessage on appBinder with the correct arguments",()=>{const e="44'/501'/0'/0'",s="Hello world",n={signMessage:vi.fn()};new a(n).execute(e,s),expect(n.signMessage).toHaveBeenCalledWith({derivationPath:e,message:s})})});
1
+ import{SignMessageUseCase as a}from"./SignMessageUseCase";describe("SignMessageUseCase",()=>{it("should call signPersonalMessage on appBinder with the correct arguments",()=>{const e="44'/501'/0'/0'",s="Hello world",n={signMessage:jest.fn()};new a(n).execute(e,s),expect(n.signMessage).toHaveBeenCalledWith({derivationPath:e,message:s})})});
2
2
  //# sourceMappingURL=SignMessageUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/sign-message/SignMessageUseCase.test.ts"],
4
- "sourcesContent": ["import { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\n\nimport { SignMessageUseCase } from \"./SignMessageUseCase\";\n\ndescribe(\"SignMessageUseCase\", () => {\n it(\"should call signPersonalMessage on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"44'/501'/0'/0'\";\n const message = \"Hello world\";\n const appBinder = {\n signMessage: vi.fn(),\n };\n const signMessageUseCase = new SignMessageUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // When\n signMessageUseCase.execute(derivationPath, message);\n\n // Then\n expect(appBinder.signMessage).toHaveBeenCalledWith({\n derivationPath,\n message,\n });\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,sBAAAA,MAA0B,uBAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,0EAA2E,IAAM,CAElF,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,GAAG,GAAG,CACrB,EAC2B,IAAIH,EAC7BG,CACF,EAGmB,QAAQF,EAAgBC,CAAO,EAGlD,OAAOC,EAAU,WAAW,EAAE,qBAAqB,CACjD,eAAAF,EACA,QAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\n\nimport { SignMessageUseCase } from \"./SignMessageUseCase\";\n\ndescribe(\"SignMessageUseCase\", () => {\n it(\"should call signPersonalMessage on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"44'/501'/0'/0'\";\n const message = \"Hello world\";\n const appBinder = {\n signMessage: jest.fn(),\n };\n const signMessageUseCase = new SignMessageUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // When\n signMessageUseCase.execute(derivationPath, message);\n\n // Then\n expect(appBinder.signMessage).toHaveBeenCalledWith({\n derivationPath,\n message,\n });\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,sBAAAA,MAA0B,uBAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,0EAA2E,IAAM,CAElF,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,KAAK,GAAG,CACvB,EAC2B,IAAIH,EAC7BG,CACF,EAGmB,QAAQF,EAAgBC,CAAO,EAGlD,OAAOC,EAAU,WAAW,EAAE,qBAAqB,CACjD,eAAAF,EACA,QAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["SignMessageUseCase", "derivationPath", "message", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DefaultDescriptorTemplate as n,DefaultWallet as i}from"../../../api/model/Wallet";import{SignPsbtUseCase as a}from"./SignPsbtUseCase";describe("SignPsbtUseCase",()=>{it("should call signPsbt on appBinder with the correct arguments",()=>{const e=new i("84'/0'/0'",n.NATIVE_SEGWIT),t="some-psbt",s={signPsbt:vi.fn()};new a(s).execute(e,t),expect(s.signPsbt).toHaveBeenCalledWith({wallet:e,psbt:t})})});
1
+ import{DefaultDescriptorTemplate as n,DefaultWallet as i}from"../../../api/model/Wallet";import{SignPsbtUseCase as a}from"./SignPsbtUseCase";describe("SignPsbtUseCase",()=>{it("should call signPsbt on appBinder with the correct arguments",()=>{const e=new i("84'/0'/0'",n.NATIVE_SEGWIT),t="some-psbt",s={signPsbt:jest.fn()};new a(s).execute(e,t),expect(s.signPsbt).toHaveBeenCalledWith({wallet:e,psbt:t})})});
2
2
  //# sourceMappingURL=SignPsbtUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/sign-psbt/SignPsbtUseCase.test.ts"],
4
- "sourcesContent": ["import { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nimport { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\n\nimport { SignPsbtUseCase } from \"./SignPsbtUseCase\";\n\ndescribe(\"SignPsbtUseCase\", () => {\n it(\"should call signPsbt on appBinder with the correct arguments\", () => {\n // Given\n const wallet = new DefaultWallet(\n \"84'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const psbt = \"some-psbt\";\n const appBinder = {\n signPsbt: vi.fn(),\n };\n const signPsbtUseCase = new SignPsbtUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // When\n signPsbtUseCase.execute(wallet, psbt);\n\n // Then\n expect(appBinder.signPsbt).toHaveBeenCalledWith({\n wallet,\n psbt,\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBAGzD,OAAS,mBAAAC,MAAuB,oBAEhC,SAAS,kBAAmB,IAAM,CAChC,GAAG,+DAAgE,IAAM,CAEvE,MAAMC,EAAS,IAAIF,EACjB,YACAD,EAA0B,aAC5B,EACMI,EAAO,YACPC,EAAY,CAChB,SAAU,GAAG,GAAG,CAClB,EACwB,IAAIH,EAC1BG,CACF,EAGgB,QAAQF,EAAQC,CAAI,EAGpC,OAAOC,EAAU,QAAQ,EAAE,qBAAqB,CAC9C,OAAAF,EACA,KAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nimport { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\n\nimport { SignPsbtUseCase } from \"./SignPsbtUseCase\";\n\ndescribe(\"SignPsbtUseCase\", () => {\n it(\"should call signPsbt on appBinder with the correct arguments\", () => {\n // Given\n const wallet = new DefaultWallet(\n \"84'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const psbt = \"some-psbt\";\n const appBinder = {\n signPsbt: jest.fn(),\n };\n const signPsbtUseCase = new SignPsbtUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // When\n signPsbtUseCase.execute(wallet, psbt);\n\n // Then\n expect(appBinder.signPsbt).toHaveBeenCalledWith({\n wallet,\n psbt,\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBAGzD,OAAS,mBAAAC,MAAuB,oBAEhC,SAAS,kBAAmB,IAAM,CAChC,GAAG,+DAAgE,IAAM,CAEvE,MAAMC,EAAS,IAAIF,EACjB,YACAD,EAA0B,aAC5B,EACMI,EAAO,YACPC,EAAY,CAChB,SAAU,KAAK,GAAG,CACpB,EACwB,IAAIH,EAC1BG,CACF,EAGgB,QAAQF,EAAQC,CAAI,EAGpC,OAAOC,EAAU,QAAQ,EAAE,qBAAqB,CAC9C,OAAAF,EACA,KAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["DefaultDescriptorTemplate", "DefaultWallet", "SignPsbtUseCase", "wallet", "psbt", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DefaultDescriptorTemplate as s,DefaultWallet as a}from"../../../api/model/Wallet";import{SignTransactionUseCase as i}from"../../use-cases/sign-transaction/SignTransactionUseCase";describe("SignTransactionUseCase",()=>{it("should call signTransaction on appBinder with the correct arguments",()=>{const n=new a("84'/0'/0'",s.NATIVE_SEGWIT),e="some-psbt",t={signTransaction:vi.fn()};new i(t).execute(n,e),expect(t.signTransaction).toHaveBeenCalledWith({wallet:n,psbt:e})})});
1
+ import{DefaultDescriptorTemplate as s,DefaultWallet as a}from"../../../api/model/Wallet";import{SignTransactionUseCase as i}from"../../use-cases/sign-transaction/SignTransactionUseCase";describe("SignTransactionUseCase",()=>{it("should call signTransaction on appBinder with the correct arguments",()=>{const e=new a("84'/0'/0'",s.NATIVE_SEGWIT),n="some-psbt",t={signTransaction:jest.fn()};new i(t).execute(e,n),expect(t.signTransaction).toHaveBeenCalledWith({wallet:e,psbt:n})})});
2
2
  //# sourceMappingURL=SignTransactionUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/sign-transaction/SignTransactionUseCase.test.ts"],
4
- "sourcesContent": ["import { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nimport { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\ndescribe(\"SignTransactionUseCase\", () => {\n it(\"should call signTransaction on appBinder with the correct arguments\", () => {\n // Given\n const wallet = new DefaultWallet(\n \"84'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const psbt = \"some-psbt\";\n const appBinder = {\n signTransaction: vi.fn(),\n };\n const signTransactionUseCase = new SignTransactionUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // When\n signTransactionUseCase.execute(wallet, psbt);\n\n // Then\n expect(appBinder.signTransaction).toHaveBeenCalledWith({\n wallet,\n psbt,\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBAEzD,OAAS,0BAAAC,MAA8B,8DAEvC,SAAS,yBAA0B,IAAM,CACvC,GAAG,sEAAuE,IAAM,CAE9E,MAAMC,EAAS,IAAIF,EACjB,YACAD,EAA0B,aAC5B,EACMI,EAAO,YACPC,EAAY,CAChB,gBAAiB,GAAG,GAAG,CACzB,EAC+B,IAAIH,EACjCG,CACF,EAGuB,QAAQF,EAAQC,CAAI,EAG3C,OAAOC,EAAU,eAAe,EAAE,qBAAqB,CACrD,OAAAF,EACA,KAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nimport { type BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\ndescribe(\"SignTransactionUseCase\", () => {\n it(\"should call signTransaction on appBinder with the correct arguments\", () => {\n // Given\n const wallet = new DefaultWallet(\n \"84'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const psbt = \"some-psbt\";\n const appBinder = {\n signTransaction: jest.fn(),\n };\n const signTransactionUseCase = new SignTransactionUseCase(\n appBinder as unknown as BtcAppBinder,\n );\n\n // When\n signTransactionUseCase.execute(wallet, psbt);\n\n // Then\n expect(appBinder.signTransaction).toHaveBeenCalledWith({\n wallet,\n psbt,\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBAEzD,OAAS,0BAAAC,MAA8B,8DAEvC,SAAS,yBAA0B,IAAM,CACvC,GAAG,sEAAuE,IAAM,CAE9E,MAAMC,EAAS,IAAIF,EACjB,YACAD,EAA0B,aAC5B,EACMI,EAAO,YACPC,EAAY,CAChB,gBAAiB,KAAK,GAAG,CAC3B,EAC+B,IAAIH,EACjCG,CACF,EAGuB,QAAQF,EAAQC,CAAI,EAG3C,OAAOC,EAAU,eAAe,EAAE,qBAAqB,CACrD,OAAAF,EACA,KAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["DefaultDescriptorTemplate", "DefaultWallet", "SignTransactionUseCase", "wallet", "psbt", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import{DefaultDescriptorTemplate as p,DefaultWallet as w,RegisteredWallet as f}from"../../../api/model/Wallet";import{Leaf as u}from"../../merkle-tree/model/Leaf";import{MerkleTree as s}from"../../merkle-tree/model/MerkleTree";import{DefaultWalletBuilder as d}from"./DefaultWalletBuilder";describe("DefaultWalletBuilder tests",()=>{const o=vi.fn(),a={build:o};it("Create registered wallet",()=>{const n=new d(a),c=new f("Cold storage","wsh(sortedmulti(2,@0/**,@1/**))",["key1","key2"],new Uint8Array(32).fill(42)),l=new s(new u(new Uint8Array,new Uint8Array(32).fill(7)),[]);o.mockReturnValueOnce(l);const e=n.fromRegisteredWallet(c),t=new TextEncoder;expect(o).toHaveBeenCalledWith([t.encode("key1"),t.encode("key2")]),expect(e.name).toStrictEqual("Cold storage"),expect(e.hmac).toStrictEqual(new Uint8Array(32).fill(42)),expect(e.descriptorTemplate).toStrictEqual("wsh(sortedmulti(2,@0/**,@1/**))"),expect(e.descriptorBuffer).toStrictEqual(t.encode("wsh(sortedmulti(2,@0/**,@1/**))")),expect(e.keys).toStrictEqual(["key1","key2"]),expect(e.keysTree).toStrictEqual(l)}),it("Create default wallet",()=>{const n=new d(a),c=new w("48'/1'/0'/0'",p.NATIVE_SEGWIT),l=m("5c9e228d"),e="tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW",t=new s(new u(new Uint8Array,new Uint8Array(32).fill(7)),[]);o.mockReturnValueOnce(t);const r=n.fromDefaultWallet(l,e,c),i=new TextEncoder;expect(o).toHaveBeenCalledWith([i.encode("[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW")]),expect(r.name).toStrictEqual(""),expect(r.hmac).toStrictEqual(new Uint8Array(32).fill(0)),expect(r.descriptorTemplate).toStrictEqual("wpkh(@0/**)"),expect(r.descriptorBuffer).toStrictEqual(i.encode("wpkh(@0/**)")),expect(r.keys).toStrictEqual(["[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW"]),expect(r.keysTree).toStrictEqual(t)})});
1
+ import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import{DefaultDescriptorTemplate as p,DefaultWallet as w,RegisteredWallet as f}from"../../../api/model/Wallet";import{Leaf as u}from"../../merkle-tree/model/Leaf";import{MerkleTree as s}from"../../merkle-tree/model/MerkleTree";import{DefaultWalletBuilder as d}from"./DefaultWalletBuilder";describe("DefaultWalletBuilder tests",()=>{const o=jest.fn(),a={build:o};it("Create registered wallet",()=>{const n=new d(a),c=new f("Cold storage","wsh(sortedmulti(2,@0/**,@1/**))",["key1","key2"],new Uint8Array(32).fill(42)),l=new s(new u(new Uint8Array,new Uint8Array(32).fill(7)),[]);o.mockReturnValueOnce(l);const e=n.fromRegisteredWallet(c),t=new TextEncoder;expect(o).toHaveBeenCalledWith([t.encode("key1"),t.encode("key2")]),expect(e.name).toStrictEqual("Cold storage"),expect(e.hmac).toStrictEqual(new Uint8Array(32).fill(42)),expect(e.descriptorTemplate).toStrictEqual("wsh(sortedmulti(2,@0/**,@1/**))"),expect(e.descriptorBuffer).toStrictEqual(t.encode("wsh(sortedmulti(2,@0/**,@1/**))")),expect(e.keys).toStrictEqual(["key1","key2"]),expect(e.keysTree).toStrictEqual(l)}),it("Create default wallet",()=>{const n=new d(a),c=new w("48'/1'/0'/0'",p.NATIVE_SEGWIT),l=m("5c9e228d"),e="tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW",t=new s(new u(new Uint8Array,new Uint8Array(32).fill(7)),[]);o.mockReturnValueOnce(t);const r=n.fromDefaultWallet(l,e,c),i=new TextEncoder;expect(o).toHaveBeenCalledWith([i.encode("[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW")]),expect(r.name).toStrictEqual(""),expect(r.hmac).toStrictEqual(new Uint8Array(32).fill(0)),expect(r.descriptorTemplate).toStrictEqual("wpkh(@0/**)"),expect(r.descriptorBuffer).toStrictEqual(i.encode("wpkh(@0/**)")),expect(r.keys).toStrictEqual(["[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW"]),expect(r.keysTree).toStrictEqual(t)})});
2
2
  //# sourceMappingURL=DefaultWalletBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/wallet/service/DefaultWalletBuilder.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n RegisteredWallet,\n} from \"@api/model/Wallet\";\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\n\nimport { DefaultWalletBuilder } from \"./DefaultWalletBuilder\";\n\ndescribe(\"DefaultWalletBuilder tests\", () => {\n const mockCreateMerkleTree = vi.fn();\n const mockMerkleTree = {\n build: mockCreateMerkleTree,\n } as unknown as MerkleTreeBuilder;\n\n it(\"Create registered wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const registeredWallet = new RegisteredWallet(\n \"Cold storage\",\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n [\"key1\", \"key2\"],\n new Uint8Array(32).fill(42),\n );\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromRegisteredWallet(registeredWallet);\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\"key1\"),\n encoder.encode(\"key2\"),\n ]);\n expect(wallet.name).toStrictEqual(\"Cold storage\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(42));\n expect(wallet.descriptorTemplate).toStrictEqual(\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n );\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wsh(sortedmulti(2,@0/**,@1/**))\"),\n );\n expect(wallet.keys).toStrictEqual([\"key1\", \"key2\"]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n\n it(\"Create default wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const defaultWallet = new DefaultWallet(\n \"48'/1'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const masterFingerprint = hexaStringToBuffer(\"5c9e228d\")!;\n const extendedPublicKey =\n \"tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\";\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromDefaultWallet(\n masterFingerprint,\n extendedPublicKey,\n defaultWallet,\n );\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ),\n ]);\n expect(wallet.name).toStrictEqual(\"\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(0));\n expect(wallet.descriptorTemplate).toStrictEqual(\"wpkh(@0/**)\");\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wpkh(@0/**)\"),\n );\n expect(wallet.keys).toStrictEqual([\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,sBAAAA,MAA0B,kCAEnC,OACE,6BAAAC,EACA,iBAAAC,EACA,oBAAAC,MACK,oBACP,OAAS,QAAAC,MAAY,mCACrB,OAAS,cAAAC,MAAkB,yCAG3B,OAAS,wBAAAC,MAA4B,yBAErC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAuB,GAAG,GAAG,EAC7BC,EAAiB,CACrB,MAAOD,CACT,EAEA,GAAG,2BAA4B,IAAM,CAEnC,MAAME,EAAU,IAAIH,EAAqBE,CAAc,EACjDE,EAAmB,IAAIP,EAC3B,eACA,kCACA,CAAC,OAAQ,MAAM,EACf,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC5B,EACMQ,EAAW,IAAIN,EACnB,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAG,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,qBAAqBC,CAAgB,EAGtDG,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OAAO,MAAM,EACrBA,EAAQ,OAAO,MAAM,CACvB,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,cAAc,EAChD,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAC7D,OAAOA,EAAO,kBAAkB,EAAE,cAChC,iCACF,EACA,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,iCAAiC,CAClD,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAAC,OAAQ,MAAM,CAAC,EAClD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,EAED,GAAG,wBAAyB,IAAM,CAEhC,MAAMF,EAAU,IAAIH,EAAqBE,CAAc,EACjDM,EAAgB,IAAIZ,EACxB,eACAD,EAA0B,aAC5B,EACMc,EAAoBf,EAAmB,UAAU,EACjDgB,EACJ,kHACIL,EAAW,IAAIN,EACnB,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAG,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,kBACrBM,EACAC,EACAF,CACF,EAGMD,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OACN,wIACF,CACF,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,EAAE,EACpC,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EAC5D,OAAOA,EAAO,kBAAkB,EAAE,cAAc,aAAa,EAC7D,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,aAAa,CAC9B,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAChC,wIACF,CAAC,EACD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n RegisteredWallet,\n} from \"@api/model/Wallet\";\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\n\nimport { DefaultWalletBuilder } from \"./DefaultWalletBuilder\";\n\ndescribe(\"DefaultWalletBuilder tests\", () => {\n const mockCreateMerkleTree = jest.fn();\n const mockMerkleTree = {\n build: mockCreateMerkleTree,\n } as unknown as MerkleTreeBuilder;\n\n it(\"Create registered wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const registeredWallet = new RegisteredWallet(\n \"Cold storage\",\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n [\"key1\", \"key2\"],\n new Uint8Array(32).fill(42),\n );\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromRegisteredWallet(registeredWallet);\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\"key1\"),\n encoder.encode(\"key2\"),\n ]);\n expect(wallet.name).toStrictEqual(\"Cold storage\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(42));\n expect(wallet.descriptorTemplate).toStrictEqual(\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n );\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wsh(sortedmulti(2,@0/**,@1/**))\"),\n );\n expect(wallet.keys).toStrictEqual([\"key1\", \"key2\"]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n\n it(\"Create default wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const defaultWallet = new DefaultWallet(\n \"48'/1'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const masterFingerprint = hexaStringToBuffer(\"5c9e228d\")!;\n const extendedPublicKey =\n \"tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\";\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromDefaultWallet(\n masterFingerprint,\n extendedPublicKey,\n defaultWallet,\n );\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ),\n ]);\n expect(wallet.name).toStrictEqual(\"\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(0));\n expect(wallet.descriptorTemplate).toStrictEqual(\"wpkh(@0/**)\");\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wpkh(@0/**)\"),\n );\n expect(wallet.keys).toStrictEqual([\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,sBAAAA,MAA0B,kCAEnC,OACE,6BAAAC,EACA,iBAAAC,EACA,oBAAAC,MACK,oBACP,OAAS,QAAAC,MAAY,mCACrB,OAAS,cAAAC,MAAkB,yCAG3B,OAAS,wBAAAC,MAA4B,yBAErC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAuB,KAAK,GAAG,EAC/BC,EAAiB,CACrB,MAAOD,CACT,EAEA,GAAG,2BAA4B,IAAM,CAEnC,MAAME,EAAU,IAAIH,EAAqBE,CAAc,EACjDE,EAAmB,IAAIP,EAC3B,eACA,kCACA,CAAC,OAAQ,MAAM,EACf,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC5B,EACMQ,EAAW,IAAIN,EACnB,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAG,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,qBAAqBC,CAAgB,EAGtDG,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OAAO,MAAM,EACrBA,EAAQ,OAAO,MAAM,CACvB,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,cAAc,EAChD,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAC7D,OAAOA,EAAO,kBAAkB,EAAE,cAChC,iCACF,EACA,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,iCAAiC,CAClD,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAAC,OAAQ,MAAM,CAAC,EAClD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,EAED,GAAG,wBAAyB,IAAM,CAEhC,MAAMF,EAAU,IAAIH,EAAqBE,CAAc,EACjDM,EAAgB,IAAIZ,EACxB,eACAD,EAA0B,aAC5B,EACMc,EAAoBf,EAAmB,UAAU,EACjDgB,EACJ,kHACIL,EAAW,IAAIN,EACnB,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAG,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,kBACrBM,EACAC,EACAF,CACF,EAGMD,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OACN,wIACF,CACF,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,EAAE,EACpC,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EAC5D,OAAOA,EAAO,kBAAkB,EAAE,cAAc,aAAa,EAC7D,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,aAAa,CAC9B,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAChC,wIACF,CAAC,EACD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,CACH,CAAC",
6
6
  "names": ["hexaStringToBuffer", "DefaultDescriptorTemplate", "DefaultWallet", "RegisteredWallet", "Leaf", "MerkleTree", "DefaultWalletBuilder", "mockCreateMerkleTree", "mockMerkleTree", "builder", "registeredWallet", "keysTree", "wallet", "encoder", "defaultWallet", "masterFingerprint", "extendedPublicKey"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{hexaStringToBuffer as o}from"@ledgerhq/device-management-kit";import{Leaf as n}from"../../merkle-tree/model/Leaf";import{MerkleTree as s}from"../../merkle-tree/model/MerkleTree";import{Wallet as c}from"../../wallet/model/Wallet";import{DefaultWalletSerializer as f}from"./DefaultWalletSerializer";describe("DefaultWalletSerializer tests",()=>{const e=vi.fn(),r={hash:e};it("Serialize a wallet",()=>{const t=new f(r),a=new Uint8Array(31).fill(16),i=new c({name:"Cold storage",descriptorTemplate:"wsh(sortedmulti(2,@0/**,@1/**))",keys:["key1","key2"],hmac:new Uint8Array,keysTree:new s(new n(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:a});e.mockReturnValueOnce(new Uint8Array(32).fill(42));const l=t.serialize(i);expect(e).toHaveBeenCalledWith(a),expect(l).toStrictEqual(o("020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707"))})});
1
+ import{hexaStringToBuffer as o}from"@ledgerhq/device-management-kit";import{Leaf as n}from"../../merkle-tree/model/Leaf";import{MerkleTree as s}from"../../merkle-tree/model/MerkleTree";import{Wallet as c}from"../../wallet/model/Wallet";import{DefaultWalletSerializer as f}from"./DefaultWalletSerializer";describe("DefaultWalletSerializer tests",()=>{const e=jest.fn(),r={hash:e};it("Serialize a wallet",()=>{const t=new f(r),a=new Uint8Array(31).fill(16),i=new c({name:"Cold storage",descriptorTemplate:"wsh(sortedmulti(2,@0/**,@1/**))",keys:["key1","key2"],hmac:new Uint8Array,keysTree:new s(new n(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:a});e.mockReturnValueOnce(new Uint8Array(32).fill(42));const l=t.serialize(i);expect(e).toHaveBeenCalledWith(a),expect(l).toStrictEqual(o("020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707"))})});
2
2
  //# sourceMappingURL=DefaultWalletSerializer.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/wallet/service/DefaultWalletSerializer.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type HasherService } from \"@internal/merkle-tree/service/HasherService\";\nimport { Wallet } from \"@internal/wallet/model/Wallet\";\n\nimport { DefaultWalletSerializer } from \"./DefaultWalletSerializer\";\n\ndescribe(\"DefaultWalletSerializer tests\", () => {\n const mockHash = vi.fn();\n const mockHasherService: HasherService = {\n hash: mockHash,\n };\n\n it(\"Serialize a wallet\", () => {\n // Given\n const walletSerializer = new DefaultWalletSerializer(mockHasherService);\n const descriptorBuffer = new Uint8Array(31).fill(16);\n const wallet = new Wallet({\n name: \"Cold storage\",\n descriptorTemplate: \"wsh(sortedmulti(2,@0/**,@1/**))\",\n keys: [\"key1\", \"key2\"],\n hmac: new Uint8Array(),\n keysTree: new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n ),\n descriptorBuffer,\n });\n\n // When\n mockHash.mockReturnValueOnce(new Uint8Array(32).fill(42));\n const serialized = walletSerializer.serialize(wallet);\n\n // Then\n expect(mockHash).toHaveBeenCalledWith(descriptorBuffer);\n expect(serialized).toStrictEqual(\n hexaStringToBuffer(\n \"020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707\",\n )!,\n );\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,sBAAAA,MAA0B,kCAEnC,OAAS,QAAAC,MAAY,mCACrB,OAAS,cAAAC,MAAkB,yCAE3B,OAAS,UAAAC,MAAc,gCAEvB,OAAS,2BAAAC,MAA+B,4BAExC,SAAS,gCAAiC,IAAM,CAC9C,MAAMC,EAAW,GAAG,GAAG,EACjBC,EAAmC,CACvC,KAAMD,CACR,EAEA,GAAG,qBAAsB,IAAM,CAE7B,MAAME,EAAmB,IAAIH,EAAwBE,CAAiB,EAChEE,EAAmB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAC7CC,EAAS,IAAIN,EAAO,CACxB,KAAM,eACN,mBAAoB,kCACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WACV,SAAU,IAAID,EACZ,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAAO,CACF,CAAC,EAGDH,EAAS,oBAAoB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EACxD,MAAMK,EAAaH,EAAiB,UAAUE,CAAM,EAGpD,OAAOJ,CAAQ,EAAE,qBAAqBG,CAAgB,EACtD,OAAOE,CAAU,EAAE,cACjBV,EACE,kKACF,CACF,CACF,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type HasherService } from \"@internal/merkle-tree/service/HasherService\";\nimport { Wallet } from \"@internal/wallet/model/Wallet\";\n\nimport { DefaultWalletSerializer } from \"./DefaultWalletSerializer\";\n\ndescribe(\"DefaultWalletSerializer tests\", () => {\n const mockHash = jest.fn();\n const mockHasherService: HasherService = {\n hash: mockHash,\n };\n\n it(\"Serialize a wallet\", () => {\n // Given\n const walletSerializer = new DefaultWalletSerializer(mockHasherService);\n const descriptorBuffer = new Uint8Array(31).fill(16);\n const wallet = new Wallet({\n name: \"Cold storage\",\n descriptorTemplate: \"wsh(sortedmulti(2,@0/**,@1/**))\",\n keys: [\"key1\", \"key2\"],\n hmac: new Uint8Array(),\n keysTree: new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n ),\n descriptorBuffer,\n });\n\n // When\n mockHash.mockReturnValueOnce(new Uint8Array(32).fill(42));\n const serialized = walletSerializer.serialize(wallet);\n\n // Then\n expect(mockHash).toHaveBeenCalledWith(descriptorBuffer);\n expect(serialized).toStrictEqual(\n hexaStringToBuffer(\n \"020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707\",\n )!,\n );\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,sBAAAA,MAA0B,kCAEnC,OAAS,QAAAC,MAAY,mCACrB,OAAS,cAAAC,MAAkB,yCAE3B,OAAS,UAAAC,MAAc,gCAEvB,OAAS,2BAAAC,MAA+B,4BAExC,SAAS,gCAAiC,IAAM,CAC9C,MAAMC,EAAW,KAAK,GAAG,EACnBC,EAAmC,CACvC,KAAMD,CACR,EAEA,GAAG,qBAAsB,IAAM,CAE7B,MAAME,EAAmB,IAAIH,EAAwBE,CAAiB,EAChEE,EAAmB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAC7CC,EAAS,IAAIN,EAAO,CACxB,KAAM,eACN,mBAAoB,kCACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WACV,SAAU,IAAID,EACZ,IAAID,EAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAAO,CACF,CAAC,EAGDH,EAAS,oBAAoB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EACxD,MAAMK,EAAaH,EAAiB,UAAUE,CAAM,EAGpD,OAAOJ,CAAQ,EAAE,qBAAqBG,CAAgB,EACtD,OAAOE,CAAU,EAAE,cACjBV,EACE,kKACF,CACF,CACF,CAAC,CACH,CAAC",
6
6
  "names": ["hexaStringToBuffer", "Leaf", "MerkleTree", "Wallet", "DefaultWalletSerializer", "mockHash", "mockHasherService", "walletSerializer", "descriptorBuffer", "wallet", "serialized"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/device-signer-kit-bitcoin",
3
- "version": "1.0.0",
3
+ "version": "0.0.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "types": "lib/cjs/index.d.ts",
@@ -32,14 +32,13 @@
32
32
  "prettier": "prettier . --check",
33
33
  "prettier:fix": "prettier . --write",
34
34
  "typecheck": "tsc --noEmit",
35
- "test": "vitest run",
36
- "test:watch": "vitest",
37
- "test:coverage": "vitest run --coverage"
35
+ "test": "jest --passWithNoTests",
36
+ "test:coverage": "pnpm test -- --coverage"
38
37
  },
39
38
  "dependencies": {
40
39
  "@types/crypto-js": "^4.2.2",
41
40
  "crypto-js": "^4.2.0",
42
- "inversify": "^6.2.2",
41
+ "inversify": "^6.2.1",
43
42
  "inversify-logger-middleware": "^3.1.0",
44
43
  "purify-ts": "^2.1.0",
45
44
  "reflect-metadata": "^0.2.2",
@@ -49,10 +48,10 @@
49
48
  "@ledgerhq/device-management-kit": "workspace:*",
50
49
  "@ledgerhq/esbuild-tools": "workspace:*",
51
50
  "@ledgerhq/eslint-config-dsdk": "workspace:*",
51
+ "@ledgerhq/jest-config-dsdk": "workspace:*",
52
52
  "@ledgerhq/prettier-config-dsdk": "workspace:*",
53
53
  "@ledgerhq/signer-utils": "workspace:*",
54
54
  "@ledgerhq/tsconfig-dsdk": "workspace:*",
55
- "@ledgerhq/vitest-config-dmk": "workspace:*",
56
55
  "bitcoinjs-lib": "^6.1.6",
57
56
  "rxjs": "^7.8.1",
58
57
  "ts-node": "^10.9.2"
@@ -1,12 +1,23 @@
1
- import { type CommandErrorResult, type ExecuteDeviceActionReturnType, type OpenAppDAError, type OpenAppDARequiredInteraction, type UserInteractionRequired } from "@ledgerhq/device-management-kit";
1
+ import { type CommandErrorResult, type DeviceActionState, type ExecuteDeviceActionReturnType, type OpenAppDAError, type OpenAppDARequiredInteraction, type UserInteractionRequired } from "@ledgerhq/device-management-kit";
2
2
  import { type Signature } from "../model/Signature";
3
3
  import { type BtcErrorCodes } from "../../internal/app-binder/command/utils/bitcoinAppErrors";
4
+ import { type DataStoreService } from "../../internal/data-store/service/DataStoreService";
4
5
  export type SignMessageDAOutput = Signature;
6
+ export type SignMessageDAInput = {
7
+ readonly derivationPath: string;
8
+ readonly message: string;
9
+ readonly dataStoreService: DataStoreService;
10
+ };
5
11
  export type SignMessageDAError = OpenAppDAError | CommandErrorResult<BtcErrorCodes>["error"];
6
12
  type SignMessageDARequiredInteraction = OpenAppDARequiredInteraction | UserInteractionRequired.SignPersonalMessage;
7
13
  export type SignMessageDAIntermediateValue = {
8
14
  requiredUserInteraction: SignMessageDARequiredInteraction;
9
15
  };
16
+ export type SignMessageDAState = DeviceActionState<SignMessageDAOutput, SignMessageDAError, SignMessageDAIntermediateValue>;
17
+ export type SignMessageDAInternalState = {
18
+ readonly error: SignMessageDAError | null;
19
+ readonly signature: Signature | null;
20
+ };
10
21
  export type SignMessageDAReturnType = ExecuteDeviceActionReturnType<SignMessageDAOutput, SignMessageDAError, SignMessageDAIntermediateValue>;
11
22
  export {};
12
23
  //# sourceMappingURL=SignMessageDeviceActionTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignMessageDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/SignMessageDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qDAAqD,CAAC;AAEzF,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,kBAAkB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/C,KAAK,gCAAgC,GACjC,4BAA4B,GAC5B,uBAAuB,CAAC,mBAAmB,CAAC;AAEhD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,uBAAuB,EAAE,gCAAgC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,CACjE,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,CAC/B,CAAC"}
1
+ {"version":3,"file":"SignMessageDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/SignMessageDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,kBAAkB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/C,KAAK,gCAAgC,GACjC,4BAA4B,GAC5B,uBAAuB,CAAC,mBAAmB,CAAC;AAEhD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,uBAAuB,EAAE,gCAAgC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAChD,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,CACjE,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,CAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BtcAppBinder.d.ts","sourceRoot":"","sources":["../../../../src/internal/app-binder/BtcAppBinder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,KAAK,eAAe,EAGrB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAGtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAIlF,qBACa,YAAY;IAGrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAZZ,IAAI,EAAE,mBAAmB,EAEzB,UAAU,EAAE,eAAe,EAE3B,cAAc,EAAE,aAAa,EAE7B,iBAAiB,EAAE,gBAAgB,EAEnC,iBAAiB,EAAE,gBAAgB,EAEnC,WAAW,EAAE,UAAU,EAEvB,YAAY,EAAE,WAAW;IAG5C,oBAAoB,CAClB,IAAI,EAAE,2BAA2B,GAChC,gCAAgC;IAenC,WAAW,CAAC,IAAI,EAAE;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,uBAAuB;IAkB3B,QAAQ,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB;IAiBpE,gBAAgB,CAAC,IAAI,EAAE;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,4BAA4B;IAiBhC,eAAe,CAAC,IAAI,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,2BAA2B;CAgBhC"}
1
+ {"version":3,"file":"BtcAppBinder.d.ts","sourceRoot":"","sources":["../../../../src/internal/app-binder/BtcAppBinder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EAGrB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAK3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAGtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAKlF,qBACa,YAAY;IAGrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAZZ,IAAI,EAAE,mBAAmB,EAEzB,UAAU,EAAE,eAAe,EAE3B,cAAc,EAAE,aAAa,EAE7B,iBAAiB,EAAE,gBAAgB,EAEnC,iBAAiB,EAAE,gBAAgB,EAEnC,WAAW,EAAE,UAAU,EAEvB,YAAY,EAAE,WAAW;IAG5C,oBAAoB,CAClB,IAAI,EAAE,2BAA2B,GAChC,gCAAgC;IAenC,WAAW,CAAC,IAAI,EAAE;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,uBAAuB;IAa3B,QAAQ,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB;IAiBpE,gBAAgB,CAAC,IAAI,EAAE;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,4BAA4B;IAiBhC,eAAe,CAAC,IAAI,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,2BAA2B;CAgBhC"}
@@ -0,0 +1,19 @@
1
+ import { type CommandResult, type DeviceActionStateMachine, type InternalApi, XStateDeviceAction } from "@ledgerhq/device-management-kit";
2
+ import { type SignMessageDAError, type SignMessageDAInput, type SignMessageDAIntermediateValue, type SignMessageDAInternalState, type SignMessageDAOutput } from "../../../../api/app-binder/SignMessageDeviceActionTypes";
3
+ import { type Signature } from "../../../../api/model/Signature";
4
+ import { type BtcErrorCodes } from "../../../app-binder/command/utils/bitcoinAppErrors";
5
+ import { type SendSignMessageTaskArgs } from "../../../app-binder/task/SignMessageTask";
6
+ import { type DataStoreService } from "../../../data-store/service/DataStoreService";
7
+ export type MachineDependencies = {
8
+ readonly signMessage: (arg0: {
9
+ input: SendSignMessageTaskArgs & {
10
+ dataStoreService: DataStoreService;
11
+ };
12
+ }) => Promise<CommandResult<Signature, BtcErrorCodes>>;
13
+ };
14
+ export type ExtractMachineDependencies = (internalApi: InternalApi) => MachineDependencies;
15
+ export declare class SignMessageDeviceAction extends XStateDeviceAction<SignMessageDAOutput, SignMessageDAInput, SignMessageDAError, SignMessageDAIntermediateValue, SignMessageDAInternalState> {
16
+ makeStateMachine(internalApi: InternalApi): DeviceActionStateMachine<SignMessageDAOutput, SignMessageDAInput, SignMessageDAError, SignMessageDAIntermediateValue, SignMessageDAInternalState>;
17
+ extractDependencies(internalApi: InternalApi): MachineDependencies;
18
+ }
19
+ //# sourceMappingURL=SignMessageDeviceAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignMessageDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAMhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;QAC3B,KAAK,EAAE,uBAAuB,GAAG;YAAE,gBAAgB,EAAE,gBAAgB,CAAA;SAAE,CAAC;KACzE,KAAK,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,CACvC,WAAW,EAAE,WAAW,KACrB,mBAAmB,CAAC;AAEzB,qBAAa,uBAAwB,SAAQ,kBAAkB,CAC7D,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,0BAA0B,CAC3B;IACC,gBAAgB,CACd,WAAW,EAAE,WAAW,GACvB,wBAAwB,CACzB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,0BAA0B,CAC3B;IAgKD,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CAsBnE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SignMessageDeviceAction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignMessageDeviceAction.test.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,3 @@
1
1
  import { type InternalApi } from "@ledgerhq/device-management-kit";
2
- import { type Mocked } from "vitest";
3
- export declare function makeDeviceActionInternalApiMock(): Mocked<InternalApi>;
2
+ export declare function makeDeviceActionInternalApiMock(): jest.Mocked<InternalApi>;
4
3
  //# sourceMappingURL=makeInternalApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeInternalApi.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/__test-utils__/makeInternalApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUrC,wBAAgB,+BAA+B,IAAI,MAAM,CAAC,WAAW,CAAC,CAUrE"}
1
+ {"version":3,"file":"makeInternalApi.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/__test-utils__/makeInternalApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAQnE,wBAAgB,+BAA+B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAQ1E"}