@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
- "use strict";var a=require("./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(),l={build:o};let i;beforeEach(()=>{vi.resetAllMocks(),i=new a.MerkleMapBuilder(l)}),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
+ "use strict";var a=require("./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(),l={build:o};let i;beforeEach(()=>{jest.resetAllMocks(),i=new a.MerkleMapBuilder(l)}),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,IAAAA,EAAiC,8BAEjC,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,IAAI,mBAAiBD,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,IAAAA,EAAiC,8BAEjC,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,IAAI,mBAAiBD,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": ["import_MerkleMapBuilder", "TEST_KEYS", "TEST_VALUES", "mockCreateMerkleTree", "mockMerkleTree", "builder", "eitherMap"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),d=require("purify-ts"),s=require("./MerkleTreeBuilder"),l=require("./Sha256HasherService");const i={data:[],leaves:[],nodes:[],root:(0,e.hexaStringToBuffer)("0000000000000000000000000000000000000000000000000000000000000000")},n={data:[Uint8Array.from([42,43])],leaves:[Uint8Array.from([0,42,43])],nodes:[],root:(0,e.hexaStringToBuffer)("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:[[(0,e.hexaStringToBuffer)("9d1cf1e12fa64e20ccd2a5387504b99e89e24ef55dba8399637c3f5b6615c0ad"),(0,e.hexaStringToBuffer)("7dc17a7849e10103f73b8fa5a4b829f6292a1a59272e0e0c9def83a9c0f86de1")]],root:(0,e.hexaStringToBuffer)("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:[[(0,e.hexaStringToBuffer)("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),(0,e.hexaStringToBuffer)("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),(0,e.hexaStringToBuffer)("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),(0,e.hexaStringToBuffer)("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d")],[(0,e.hexaStringToBuffer)("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),(0,e.hexaStringToBuffer)("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825")]],root:(0,e.hexaStringToBuffer)("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:[[(0,e.hexaStringToBuffer)("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),(0,e.hexaStringToBuffer)("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),(0,e.hexaStringToBuffer)("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),(0,e.hexaStringToBuffer)("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d"),(0,e.hexaStringToBuffer)("4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4"),(0,e.hexaStringToBuffer)("9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d"),(0,e.hexaStringToBuffer)("40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd"),(0,e.hexaStringToBuffer)("2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7"),(0,e.hexaStringToBuffer)("b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315"),(0,e.hexaStringToBuffer)("c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4"),(0,e.hexaStringToBuffer)("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[(0,e.hexaStringToBuffer)("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),(0,e.hexaStringToBuffer)("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825"),(0,e.hexaStringToBuffer)("4b8c129ed14cce2c08cfc6766db7f8cdb133b5f698b8de3d5890ea7ff7f0a8d1"),(0,e.hexaStringToBuffer)("bbb0feb32f648c73fe170518bcec1f675af1b780dc23d6fbf30b745c1ca5fa11"),(0,e.hexaStringToBuffer)("f7e08e9a9e87822bd79a0bf24d14c7a431be807336bd3c50ccb2d249b2a91404"),(0,e.hexaStringToBuffer)("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[(0,e.hexaStringToBuffer)("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb"),(0,e.hexaStringToBuffer)("c1fe42b33ebb8e8a7e4a90abc481c7434e2be02cff2f6a18d7ffab4f1e25891b"),(0,e.hexaStringToBuffer)("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")],[(0,e.hexaStringToBuffer)("ef7f49b620f6c7ea9b963a214da34b5021c6ded8ed57734380a311ab726aa907"),(0,e.hexaStringToBuffer)("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")]],root:(0,e.hexaStringToBuffer)("e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac")};describe("MerkleTreeBuilder",()=>{let c;beforeEach(()=>{vi.resetAllMocks(),c=new s.MerkleTreeBuilder(new l.Sha256HasherService)}),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,o)=>{expect(a.getLeafHash(o)).toStrictEqual((0,d.Just)(t))}),expect(a.getLeafHash(-1)).toStrictEqual(d.Nothing),expect(a.getLeafHash(r.nodes[0].length)).toStrictEqual(d.Nothing)}),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,o)=>{expect(a.getLeafHash(o)).toStrictEqual((0,d.Just)(t))}),expect(a.getLeafHash(-1)).toStrictEqual(d.Nothing),expect(a.getLeafHash(f.nodes[0].length)).toStrictEqual(d.Nothing)}),it("Get small tree merkle proof",()=>{const t=c.build(r.data).getProof(2);expect(t.isJust()).toStrictEqual(!0);const o=t.unsafeCoerce();expect(o).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 o=t.unsafeCoerce();expect(o).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(i.data);expect(a.getRoot()).toStrictEqual(i.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]])})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),d=require("purify-ts"),n=require("./MerkleTreeBuilder"),l=require("./Sha256HasherService");const i={data:[],leaves:[],nodes:[],root:(0,e.hexaStringToBuffer)("0000000000000000000000000000000000000000000000000000000000000000")},s={data:[Uint8Array.from([42,43])],leaves:[Uint8Array.from([0,42,43])],nodes:[],root:(0,e.hexaStringToBuffer)("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:[[(0,e.hexaStringToBuffer)("9d1cf1e12fa64e20ccd2a5387504b99e89e24ef55dba8399637c3f5b6615c0ad"),(0,e.hexaStringToBuffer)("7dc17a7849e10103f73b8fa5a4b829f6292a1a59272e0e0c9def83a9c0f86de1")]],root:(0,e.hexaStringToBuffer)("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:[[(0,e.hexaStringToBuffer)("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),(0,e.hexaStringToBuffer)("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),(0,e.hexaStringToBuffer)("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),(0,e.hexaStringToBuffer)("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d")],[(0,e.hexaStringToBuffer)("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),(0,e.hexaStringToBuffer)("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825")]],root:(0,e.hexaStringToBuffer)("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:[[(0,e.hexaStringToBuffer)("96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7"),(0,e.hexaStringToBuffer)("b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2"),(0,e.hexaStringToBuffer)("fcf0a6c700dd13e274b6fba8deea8dd9b26e4eedde3495717cac8408c9c5177f"),(0,e.hexaStringToBuffer)("583c7dfb7b3055d99465544032a571e10a134b1b6f769422bbb71fd7fa167a5d"),(0,e.hexaStringToBuffer)("4f35212d12f9ad2036492c95f1fe79baf4ec7bd9bef3dffa7579f2293ff546a4"),(0,e.hexaStringToBuffer)("9f1afa4dc124cba73134e82ff50f17c8f7164257c79fed9a13f5943a6acb8e3d"),(0,e.hexaStringToBuffer)("40d88127d4d31a3891f41598eeed41174e5bc89b1eb9bbd66a8cbfc09956a3fd"),(0,e.hexaStringToBuffer)("2ecd8a6b7d2845546659ad4cf443533cf921b19dc81fa83934e83821b4dfdcb7"),(0,e.hexaStringToBuffer)("b4c43b50bf245bd727623e3c775a8fcfb8d823d00b57dd65f7f79dd33f126315"),(0,e.hexaStringToBuffer)("c87479cd656e7e3ad6bd8db402e8027df454b2b0c42ff29e093458beb98a23d4"),(0,e.hexaStringToBuffer)("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[(0,e.hexaStringToBuffer)("a20bf9a7cc2dc8a08f5f415a71b19f6ac427bab54d24eec868b5d3103449953a"),(0,e.hexaStringToBuffer)("52c56b473e5246933e7852989cd9feba3b38f078742b93afff1e65ed46797825"),(0,e.hexaStringToBuffer)("4b8c129ed14cce2c08cfc6766db7f8cdb133b5f698b8de3d5890ea7ff7f0a8d1"),(0,e.hexaStringToBuffer)("bbb0feb32f648c73fe170518bcec1f675af1b780dc23d6fbf30b745c1ca5fa11"),(0,e.hexaStringToBuffer)("f7e08e9a9e87822bd79a0bf24d14c7a431be807336bd3c50ccb2d249b2a91404"),(0,e.hexaStringToBuffer)("67ebbd370daa02ba9aadd05d8e091e862d0d8bcadafdf2a22360240a42fe922e")],[(0,e.hexaStringToBuffer)("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb"),(0,e.hexaStringToBuffer)("c1fe42b33ebb8e8a7e4a90abc481c7434e2be02cff2f6a18d7ffab4f1e25891b"),(0,e.hexaStringToBuffer)("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")],[(0,e.hexaStringToBuffer)("ef7f49b620f6c7ea9b963a214da34b5021c6ded8ed57734380a311ab726aa907"),(0,e.hexaStringToBuffer)("e4b894272eb88bed1830cbef82d1c7aee37612a9e7131a5bdd0ae1a6e8f3ff50")]],root:(0,e.hexaStringToBuffer)("e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac")};describe("MerkleTreeBuilder",()=>{let c;beforeEach(()=>{jest.resetAllMocks(),c=new n.MerkleTreeBuilder(new l.Sha256HasherService)}),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,o)=>{expect(a.getLeafHash(o)).toStrictEqual((0,d.Just)(t))}),expect(a.getLeafHash(-1)).toStrictEqual(d.Nothing),expect(a.getLeafHash(r.nodes[0].length)).toStrictEqual(d.Nothing)}),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,o)=>{expect(a.getLeafHash(o)).toStrictEqual((0,d.Just)(t))}),expect(a.getLeafHash(-1)).toStrictEqual(d.Nothing),expect(a.getLeafHash(f.nodes[0].length)).toStrictEqual(d.Nothing)}),it("Get small tree merkle proof",()=>{const t=c.build(r.data).getProof(2);expect(t.isJust()).toStrictEqual(!0);const o=t.unsafeCoerce();expect(o).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 o=t.unsafeCoerce();expect(o).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(i.data);expect(a.getRoot()).toStrictEqual(i.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]])})});
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": ["import_device_management_kit", "import_purify_ts", "import_MerkleTreeBuilder", "import_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
- "use strict";var P=Object.create;var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var h=(o,s,c,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of k(s))!R.call(o,n)&&n!==c&&l(o,n,{get:()=>s[n],enumerable:!(a=x(s,n))||a.enumerable});return o};var S=(o,s,c)=>(c=o!=null?P(B(o)):{},h(s||!o||!o.__esModule?l(c,"default",{value:o,enumerable:!0}):c,o));var m=require("@ledgerhq/device-management-kit"),E=S(require("bitcoinjs-lib")),t=require("purify-ts"),u=require("../../../psbt/model/Psbt"),b=require("./DefaultPsbtMapper");describe("DefaultPsbtMapper tests",()=>{const o="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",s="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",c=(0,m.hexaStringToBuffer)(o),a=vi.fn(),n={deserialize:a},A=vi.fn(),d={normalize:A},f=()=>new u.Psbt;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(o);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map base64 string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(s);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map bjs transaction",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(E.Psbt.fromHex(o));expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map byte array",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map invalid string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map("some random string");expect(p.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=f();a.mockReturnValueOnce((0,t.Left)(new Error)),A.mockReturnValueOnce((0,t.Right)(e));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(i.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Left)(new Error));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(i.isRight()).toStrictEqual(!1)})});
1
+ "use strict";var P=Object.create;var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var h=(o,f,c,a)=>{if(f&&typeof f=="object"||typeof f=="function")for(let n of k(f))!R.call(o,n)&&n!==c&&l(o,n,{get:()=>f[n],enumerable:!(a=x(f,n))||a.enumerable});return o};var S=(o,f,c)=>(c=o!=null?P(B(o)):{},h(f||!o||!o.__esModule?l(c,"default",{value:o,enumerable:!0}):c,o));var m=require("@ledgerhq/device-management-kit"),E=S(require("bitcoinjs-lib")),t=require("purify-ts"),u=require("../../../psbt/model/Psbt"),b=require("./DefaultPsbtMapper");describe("DefaultPsbtMapper tests",()=>{const o="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",f="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",c=(0,m.hexaStringToBuffer)(o),a=jest.fn(),n={deserialize:a},A=jest.fn(),d={normalize:A},s=()=>new u.Psbt;beforeEach(()=>{jest.resetAllMocks()}),it("Map hex string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(o);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map base64 string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(f);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map bjs transaction",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(E.Psbt.fromHex(o));expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map byte array",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map invalid string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map("some random string");expect(p.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=s();a.mockReturnValueOnce((0,t.Left)(new Error)),A.mockReturnValueOnce((0,t.Right)(e));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(i.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Left)(new Error));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(i.isRight()).toStrictEqual(!1)})});
2
2
  //# sourceMappingURL=DefaultPsbtMapper.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/psbt/service/psbt/DefaultPsbtMapper.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport * as bjs from \"bitcoinjs-lib\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { Psbt } from \"@internal/psbt/model/Psbt\";\n\nimport { DefaultPsbtMapper } from \"./DefaultPsbtMapper\";\nimport { type DefaultPsbtSerializer } from \"./DefaultPsbtSerializer\";\nimport { type DefaultPsbtV2Normalizer } from \"./DefaultPsbtV2Normalizer\";\n\ndescribe(\"DefaultPsbtMapper tests\", () => {\n // Test case from https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#user-content-Test_Vectors\n const SERIALIZED_PSBT_V0_HEX =\n \"70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000\";\n const SERIALIZED_PSBT_V0_BASE64 =\n \"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=\";\n const SERIALIZED_PSBT_V0 = hexaStringToBuffer(SERIALIZED_PSBT_V0_HEX)!;\n\n // Mock PsbtSerializer\n const mockDeserialize = vi.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = vi.fn();\n const mockNormalizer: DefaultPsbtV2Normalizer = {\n normalize: mockNormalize,\n } as unknown as DefaultPsbtV2Normalizer;\n\n // Mocked psbt\n const createPsbt = () => new Psbt();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Map hex string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_HEX);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map base64 string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_BASE64);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map bjs transaction\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(bjs.Psbt.fromHex(SERIALIZED_PSBT_V0_HEX));\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map byte array\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map invalid string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(\"some random string\");\n\n // Then\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Parser failure\", () => {\n // Given\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Left(new Error()));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Normalizer failure\", () => {\n // Given\n const parsedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Left(new Error()));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n});\n"],
5
- "mappings": "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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": ["import_device_management_kit", "bjs", "import_purify_ts", "import_Psbt", "import_DefaultPsbtMapper", "SERIALIZED_PSBT_V0_HEX", "SERIALIZED_PSBT_V0_BASE64", "SERIALIZED_PSBT_V0", "mockDeserialize", "mockSerializer", "mockNormalize", "mockNormalizer", "createPsbt", "parsedPsbt", "normalizedPsbt", "mapped"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("./GetExtendedPublicKeyUseCase");describe("GetAddressUseCase",()=>{const e="44'/501'",t="some-pkey",c=vi.fn().mockReturnValue(t),d={getExtendedPublicKey:c};let s;beforeEach(()=>{vi.clearAllMocks(),s=new n.GetExtendedPublicKeyUseCase(d)}),it("should return the address from the appBinder's getExtendedPublicKey method",()=>{const o=s.execute(e,{checkOnDevice:!0});expect(o).toEqual(t),expect(c).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0})})});
1
+ "use strict";var n=require("./GetExtendedPublicKeyUseCase");describe("GetAddressUseCase",()=>{const e="44'/501'",t="some-pkey",c=jest.fn().mockReturnValue(t),d={getExtendedPublicKey:c};let s;beforeEach(()=>{jest.clearAllMocks(),s=new n.GetExtendedPublicKeyUseCase(d)}),it("should return the address from the appBinder's getExtendedPublicKey method",()=>{const o=s.execute(e,{checkOnDevice:!0});expect(o).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,IAAAA,EAA4C,yCAE5C,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,IAAI,8BAA4BD,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,IAAAA,EAA4C,yCAE5C,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,IAAI,8BAA4BD,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": ["import_GetExtendedPublicKeyUseCase", "derivationPath", "address", "getExtendedPublicKeyMock", "appBinderMock", "useCase", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var l=require("../../merkle-tree/model/Leaf"),n=require("../../merkle-tree/model/MerkleTree"),d=require("./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.MerkleTree(new l.Leaf(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.GetWalletAddressUseCase(a).execute(t,e,s,r),expect(a.getWalletAddress).toHaveBeenCalledWith({wallet:e,checkOnDevice:t,change:s,addressIndex:r})})});
1
+ "use strict";var l=require("../../merkle-tree/model/Leaf"),n=require("../../merkle-tree/model/MerkleTree"),d=require("./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.MerkleTree(new l.Leaf(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.GetWalletAddressUseCase(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,IAAAA,EAAqB,4CACrBC,EAA2B,kDAE3BC,EAAwC,qCAExC,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,IAAI,aACZ,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAkB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC9C,EACMC,EAAgB,GAChBC,EAAS,GACTC,EAAe,EAEfC,EAAY,CAChB,iBAAkB,GAAG,GAAG,CAC1B,EACgC,IAAI,0BAClCA,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,IAAAA,EAAqB,4CACrBC,EAA2B,kDAE3BC,EAAwC,qCAExC,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,IAAI,aACZ,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAkB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC9C,EACMC,EAAgB,GAChBC,EAAS,GACTC,EAAe,EAEfC,EAAY,CAChB,iBAAkB,KAAK,GAAG,CAC5B,EACgC,IAAI,0BAClCA,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": ["import_Leaf", "import_MerkleTree", "import_GetWalletAddressUseCase", "wallet", "checkOnDevice", "change", "addressIndex", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=require("./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.SignMessageUseCase(n).execute(e,s),expect(n.signMessage).toHaveBeenCalledWith({derivationPath:e,message:s})})});
1
+ "use strict";var a=require("./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.SignMessageUseCase(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,IAAAA,EAAmC,gCAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,0EAA2E,IAAM,CAElF,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,GAAG,GAAG,CACrB,EAC2B,IAAI,qBAC7BA,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,IAAAA,EAAmC,gCAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,0EAA2E,IAAM,CAElF,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,KAAK,GAAG,CACvB,EAC2B,IAAI,qBAC7BA,CACF,EAGmB,QAAQF,EAAgBC,CAAO,EAGlD,OAAOC,EAAU,WAAW,EAAE,qBAAqB,CACjD,eAAAF,EACA,QAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_SignMessageUseCase", "derivationPath", "message", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../api/model/Wallet"),i=require("./SignPsbtUseCase");describe("SignPsbtUseCase",()=>{it("should call signPsbt on appBinder with the correct arguments",()=>{const t=new e.DefaultWallet("84'/0'/0'",e.DefaultDescriptorTemplate.NATIVE_SEGWIT),s="some-psbt",n={signPsbt:vi.fn()};new i.SignPsbtUseCase(n).execute(t,s),expect(n.signPsbt).toHaveBeenCalledWith({wallet:t,psbt:s})})});
1
+ "use strict";var e=require("../../../api/model/Wallet"),i=require("./SignPsbtUseCase");describe("SignPsbtUseCase",()=>{it("should call signPsbt on appBinder with the correct arguments",()=>{const t=new e.DefaultWallet("84'/0'/0'",e.DefaultDescriptorTemplate.NATIVE_SEGWIT),s="some-psbt",n={signPsbt:jest.fn()};new i.SignPsbtUseCase(n).execute(t,s),expect(n.signPsbt).toHaveBeenCalledWith({wallet:t,psbt:s})})});
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,IAAAA,EAAyD,6BAGzDC,EAAgC,6BAEhC,SAAS,kBAAmB,IAAM,CAChC,GAAG,+DAAgE,IAAM,CAEvE,MAAMC,EAAS,IAAI,gBACjB,YACA,4BAA0B,aAC5B,EACMC,EAAO,YACPC,EAAY,CAChB,SAAU,GAAG,GAAG,CAClB,EACwB,IAAI,kBAC1BA,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,IAAAA,EAAyD,6BAGzDC,EAAgC,6BAEhC,SAAS,kBAAmB,IAAM,CAChC,GAAG,+DAAgE,IAAM,CAEvE,MAAMC,EAAS,IAAI,gBACjB,YACA,4BAA0B,aAC5B,EACMC,EAAO,YACPC,EAAY,CAChB,SAAU,KAAK,GAAG,CACpB,EACwB,IAAI,kBAC1BA,CACF,EAGgB,QAAQF,EAAQC,CAAI,EAGpC,OAAOC,EAAU,QAAQ,EAAE,qBAAqB,CAC9C,OAAAF,EACA,KAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_Wallet", "import_SignPsbtUseCase", "wallet", "psbt", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("../../../api/model/Wallet"),a=require("../../use-cases/sign-transaction/SignTransactionUseCase");describe("SignTransactionUseCase",()=>{it("should call signTransaction on appBinder with the correct arguments",()=>{const e=new n.DefaultWallet("84'/0'/0'",n.DefaultDescriptorTemplate.NATIVE_SEGWIT),t="some-psbt",s={signTransaction:vi.fn()};new a.SignTransactionUseCase(s).execute(e,t),expect(s.signTransaction).toHaveBeenCalledWith({wallet:e,psbt:t})})});
1
+ "use strict";var e=require("../../../api/model/Wallet"),a=require("../../use-cases/sign-transaction/SignTransactionUseCase");describe("SignTransactionUseCase",()=>{it("should call signTransaction on appBinder with the correct arguments",()=>{const n=new e.DefaultWallet("84'/0'/0'",e.DefaultDescriptorTemplate.NATIVE_SEGWIT),t="some-psbt",s={signTransaction:jest.fn()};new a.SignTransactionUseCase(s).execute(n,t),expect(s.signTransaction).toHaveBeenCalledWith({wallet:n,psbt:t})})});
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,IAAAA,EAAyD,6BAEzDC,EAAuC,uEAEvC,SAAS,yBAA0B,IAAM,CACvC,GAAG,sEAAuE,IAAM,CAE9E,MAAMC,EAAS,IAAI,gBACjB,YACA,4BAA0B,aAC5B,EACMC,EAAO,YACPC,EAAY,CAChB,gBAAiB,GAAG,GAAG,CACzB,EAC+B,IAAI,yBACjCA,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,IAAAA,EAAyD,6BAEzDC,EAAuC,uEAEvC,SAAS,yBAA0B,IAAM,CACvC,GAAG,sEAAuE,IAAM,CAE9E,MAAMC,EAAS,IAAI,gBACjB,YACA,4BAA0B,aAC5B,EACMC,EAAO,YACPC,EAAY,CAChB,gBAAiB,KAAK,GAAG,CAC3B,EAC+B,IAAI,yBACjCA,CACF,EAGuB,QAAQF,EAAQC,CAAI,EAG3C,OAAOC,EAAU,eAAe,EAAE,qBAAqB,CACrD,OAAAF,EACA,KAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_Wallet", "import_SignTransactionUseCase", "wallet", "psbt", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=require("@ledgerhq/device-management-kit"),o=require("../../../api/model/Wallet"),i=require("../../merkle-tree/model/Leaf"),u=require("../../merkle-tree/model/MerkleTree"),s=require("./DefaultWalletBuilder");describe("DefaultWalletBuilder tests",()=>{const l=vi.fn(),d={build:l};it("Create registered wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.RegisteredWallet("Cold storage","wsh(sortedmulti(2,@0/**,@1/**))",["key1","key2"],new Uint8Array(32).fill(42)),n=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(n);const e=c.fromRegisteredWallet(a),t=new TextEncoder;expect(l).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(n)}),it("Create default wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.DefaultWallet("48'/1'/0'/0'",o.DefaultDescriptorTemplate.NATIVE_SEGWIT),n=(0,p.hexaStringToBuffer)("5c9e228d"),e="tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW",t=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(t);const r=c.fromDefaultWallet(n,e,a),m=new TextEncoder;expect(l).toHaveBeenCalledWith([m.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(m.encode("wpkh(@0/**)")),expect(r.keys).toStrictEqual(["[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW"]),expect(r.keysTree).toStrictEqual(t)})});
1
+ "use strict";var p=require("@ledgerhq/device-management-kit"),o=require("../../../api/model/Wallet"),i=require("../../merkle-tree/model/Leaf"),u=require("../../merkle-tree/model/MerkleTree"),s=require("./DefaultWalletBuilder");describe("DefaultWalletBuilder tests",()=>{const l=jest.fn(),d={build:l};it("Create registered wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.RegisteredWallet("Cold storage","wsh(sortedmulti(2,@0/**,@1/**))",["key1","key2"],new Uint8Array(32).fill(42)),n=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(n);const e=c.fromRegisteredWallet(a),t=new TextEncoder;expect(l).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(n)}),it("Create default wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.DefaultWallet("48'/1'/0'/0'",o.DefaultDescriptorTemplate.NATIVE_SEGWIT),n=(0,p.hexaStringToBuffer)("5c9e228d"),e="tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW",t=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(t);const r=c.fromDefaultWallet(n,e,a),m=new TextEncoder;expect(l).toHaveBeenCalledWith([m.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(m.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,IAAAA,EAAmC,2CAEnCC,EAIO,6BACPC,EAAqB,4CACrBC,EAA2B,kDAG3BC,EAAqC,kCAErC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAuB,GAAG,GAAG,EAC7BC,EAAiB,CACrB,MAAOD,CACT,EAEA,GAAG,2BAA4B,IAAM,CAEnC,MAAME,EAAU,IAAI,uBAAqBD,CAAc,EACjDE,EAAmB,IAAI,mBAC3B,eACA,kCACA,CAAC,OAAQ,MAAM,EACf,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC5B,EACMC,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,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,IAAI,uBAAqBD,CAAc,EACjDM,EAAgB,IAAI,gBACxB,eACA,4BAA0B,aAC5B,EACMC,KAAoB,sBAAmB,UAAU,EACjDC,EACJ,kHACIL,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,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,IAAAA,EAAmC,2CAEnCC,EAIO,6BACPC,EAAqB,4CACrBC,EAA2B,kDAG3BC,EAAqC,kCAErC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAuB,KAAK,GAAG,EAC/BC,EAAiB,CACrB,MAAOD,CACT,EAEA,GAAG,2BAA4B,IAAM,CAEnC,MAAME,EAAU,IAAI,uBAAqBD,CAAc,EACjDE,EAAmB,IAAI,mBAC3B,eACA,kCACA,CAAC,OAAQ,MAAM,EACf,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC5B,EACMC,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,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,IAAI,uBAAqBD,CAAc,EACjDM,EAAgB,IAAI,gBACxB,eACA,4BAA0B,aAC5B,EACMC,KAAoB,sBAAmB,UAAU,EACjDC,EACJ,kHACIL,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,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": ["import_device_management_kit", "import_Wallet", "import_Leaf", "import_MerkleTree", "import_DefaultWalletBuilder", "mockCreateMerkleTree", "mockMerkleTree", "builder", "registeredWallet", "keysTree", "wallet", "encoder", "defaultWallet", "masterFingerprint", "extendedPublicKey"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("@ledgerhq/device-management-kit"),t=require("../../merkle-tree/model/Leaf"),i=require("../../merkle-tree/model/MerkleTree"),l=require("../../wallet/model/Wallet"),o=require("./DefaultWalletSerializer");describe("DefaultWalletSerializer tests",()=>{const e=vi.fn(),n={hash:e};it("Serialize a wallet",()=>{const s=new o.DefaultWalletSerializer(n),a=new Uint8Array(31).fill(16),c=new l.Wallet({name:"Cold storage",descriptorTemplate:"wsh(sortedmulti(2,@0/**,@1/**))",keys:["key1","key2"],hmac:new Uint8Array,keysTree:new i.MerkleTree(new t.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:a});e.mockReturnValueOnce(new Uint8Array(32).fill(42));const f=s.serialize(c);expect(e).toHaveBeenCalledWith(a),expect(f).toStrictEqual((0,r.hexaStringToBuffer)("020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707"))})});
1
+ "use strict";var r=require("@ledgerhq/device-management-kit"),t=require("../../merkle-tree/model/Leaf"),i=require("../../merkle-tree/model/MerkleTree"),l=require("../../wallet/model/Wallet"),o=require("./DefaultWalletSerializer");describe("DefaultWalletSerializer tests",()=>{const e=jest.fn(),n={hash:e};it("Serialize a wallet",()=>{const s=new o.DefaultWalletSerializer(n),a=new Uint8Array(31).fill(16),c=new l.Wallet({name:"Cold storage",descriptorTemplate:"wsh(sortedmulti(2,@0/**,@1/**))",keys:["key1","key2"],hmac:new Uint8Array,keysTree:new i.MerkleTree(new t.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:a});e.mockReturnValueOnce(new Uint8Array(32).fill(42));const f=s.serialize(c);expect(e).toHaveBeenCalledWith(a),expect(f).toStrictEqual((0,r.hexaStringToBuffer)("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,IAAAA,EAAmC,2CAEnCC,EAAqB,4CACrBC,EAA2B,kDAE3BC,EAAuB,yCAEvBC,EAAwC,qCAExC,SAAS,gCAAiC,IAAM,CAC9C,MAAMC,EAAW,GAAG,GAAG,EACjBC,EAAmC,CACvC,KAAMD,CACR,EAEA,GAAG,qBAAsB,IAAM,CAE7B,MAAME,EAAmB,IAAI,0BAAwBD,CAAiB,EAChEE,EAAmB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAC7CC,EAAS,IAAI,SAAO,CACxB,KAAM,eACN,mBAAoB,kCACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WACV,SAAU,IAAI,aACZ,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAAD,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,iBACjB,sBACE,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,IAAAA,EAAmC,2CAEnCC,EAAqB,4CACrBC,EAA2B,kDAE3BC,EAAuB,yCAEvBC,EAAwC,qCAExC,SAAS,gCAAiC,IAAM,CAC9C,MAAMC,EAAW,KAAK,GAAG,EACnBC,EAAmC,CACvC,KAAMD,CACR,EAEA,GAAG,qBAAsB,IAAM,CAE7B,MAAME,EAAmB,IAAI,0BAAwBD,CAAiB,EAChEE,EAAmB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAC7CC,EAAS,IAAI,SAAO,CACxB,KAAM,eACN,mBAAoB,kCACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WACV,SAAU,IAAI,aACZ,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAAD,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,iBACjB,sBACE,kKACF,CACF,CACF,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_Leaf", "import_MerkleTree", "import_Wallet", "import_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,2 +1,2 @@
1
- import{DefaultDescriptorTemplate as i,DefaultWallet as o}from"../api/model/Wallet";import{DefaultSignerBtc as t}from"./DefaultSignerBtc";import{GetExtendedPublicKeyUseCase as a}from"./use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase";import{SignPsbtUseCase as c}from"./use-cases/sign-psbt/SignPsbtUseCase";import{SignTransactionUseCase as r}from"./use-cases/sign-transaction/SignTransactionUseCase";import{SignMessageUseCase as d}from"./use-cases/sign-message/SignMessageUseCase";describe("DefaultSignerBtc",()=>{it("should be defined",()=>{const e=new t({dmk:{},sessionId:"session-id"});expect(e).toBeDefined()}),it("should call getExtendedPublicKeyUseCase",()=>{vi.spyOn(a.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t({dmk:s,sessionId:e}).getExtendedPublicKey("44'/0'/0'/0/0",{checkOnDevice:!0}),expect(a.prototype.execute).toHaveBeenCalled()}),it("should call signMessageUseCase",()=>{vi.spyOn(d.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t({dmk:s,sessionId:e}).signMessage("44'/0'/0'/0/0","message"),expect(d.prototype.execute).toHaveBeenCalled()}),it("should call signPsbtUseCase",()=>{vi.spyOn(c.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t({dmk:s,sessionId:e}).signPsbt(new o("44'/0'/0'",i.NATIVE_SEGWIT),""),expect(c.prototype.execute).toHaveBeenCalled()}),it("should call signTransactionUseCase",()=>{vi.spyOn(r.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t({dmk:s,sessionId:e}).signTransaction(new o("44'/0'/0'",i.NATIVE_SEGWIT),""),expect(r.prototype.execute).toHaveBeenCalled()})});
1
+ import{DefaultDescriptorTemplate as i,DefaultWallet as o}from"../api/model/Wallet";import{DefaultSignerBtc as t}from"./DefaultSignerBtc";import{GetExtendedPublicKeyUseCase as a}from"./use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase";import{SignPsbtUseCase as c}from"./use-cases/sign-psbt/SignPsbtUseCase";import{SignTransactionUseCase as r}from"./use-cases/sign-transaction/SignTransactionUseCase";import{SignMessageUseCase as d}from"./use-cases/sign-message/SignMessageUseCase";describe("DefaultSignerBtc",()=>{it("should be defined",()=>{const e=new t({dmk:{},sessionId:"session-id"});expect(e).toBeDefined()}),it("should call getExtendedPublicKeyUseCase",()=>{jest.spyOn(a.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).getExtendedPublicKey("44'/0'/0'/0/0",{checkOnDevice:!0}),expect(a.prototype.execute).toHaveBeenCalled()}),it("should call signMessageUseCase",()=>{jest.spyOn(d.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).signMessage("44'/0'/0'/0/0","message"),expect(d.prototype.execute).toHaveBeenCalled()}),it("should call signPsbtUseCase",()=>{jest.spyOn(c.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).signPsbt(new o("44'/0'/0'",i.NATIVE_SEGWIT),""),expect(c.prototype.execute).toHaveBeenCalled()}),it("should call signTransactionUseCase",()=>{jest.spyOn(r.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).signTransaction(new o("44'/0'/0'",i.NATIVE_SEGWIT),""),expect(r.prototype.execute).toHaveBeenCalled()})});
2
2
  //# sourceMappingURL=DefaultSignerBtc.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerBtc.test.ts"],
4
- "sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nimport { DefaultSignerBtc } from \"@internal/DefaultSignerBtc\";\nimport { GetExtendedPublicKeyUseCase } from \"@internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase\";\nimport { SignPsbtUseCase } from \"@internal/use-cases/sign-psbt/SignPsbtUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\nimport { SignMessageUseCase } from \"./use-cases/sign-message/SignMessageUseCase\";\n\ndescribe(\"DefaultSignerBtc\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerBtc({\n dmk: {} as DeviceManagementKit,\n sessionId: \"session-id\",\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getExtendedPublicKeyUseCase\", () => {\n vi.spyOn(GetExtendedPublicKeyUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.getExtendedPublicKey(\"44'/0'/0'/0/0\", {\n checkOnDevice: true,\n });\n expect(GetExtendedPublicKeyUseCase.prototype.execute).toHaveBeenCalled();\n });\n\n it(\"should call signMessageUseCase\", () => {\n vi.spyOn(SignMessageUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const derivationPath = \"44'/0'/0'/0/0\";\n const message = \"message\";\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signMessage(derivationPath, message);\n expect(SignMessageUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signPsbtUseCase\", () => {\n vi.spyOn(SignPsbtUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signPsbt(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n );\n expect(SignPsbtUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signTransactionUseCase\", () => {\n vi.spyOn(SignTransactionUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signTransaction(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n );\n expect(SignTransactionUseCase.prototype.execute).toHaveBeenCalled();\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBACzD,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,+BAAAC,MAAmC,0EAC5C,OAAS,mBAAAC,MAAuB,gDAChC,OAAS,0BAAAC,MAA8B,8DAEvC,OAAS,sBAAAC,MAA0B,8CAEnC,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAIL,EAAiB,CAClC,IAAK,CAAC,EACN,UAAW,YACb,CAAC,EACD,OAAOK,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,GAAG,MAAMJ,EAA4B,UAAW,SAAS,EACzD,MAAMK,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,qBAAqB,gBAAiB,CAC3C,cAAe,EACjB,CAAC,EACD,OAAOL,EAA4B,UAAU,OAAO,EAAE,iBAAiB,CACzE,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,GAAG,MAAMG,EAAmB,UAAW,SAAS,EAChD,MAAME,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EAGe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,YAHgB,gBACP,SAE0B,EAC1C,OAAOF,EAAmB,UAAU,OAAO,EAAE,iBAAiB,CAChE,CAAC,EACD,GAAG,8BAA+B,IAAM,CACtC,GAAG,MAAMF,EAAgB,UAAW,SAAS,EAC7C,MAAMI,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,SACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,EACF,EACA,OAAOI,EAAgB,UAAU,OAAO,EAAE,iBAAiB,CAC7D,CAAC,EACD,GAAG,qCAAsC,IAAM,CAC7C,GAAG,MAAMC,EAAuB,UAAW,SAAS,EACpD,MAAMG,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,gBACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,EACF,EACA,OAAOK,EAAuB,UAAU,OAAO,EAAE,iBAAiB,CACpE,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nimport { DefaultSignerBtc } from \"@internal/DefaultSignerBtc\";\nimport { GetExtendedPublicKeyUseCase } from \"@internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase\";\nimport { SignPsbtUseCase } from \"@internal/use-cases/sign-psbt/SignPsbtUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\nimport { SignMessageUseCase } from \"./use-cases/sign-message/SignMessageUseCase\";\n\ndescribe(\"DefaultSignerBtc\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerBtc({\n dmk: {} as DeviceManagementKit,\n sessionId: \"session-id\",\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getExtendedPublicKeyUseCase\", () => {\n jest.spyOn(GetExtendedPublicKeyUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.getExtendedPublicKey(\"44'/0'/0'/0/0\", {\n checkOnDevice: true,\n });\n expect(GetExtendedPublicKeyUseCase.prototype.execute).toHaveBeenCalled();\n });\n\n it(\"should call signMessageUseCase\", () => {\n jest.spyOn(SignMessageUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const derivationPath = \"44'/0'/0'/0/0\";\n const message = \"message\";\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signMessage(derivationPath, message);\n expect(SignMessageUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signPsbtUseCase\", () => {\n jest.spyOn(SignPsbtUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signPsbt(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n );\n expect(SignPsbtUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signTransactionUseCase\", () => {\n jest.spyOn(SignTransactionUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signTransaction(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n );\n expect(SignTransactionUseCase.prototype.execute).toHaveBeenCalled();\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBACzD,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,+BAAAC,MAAmC,0EAC5C,OAAS,mBAAAC,MAAuB,gDAChC,OAAS,0BAAAC,MAA8B,8DAEvC,OAAS,sBAAAC,MAA0B,8CAEnC,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAIL,EAAiB,CAClC,IAAK,CAAC,EACN,UAAW,YACb,CAAC,EACD,OAAOK,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,KAAK,MAAMJ,EAA4B,UAAW,SAAS,EAC3D,MAAMK,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,qBAAqB,gBAAiB,CAC3C,cAAe,EACjB,CAAC,EACD,OAAOL,EAA4B,UAAU,OAAO,EAAE,iBAAiB,CACzE,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,KAAK,MAAMG,EAAmB,UAAW,SAAS,EAClD,MAAME,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EAGe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,YAHgB,gBACP,SAE0B,EAC1C,OAAOF,EAAmB,UAAU,OAAO,EAAE,iBAAiB,CAChE,CAAC,EACD,GAAG,8BAA+B,IAAM,CACtC,KAAK,MAAMF,EAAgB,UAAW,SAAS,EAC/C,MAAMI,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,SACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,EACF,EACA,OAAOI,EAAgB,UAAU,OAAO,EAAE,iBAAiB,CAC7D,CAAC,EACD,GAAG,qCAAsC,IAAM,CAC7C,KAAK,MAAMC,EAAuB,UAAW,SAAS,EACtD,MAAMG,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,gBACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,EACF,EACA,OAAOK,EAAuB,UAAU,OAAO,EAAE,iBAAiB,CACpE,CAAC,CACH,CAAC",
6
6
  "names": ["DefaultDescriptorTemplate", "DefaultWallet", "DefaultSignerBtc", "GetExtendedPublicKeyUseCase", "SignPsbtUseCase", "SignTransactionUseCase", "SignMessageUseCase", "signer", "sessionId", "dmk"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var S=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var d=(l,e,t,a)=>{for(var i=a>1?void 0:a?b(e,t):e,n=l.length-1,o;n>=0;n--)(o=l[n])&&(i=(a?o(e,t,i):o(i))||i);return a&&i&&S(e,t,i),i},r=(l,e)=>(t,a)=>e(t,a,l);import{CallTaskInAppDeviceAction as y,SendCommandInAppDeviceAction as D,UserInteractionRequired as c}from"@ledgerhq/device-management-kit";import{inject as s,injectable as w}from"inversify";import{GetExtendedPublicKeyCommand as h}from"../app-binder/command/GetExtendedPublicKeyCommand";import{SignPsbtDeviceAction as A}from"../app-binder/device-action/SignPsbt/SignPsbtDeviceAction";import{SignTransactionDeviceAction as _}from"../app-binder/device-action/SignTransaction/SignTransactionDeviceAction";import{SendSignMessageTask as P}from"../app-binder/task/SignMessageTask";import{dataStoreTypes as f}from"../data-store/di/dataStoreTypes";import{externalTypes as m}from"../externalTypes";import{psbtTypes as u}from"../psbt/di/psbtTypes";import{walletTypes as v}from"../wallet/di/walletTypes";import{GetWalletAddressDeviceAction as I}from"./device-action/GetWalletAddress/GetWalletAddressDeviceAction";let p=class{constructor(e,t,a,i,n,o,g){this._dmk=e;this._sessionId=t;this._walletBuilder=a;this._walletSerializer=i;this._dataStoreService=n;this._psbtMapper=o;this._valueParser=g}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new D({input:{command:new h(e),appName:"Bitcoin",requiredUserInteraction:e.checkOnDevice?c.VerifyAddress:c.None}})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new y({input:{task:async t=>new P(t,e,this._dataStoreService).run(),appName:"Bitcoin",requiredUserInteraction:c.SignPersonalMessage}})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new A({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser}})})}getWalletAddress(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new I({input:{wallet:e.wallet,checkOnDevice:e.checkOnDevice,change:e.change,addressIndex:e.addressIndex,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService}})})}signTransaction(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new _({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser}})})}};p=d([w(),r(0,s(m.Dmk)),r(1,s(m.SessionId)),r(2,s(v.WalletBuilder)),r(3,s(v.WalletSerializer)),r(4,s(f.DataStoreService)),r(5,s(u.PsbtMapper)),r(6,s(u.ValueParser))],p);export{p as BtcAppBinder};
1
+ var S=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var p=(l,e,s,r)=>{for(var t=r>1?void 0:r?b(e,s):e,n=l.length-1,o;n>=0;n--)(o=l[n])&&(t=(r?o(e,s,t):o(t))||t);return r&&t&&S(e,s,t),t},i=(l,e)=>(s,r)=>e(s,r,l);import{SendCommandInAppDeviceAction as D,UserInteractionRequired as c}from"@ledgerhq/device-management-kit";import{inject as a,injectable as h}from"inversify";import{GetExtendedPublicKeyCommand as y}from"../app-binder/command/GetExtendedPublicKeyCommand";import{SignPsbtDeviceAction as w}from"../app-binder/device-action/SignPsbt/SignPsbtDeviceAction";import{SignTransactionDeviceAction as _}from"../app-binder/device-action/SignTransaction/SignTransactionDeviceAction";import{dataStoreTypes as A}from"../data-store/di/dataStoreTypes";import{externalTypes as m}from"../externalTypes";import{psbtTypes as u}from"../psbt/di/psbtTypes";import{walletTypes as v}from"../wallet/di/walletTypes";import{GetWalletAddressDeviceAction as P}from"./device-action/GetWalletAddress/GetWalletAddressDeviceAction";import{SignMessageDeviceAction as f}from"./device-action/SignMessage/SignMessageDeviceAction";let d=class{constructor(e,s,r,t,n,o,I){this._dmk=e;this._sessionId=s;this._walletBuilder=r;this._walletSerializer=t;this._dataStoreService=n;this._psbtMapper=o;this._valueParser=I}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new D({input:{command:new y(e),appName:"Bitcoin",requiredUserInteraction:e.checkOnDevice?c.VerifyAddress:c.None}})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new f({input:{derivationPath:e.derivationPath,message:e.message,dataStoreService:this._dataStoreService}})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new w({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser}})})}getWalletAddress(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new P({input:{wallet:e.wallet,checkOnDevice:e.checkOnDevice,change:e.change,addressIndex:e.addressIndex,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService}})})}signTransaction(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new _({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser}})})}};d=p([h(),i(0,a(m.Dmk)),i(1,a(m.SessionId)),i(2,a(v.WalletBuilder)),i(3,a(v.WalletSerializer)),i(4,a(A.DataStoreService)),i(5,a(u.PsbtMapper)),i(6,a(u.ValueParser))],d);export{d as BtcAppBinder};
2
2
  //# sourceMappingURL=BtcAppBinder.js.map