@did-btcr2/method 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +7 -0
  3. package/dist/browser.js +2364 -0
  4. package/dist/browser.js.map +7 -0
  5. package/dist/browser.mjs +2364 -0
  6. package/dist/browser.mjs.map +7 -0
  7. package/dist/cjs/bitcoin/constants.js +20 -0
  8. package/dist/cjs/bitcoin/constants.js.map +1 -0
  9. package/dist/cjs/bitcoin/errors.js +11 -0
  10. package/dist/cjs/bitcoin/errors.js.map +1 -0
  11. package/dist/cjs/bitcoin/index.js +95 -0
  12. package/dist/cjs/bitcoin/index.js.map +1 -0
  13. package/dist/cjs/bitcoin/interface.js +2 -0
  14. package/dist/cjs/bitcoin/interface.js.map +1 -0
  15. package/dist/cjs/bitcoin/network.js +17 -0
  16. package/dist/cjs/bitcoin/network.js.map +1 -0
  17. package/dist/cjs/bitcoin/rest-client.js +289 -0
  18. package/dist/cjs/bitcoin/rest-client.js.map +1 -0
  19. package/dist/cjs/bitcoin/rpc-client.js +722 -0
  20. package/dist/cjs/bitcoin/rpc-client.js.map +1 -0
  21. package/dist/cjs/bitcoin/taproot.js +219 -0
  22. package/dist/cjs/bitcoin/taproot.js.map +1 -0
  23. package/dist/cjs/btcr2/beacon/aggregation/coordinator.js +120 -0
  24. package/dist/cjs/btcr2/beacon/aggregation/coordinator.js.map +1 -0
  25. package/dist/cjs/btcr2/beacon/aggregation/messages/advert.js +24 -0
  26. package/dist/cjs/btcr2/beacon/aggregation/messages/advert.js.map +1 -0
  27. package/dist/cjs/btcr2/beacon/aggregation/messages/base.js +37 -0
  28. package/dist/cjs/btcr2/beacon/aggregation/messages/base.js.map +1 -0
  29. package/dist/cjs/btcr2/beacon/aggregation/messages/cohort-set.js +25 -0
  30. package/dist/cjs/btcr2/beacon/aggregation/messages/cohort-set.js.map +1 -0
  31. package/dist/cjs/btcr2/beacon/aggregation/messages/keygen.js +8 -0
  32. package/dist/cjs/btcr2/beacon/aggregation/messages/keygen.js.map +1 -0
  33. package/dist/cjs/btcr2/beacon/aggregation/messages/opt-in.js +23 -0
  34. package/dist/cjs/btcr2/beacon/aggregation/messages/opt-in.js.map +1 -0
  35. package/dist/cjs/btcr2/beacon/aggregation/messages/sign.js +7 -0
  36. package/dist/cjs/btcr2/beacon/aggregation/messages/sign.js.map +1 -0
  37. package/dist/cjs/btcr2/beacon/aggregation/models/cohort/index.js +92 -0
  38. package/dist/cjs/btcr2/beacon/aggregation/models/cohort/index.js.map +1 -0
  39. package/dist/cjs/btcr2/beacon/aggregation/models/cohort/status.js +8 -0
  40. package/dist/cjs/btcr2/beacon/aggregation/models/cohort/status.js.map +1 -0
  41. package/dist/cjs/btcr2/beacon/aggregation/participant.js +2 -0
  42. package/dist/cjs/btcr2/beacon/aggregation/participant.js.map +1 -0
  43. package/dist/cjs/btcr2/beacon/aggregation/protocol/nostr.js +57 -0
  44. package/dist/cjs/btcr2/beacon/aggregation/protocol/nostr.js.map +1 -0
  45. package/dist/cjs/btcr2/beacon/aggregation/protocol/service.js +2 -0
  46. package/dist/cjs/btcr2/beacon/aggregation/protocol/service.js.map +1 -0
  47. package/dist/cjs/btcr2/beacon/cid-aggregate.js +116 -0
  48. package/dist/cjs/btcr2/beacon/cid-aggregate.js.map +1 -0
  49. package/dist/cjs/btcr2/beacon/factory.js +30 -0
  50. package/dist/cjs/btcr2/beacon/factory.js.map +1 -0
  51. package/dist/cjs/btcr2/beacon/singleton.js +220 -0
  52. package/dist/cjs/btcr2/beacon/singleton.js.map +1 -0
  53. package/dist/cjs/btcr2/beacon/smt-aggregate.js +126 -0
  54. package/dist/cjs/btcr2/beacon/smt-aggregate.js.map +1 -0
  55. package/dist/cjs/btcr2/crud/create.js +102 -0
  56. package/dist/cjs/btcr2/crud/create.js.map +1 -0
  57. package/dist/cjs/btcr2/crud/deactivate.js +14 -0
  58. package/dist/cjs/btcr2/crud/deactivate.js.map +1 -0
  59. package/dist/cjs/btcr2/crud/read.js +686 -0
  60. package/dist/cjs/btcr2/crud/read.js.map +1 -0
  61. package/dist/cjs/btcr2/crud/update.js +195 -0
  62. package/dist/cjs/btcr2/crud/update.js.map +1 -0
  63. package/dist/cjs/btcr2/key-manager/index.js +290 -0
  64. package/dist/cjs/btcr2/key-manager/index.js.map +1 -0
  65. package/dist/cjs/btcr2/key-manager/interface.js +2 -0
  66. package/dist/cjs/btcr2/key-manager/interface.js.map +1 -0
  67. package/dist/cjs/did-btcr2.js +222 -0
  68. package/dist/cjs/did-btcr2.js.map +1 -0
  69. package/dist/cjs/index.js +27 -0
  70. package/dist/cjs/index.js.map +1 -0
  71. package/dist/cjs/interfaces/beacon.js +41 -0
  72. package/dist/cjs/interfaces/beacon.js.map +1 -0
  73. package/dist/cjs/interfaces/crud.js +2 -0
  74. package/dist/cjs/interfaces/crud.js.map +1 -0
  75. package/dist/cjs/interfaces/ibeacon.js +2 -0
  76. package/dist/cjs/interfaces/ibeacon.js.map +1 -0
  77. package/dist/cjs/package.json +1 -0
  78. package/dist/cjs/types/bitcoin.js +62 -0
  79. package/dist/cjs/types/bitcoin.js.map +1 -0
  80. package/dist/cjs/types/crud.js +2 -0
  81. package/dist/cjs/types/crud.js.map +1 -0
  82. package/dist/cjs/utils/appendix.js +221 -0
  83. package/dist/cjs/utils/appendix.js.map +1 -0
  84. package/dist/cjs/utils/beacons.js +206 -0
  85. package/dist/cjs/utils/beacons.js.map +1 -0
  86. package/dist/cjs/utils/did-document-builder.js +61 -0
  87. package/dist/cjs/utils/did-document-builder.js.map +1 -0
  88. package/dist/cjs/utils/did-document.js +380 -0
  89. package/dist/cjs/utils/did-document.js.map +1 -0
  90. package/dist/cjs/utils/general.js +195 -0
  91. package/dist/cjs/utils/general.js.map +1 -0
  92. package/dist/cjs/utils/identifier.js +238 -0
  93. package/dist/cjs/utils/identifier.js.map +1 -0
  94. package/dist/esm/bitcoin/constants.js +20 -0
  95. package/dist/esm/bitcoin/constants.js.map +1 -0
  96. package/dist/esm/bitcoin/errors.js +11 -0
  97. package/dist/esm/bitcoin/errors.js.map +1 -0
  98. package/dist/esm/bitcoin/index.js +95 -0
  99. package/dist/esm/bitcoin/index.js.map +1 -0
  100. package/dist/esm/bitcoin/interface.js +2 -0
  101. package/dist/esm/bitcoin/interface.js.map +1 -0
  102. package/dist/esm/bitcoin/network.js +17 -0
  103. package/dist/esm/bitcoin/network.js.map +1 -0
  104. package/dist/esm/bitcoin/rest-client.js +289 -0
  105. package/dist/esm/bitcoin/rest-client.js.map +1 -0
  106. package/dist/esm/bitcoin/rpc-client.js +722 -0
  107. package/dist/esm/bitcoin/rpc-client.js.map +1 -0
  108. package/dist/esm/bitcoin/taproot.js +219 -0
  109. package/dist/esm/bitcoin/taproot.js.map +1 -0
  110. package/dist/esm/btcr2/beacon/aggregation/coordinator.js +120 -0
  111. package/dist/esm/btcr2/beacon/aggregation/coordinator.js.map +1 -0
  112. package/dist/esm/btcr2/beacon/aggregation/messages/advert.js +24 -0
  113. package/dist/esm/btcr2/beacon/aggregation/messages/advert.js.map +1 -0
  114. package/dist/esm/btcr2/beacon/aggregation/messages/base.js +37 -0
  115. package/dist/esm/btcr2/beacon/aggregation/messages/base.js.map +1 -0
  116. package/dist/esm/btcr2/beacon/aggregation/messages/cohort-set.js +25 -0
  117. package/dist/esm/btcr2/beacon/aggregation/messages/cohort-set.js.map +1 -0
  118. package/dist/esm/btcr2/beacon/aggregation/messages/keygen.js +8 -0
  119. package/dist/esm/btcr2/beacon/aggregation/messages/keygen.js.map +1 -0
  120. package/dist/esm/btcr2/beacon/aggregation/messages/opt-in.js +23 -0
  121. package/dist/esm/btcr2/beacon/aggregation/messages/opt-in.js.map +1 -0
  122. package/dist/esm/btcr2/beacon/aggregation/messages/sign.js +7 -0
  123. package/dist/esm/btcr2/beacon/aggregation/messages/sign.js.map +1 -0
  124. package/dist/esm/btcr2/beacon/aggregation/models/cohort/index.js +92 -0
  125. package/dist/esm/btcr2/beacon/aggregation/models/cohort/index.js.map +1 -0
  126. package/dist/esm/btcr2/beacon/aggregation/models/cohort/status.js +8 -0
  127. package/dist/esm/btcr2/beacon/aggregation/models/cohort/status.js.map +1 -0
  128. package/dist/esm/btcr2/beacon/aggregation/participant.js +2 -0
  129. package/dist/esm/btcr2/beacon/aggregation/participant.js.map +1 -0
  130. package/dist/esm/btcr2/beacon/aggregation/protocol/nostr.js +57 -0
  131. package/dist/esm/btcr2/beacon/aggregation/protocol/nostr.js.map +1 -0
  132. package/dist/esm/btcr2/beacon/aggregation/protocol/service.js +2 -0
  133. package/dist/esm/btcr2/beacon/aggregation/protocol/service.js.map +1 -0
  134. package/dist/esm/btcr2/beacon/cid-aggregate.js +116 -0
  135. package/dist/esm/btcr2/beacon/cid-aggregate.js.map +1 -0
  136. package/dist/esm/btcr2/beacon/factory.js +30 -0
  137. package/dist/esm/btcr2/beacon/factory.js.map +1 -0
  138. package/dist/esm/btcr2/beacon/singleton.js +220 -0
  139. package/dist/esm/btcr2/beacon/singleton.js.map +1 -0
  140. package/dist/esm/btcr2/beacon/smt-aggregate.js +126 -0
  141. package/dist/esm/btcr2/beacon/smt-aggregate.js.map +1 -0
  142. package/dist/esm/btcr2/crud/create.js +102 -0
  143. package/dist/esm/btcr2/crud/create.js.map +1 -0
  144. package/dist/esm/btcr2/crud/deactivate.js +14 -0
  145. package/dist/esm/btcr2/crud/deactivate.js.map +1 -0
  146. package/dist/esm/btcr2/crud/read.js +686 -0
  147. package/dist/esm/btcr2/crud/read.js.map +1 -0
  148. package/dist/esm/btcr2/crud/update.js +195 -0
  149. package/dist/esm/btcr2/crud/update.js.map +1 -0
  150. package/dist/esm/btcr2/key-manager/index.js +290 -0
  151. package/dist/esm/btcr2/key-manager/index.js.map +1 -0
  152. package/dist/esm/btcr2/key-manager/interface.js +2 -0
  153. package/dist/esm/btcr2/key-manager/interface.js.map +1 -0
  154. package/dist/esm/did-btcr2.js +222 -0
  155. package/dist/esm/did-btcr2.js.map +1 -0
  156. package/dist/esm/index.js +27 -0
  157. package/dist/esm/index.js.map +1 -0
  158. package/dist/esm/interfaces/beacon.js +41 -0
  159. package/dist/esm/interfaces/beacon.js.map +1 -0
  160. package/dist/esm/interfaces/crud.js +2 -0
  161. package/dist/esm/interfaces/crud.js.map +1 -0
  162. package/dist/esm/interfaces/ibeacon.js +2 -0
  163. package/dist/esm/interfaces/ibeacon.js.map +1 -0
  164. package/dist/esm/types/bitcoin.js +62 -0
  165. package/dist/esm/types/bitcoin.js.map +1 -0
  166. package/dist/esm/types/crud.js +2 -0
  167. package/dist/esm/types/crud.js.map +1 -0
  168. package/dist/esm/utils/appendix.js +221 -0
  169. package/dist/esm/utils/appendix.js.map +1 -0
  170. package/dist/esm/utils/beacons.js +206 -0
  171. package/dist/esm/utils/beacons.js.map +1 -0
  172. package/dist/esm/utils/did-document-builder.js +61 -0
  173. package/dist/esm/utils/did-document-builder.js.map +1 -0
  174. package/dist/esm/utils/did-document.js +380 -0
  175. package/dist/esm/utils/did-document.js.map +1 -0
  176. package/dist/esm/utils/general.js +195 -0
  177. package/dist/esm/utils/general.js.map +1 -0
  178. package/dist/esm/utils/identifier.js +238 -0
  179. package/dist/esm/utils/identifier.js.map +1 -0
  180. package/dist/types/bitcoin/constants.d.ts +19 -0
  181. package/dist/types/bitcoin/constants.d.ts.map +1 -0
  182. package/dist/types/bitcoin/errors.d.ts +5 -0
  183. package/dist/types/bitcoin/errors.d.ts.map +1 -0
  184. package/dist/types/bitcoin/index.d.ts +75 -0
  185. package/dist/types/bitcoin/index.d.ts.map +1 -0
  186. package/dist/types/bitcoin/interface.d.ts +86 -0
  187. package/dist/types/bitcoin/interface.d.ts.map +1 -0
  188. package/dist/types/bitcoin/network.d.ts +2 -0
  189. package/dist/types/bitcoin/network.d.ts.map +1 -0
  190. package/dist/types/bitcoin/rest-client.d.ts +268 -0
  191. package/dist/types/bitcoin/rest-client.d.ts.map +1 -0
  192. package/dist/types/bitcoin/rpc-client.d.ts +506 -0
  193. package/dist/types/bitcoin/rpc-client.d.ts.map +1 -0
  194. package/dist/types/bitcoin/taproot.d.ts +34 -0
  195. package/dist/types/bitcoin/taproot.d.ts.map +1 -0
  196. package/dist/types/btcr2/beacon/aggregation/coordinator.d.ts +74 -0
  197. package/dist/types/btcr2/beacon/aggregation/coordinator.d.ts.map +1 -0
  198. package/dist/types/btcr2/beacon/aggregation/messages/advert.d.ts +22 -0
  199. package/dist/types/btcr2/beacon/aggregation/messages/advert.d.ts.map +1 -0
  200. package/dist/types/btcr2/beacon/aggregation/messages/base.d.ts +36 -0
  201. package/dist/types/btcr2/beacon/aggregation/messages/base.d.ts.map +1 -0
  202. package/dist/types/btcr2/beacon/aggregation/messages/cohort-set.d.ts +23 -0
  203. package/dist/types/btcr2/beacon/aggregation/messages/cohort-set.d.ts.map +1 -0
  204. package/dist/types/btcr2/beacon/aggregation/messages/keygen.d.ts +6 -0
  205. package/dist/types/btcr2/beacon/aggregation/messages/keygen.d.ts.map +1 -0
  206. package/dist/types/btcr2/beacon/aggregation/messages/opt-in.d.ts +22 -0
  207. package/dist/types/btcr2/beacon/aggregation/messages/opt-in.d.ts.map +1 -0
  208. package/dist/types/btcr2/beacon/aggregation/messages/sign.d.ts +5 -0
  209. package/dist/types/btcr2/beacon/aggregation/messages/sign.d.ts.map +1 -0
  210. package/dist/types/btcr2/beacon/aggregation/models/cohort/index.d.ts +77 -0
  211. package/dist/types/btcr2/beacon/aggregation/models/cohort/index.d.ts.map +1 -0
  212. package/dist/types/btcr2/beacon/aggregation/models/cohort/status.d.ts +7 -0
  213. package/dist/types/btcr2/beacon/aggregation/models/cohort/status.d.ts.map +1 -0
  214. package/dist/types/btcr2/beacon/aggregation/participant.d.ts +1 -0
  215. package/dist/types/btcr2/beacon/aggregation/participant.d.ts.map +1 -0
  216. package/dist/types/btcr2/beacon/aggregation/protocol/nostr.d.ts +36 -0
  217. package/dist/types/btcr2/beacon/aggregation/protocol/nostr.d.ts.map +1 -0
  218. package/dist/types/btcr2/beacon/aggregation/protocol/service.d.ts +6 -0
  219. package/dist/types/btcr2/beacon/aggregation/protocol/service.d.ts.map +1 -0
  220. package/dist/types/btcr2/beacon/cid-aggregate.d.ts +103 -0
  221. package/dist/types/btcr2/beacon/cid-aggregate.d.ts.map +1 -0
  222. package/dist/types/btcr2/beacon/factory.d.ts +17 -0
  223. package/dist/types/btcr2/beacon/factory.d.ts.map +1 -0
  224. package/dist/types/btcr2/beacon/singleton.d.ts +93 -0
  225. package/dist/types/btcr2/beacon/singleton.d.ts.map +1 -0
  226. package/dist/types/btcr2/beacon/smt-aggregate.d.ts +112 -0
  227. package/dist/types/btcr2/beacon/smt-aggregate.d.ts.map +1 -0
  228. package/dist/types/btcr2/crud/create.d.ts +92 -0
  229. package/dist/types/btcr2/crud/create.d.ts.map +1 -0
  230. package/dist/types/btcr2/crud/deactivate.d.ts +13 -0
  231. package/dist/types/btcr2/crud/deactivate.d.ts.map +1 -0
  232. package/dist/types/btcr2/crud/read.d.ts +341 -0
  233. package/dist/types/btcr2/crud/read.d.ts.map +1 -0
  234. package/dist/types/btcr2/crud/update.d.ts +83 -0
  235. package/dist/types/btcr2/crud/update.d.ts.map +1 -0
  236. package/dist/types/btcr2/key-manager/index.d.ts +145 -0
  237. package/dist/types/btcr2/key-manager/index.d.ts.map +1 -0
  238. package/dist/types/btcr2/key-manager/interface.d.ts +113 -0
  239. package/dist/types/btcr2/key-manager/interface.d.ts.map +1 -0
  240. package/dist/types/did-btcr2.d.ts +117 -0
  241. package/dist/types/did-btcr2.d.ts.map +1 -0
  242. package/dist/types/index.d.ts +26 -0
  243. package/dist/types/index.d.ts.map +1 -0
  244. package/dist/types/interfaces/beacon.d.ts +57 -0
  245. package/dist/types/interfaces/beacon.d.ts.map +1 -0
  246. package/dist/types/interfaces/crud.d.ts +35 -0
  247. package/dist/types/interfaces/crud.d.ts.map +1 -0
  248. package/dist/types/interfaces/ibeacon.d.ts +66 -0
  249. package/dist/types/interfaces/ibeacon.d.ts.map +1 -0
  250. package/dist/types/types/bitcoin.d.ts +827 -0
  251. package/dist/types/types/bitcoin.d.ts.map +1 -0
  252. package/dist/types/types/crud.d.ts +38 -0
  253. package/dist/types/types/crud.d.ts.map +1 -0
  254. package/dist/types/utils/appendix.d.ts +118 -0
  255. package/dist/types/utils/appendix.d.ts.map +1 -0
  256. package/dist/types/utils/beacons.d.ts +156 -0
  257. package/dist/types/utils/beacons.d.ts.map +1 -0
  258. package/dist/types/utils/did-document-builder.d.ts +13 -0
  259. package/dist/types/utils/did-document-builder.d.ts.map +1 -0
  260. package/dist/types/utils/did-document.d.ts +211 -0
  261. package/dist/types/utils/did-document.d.ts.map +1 -0
  262. package/dist/types/utils/general.d.ts +85 -0
  263. package/dist/types/utils/general.d.ts.map +1 -0
  264. package/dist/types/utils/identifier.d.ts +59 -0
  265. package/dist/types/utils/identifier.d.ts.map +1 -0
  266. package/package.json +137 -0
  267. package/src/bitcoin/constants.ts +19 -0
  268. package/src/bitcoin/errors.ts +10 -0
  269. package/src/bitcoin/index.ts +154 -0
  270. package/src/bitcoin/interface.ts +160 -0
  271. package/src/bitcoin/network.ts +17 -0
  272. package/src/bitcoin/rest-client.ts +415 -0
  273. package/src/bitcoin/rpc-client.ts +888 -0
  274. package/src/bitcoin/taproot.ts +237 -0
  275. package/src/btcr2/beacon/aggregation/coordinator.ts +135 -0
  276. package/src/btcr2/beacon/aggregation/messages/advert.ts +36 -0
  277. package/src/btcr2/beacon/aggregation/messages/base.ts +59 -0
  278. package/src/btcr2/beacon/aggregation/messages/cohort-set.ts +37 -0
  279. package/src/btcr2/beacon/aggregation/messages/keygen.ts +8 -0
  280. package/src/btcr2/beacon/aggregation/messages/opt-in.ts +35 -0
  281. package/src/btcr2/beacon/aggregation/messages/sign.ts +7 -0
  282. package/src/btcr2/beacon/aggregation/models/cohort/index.ts +112 -0
  283. package/src/btcr2/beacon/aggregation/models/cohort/status.ts +7 -0
  284. package/src/btcr2/beacon/aggregation/participant.ts +0 -0
  285. package/src/btcr2/beacon/aggregation/protocol/nostr.ts +81 -0
  286. package/src/btcr2/beacon/aggregation/protocol/service.ts +6 -0
  287. package/src/btcr2/beacon/cid-aggregate.ts +154 -0
  288. package/src/btcr2/beacon/factory.ts +36 -0
  289. package/src/btcr2/beacon/singleton.ts +257 -0
  290. package/src/btcr2/beacon/smt-aggregate.ts +136 -0
  291. package/src/btcr2/crud/create.ts +160 -0
  292. package/src/btcr2/crud/deactivate.ts +13 -0
  293. package/src/btcr2/crud/read.ts +946 -0
  294. package/src/btcr2/crud/update.ts +277 -0
  295. package/src/btcr2/key-manager/index.ts +364 -0
  296. package/src/btcr2/key-manager/interface.ts +129 -0
  297. package/src/canonicalize.d.ts +6 -0
  298. package/src/did-btcr2.ts +288 -0
  299. package/src/index.ts +34 -0
  300. package/src/interfaces/beacon.ts +68 -0
  301. package/src/interfaces/crud.ts +36 -0
  302. package/src/interfaces/ibeacon.ts +76 -0
  303. package/src/types/bitcoin.ts +1028 -0
  304. package/src/types/crud.ts +41 -0
  305. package/src/utils/appendix.ts +257 -0
  306. package/src/utils/beacons.ts +276 -0
  307. package/src/utils/did-document-builder.ts +73 -0
  308. package/src/utils/did-document.ts +474 -0
  309. package/src/utils/general.ts +204 -0
  310. package/src/utils/identifier.ts +276 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../src/btcr2/crud/read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import { BTCR2_DID_UPDATE_PAYLOAD_CONTEXT, Btcr2Error, INVALID_DID_DOCUMENT, INVALID_DID_UPDATE, INVALID_PUBLIC_KEY_TYPE, Logger, NOT_FOUND } from '@did-btcr2/common';
2
+ import { SchnorrMultikey } from '@did-btcr2/cryptosuite';
3
+ import { SchnorrKeyPair, SecretKey } from '@did-btcr2/keypair';
4
+ import { Btc1Appendix } from '../../utils/appendix.js';
5
+ import { Btc1DidDocument } from '../../utils/did-document.js';
6
+ import { BeaconFactory } from '../beacon/factory.js';
7
+ import { Btc1KeyManager } from '../key-manager/index.js';
8
+ /**
9
+ * Implements {@link https://dcdpr.github.io/did-btcr2/#update | 4.3 Update}.
10
+ *
11
+ * An update to a did:btcr2 document is an invoked capability using the ZCAP-LD
12
+ * data format, signed by a verificationMethod that has the authority to make
13
+ * the update as specified in the previous DID document. Capability invocations
14
+ * for updates MUST be authorized using Data Integrity following the
15
+ * bip340-jcs-2025 cryptosuite with a proofPurpose of capabilityInvocation.
16
+ *
17
+ * @class Btc1Update
18
+ * @type {Btc1Update}
19
+ */
20
+ export class Btc1Update {
21
+ /**
22
+ * Implements {@link https://dcdpr.github.io/did-btcr2/#construct-did-update-payload | 4.3.1 Construct DID Update Payload}.
23
+ *
24
+ * The Construct DID Update Payload algorithm applies the documentPatch to the sourceDocument and verifies the
25
+ * resulting targetDocument is a conformant DID document. It takes in a btc1Identifier, sourceDocument,
26
+ * sourceVersionId, and documentPatch objects. It returns an unsigned DID Update Payload.
27
+ *
28
+ * @param {ConstructPayloadParams} params See {@link ConstructPayloadParams} for more details.
29
+ * @param {string} params.identifier The did-btcr2 identifier to use for verification.
30
+ * @param {Btc1DidDocument} params.sourceDocument The source document to be updated.
31
+ * @param {string} params.sourceVersionId The versionId of the source document.
32
+ * @param {DidDocumentPatch} params.patch The JSON patch to be applied to the source document.
33
+ * @returns {Promise<DidUpdatePayload>} The constructed DidUpdatePayload object.
34
+ * @throws {Btcr2Error} InvalidDid if sourceDocument.id does not match identifier.
35
+ */
36
+ static async construct({ identifier, sourceDocument, sourceVersionId, patch, }) {
37
+ // 1. Check that sourceDocument.id equals identifier else MUST raise invalidDIDUpdate error.
38
+ if (sourceDocument.id !== identifier) {
39
+ throw new Btcr2Error(INVALID_DID_UPDATE, 'Source document id does not match identifier', { sourceDocument, identifier });
40
+ }
41
+ // 2. Initialize didUpdatePayload to an empty object.
42
+ const didUpdatePayload = {
43
+ // 3. Set didUpdatePayload.@context to the following list
44
+ '@context': BTCR2_DID_UPDATE_PAYLOAD_CONTEXT,
45
+ // 4. Set didUpdatePayload.patch to documentPatch.
46
+ patch,
47
+ targetHash: '',
48
+ targetVersionId: 0,
49
+ sourceHash: '',
50
+ };
51
+ // TODO: Need to add btcr2 context. ["https://w3id.org/zcap/v1", "https://w3id.org/security/data-integrity/v2", "https://w3id.org/json-ld-patch/v1"]
52
+ // 5. Set targetDocument to the result of applying the documentPatch to the sourceDocument, following the JSON Patch
53
+ // specification.
54
+ const targetDocument = JSON.patch.apply(sourceDocument, patch);
55
+ // 6. Validate targetDocument is a conformant DID document, else MUST raise invalidDIDUpdate error.
56
+ Btc1DidDocument.validate(targetDocument);
57
+ // 7. Set sourceHashBytes to the result of passing sourceDocument into the JSON Canonicalization and Hash algorithm.
58
+ // 8. Set didUpdatePayload.sourceHash to the base58-btc Multibase encoding of sourceHashBytes.
59
+ didUpdatePayload.sourceHash = (await JSON.canonicalization.process(sourceDocument, 'base58')).slice(1);
60
+ // TODO: Question - is base58btc the correct encoding scheme?
61
+ // 9. Set targetHashBytes to the result of passing targetDocument into the JSON Canonicalization and Hash algorithm.
62
+ // 10. Set didUpdatePayload.targetHash to the base58-btc Multibase encoding of targetHashBytes.
63
+ didUpdatePayload.targetHash = (await JSON.canonicalization.process(targetDocument, 'base58')).slice(1);
64
+ // 11. Set didUpdatePayload.targetVersionId to sourceVersionId + 1.
65
+ didUpdatePayload.targetVersionId = sourceVersionId + 1;
66
+ // 12. Return updatePayload.
67
+ return didUpdatePayload;
68
+ }
69
+ /**
70
+ * {@link https://dcdpr.github.io/did-btcr2/#invoke-did-update-payload | 4.3.2 Invoke DID Update Payload}.
71
+ *
72
+ * The Invoke DID Update Payload algorithm takes in a btc1Identifier, an unsigned didUpdatePayload, and a
73
+ * verificationMethod. It retrieves the privateKeyBytes for the verificationMethod and adds a capability invocation in
74
+ * the form of a Data Integrity proof following the Authorization Capabilities (ZCAP-LD) and VC Data Integrity
75
+ * specifications. It returns the invoked DID Update Payload.
76
+ *
77
+ * @param {InvokePayloadParams} params Required params for calling the invokePayload method
78
+ * @param {string} params.identifier The did-btcr2 identifier to derive the root capability from
79
+ * @param {DidUpdatePayload} params.didUpdatePayload The updatePayload object to be signed
80
+ * @param {DidVerificationMethod} params.verificationMethod The verificationMethod object to be used for signing
81
+ * @returns {DidUpdateInvocation} Did update payload secured with a proof => DidUpdateInvocation
82
+ * @throws {Btcr2Error} if the privateKeyBytes are invalid
83
+ */
84
+ static async invoke({ identifier, didUpdatePayload, verificationMethod }) {
85
+ // Deconstruct the verificationMethod
86
+ const { id: fullId, controller, publicKeyMultibase, secretKeyMultibase } = verificationMethod;
87
+ // Validate the verificationMethod
88
+ if (!publicKeyMultibase) {
89
+ throw new Btcr2Error('Invalid publicKeyMultibase: cannot be undefined', INVALID_PUBLIC_KEY_TYPE, verificationMethod);
90
+ }
91
+ // 1. Set privateKeyBytes to the result of retrieving the private key bytes
92
+ // associated with the verificationMethod value.
93
+ const id = fullId.slice(fullId.indexOf('#'));
94
+ const multikey = !secretKeyMultibase
95
+ // 1.1 Compute the keyUri and check if the key is in the keystore
96
+ ? await Btc1KeyManager.getKeyPair(fullId)
97
+ // 1.2 If not, use the secretKeyMultibase from the verificationMethod
98
+ : SchnorrMultikey
99
+ .initialize({
100
+ id,
101
+ controller,
102
+ keys: new SchnorrKeyPair({
103
+ secretKey: SecretKey.decode(secretKeyMultibase)
104
+ })
105
+ });
106
+ // 1.3 If the privateKey is not found, throw an error
107
+ if (!multikey) {
108
+ throw new Btcr2Error('No privateKey found in kms or vm', NOT_FOUND, verificationMethod);
109
+ }
110
+ // 2. Set rootCapability to the result of passing btc1Identifier into the Derive Root Capability from did:btcr2
111
+ // Identifier algorithm.
112
+ const rootCapability = Btc1Appendix.deriveRootCapability(identifier);
113
+ const cryptosuite = 'bip340-jcs-2025';
114
+ // 3. Initialize proofOptions to an empty object.
115
+ // 4. Set proofOptions.type to DataIntegrityProof.
116
+ // 5. Set proofOptions.cryptosuite to schnorr-secp256k1-jcs-2025.
117
+ // 6. Set proofOptions.verificationMethod to verificationMethod.id.
118
+ // 7. Set proofOptions.proofPurpose to capabilityInvocation.
119
+ // 8. Set proofOptions.capability to rootCapability.id.
120
+ // 9. Set proofOptions.capabilityAction to Write.
121
+ // TODO: Wonder if we actually need this. Arent we always writing?
122
+ const options = {
123
+ cryptosuite,
124
+ type: 'DataIntegrityProof',
125
+ verificationMethod: fullId,
126
+ proofPurpose: 'capabilityInvocation',
127
+ capability: rootCapability.id,
128
+ capabilityAction: 'Write',
129
+ };
130
+ // 10. Set cryptosuite to the result of executing the Cryptosuite Instantiation algorithm from the BIP340 Data
131
+ // Integrity specification passing in proofOptions.
132
+ const diproof = multikey.toCryptosuite(cryptosuite).toDataIntegrityProof();
133
+ // TODO: 11. need to set up the proof instantiation such that it can resolve / dereference the root capability. This is deterministic from the DID.
134
+ // 12. Set didUpdateInvocation to the result of executing the Add Proof algorithm from VC Data Integrity passing
135
+ // didUpdatePayload as the input document, cryptosuite, and the set of proofOptions.
136
+ // 13. Return didUpdateInvocation.
137
+ return await diproof.addProof({ document: didUpdatePayload, options });
138
+ }
139
+ /**
140
+ * Implements {@link https://dcdpr.github.io/did-btcr2/#announce-did-update | 4.3.3 Announce DID Update}.
141
+ *
142
+ * The Announce DID Update algorithm retrieves beaconServices from the sourceDocument and calls the Broadcast DID
143
+ * Update algorithm corresponding to the type of the Beacon. It takes in a btc1Identifier, sourceDocument, an array of
144
+ * beaconIds, and a didUpdateInvocation. It returns an array of signalsMetadata, containing the necessary
145
+ * data to validate the Beacon Signal against the didUpdateInvocation.
146
+ *
147
+ * @param {AnnounceUpdatePayloadParams} params Required params for calling the announcePayload method
148
+ * @param {Btc1DidDocument} params.sourceDocument The did-btcr2 did document to derive the root capability from
149
+ * @param {string[]} params.beaconIds The didUpdatePayload object to be signed
150
+ * @param {DidUpdateInvocation} params.didUpdatePayload The verificationMethod object to be used for signing
151
+ * @returns {SignalsMetadata} The signalsMetadata object containing data to validate the Beacon Signal
152
+ * @throws {Btcr2Error} if the beaconService type is invalid
153
+ */
154
+ static async announce({ sourceDocument, beaconIds, didUpdateInvocation }) {
155
+ // 1. Set beaconServices to an empty array.
156
+ const beaconServices = [];
157
+ // 2. signalMetadata to an empty array.
158
+ let signalsMetadata;
159
+ // 3. For beaconId in beaconIds:
160
+ for (const beaconId of beaconIds) {
161
+ // 3.1 Find the beacon services in the sourceDocument
162
+ const beaconService = sourceDocument.service.find((s) => s.id === beaconId);
163
+ // 3.2 If no beaconService MUST throw beaconNotFound error.
164
+ if (!beaconService) {
165
+ throw new Btcr2Error('Not found: sourceDocument does not contain beaconId', INVALID_DID_DOCUMENT, { beaconId });
166
+ }
167
+ // 3.3 Push beaconService to beaconServices.
168
+ beaconServices.push(beaconService);
169
+ }
170
+ // 4. For beaconService in beaconServices:
171
+ for (const beaconService of beaconServices) {
172
+ // 4.1 Set signalMetadata to null.
173
+ // 4.2 If beaconService.type == SingletonBeacon:
174
+ // 4.2.1 Set signalMetadata to the result of passing beaconService and didUpdateInvocation to the Broadcast
175
+ // Singleton Beacon Signal algorithm.
176
+ // 4.3 Else If beaconService.type == CIDAggregateBeacon:
177
+ // 4.3.1 Set signalMetadata to the result of passing btc1Identifier, beaconService and didUpdateInvocation to
178
+ // the Broadcast CIDAggregate Beacon Signal algorithm.
179
+ // 4.4 Else If beaconService.type == SMTAggregateBeacon:
180
+ // 4.4.1 Set signalMetadata to the result of passing btc1Identifier, beaconService and didUpdateInvocation to
181
+ // the Broadcast SMTAggregate Beacon Signal algorithm.
182
+ // 4.5 Else:
183
+ // 4.5.1 MUST throw invalidBeacon error.
184
+ const beacon = BeaconFactory.establish(beaconService);
185
+ signalsMetadata = await beacon.broadcastSignal(didUpdateInvocation);
186
+ }
187
+ if (!signalsMetadata) {
188
+ throw new Btcr2Error('Invalid beacon: no signalsMetadata found', INVALID_DID_DOCUMENT, { beaconServices });
189
+ }
190
+ Logger.debug('signalsMetadata', signalsMetadata);
191
+ // Return the signalsMetadata
192
+ return signalsMetadata;
193
+ }
194
+ }
195
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/btcr2/crud/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ import { Btcr2KeyManagerError, Logger, MULTIBASE_URI_PREFIX } from '@did-btcr2/common';
2
+ import { SchnorrMultikey } from '@did-btcr2/cryptosuite';
3
+ import { SchnorrKeyPair, PublicKey } from '@did-btcr2/keypair';
4
+ import { sha256 } from '@noble/hashes/sha2';
5
+ import { MemoryStore } from '@web5/common';
6
+ import { Did } from '@web5/dids';
7
+ ;
8
+ /**
9
+ * Class for managing cryptographic keys for the B DID method.
10
+ * @class Btc1KeyManager
11
+ * @type {Btc1KeyManager}
12
+ */
13
+ export class Btc1KeyManager {
14
+ /**
15
+ * Singleton instance of the Btc1KeyManager.
16
+ * @private
17
+ * @type {Btc1KeyManager}
18
+ */
19
+ static #instance;
20
+ /**
21
+ * The `activeKeyUri` property is a string that represents the URI of the currently active key.
22
+ * It is used to identify the key that will be used for signing and verifying operations.
23
+ * This property is optional and can be set to a specific key URI when initializing the
24
+ * `Btc1KeyManager` instance. If not set, the key manager will use the default key URI.
25
+ * @type {KeyIdentifier}
26
+ */
27
+ activeKeyUri;
28
+ /**
29
+ * The `_store` private variable in `Btc1KeyManager` is a `KeyValueStore` instance used for
30
+ * storing and managing cryptographic keys. It allows the `Btc1KeyManager` class to save,
31
+ * retrieve, and handle keys efficiently within the local Key Management System (KMS) context.
32
+ * This variable can be configured to use different storage backends, like in-memory storage or
33
+ * persistent storage, providing flexibility in key management according to the application's
34
+ * requirements.
35
+ * @private
36
+ * @readonly
37
+ * @type {KeyValueStore<KeyIdentifier, SchnorrKeyPair>} The key store for managing cryptographic keys.
38
+ */
39
+ _store;
40
+ /**
41
+ * Creates an instance of Btc1KeyManager.
42
+ * @param {?KeyManagerParams} params The parameters to initialize the key manager.
43
+ * @param {KeyValueStore<KeyIdentifier, SchnorrMultikey>} params.store An optional property to specify a custom
44
+ * `KeyValueStore` instance for key management. If not provided, {@link Btc1KeyManager} uses a default `MemoryStore`
45
+ * instance. This store is responsible for managing cryptographic keys, allowing them to be retrieved, stored, and
46
+ * managed during cryptographic operations.
47
+ * @param {KeyIdentifier} params.keyUri An optional property to specify the active key URI for the key manager.
48
+ */
49
+ constructor({ store, keyUri, keys } = {}) {
50
+ // Set the default key store to a MemoryStore instance
51
+ this._store = store ?? new MemoryStore();
52
+ // Import the keys into the key store
53
+ if (keyUri && keys) {
54
+ void this.importKey(keys, keyUri).then(() => {
55
+ this.activeKeyUri = keyUri;
56
+ });
57
+ }
58
+ }
59
+ /**
60
+ * Gets the singleton instance of the Btc1KeyManager.
61
+ * @returns {Btc1KeyManager} The singleton instance of the Btc1KeyManager.
62
+ */
63
+ static get instance() {
64
+ // Check if the Btc1KeyManager instance is initialized
65
+ if (!Btc1KeyManager.#instance) {
66
+ throw new Btcr2KeyManagerError('Btc1KeyManager not initialized. Call initialize() first.', 'KEY_MANAGER_NOT_INITIALIZED');
67
+ }
68
+ // Return the singleton instance
69
+ const instance = Btc1KeyManager.#instance;
70
+ return instance;
71
+ }
72
+ /**
73
+ * Signs a transaction using the key associated with the key URI.
74
+ * @param {Hex} txHex The transaction hex to sign.
75
+ * @param {KeyIdentifier} keyUri The URI of the key to sign the transaction with.
76
+ * @returns {Promise<Hex>} A promise resolving to the signed transaction hex.
77
+ */
78
+ signTransaction(txHex, keyUri) {
79
+ throw new Error('Method not implemented.' + txHex + keyUri);
80
+ }
81
+ /**
82
+ * Gets the key pair from the key store and returns a PublicKey.
83
+ * @param {KeyIdentifier} keyUri The URI of the key to get the public key for.
84
+ * @returns {Promise<PublicKey>} The public key associated with the key URI.
85
+ */
86
+ async getPublicKey(keyUri) {
87
+ // Use the active key URI if not provided
88
+ const key = await this.getKey(keyUri);
89
+ // Check if the key exists and has a public key
90
+ if (!key?.publicKey) {
91
+ throw new Btcr2KeyManagerError(`Key not found for URI: ${keyUri}`, 'KEY_NOT_FOUND');
92
+ }
93
+ // Return the public key
94
+ return key.publicKey;
95
+ }
96
+ /**
97
+ * Signs the given data using the key associated with the key URI.
98
+ * @param {Hex} data The data to sign.
99
+ * @param {?KeyIdentifier} keyUri The URI of the key to sign the data with.
100
+ * @returns {Promise<SignatureBytes>} A promise resolving to the signature of the data.
101
+ */
102
+ async sign(data, keyUri) {
103
+ // Get the key from the store
104
+ const key = await this.getKey(keyUri);
105
+ // Check if the key exists
106
+ if (!key) {
107
+ throw new Btcr2KeyManagerError(`Key URI ${keyUri} not found`, 'KEY_NOT_FOUND');
108
+ }
109
+ // Check if the key can sign
110
+ if (!key.signer) {
111
+ throw new Btcr2KeyManagerError(`Key URI ${keyUri} is not a signer`, 'KEY_NOT_SIGNER');
112
+ }
113
+ // Sign the data using the key and return the signature
114
+ return key.sign(data);
115
+ }
116
+ /**
117
+ * Verifies a signature using the key associated with the key URI.
118
+ * @param {KeyIdentifier} keyUri The URI of the key to verify the signature with.
119
+ * @param {SignatureBytes} signature The signature to verify.
120
+ * @param {Hex} data The data to verify the signature with.
121
+ * @returns {Promise<boolean>} A promise resolving to a boolean indicating the verification result.
122
+ */
123
+ async verify(signature, data, keyUri) {
124
+ // Get the key from the store
125
+ const key = await this.getKey(keyUri);
126
+ // Check if the key exists
127
+ if (!key) {
128
+ throw new Btcr2KeyManagerError(`Key not found for URI: ${keyUri}`, 'KEY_NOT_FOUND');
129
+ }
130
+ // Verify the signature using the multikey
131
+ return key.verify(signature, data);
132
+ }
133
+ /**
134
+ * Gets the key pair from the key store.
135
+ * @param {KeyIdentifier} keyUri The URI of the key to get.
136
+ * @returns {Promise<SchnorrKeyPair>} The key pair associated with the key URI.
137
+ * @throws {Btcr2KeyManagerError} If the key is not found in the key store.
138
+ */
139
+ async getKey(keyUri) {
140
+ // Use the active key URI if not provided
141
+ const uri = keyUri ?? this.activeKeyUri;
142
+ // Throw an error if no key URI is provided or active
143
+ if (!uri) {
144
+ throw new Btcr2KeyManagerError('No active key uri set.', 'ACTIVE_KEY_URI_NOT_SET');
145
+ }
146
+ // Get the key pair from the key store
147
+ return await this._store.get(uri);
148
+ }
149
+ /**
150
+ * Exports the full multikeypair from the key store.
151
+ * @returns {Promise<SchnorrKeyPair>} The key pair associated with the key URI.
152
+ * @throws {Btcr2KeyManagerError} If the key is not found in the key store.
153
+ */
154
+ async exportKey(keyUri) {
155
+ // Get the key from the key store and return it
156
+ return await this.getKey(keyUri);
157
+ }
158
+ /**
159
+ * Imports a keypair to the store.
160
+ * @param {SchnorrKeyPair} keys The keypair to import.
161
+ * @param {KeyIdentifier} keyUri The URI of the key to import.
162
+ * @param {Btc1KeyManagerOptions} options Relevant import options.
163
+ * @param {boolean} options.active A flag to set the key as active (optional, default: false).
164
+ * @returns {Promise<KeyIdentifier>} A promise that resolves to the key identifier of the imported key.
165
+ */
166
+ async importKey(keys, keyUri, options = {}) {
167
+ const parts = Did.parse(keyUri);
168
+ if (!parts) {
169
+ throw new Btcr2KeyManagerError('Invalid key URI: must be valid, parsable BTCR2 identifier', 'INVALID_KEY_URI', { keyUri, parts });
170
+ }
171
+ if (!parts.id) {
172
+ throw new Btcr2KeyManagerError('Invalid key URI: missing id part', 'INVALID_KEY_URI', { keyUri, parts });
173
+ }
174
+ if (!parts.fragment) {
175
+ throw new Btcr2KeyManagerError('Invalid key URI: missing fragment part', 'INVALID_KEY_URI', { keyUri, parts });
176
+ }
177
+ // Instantiate a new SchnorrMultikey with the provided keys
178
+ const multikey = new SchnorrMultikey({ controller: parts.uri, id: `#${parts.fragment}`, keys });
179
+ // Store the keypair in the key store
180
+ await this._store.set(keyUri, multikey);
181
+ // Set the key as active if required
182
+ if (options.active) {
183
+ this.activeKeyUri = keyUri;
184
+ }
185
+ // Return the key URI
186
+ return keyUri;
187
+ }
188
+ /**
189
+ * Computes the hash of the given data.
190
+ * @param {Uint8Array} data The data to hash.
191
+ * @returns {HashBytes} The hash of the data.
192
+ */
193
+ digest(data) {
194
+ return sha256(data);
195
+ }
196
+ /**
197
+ * Computes the key URI of a given keypair.
198
+ * @param {string} id The fragment identifier (e.g. 'key-1').
199
+ * @param {string} [controller] The DID controller (e.g. 'did:btcr2:xyz').
200
+ * @returns {KeyIdentifier} A full DID fragment URI (e.g. 'did:btcr2:xyz#key-1')
201
+ */
202
+ static computeKeyUri(id, controller) {
203
+ // Concat the id to the controller and return
204
+ return `${controller}${id.startsWith('#') ? id : `#${id}`}`;
205
+ }
206
+ /**
207
+ * Computes a multibase-compliant URI from a key.
208
+ * @param key A SchnorrKeyPair, PublicKey, or multibase string
209
+ * @returns {string} A multibase URI (e.g. 'urn:mb:zQ3s...')
210
+ */
211
+ static toMultibaseUri(data) {
212
+ const multibase = data instanceof SchnorrKeyPair
213
+ ? data.publicKey.multibase
214
+ : data instanceof PublicKey
215
+ ? data.multibase
216
+ : data;
217
+ return `${MULTIBASE_URI_PREFIX}${multibase}`;
218
+ }
219
+ /**
220
+ * Initializes a singleton Btc1KeyManager instance.
221
+ * @param {SchnorrKeyPair} keys The keypair used to initialize the key manager.
222
+ * @returns {void}
223
+ */
224
+ static async initialize(keys, keyUri) {
225
+ if (!(keys instanceof SchnorrKeyPair)) {
226
+ keys = SchnorrKeyPair.fromJSON(keys);
227
+ }
228
+ // Check if the Btc1KeyManager instance is already initialized
229
+ if (Btc1KeyManager.#instance) {
230
+ Logger.warn('Btc1KeyManager global instance is already initialized.');
231
+ return Btc1KeyManager.#instance;
232
+ }
233
+ // Check if the keypair is provided
234
+ if (!keys) {
235
+ // Log a warning message if not provided
236
+ Logger.warn('keys not provided, generating ...');
237
+ }
238
+ // Generate a new keypair if not provided
239
+ keys ??= SchnorrKeyPair.generate();
240
+ // Initialize the singleton key manager with the keypair
241
+ Btc1KeyManager.#instance = new Btc1KeyManager({ keys });
242
+ // Import the keypair into the key store
243
+ await Btc1KeyManager.#instance.importKey(keys, keyUri, { active: true });
244
+ // Set the active key URI
245
+ Btc1KeyManager.#instance.activeKeyUri = keyUri;
246
+ // Log the active key URI
247
+ Logger.info(`KeyManager initialized with Active Key URI: ${Btc1KeyManager.#instance.activeKeyUri}`);
248
+ // Return the singleton instance
249
+ return Btc1KeyManager.#instance;
250
+ }
251
+ /**
252
+ * Retrieves a keypair from the key store using the provided key URI.
253
+ * @public
254
+ * @param {KeyIdentifier} keyUri The URI of the keypair to retrieve.
255
+ * @returns {Promise<SchnorrKeyPair | undefined>} The retrieved keypair, or undefined if not found.
256
+ */
257
+ static async getKeyPair(keyUri) {
258
+ // Use the active key URI if not provided
259
+ keyUri ??= Btc1KeyManager.#instance?.activeKeyUri;
260
+ // Instantiate a new Btc1KeyManager with the default key store
261
+ return await Btc1KeyManager.#instance?.getKey(keyUri);
262
+ }
263
+ async getKeySigner(keyUri, network) {
264
+ const multikey = await this.getKey(keyUri);
265
+ if (!multikey) {
266
+ throw new Btcr2KeyManagerError(`Key not found for URI: ${keyUri}`, 'KEY_NOT_FOUND');
267
+ }
268
+ return new Signer({ multikey, network });
269
+ }
270
+ }
271
+ export class Signer {
272
+ multikey;
273
+ network;
274
+ constructor(params) {
275
+ this.multikey = params.multikey;
276
+ this.network = params.network;
277
+ }
278
+ get publicKey() {
279
+ // Return the public key from the multikey
280
+ return this.multikey.publicKey.compressed;
281
+ }
282
+ sign(hash) {
283
+ return this.multikey.sign(hash, { scheme: 'ecdsa' });
284
+ }
285
+ ;
286
+ signSchnorr(hash) {
287
+ return this.multikey.sign(hash);
288
+ }
289
+ }
290
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/btcr2/key-manager/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/btcr2/key-manager/interface.ts"],"names":[],"mappings":""}