tenzro-wallet 0.1.0

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 (471) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +128 -0
  3. package/dist/balance/aggregator.d.ts +16 -0
  4. package/dist/balance/aggregator.d.ts.map +1 -0
  5. package/dist/balance/aggregator.js +73 -0
  6. package/dist/balance/aggregator.js.map +1 -0
  7. package/dist/balance/index.d.ts +3 -0
  8. package/dist/balance/index.d.ts.map +1 -0
  9. package/dist/balance/index.js +2 -0
  10. package/dist/balance/index.js.map +1 -0
  11. package/dist/consent/index.d.ts +3 -0
  12. package/dist/consent/index.d.ts.map +1 -0
  13. package/dist/consent/index.js +2 -0
  14. package/dist/consent/index.js.map +1 -0
  15. package/dist/consent/policy.d.ts +27 -0
  16. package/dist/consent/policy.d.ts.map +1 -0
  17. package/dist/consent/policy.js +121 -0
  18. package/dist/consent/policy.js.map +1 -0
  19. package/dist/crypto/eip1559.d.ts +53 -0
  20. package/dist/crypto/eip1559.d.ts.map +1 -0
  21. package/dist/crypto/eip1559.js +79 -0
  22. package/dist/crypto/eip1559.js.map +1 -0
  23. package/dist/crypto/keccak256.d.ts +20 -0
  24. package/dist/crypto/keccak256.d.ts.map +1 -0
  25. package/dist/crypto/keccak256.js +167 -0
  26. package/dist/crypto/keccak256.js.map +1 -0
  27. package/dist/crypto/rlp.d.ts +30 -0
  28. package/dist/crypto/rlp.d.ts.map +1 -0
  29. package/dist/crypto/rlp.js +165 -0
  30. package/dist/crypto/rlp.js.map +1 -0
  31. package/dist/crypto/sha256.d.ts +14 -0
  32. package/dist/crypto/sha256.d.ts.map +1 -0
  33. package/dist/crypto/sha256.js +33 -0
  34. package/dist/crypto/sha256.js.map +1 -0
  35. package/dist/crypto/solana.d.ts +86 -0
  36. package/dist/crypto/solana.d.ts.map +1 -0
  37. package/dist/crypto/solana.js +218 -0
  38. package/dist/crypto/solana.js.map +1 -0
  39. package/dist/custody/frost/backend.d.ts +59 -0
  40. package/dist/custody/frost/backend.d.ts.map +1 -0
  41. package/dist/custody/frost/backend.js +83 -0
  42. package/dist/custody/frost/backend.js.map +1 -0
  43. package/dist/custody/frost/coordinator.d.ts +148 -0
  44. package/dist/custody/frost/coordinator.d.ts.map +1 -0
  45. package/dist/custody/frost/coordinator.js +58 -0
  46. package/dist/custody/frost/coordinator.js.map +1 -0
  47. package/dist/custody/frost/ed25519-driver.d.ts +30 -0
  48. package/dist/custody/frost/ed25519-driver.d.ts.map +1 -0
  49. package/dist/custody/frost/ed25519-driver.js +76 -0
  50. package/dist/custody/frost/ed25519-driver.js.map +1 -0
  51. package/dist/custody/frost/http-adapter.d.ts +77 -0
  52. package/dist/custody/frost/http-adapter.d.ts.map +1 -0
  53. package/dist/custody/frost/http-adapter.js +168 -0
  54. package/dist/custody/frost/http-adapter.js.map +1 -0
  55. package/dist/custody/frost/hybrid-driver.d.ts +37 -0
  56. package/dist/custody/frost/hybrid-driver.d.ts.map +1 -0
  57. package/dist/custody/frost/hybrid-driver.js +60 -0
  58. package/dist/custody/frost/hybrid-driver.js.map +1 -0
  59. package/dist/custody/frost/index.d.ts +12 -0
  60. package/dist/custody/frost/index.d.ts.map +1 -0
  61. package/dist/custody/frost/index.js +6 -0
  62. package/dist/custody/frost/index.js.map +1 -0
  63. package/dist/custody/frost/secp256k1-driver.d.ts +26 -0
  64. package/dist/custody/frost/secp256k1-driver.d.ts.map +1 -0
  65. package/dist/custody/frost/secp256k1-driver.js +78 -0
  66. package/dist/custody/frost/secp256k1-driver.js.map +1 -0
  67. package/dist/custody/index.d.ts +9 -0
  68. package/dist/custody/index.d.ts.map +1 -0
  69. package/dist/custody/index.js +11 -0
  70. package/dist/custody/index.js.map +1 -0
  71. package/dist/custody/internal-mpc.d.ts +14 -0
  72. package/dist/custody/internal-mpc.d.ts.map +1 -0
  73. package/dist/custody/internal-mpc.js +40 -0
  74. package/dist/custody/internal-mpc.js.map +1 -0
  75. package/dist/custody/mldsa/coordinator.d.ts +63 -0
  76. package/dist/custody/mldsa/coordinator.d.ts.map +1 -0
  77. package/dist/custody/mldsa/coordinator.js +44 -0
  78. package/dist/custody/mldsa/coordinator.js.map +1 -0
  79. package/dist/custody/mldsa/driver.d.ts +23 -0
  80. package/dist/custody/mldsa/driver.d.ts.map +1 -0
  81. package/dist/custody/mldsa/driver.js +43 -0
  82. package/dist/custody/mldsa/driver.js.map +1 -0
  83. package/dist/custody/mldsa/http-adapter.d.ts +59 -0
  84. package/dist/custody/mldsa/http-adapter.d.ts.map +1 -0
  85. package/dist/custody/mldsa/http-adapter.js +103 -0
  86. package/dist/custody/mldsa/http-adapter.js.map +1 -0
  87. package/dist/custody/mldsa/index.d.ts +7 -0
  88. package/dist/custody/mldsa/index.d.ts.map +1 -0
  89. package/dist/custody/mldsa/index.js +4 -0
  90. package/dist/custody/mldsa/index.js.map +1 -0
  91. package/dist/custody/pairing/http-adapter.d.ts +40 -0
  92. package/dist/custody/pairing/http-adapter.d.ts.map +1 -0
  93. package/dist/custody/pairing/http-adapter.js +113 -0
  94. package/dist/custody/pairing/http-adapter.js.map +1 -0
  95. package/dist/custody/pairing/index.d.ts +10 -0
  96. package/dist/custody/pairing/index.d.ts.map +1 -0
  97. package/dist/custody/pairing/index.js +8 -0
  98. package/dist/custody/pairing/index.js.map +1 -0
  99. package/dist/custody/pairing/port.d.ts +121 -0
  100. package/dist/custody/pairing/port.d.ts.map +1 -0
  101. package/dist/custody/pairing/port.js +40 -0
  102. package/dist/custody/pairing/port.js.map +1 -0
  103. package/dist/custody/passkey-share/http-adapter.d.ts +77 -0
  104. package/dist/custody/passkey-share/http-adapter.d.ts.map +1 -0
  105. package/dist/custody/passkey-share/http-adapter.js +125 -0
  106. package/dist/custody/passkey-share/http-adapter.js.map +1 -0
  107. package/dist/custody/passkey-share/index.d.ts +7 -0
  108. package/dist/custody/passkey-share/index.d.ts.map +1 -0
  109. package/dist/custody/passkey-share/index.js +4 -0
  110. package/dist/custody/passkey-share/index.js.map +1 -0
  111. package/dist/custody/passkey-share/unwrapper.d.ts +174 -0
  112. package/dist/custody/passkey-share/unwrapper.d.ts.map +1 -0
  113. package/dist/custody/passkey-share/unwrapper.js +132 -0
  114. package/dist/custody/passkey-share/unwrapper.js.map +1 -0
  115. package/dist/custody/passkey-share/webauthn-adapter.d.ts +112 -0
  116. package/dist/custody/passkey-share/webauthn-adapter.d.ts.map +1 -0
  117. package/dist/custody/passkey-share/webauthn-adapter.js +150 -0
  118. package/dist/custody/passkey-share/webauthn-adapter.js.map +1 -0
  119. package/dist/custody/surface-key-id.d.ts +15 -0
  120. package/dist/custody/surface-key-id.d.ts.map +1 -0
  121. package/dist/custody/surface-key-id.js +25 -0
  122. package/dist/custody/surface-key-id.js.map +1 -0
  123. package/dist/dapp/eip6963.d.ts +64 -0
  124. package/dist/dapp/eip6963.d.ts.map +1 -0
  125. package/dist/dapp/eip6963.js +55 -0
  126. package/dist/dapp/eip6963.js.map +1 -0
  127. package/dist/dapp/index.d.ts +21 -0
  128. package/dist/dapp/index.d.ts.map +1 -0
  129. package/dist/dapp/index.js +24 -0
  130. package/dist/dapp/index.js.map +1 -0
  131. package/dist/identity/delegate-set.d.ts +57 -0
  132. package/dist/identity/delegate-set.d.ts.map +1 -0
  133. package/dist/identity/delegate-set.js +85 -0
  134. package/dist/identity/delegate-set.js.map +1 -0
  135. package/dist/identity/did.d.ts +17 -0
  136. package/dist/identity/did.d.ts.map +1 -0
  137. package/dist/identity/did.js +60 -0
  138. package/dist/identity/did.js.map +1 -0
  139. package/dist/identity/index.d.ts +14 -0
  140. package/dist/identity/index.d.ts.map +1 -0
  141. package/dist/identity/index.js +8 -0
  142. package/dist/identity/index.js.map +1 -0
  143. package/dist/identity/provision.d.ts +13 -0
  144. package/dist/identity/provision.d.ts.map +1 -0
  145. package/dist/identity/provision.js +151 -0
  146. package/dist/identity/provision.js.map +1 -0
  147. package/dist/identity/provisioning-http-adapter.d.ts +81 -0
  148. package/dist/identity/provisioning-http-adapter.d.ts.map +1 -0
  149. package/dist/identity/provisioning-http-adapter.js +114 -0
  150. package/dist/identity/provisioning-http-adapter.js.map +1 -0
  151. package/dist/identity/recovery-http-adapter.d.ts +83 -0
  152. package/dist/identity/recovery-http-adapter.d.ts.map +1 -0
  153. package/dist/identity/recovery-http-adapter.js +139 -0
  154. package/dist/identity/recovery-http-adapter.js.map +1 -0
  155. package/dist/identity/wallet-new.d.ts +132 -0
  156. package/dist/identity/wallet-new.d.ts.map +1 -0
  157. package/dist/identity/wallet-new.js +94 -0
  158. package/dist/identity/wallet-new.js.map +1 -0
  159. package/dist/identity/wallet-recover.d.ts +116 -0
  160. package/dist/identity/wallet-recover.d.ts.map +1 -0
  161. package/dist/identity/wallet-recover.js +95 -0
  162. package/dist/identity/wallet-recover.js.map +1 -0
  163. package/dist/index.d.ts +12 -0
  164. package/dist/index.d.ts.map +1 -0
  165. package/dist/index.js +11 -0
  166. package/dist/index.js.map +1 -0
  167. package/dist/kernel.d.ts +119 -0
  168. package/dist/kernel.d.ts.map +1 -0
  169. package/dist/kernel.js +144 -0
  170. package/dist/kernel.js.map +1 -0
  171. package/dist/ports/adapters/tenzro-identity-adapter.d.ts +44 -0
  172. package/dist/ports/adapters/tenzro-identity-adapter.d.ts.map +1 -0
  173. package/dist/ports/adapters/tenzro-identity-adapter.js +60 -0
  174. package/dist/ports/adapters/tenzro-identity-adapter.js.map +1 -0
  175. package/dist/ports/adapters/tenzro-sdk-adapter.d.ts +86 -0
  176. package/dist/ports/adapters/tenzro-sdk-adapter.d.ts.map +1 -0
  177. package/dist/ports/adapters/tenzro-sdk-adapter.js +100 -0
  178. package/dist/ports/adapters/tenzro-sdk-adapter.js.map +1 -0
  179. package/dist/ports/agent/acp.d.ts +66 -0
  180. package/dist/ports/agent/acp.d.ts.map +1 -0
  181. package/dist/ports/agent/acp.js +27 -0
  182. package/dist/ports/agent/acp.js.map +1 -0
  183. package/dist/ports/agent/adapters/acp-adapter.d.ts +67 -0
  184. package/dist/ports/agent/adapters/acp-adapter.d.ts.map +1 -0
  185. package/dist/ports/agent/adapters/acp-adapter.js +70 -0
  186. package/dist/ports/agent/adapters/acp-adapter.js.map +1 -0
  187. package/dist/ports/agent/adapters/agent-bond-adapter.d.ts +31 -0
  188. package/dist/ports/agent/adapters/agent-bond-adapter.d.ts.map +1 -0
  189. package/dist/ports/agent/adapters/agent-bond-adapter.js +82 -0
  190. package/dist/ports/agent/adapters/agent-bond-adapter.js.map +1 -0
  191. package/dist/ports/agent/adapters/agent-payment-adapter.d.ts +66 -0
  192. package/dist/ports/agent/adapters/agent-payment-adapter.d.ts.map +1 -0
  193. package/dist/ports/agent/adapters/agent-payment-adapter.js +75 -0
  194. package/dist/ports/agent/adapters/agent-payment-adapter.js.map +1 -0
  195. package/dist/ports/agent/adapters/ap2-adapter.d.ts +28 -0
  196. package/dist/ports/agent/adapters/ap2-adapter.d.ts.map +1 -0
  197. package/dist/ports/agent/adapters/ap2-adapter.js +97 -0
  198. package/dist/ports/agent/adapters/ap2-adapter.js.map +1 -0
  199. package/dist/ports/agent/adapters/auth-approval-adapter.d.ts +26 -0
  200. package/dist/ports/agent/adapters/auth-approval-adapter.d.ts.map +1 -0
  201. package/dist/ports/agent/adapters/auth-approval-adapter.js +37 -0
  202. package/dist/ports/agent/adapters/auth-approval-adapter.js.map +1 -0
  203. package/dist/ports/agent/adapters/erc7802-adapter.d.ts +30 -0
  204. package/dist/ports/agent/adapters/erc7802-adapter.d.ts.map +1 -0
  205. package/dist/ports/agent/adapters/erc7802-adapter.js +60 -0
  206. package/dist/ports/agent/adapters/erc7802-adapter.js.map +1 -0
  207. package/dist/ports/agent/adapters/erc8004-adapter.d.ts +54 -0
  208. package/dist/ports/agent/adapters/erc8004-adapter.d.ts.map +1 -0
  209. package/dist/ports/agent/adapters/erc8004-adapter.js +53 -0
  210. package/dist/ports/agent/adapters/erc8004-adapter.js.map +1 -0
  211. package/dist/ports/agent/adapters/escrow-adapter.d.ts +33 -0
  212. package/dist/ports/agent/adapters/escrow-adapter.d.ts.map +1 -0
  213. package/dist/ports/agent/adapters/escrow-adapter.js +109 -0
  214. package/dist/ports/agent/adapters/escrow-adapter.js.map +1 -0
  215. package/dist/ports/agent/adapters/fee-estimator-adapter.d.ts +31 -0
  216. package/dist/ports/agent/adapters/fee-estimator-adapter.d.ts.map +1 -0
  217. package/dist/ports/agent/adapters/fee-estimator-adapter.js +103 -0
  218. package/dist/ports/agent/adapters/fee-estimator-adapter.js.map +1 -0
  219. package/dist/ports/agent/adapters/htlc-escrow-adapter.d.ts +68 -0
  220. package/dist/ports/agent/adapters/htlc-escrow-adapter.d.ts.map +1 -0
  221. package/dist/ports/agent/adapters/htlc-escrow-adapter.js +131 -0
  222. package/dist/ports/agent/adapters/htlc-escrow-adapter.js.map +1 -0
  223. package/dist/ports/agent/adapters/insurance-adapter.d.ts +32 -0
  224. package/dist/ports/agent/adapters/insurance-adapter.d.ts.map +1 -0
  225. package/dist/ports/agent/adapters/insurance-adapter.js +103 -0
  226. package/dist/ports/agent/adapters/insurance-adapter.js.map +1 -0
  227. package/dist/ports/agent/adapters/lifecycle-adapter.d.ts +26 -0
  228. package/dist/ports/agent/adapters/lifecycle-adapter.d.ts.map +1 -0
  229. package/dist/ports/agent/adapters/lifecycle-adapter.js +136 -0
  230. package/dist/ports/agent/adapters/lifecycle-adapter.js.map +1 -0
  231. package/dist/ports/agent/adapters/nanopayment-adapter.d.ts +62 -0
  232. package/dist/ports/agent/adapters/nanopayment-adapter.d.ts.map +1 -0
  233. package/dist/ports/agent/adapters/nanopayment-adapter.js +76 -0
  234. package/dist/ports/agent/adapters/nanopayment-adapter.js.map +1 -0
  235. package/dist/ports/agent/adapters/payment-rails-adapter.d.ts +67 -0
  236. package/dist/ports/agent/adapters/payment-rails-adapter.d.ts.map +1 -0
  237. package/dist/ports/agent/adapters/payment-rails-adapter.js +108 -0
  238. package/dist/ports/agent/adapters/payment-rails-adapter.js.map +1 -0
  239. package/dist/ports/agent/adapters/principal-chain-adapter.d.ts +23 -0
  240. package/dist/ports/agent/adapters/principal-chain-adapter.d.ts.map +1 -0
  241. package/dist/ports/agent/adapters/principal-chain-adapter.js +156 -0
  242. package/dist/ports/agent/adapters/principal-chain-adapter.js.map +1 -0
  243. package/dist/ports/agent/adapters/session-key-adapter.d.ts +45 -0
  244. package/dist/ports/agent/adapters/session-key-adapter.d.ts.map +1 -0
  245. package/dist/ports/agent/adapters/session-key-adapter.js +80 -0
  246. package/dist/ports/agent/adapters/session-key-adapter.js.map +1 -0
  247. package/dist/ports/agent/adapters/tee-attestation-adapter.d.ts +32 -0
  248. package/dist/ports/agent/adapters/tee-attestation-adapter.d.ts.map +1 -0
  249. package/dist/ports/agent/adapters/tee-attestation-adapter.js +38 -0
  250. package/dist/ports/agent/adapters/tee-attestation-adapter.js.map +1 -0
  251. package/dist/ports/agent/agent-bond.d.ts +80 -0
  252. package/dist/ports/agent/agent-bond.d.ts.map +1 -0
  253. package/dist/ports/agent/agent-bond.js +23 -0
  254. package/dist/ports/agent/agent-bond.js.map +1 -0
  255. package/dist/ports/agent/agent-payment.d.ts +72 -0
  256. package/dist/ports/agent/agent-payment.d.ts.map +1 -0
  257. package/dist/ports/agent/agent-payment.js +17 -0
  258. package/dist/ports/agent/agent-payment.js.map +1 -0
  259. package/dist/ports/agent/ap2.d.ts +104 -0
  260. package/dist/ports/agent/ap2.d.ts.map +1 -0
  261. package/dist/ports/agent/ap2.js +22 -0
  262. package/dist/ports/agent/ap2.js.map +1 -0
  263. package/dist/ports/agent/auth-approval.d.ts +40 -0
  264. package/dist/ports/agent/auth-approval.d.ts.map +1 -0
  265. package/dist/ports/agent/auth-approval.js +23 -0
  266. package/dist/ports/agent/auth-approval.js.map +1 -0
  267. package/dist/ports/agent/erc7802.d.ts +94 -0
  268. package/dist/ports/agent/erc7802.d.ts.map +1 -0
  269. package/dist/ports/agent/erc7802.js +30 -0
  270. package/dist/ports/agent/erc7802.js.map +1 -0
  271. package/dist/ports/agent/erc8004.d.ts +57 -0
  272. package/dist/ports/agent/erc8004.d.ts.map +1 -0
  273. package/dist/ports/agent/erc8004.js +20 -0
  274. package/dist/ports/agent/erc8004.js.map +1 -0
  275. package/dist/ports/agent/escrow.d.ts +74 -0
  276. package/dist/ports/agent/escrow.d.ts.map +1 -0
  277. package/dist/ports/agent/escrow.js +18 -0
  278. package/dist/ports/agent/escrow.js.map +1 -0
  279. package/dist/ports/agent/fee-estimator.d.ts +71 -0
  280. package/dist/ports/agent/fee-estimator.d.ts.map +1 -0
  281. package/dist/ports/agent/fee-estimator.js +21 -0
  282. package/dist/ports/agent/fee-estimator.js.map +1 -0
  283. package/dist/ports/agent/htlc-escrow.d.ts +94 -0
  284. package/dist/ports/agent/htlc-escrow.d.ts.map +1 -0
  285. package/dist/ports/agent/htlc-escrow.js +25 -0
  286. package/dist/ports/agent/htlc-escrow.js.map +1 -0
  287. package/dist/ports/agent/index.d.ts +58 -0
  288. package/dist/ports/agent/index.d.ts.map +1 -0
  289. package/dist/ports/agent/index.js +24 -0
  290. package/dist/ports/agent/index.js.map +1 -0
  291. package/dist/ports/agent/insurance.d.ts +65 -0
  292. package/dist/ports/agent/insurance.d.ts.map +1 -0
  293. package/dist/ports/agent/insurance.js +18 -0
  294. package/dist/ports/agent/insurance.js.map +1 -0
  295. package/dist/ports/agent/lifecycle.d.ts +69 -0
  296. package/dist/ports/agent/lifecycle.d.ts.map +1 -0
  297. package/dist/ports/agent/lifecycle.js +17 -0
  298. package/dist/ports/agent/lifecycle.js.map +1 -0
  299. package/dist/ports/agent/nanopayment.d.ts +72 -0
  300. package/dist/ports/agent/nanopayment.d.ts.map +1 -0
  301. package/dist/ports/agent/nanopayment.js +16 -0
  302. package/dist/ports/agent/nanopayment.js.map +1 -0
  303. package/dist/ports/agent/payment-rails.d.ts +140 -0
  304. package/dist/ports/agent/payment-rails.d.ts.map +1 -0
  305. package/dist/ports/agent/payment-rails.js +25 -0
  306. package/dist/ports/agent/payment-rails.js.map +1 -0
  307. package/dist/ports/agent/principal-chain.d.ts +95 -0
  308. package/dist/ports/agent/principal-chain.d.ts.map +1 -0
  309. package/dist/ports/agent/principal-chain.js +16 -0
  310. package/dist/ports/agent/principal-chain.js.map +1 -0
  311. package/dist/ports/agent/session-key.d.ts +94 -0
  312. package/dist/ports/agent/session-key.d.ts.map +1 -0
  313. package/dist/ports/agent/session-key.js +31 -0
  314. package/dist/ports/agent/session-key.js.map +1 -0
  315. package/dist/ports/agent/tee-attestation.d.ts +51 -0
  316. package/dist/ports/agent/tee-attestation.d.ts.map +1 -0
  317. package/dist/ports/agent/tee-attestation.js +28 -0
  318. package/dist/ports/agent/tee-attestation.js.map +1 -0
  319. package/dist/ports/bridge/adapters/bridge-adapter-base.d.ts +47 -0
  320. package/dist/ports/bridge/adapters/bridge-adapter-base.d.ts.map +1 -0
  321. package/dist/ports/bridge/adapters/bridge-adapter-base.js +144 -0
  322. package/dist/ports/bridge/adapters/bridge-adapter-base.js.map +1 -0
  323. package/dist/ports/bridge/adapters/canton-bridge-adapter.d.ts +30 -0
  324. package/dist/ports/bridge/adapters/canton-bridge-adapter.d.ts.map +1 -0
  325. package/dist/ports/bridge/adapters/canton-bridge-adapter.js +31 -0
  326. package/dist/ports/bridge/adapters/canton-bridge-adapter.js.map +1 -0
  327. package/dist/ports/bridge/adapters/ccip-adapter.d.ts +30 -0
  328. package/dist/ports/bridge/adapters/ccip-adapter.d.ts.map +1 -0
  329. package/dist/ports/bridge/adapters/ccip-adapter.js +31 -0
  330. package/dist/ports/bridge/adapters/ccip-adapter.js.map +1 -0
  331. package/dist/ports/bridge/adapters/debridge-adapter.d.ts +27 -0
  332. package/dist/ports/bridge/adapters/debridge-adapter.d.ts.map +1 -0
  333. package/dist/ports/bridge/adapters/debridge-adapter.js +28 -0
  334. package/dist/ports/bridge/adapters/debridge-adapter.js.map +1 -0
  335. package/dist/ports/bridge/adapters/layerzero-adapter.d.ts +30 -0
  336. package/dist/ports/bridge/adapters/layerzero-adapter.d.ts.map +1 -0
  337. package/dist/ports/bridge/adapters/layerzero-adapter.js +31 -0
  338. package/dist/ports/bridge/adapters/layerzero-adapter.js.map +1 -0
  339. package/dist/ports/bridge/adapters/lifi-adapter.d.ts +48 -0
  340. package/dist/ports/bridge/adapters/lifi-adapter.d.ts.map +1 -0
  341. package/dist/ports/bridge/adapters/lifi-adapter.js +49 -0
  342. package/dist/ports/bridge/adapters/lifi-adapter.js.map +1 -0
  343. package/dist/ports/bridge/adapters/wormhole-adapter.d.ts +26 -0
  344. package/dist/ports/bridge/adapters/wormhole-adapter.d.ts.map +1 -0
  345. package/dist/ports/bridge/adapters/wormhole-adapter.js +27 -0
  346. package/dist/ports/bridge/adapters/wormhole-adapter.js.map +1 -0
  347. package/dist/ports/bridge/bridge.d.ts +123 -0
  348. package/dist/ports/bridge/bridge.d.ts.map +1 -0
  349. package/dist/ports/bridge/bridge.js +20 -0
  350. package/dist/ports/bridge/bridge.js.map +1 -0
  351. package/dist/ports/bridge/index.d.ts +13 -0
  352. package/dist/ports/bridge/index.d.ts.map +1 -0
  353. package/dist/ports/bridge/index.js +11 -0
  354. package/dist/ports/bridge/index.js.map +1 -0
  355. package/dist/ports/canton/adapters/ledger-api-adapter.d.ts +52 -0
  356. package/dist/ports/canton/adapters/ledger-api-adapter.d.ts.map +1 -0
  357. package/dist/ports/canton/adapters/ledger-api-adapter.js +232 -0
  358. package/dist/ports/canton/adapters/ledger-api-adapter.js.map +1 -0
  359. package/dist/ports/canton/canton-identity.d.ts +60 -0
  360. package/dist/ports/canton/canton-identity.d.ts.map +1 -0
  361. package/dist/ports/canton/canton-identity.js +28 -0
  362. package/dist/ports/canton/canton-identity.js.map +1 -0
  363. package/dist/ports/canton/canton-validator.d.ts +182 -0
  364. package/dist/ports/canton/canton-validator.d.ts.map +1 -0
  365. package/dist/ports/canton/canton-validator.js +39 -0
  366. package/dist/ports/canton/canton-validator.js.map +1 -0
  367. package/dist/ports/canton/fingerprint.d.ts +24 -0
  368. package/dist/ports/canton/fingerprint.d.ts.map +1 -0
  369. package/dist/ports/canton/fingerprint.js +31 -0
  370. package/dist/ports/canton/fingerprint.js.map +1 -0
  371. package/dist/ports/canton/hash.d.ts +37 -0
  372. package/dist/ports/canton/hash.d.ts.map +1 -0
  373. package/dist/ports/canton/hash.js +68 -0
  374. package/dist/ports/canton/hash.js.map +1 -0
  375. package/dist/ports/canton/http.d.ts +64 -0
  376. package/dist/ports/canton/http.d.ts.map +1 -0
  377. package/dist/ports/canton/http.js +177 -0
  378. package/dist/ports/canton/http.js.map +1 -0
  379. package/dist/ports/cross-vm.d.ts +79 -0
  380. package/dist/ports/cross-vm.d.ts.map +1 -0
  381. package/dist/ports/cross-vm.js +81 -0
  382. package/dist/ports/cross-vm.js.map +1 -0
  383. package/dist/ports/index.d.ts +18 -0
  384. package/dist/ports/index.d.ts.map +1 -0
  385. package/dist/ports/index.js +11 -0
  386. package/dist/ports/index.js.map +1 -0
  387. package/dist/ports/tenzro-identity.d.ts +29 -0
  388. package/dist/ports/tenzro-identity.d.ts.map +1 -0
  389. package/dist/ports/tenzro-identity.js +19 -0
  390. package/dist/ports/tenzro-identity.js.map +1 -0
  391. package/dist/ports/tenzro-rpc.d.ts +79 -0
  392. package/dist/ports/tenzro-rpc.d.ts.map +1 -0
  393. package/dist/ports/tenzro-rpc.js +21 -0
  394. package/dist/ports/tenzro-rpc.js.map +1 -0
  395. package/dist/router/index.d.ts +3 -0
  396. package/dist/router/index.d.ts.map +1 -0
  397. package/dist/router/index.js +2 -0
  398. package/dist/router/index.js.map +1 -0
  399. package/dist/router/route.d.ts +17 -0
  400. package/dist/router/route.d.ts.map +1 -0
  401. package/dist/router/route.js +78 -0
  402. package/dist/router/route.js.map +1 -0
  403. package/dist/settlement/nanopayment-flow.d.ts +48 -0
  404. package/dist/settlement/nanopayment-flow.d.ts.map +1 -0
  405. package/dist/settlement/nanopayment-flow.js +111 -0
  406. package/dist/settlement/nanopayment-flow.js.map +1 -0
  407. package/dist/surfaces/canton-external.d.ts +43 -0
  408. package/dist/surfaces/canton-external.d.ts.map +1 -0
  409. package/dist/surfaces/canton-external.js +252 -0
  410. package/dist/surfaces/canton-external.js.map +1 -0
  411. package/dist/surfaces/canton-internal.d.ts +34 -0
  412. package/dist/surfaces/canton-internal.d.ts.map +1 -0
  413. package/dist/surfaces/canton-internal.js +163 -0
  414. package/dist/surfaces/canton-internal.js.map +1 -0
  415. package/dist/surfaces/canton-onboarding.d.ts +64 -0
  416. package/dist/surfaces/canton-onboarding.d.ts.map +1 -0
  417. package/dist/surfaces/canton-onboarding.js +113 -0
  418. package/dist/surfaces/canton-onboarding.js.map +1 -0
  419. package/dist/surfaces/evm-on-tenzro.d.ts +29 -0
  420. package/dist/surfaces/evm-on-tenzro.d.ts.map +1 -0
  421. package/dist/surfaces/evm-on-tenzro.js +226 -0
  422. package/dist/surfaces/evm-on-tenzro.js.map +1 -0
  423. package/dist/surfaces/index.d.ts +13 -0
  424. package/dist/surfaces/index.d.ts.map +1 -0
  425. package/dist/surfaces/index.js +7 -0
  426. package/dist/surfaces/index.js.map +1 -0
  427. package/dist/surfaces/svm-on-tenzro.d.ts +24 -0
  428. package/dist/surfaces/svm-on-tenzro.d.ts.map +1 -0
  429. package/dist/surfaces/svm-on-tenzro.js +238 -0
  430. package/dist/surfaces/svm-on-tenzro.js.map +1 -0
  431. package/dist/surfaces/tenzro-native.d.ts +45 -0
  432. package/dist/surfaces/tenzro-native.d.ts.map +1 -0
  433. package/dist/surfaces/tenzro-native.js +299 -0
  434. package/dist/surfaces/tenzro-native.js.map +1 -0
  435. package/dist/surfaces/util.d.ts +18 -0
  436. package/dist/surfaces/util.d.ts.map +1 -0
  437. package/dist/surfaces/util.js +36 -0
  438. package/dist/surfaces/util.js.map +1 -0
  439. package/dist/types/asset.d.ts +43 -0
  440. package/dist/types/asset.d.ts.map +1 -0
  441. package/dist/types/asset.js +13 -0
  442. package/dist/types/asset.js.map +1 -0
  443. package/dist/types/consent.d.ts +46 -0
  444. package/dist/types/consent.d.ts.map +1 -0
  445. package/dist/types/consent.js +18 -0
  446. package/dist/types/consent.js.map +1 -0
  447. package/dist/types/identity.d.ts +115 -0
  448. package/dist/types/identity.d.ts.map +1 -0
  449. package/dist/types/identity.js +12 -0
  450. package/dist/types/identity.js.map +1 -0
  451. package/dist/types/index.d.ts +10 -0
  452. package/dist/types/index.d.ts.map +1 -0
  453. package/dist/types/index.js +3 -0
  454. package/dist/types/index.js.map +1 -0
  455. package/dist/types/intent.d.ts +132 -0
  456. package/dist/types/intent.d.ts.map +1 -0
  457. package/dist/types/intent.js +8 -0
  458. package/dist/types/intent.js.map +1 -0
  459. package/dist/types/signing-driver.d.ts +48 -0
  460. package/dist/types/signing-driver.d.ts.map +1 -0
  461. package/dist/types/signing-driver.js +9 -0
  462. package/dist/types/signing-driver.js.map +1 -0
  463. package/dist/types/surface-module.d.ts +38 -0
  464. package/dist/types/surface-module.d.ts.map +1 -0
  465. package/dist/types/surface-module.js +19 -0
  466. package/dist/types/surface-module.js.map +1 -0
  467. package/dist/types/surface.d.ts +17 -0
  468. package/dist/types/surface.d.ts.map +1 -0
  469. package/dist/types/surface.js +28 -0
  470. package/dist/types/surface.js.map +1 -0
  471. package/package.json +84 -0
@@ -0,0 +1,64 @@
1
+ /**
2
+ * EIP-6963 announcement payload builder.
3
+ *
4
+ * EIP-6963 specifies how a wallet announces itself to dApps in the
5
+ * browser-extension form factor: the wallet dispatches an
6
+ * `eip6963:announceProvider` event carrying a `{ info, provider }` detail,
7
+ * and listens for `eip6963:requestProvider` to re-announce on demand.
8
+ *
9
+ * Per DESIGN.md §11.6 (resolved), Tenzro Wallet uses EIP-6963 in-page
10
+ * conventions until a Canton CIP for multi-provider discovery lands. The
11
+ * actual `window.dispatchEvent` lives in the browser-extension package
12
+ * (`@tenzro/wallet-extension`, M6) — this module only builds the
13
+ * payload so the announcement can be unit-tested without a DOM and
14
+ * re-used across form factors.
15
+ *
16
+ * The default `rdns` is sourced from `tenzro-sdk`'s `TENZRO_PROVIDER_RDNS`
17
+ * constant — the SDK's `discoverEip6963Provider()` filters on that exact
18
+ * value, so importing it here keeps the announce side and the consume side
19
+ * aligned by construction. If the SDK ever moves the RDNS, the kernel
20
+ * announcement moves with it without a code change here.
21
+ *
22
+ * Spec: https://eips.ethereum.org/EIPS/eip-6963
23
+ */
24
+ /**
25
+ * The `info` half of an EIP-6963 announcement. The `provider` half is the
26
+ * EIP-1193 object the extension injects; the kernel doesn't construct
27
+ * that — the extension does.
28
+ */
29
+ export interface Eip6963ProviderInfo {
30
+ /**
31
+ * UUIDv4 stable across announcements within a page. Per spec, dApps
32
+ * may treat this as a session-scoped wallet identity.
33
+ */
34
+ readonly uuid: string;
35
+ /** Human-readable wallet name displayed in selector UIs. */
36
+ readonly name: string;
37
+ /** Reverse-DNS namespace owned by the wallet vendor. */
38
+ readonly rdns: string;
39
+ /** `data:image/svg+xml;base64,...` (or PNG) wallet icon. */
40
+ readonly icon: string;
41
+ }
42
+ export interface Eip6963AnnouncementInput {
43
+ readonly uuid: string;
44
+ /** Defaults to "Tenzro Wallet". */
45
+ readonly name?: string;
46
+ /**
47
+ * Defaults to the SDK's `TENZRO_PROVIDER_RDNS` constant
48
+ * (`network.tenzro.wallet`) — the same value `discoverEip6963Provider()`
49
+ * filters on. Override only for staging / preview builds.
50
+ */
51
+ readonly rdns?: string;
52
+ /** Required — no built-in default; the extension supplies the asset. */
53
+ readonly icon: string;
54
+ }
55
+ /**
56
+ * Build the `info` payload for an `eip6963:announceProvider` event. Pure —
57
+ * no DOM access, no side effects. The browser-extension package consumes
58
+ * this and pairs it with the EIP-1193 provider object before dispatch.
59
+ */
60
+ export declare function buildEip6963Announcement(input: Eip6963AnnouncementInput): Eip6963ProviderInfo;
61
+ /** EIP-6963 event names — exported as constants so consumers don't typo. */
62
+ export declare const EIP6963_ANNOUNCE_EVENT = "eip6963:announceProvider";
63
+ export declare const EIP6963_REQUEST_EVENT = "eip6963:requestProvider";
64
+ //# sourceMappingURL=eip6963.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip6963.d.ts","sourceRoot":"","sources":["../../src/dapp/eip6963.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAQD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAiB7F;AAED,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,qBAAqB,4BAA4B,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * EIP-6963 announcement payload builder.
3
+ *
4
+ * EIP-6963 specifies how a wallet announces itself to dApps in the
5
+ * browser-extension form factor: the wallet dispatches an
6
+ * `eip6963:announceProvider` event carrying a `{ info, provider }` detail,
7
+ * and listens for `eip6963:requestProvider` to re-announce on demand.
8
+ *
9
+ * Per DESIGN.md §11.6 (resolved), Tenzro Wallet uses EIP-6963 in-page
10
+ * conventions until a Canton CIP for multi-provider discovery lands. The
11
+ * actual `window.dispatchEvent` lives in the browser-extension package
12
+ * (`@tenzro/wallet-extension`, M6) — this module only builds the
13
+ * payload so the announcement can be unit-tested without a DOM and
14
+ * re-used across form factors.
15
+ *
16
+ * The default `rdns` is sourced from `tenzro-sdk`'s `TENZRO_PROVIDER_RDNS`
17
+ * constant — the SDK's `discoverEip6963Provider()` filters on that exact
18
+ * value, so importing it here keeps the announce side and the consume side
19
+ * aligned by construction. If the SDK ever moves the RDNS, the kernel
20
+ * announcement moves with it without a code change here.
21
+ *
22
+ * Spec: https://eips.ethereum.org/EIPS/eip-6963
23
+ */
24
+ import { TENZRO_PROVIDER_RDNS } from 'tenzro-sdk';
25
+ /** Tenzro defaults — kernel-default name + rdns matching the docs site. */
26
+ const DEFAULT_NAME = 'Tenzro Wallet';
27
+ const DEFAULT_RDNS = TENZRO_PROVIDER_RDNS;
28
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
29
+ /**
30
+ * Build the `info` payload for an `eip6963:announceProvider` event. Pure —
31
+ * no DOM access, no side effects. The browser-extension package consumes
32
+ * this and pairs it with the EIP-1193 provider object before dispatch.
33
+ */
34
+ export function buildEip6963Announcement(input) {
35
+ if (!UUID_RE.test(input.uuid)) {
36
+ throw new Error(`buildEip6963Announcement: invalid uuid "${input.uuid}" — must be UUIDv1–v5`);
37
+ }
38
+ if (!input.icon || !/^data:image\/(svg\+xml|png|jpeg|webp)/i.test(input.icon)) {
39
+ throw new Error('buildEip6963Announcement: icon must be a data: URL with an image MIME type');
40
+ }
41
+ const rdns = input.rdns ?? DEFAULT_RDNS;
42
+ if (!/^[a-z0-9]+(\.[a-z0-9-]+)+$/i.test(rdns)) {
43
+ throw new Error(`buildEip6963Announcement: invalid rdns "${rdns}" — expected reverse-DNS form`);
44
+ }
45
+ return {
46
+ uuid: input.uuid,
47
+ name: input.name ?? DEFAULT_NAME,
48
+ rdns,
49
+ icon: input.icon,
50
+ };
51
+ }
52
+ /** EIP-6963 event names — exported as constants so consumers don't typo. */
53
+ export const EIP6963_ANNOUNCE_EVENT = 'eip6963:announceProvider';
54
+ export const EIP6963_REQUEST_EVENT = 'eip6963:requestProvider';
55
+ //# sourceMappingURL=eip6963.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip6963.js","sourceRoot":"","sources":["../../src/dapp/eip6963.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAmClD,2EAA2E;AAC3E,MAAM,YAAY,GAAG,eAAe,CAAC;AACrC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,OAAO,GAAG,4EAA4E,CAAC;AAE7F;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAA+B;IACtE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC;IACxC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,+BAA+B,CAAC,CAAC;IAClG,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,YAAY;QAChC,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * dApp-facing helpers — payload builders + event names + SDK browser-support
3
+ * re-exports. The actual provider injection lives in
4
+ * `@tenzro/wallet-extension` (M6); the kernel only ships the parts that are
5
+ * pure / DOM-free / unit-testable plus a re-export of the SDK-supplied
6
+ * consume-side helpers so dApp-host code in this repo can pull from one
7
+ * place.
8
+ *
9
+ * Why the re-export lives here: the SDK provides
10
+ * `discoverEip6963Provider` + `TenzroNotInstalledError` +
11
+ * `TENZRO_PROVIDER_RDNS` as the consumer-side counterpart to the
12
+ * announce-side builder in this folder. Co-locating them keeps "the kernel
13
+ * is the only thing that touches `tenzro-sdk`" rule intact (any host that
14
+ * just needs to *consume* an injected provider can depend on the kernel
15
+ * instead of a second SDK install).
16
+ */
17
+ export { buildEip6963Announcement, EIP6963_ANNOUNCE_EVENT, EIP6963_REQUEST_EVENT, } from './eip6963.js';
18
+ export type { Eip6963ProviderInfo, Eip6963AnnouncementInput, } from './eip6963.js';
19
+ export { TENZRO_PROVIDER_RDNS, discoverEip6963Provider, TenzroNotInstalledError, Eip1193Transport, } from 'tenzro-sdk';
20
+ export type { EIP1193Provider, EIP6963ProviderInfo, EIP6963ProviderDetail, RpcTransport, } from 'tenzro-sdk';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dapp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAOtB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,GACb,MAAM,YAAY,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * dApp-facing helpers — payload builders + event names + SDK browser-support
3
+ * re-exports. The actual provider injection lives in
4
+ * `@tenzro/wallet-extension` (M6); the kernel only ships the parts that are
5
+ * pure / DOM-free / unit-testable plus a re-export of the SDK-supplied
6
+ * consume-side helpers so dApp-host code in this repo can pull from one
7
+ * place.
8
+ *
9
+ * Why the re-export lives here: the SDK provides
10
+ * `discoverEip6963Provider` + `TenzroNotInstalledError` +
11
+ * `TENZRO_PROVIDER_RDNS` as the consumer-side counterpart to the
12
+ * announce-side builder in this folder. Co-locating them keeps "the kernel
13
+ * is the only thing that touches `tenzro-sdk`" rule intact (any host that
14
+ * just needs to *consume* an injected provider can depend on the kernel
15
+ * instead of a second SDK install).
16
+ */
17
+ export { buildEip6963Announcement, EIP6963_ANNOUNCE_EVENT, EIP6963_REQUEST_EVENT, } from "./eip6963.js";
18
+ // SDK-supplied consume-side helpers — see `tenzro-sdk/dist/eip6963.d.ts`
19
+ // and `tenzro-sdk/dist/rpc.d.ts`. The kernel re-exports rather than
20
+ // re-implements so the SDK stays the single source of truth for the
21
+ // `network.tenzro.wallet` RDNS, the discovery timeout semantics, and the
22
+ // `Eip1193Transport` wire shape.
23
+ export { TENZRO_PROVIDER_RDNS, discoverEip6963Provider, TenzroNotInstalledError, Eip1193Transport, } from 'tenzro-sdk';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dapp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAMtB,yEAAyE;AACzE,oEAAoE;AACpE,oEAAoE;AACpE,yEAAyE;AACzE,iCAAiC;AACjC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * TDIP social-recovery delegate set — `k of n` configuration.
3
+ *
4
+ * Per DESIGN.md §4.3.6 + §11.10 (deferred): users designate `n` delegates
5
+ * (TDIP-rooted DIDs of trusted parties — friends, family, institutions) and
6
+ * recovery requires `k` of them to co-sign. We ship a 3-of-5 default that
7
+ * matches Argent's model, with k/n configurable at delegate-set creation.
8
+ *
9
+ * The kernel exposes the *shape* + validation here; the actual recovery
10
+ * flow (UI, delegate-onboarding, signature collection) lives in the
11
+ * passkey-quorum custody surface (M5.5).
12
+ *
13
+ * Constraints:
14
+ * - 1 ≤ k ≤ n
15
+ * - n ≤ 7 (exchange-grade; UX gets unwieldy beyond this — ship a higher
16
+ * cap only when there's a documented enterprise need)
17
+ * - delegates list contains exactly `n` distinct DIDs
18
+ * - the wallet's own DID cannot appear in the delegate list (prevents
19
+ * a self-recovery loop where the wallet is also a delegate of itself)
20
+ */
21
+ import type { TdipDid } from '../types/identity.js';
22
+ export interface DelegateSetConfig {
23
+ readonly k: number;
24
+ readonly n: number;
25
+ /** Exactly `n` distinct delegate DIDs. Order is the canonical signing order. */
26
+ readonly delegates: readonly TdipDid[];
27
+ }
28
+ /** Argent-style default. */
29
+ export declare const DELEGATE_SET_DEFAULT_K = 3;
30
+ export declare const DELEGATE_SET_DEFAULT_N = 5;
31
+ export declare const DELEGATE_SET_MAX_N = 7;
32
+ export interface DelegateSetSizeOption {
33
+ readonly k: number;
34
+ readonly n: number;
35
+ readonly label: string;
36
+ readonly tier: 'friendly' | 'standard' | 'exchange-grade';
37
+ }
38
+ /**
39
+ * UX-validated options the social-recovery UI offers. The user can also
40
+ * roll a custom k/n inside the constraints. These three are the curated
41
+ * presets.
42
+ */
43
+ export declare const DELEGATE_SET_OPTIONS: readonly DelegateSetSizeOption[];
44
+ /**
45
+ * Validate a `DelegateSetConfig` against the recovery rules. Returns the
46
+ * config unchanged on success; throws with a specific reason otherwise.
47
+ *
48
+ * `selfDid` is the wallet's own DID; if provided, the validator rejects
49
+ * configs where the wallet is in its own delegate list.
50
+ */
51
+ export declare function validateDelegateSet(cfg: DelegateSetConfig, selfDid?: TdipDid): DelegateSetConfig;
52
+ /**
53
+ * Build the default 3-of-5 delegate set from a list of candidate delegate
54
+ * DIDs. Throws if fewer than 5 delegates are supplied.
55
+ */
56
+ export declare function defaultDelegateSet(delegates: readonly TdipDid[], selfDid?: TdipDid): DelegateSetConfig;
57
+ //# sourceMappingURL=delegate-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate-set.d.ts","sourceRoot":"","sources":["../../src/identity/delegate-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;CACxC;AAED,4BAA4B;AAC5B,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;CAC3D;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,qBAAqB,EAIhE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAkChG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,OAAO,EAAE,EAC7B,OAAO,CAAC,EAAE,OAAO,GAChB,iBAAiB,CAcnB"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * TDIP social-recovery delegate set — `k of n` configuration.
3
+ *
4
+ * Per DESIGN.md §4.3.6 + §11.10 (deferred): users designate `n` delegates
5
+ * (TDIP-rooted DIDs of trusted parties — friends, family, institutions) and
6
+ * recovery requires `k` of them to co-sign. We ship a 3-of-5 default that
7
+ * matches Argent's model, with k/n configurable at delegate-set creation.
8
+ *
9
+ * The kernel exposes the *shape* + validation here; the actual recovery
10
+ * flow (UI, delegate-onboarding, signature collection) lives in the
11
+ * passkey-quorum custody surface (M5.5).
12
+ *
13
+ * Constraints:
14
+ * - 1 ≤ k ≤ n
15
+ * - n ≤ 7 (exchange-grade; UX gets unwieldy beyond this — ship a higher
16
+ * cap only when there's a documented enterprise need)
17
+ * - delegates list contains exactly `n` distinct DIDs
18
+ * - the wallet's own DID cannot appear in the delegate list (prevents
19
+ * a self-recovery loop where the wallet is also a delegate of itself)
20
+ */
21
+ /** Argent-style default. */
22
+ export const DELEGATE_SET_DEFAULT_K = 3;
23
+ export const DELEGATE_SET_DEFAULT_N = 5;
24
+ export const DELEGATE_SET_MAX_N = 7;
25
+ /**
26
+ * UX-validated options the social-recovery UI offers. The user can also
27
+ * roll a custom k/n inside the constraints. These three are the curated
28
+ * presets.
29
+ */
30
+ export const DELEGATE_SET_OPTIONS = [
31
+ { k: 2, n: 3, label: '2 of 3 (friendly)', tier: 'friendly' },
32
+ { k: 3, n: 5, label: '3 of 5 (standard)', tier: 'standard' },
33
+ { k: 5, n: 7, label: '5 of 7 (exchange-grade)', tier: 'exchange-grade' },
34
+ ];
35
+ /**
36
+ * Validate a `DelegateSetConfig` against the recovery rules. Returns the
37
+ * config unchanged on success; throws with a specific reason otherwise.
38
+ *
39
+ * `selfDid` is the wallet's own DID; if provided, the validator rejects
40
+ * configs where the wallet is in its own delegate list.
41
+ */
42
+ export function validateDelegateSet(cfg, selfDid) {
43
+ if (!Number.isInteger(cfg.k) || !Number.isInteger(cfg.n)) {
44
+ throw new Error(`validateDelegateSet: k and n must be integers; got ${cfg.k}/${cfg.n}`);
45
+ }
46
+ if (cfg.k < 1) {
47
+ throw new Error(`validateDelegateSet: k must be ≥ 1; got ${cfg.k}`);
48
+ }
49
+ if (cfg.k > cfg.n) {
50
+ throw new Error(`validateDelegateSet: k (${cfg.k}) cannot exceed n (${cfg.n})`);
51
+ }
52
+ if (cfg.n > DELEGATE_SET_MAX_N) {
53
+ throw new Error(`validateDelegateSet: n (${cfg.n}) exceeds DELEGATE_SET_MAX_N (${DELEGATE_SET_MAX_N}); ` +
54
+ 'open an issue if your use case requires more');
55
+ }
56
+ if (cfg.delegates.length !== cfg.n) {
57
+ throw new Error(`validateDelegateSet: expected exactly ${cfg.n} delegates, got ${cfg.delegates.length}`);
58
+ }
59
+ const seen = new Set();
60
+ for (const d of cfg.delegates) {
61
+ if (seen.has(d)) {
62
+ throw new Error(`validateDelegateSet: duplicate delegate ${d}`);
63
+ }
64
+ seen.add(d);
65
+ }
66
+ if (selfDid !== undefined && seen.has(selfDid)) {
67
+ throw new Error(`validateDelegateSet: wallet DID ${selfDid} cannot appear in its own delegate list`);
68
+ }
69
+ return cfg;
70
+ }
71
+ /**
72
+ * Build the default 3-of-5 delegate set from a list of candidate delegate
73
+ * DIDs. Throws if fewer than 5 delegates are supplied.
74
+ */
75
+ export function defaultDelegateSet(delegates, selfDid) {
76
+ if (delegates.length < DELEGATE_SET_DEFAULT_N) {
77
+ throw new Error(`defaultDelegateSet: need ${DELEGATE_SET_DEFAULT_N} delegates for the default config, got ${delegates.length}`);
78
+ }
79
+ return validateDelegateSet({
80
+ k: DELEGATE_SET_DEFAULT_K,
81
+ n: DELEGATE_SET_DEFAULT_N,
82
+ delegates: delegates.slice(0, DELEGATE_SET_DEFAULT_N),
83
+ }, selfDid);
84
+ }
85
+ //# sourceMappingURL=delegate-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate-set.js","sourceRoot":"","sources":["../../src/identity/delegate-set.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * TDIP DID parsing/formatting. Pure functions, no side effects.
3
+ *
4
+ * Forms:
5
+ * did:tenzro:human:{uuid}
6
+ * did:tenzro:machine:{uuid} — autonomous
7
+ * did:tenzro:machine:{controller-did-uuid}:{uuid} — controlled-machine
8
+ */
9
+ import type { TdipDid, TdipDidParts, TdipKind } from '../types/identity.js';
10
+ export declare function asTdipDid(s: string): TdipDid;
11
+ export declare function parseTdipDid(s: string): TdipDidParts;
12
+ export declare function formatTdipDid(parts: {
13
+ kind: TdipKind;
14
+ controller?: TdipDid | undefined;
15
+ uuid: string;
16
+ }): TdipDid;
17
+ //# sourceMappingURL=did.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../src/identity/did.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAI5E,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAG5C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CA+BpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAYV"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * TDIP DID parsing/formatting. Pure functions, no side effects.
3
+ *
4
+ * Forms:
5
+ * did:tenzro:human:{uuid}
6
+ * did:tenzro:machine:{uuid} — autonomous
7
+ * did:tenzro:machine:{controller-did-uuid}:{uuid} — controlled-machine
8
+ */
9
+ const DID_PREFIX = 'did:tenzro:';
10
+ export function asTdipDid(s) {
11
+ parseTdipDid(s); // throws if malformed
12
+ return s;
13
+ }
14
+ export function parseTdipDid(s) {
15
+ if (!s.startsWith(DID_PREFIX)) {
16
+ throw new Error(`not a tenzro DID: ${s}`);
17
+ }
18
+ const rest = s.slice(DID_PREFIX.length);
19
+ const parts = rest.split(':');
20
+ const [kindRaw, ...tail] = parts;
21
+ switch (kindRaw) {
22
+ case 'human': {
23
+ if (tail.length !== 1 || !tail[0])
24
+ throw new Error(`malformed human DID: ${s}`);
25
+ return { method: 'tenzro', kind: 'human', uuid: tail[0] };
26
+ }
27
+ case 'machine': {
28
+ if (tail.length === 1 && tail[0]) {
29
+ return { method: 'tenzro', kind: 'autonomous-machine', uuid: tail[0] };
30
+ }
31
+ if (tail.length === 2 && tail[0] && tail[1]) {
32
+ const controller = `${DID_PREFIX}human:${tail[0]}`;
33
+ return {
34
+ method: 'tenzro',
35
+ kind: 'controlled-machine',
36
+ controller,
37
+ uuid: tail[1],
38
+ };
39
+ }
40
+ throw new Error(`malformed machine DID: ${s}`);
41
+ }
42
+ default:
43
+ throw new Error(`unknown TDIP kind: ${kindRaw}`);
44
+ }
45
+ }
46
+ export function formatTdipDid(parts) {
47
+ switch (parts.kind) {
48
+ case 'human':
49
+ return `${DID_PREFIX}human:${parts.uuid}`;
50
+ case 'autonomous-machine':
51
+ return `${DID_PREFIX}machine:${parts.uuid}`;
52
+ case 'controlled-machine': {
53
+ if (!parts.controller)
54
+ throw new Error('controlled-machine requires controller');
55
+ const ctrl = parseTdipDid(parts.controller);
56
+ return `${DID_PREFIX}machine:${ctrl.uuid}:${parts.uuid}`;
57
+ }
58
+ }
59
+ }
60
+ //# sourceMappingURL=did.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/identity/did.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;IACvC,OAAO,CAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IAEjC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;YAChF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM,UAAU,GAAG,GAAG,UAAU,SAAS,IAAI,CAAC,CAAC,CAAC,EAAa,CAAC;gBAC9D,OAAO;oBACL,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,oBAAoB;oBAC1B,UAAU;oBACV,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAI7B;IACC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,GAAG,UAAU,SAAS,KAAK,CAAC,IAAI,EAAa,CAAC;QACvD,KAAK,oBAAoB;YACvB,OAAO,GAAG,UAAU,WAAW,KAAK,CAAC,IAAI,EAAa,CAAC;QACzD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,GAAG,UAAU,WAAW,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAa,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export { asTdipDid, formatTdipDid, parseTdipDid } from './did.js';
2
+ export { provisionIdentity } from './provision.js';
3
+ export type { ProvisionOptions } from './provision.js';
4
+ export { DELEGATE_SET_DEFAULT_K, DELEGATE_SET_DEFAULT_N, DELEGATE_SET_MAX_N, DELEGATE_SET_OPTIONS, defaultDelegateSet, validateDelegateSet, } from './delegate-set.js';
5
+ export type { DelegateSetConfig, DelegateSetSizeOption, } from './delegate-set.js';
6
+ export { walletNew } from './wallet-new.js';
7
+ export type { DeviceShareStore, PasskeyEnroller, PasskeyEnrolment, ProvisioningPort, WalletNewOptions, WalletNewResult, WalletThresholdRecord, WrappedDeviceShare, } from './wallet-new.js';
8
+ export { walletRecover } from './wallet-recover.js';
9
+ export type { RecoveryPort, RecoveryProof, WalletRecoverOptions, WalletRecoverResult, } from './wallet-recover.js';
10
+ export { ProvisioningHttpAdapter, ProvisioningHttpError } from './provisioning-http-adapter.js';
11
+ export type { ProvisioningHttpConfig } from './provisioning-http-adapter.js';
12
+ export { RecoveryHttpAdapter, RecoveryHttpError } from './recovery-http-adapter.js';
13
+ export type { RecoveryHttpConfig } from './recovery-http-adapter.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAChG,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpF,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { asTdipDid, formatTdipDid, parseTdipDid } from "./did.js";
2
+ export { provisionIdentity } from "./provision.js";
3
+ export { DELEGATE_SET_DEFAULT_K, DELEGATE_SET_DEFAULT_N, DELEGATE_SET_MAX_N, DELEGATE_SET_OPTIONS, defaultDelegateSet, validateDelegateSet, } from "./delegate-set.js";
4
+ export { walletNew } from "./wallet-new.js";
5
+ export { walletRecover } from "./wallet-recover.js";
6
+ export { ProvisioningHttpAdapter, ProvisioningHttpError } from "./provisioning-http-adapter.js";
7
+ export { RecoveryHttpAdapter, RecoveryHttpError } from "./recovery-http-adapter.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Provision a new TDIP identity. M1: deterministic mock — generates a uuid,
3
+ * derives placeholder per-surface keys. M2 swaps in real key derivation inside
4
+ * the MPC quorum.
5
+ */
6
+ import type { TdipIdentity, TdipKind } from '../types/identity.js';
7
+ export interface ProvisionOptions {
8
+ readonly kind?: TdipKind;
9
+ /** For deterministic test fixtures. */
10
+ readonly uuid?: string;
11
+ }
12
+ export declare function provisionIdentity(opts?: ProvisionOptions): Promise<TdipIdentity>;
13
+ //# sourceMappingURL=provision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../src/identity/provision.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAA+B,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CA4C1F"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Provision a new TDIP identity. M1: deterministic mock — generates a uuid,
3
+ * derives placeholder per-surface keys. M2 swaps in real key derivation inside
4
+ * the MPC quorum.
5
+ */
6
+ import { cantonFingerprint } from "../ports/canton/fingerprint.js";
7
+ import { formatTdipDid } from "./did.js";
8
+ export async function provisionIdentity(opts = {}) {
9
+ const kind = opts.kind ?? 'human';
10
+ const uuid = opts.uuid ?? newUuid();
11
+ const did = formatTdipDid({ kind, uuid });
12
+ // M1: each surface gets a deterministic mock key. M2 derives real keys via
13
+ // the MPC quorum (BIP32-like derivation paths inside the threshold scheme).
14
+ const seed = new TextEncoder().encode(did);
15
+ const nativePub = derive(seed, 'native', 32);
16
+ const svmPub = derive(seed, 'svm', 32);
17
+ const cantonInternal = await cantonPartyKey(seed, 'internal', 'tenzro-internal-synchronizer::1220');
18
+ const cantonExternal = await cantonPartyKey(seed, 'external', 'global-domain::1220');
19
+ const keys = new Map([
20
+ [
21
+ 'tenzro-native',
22
+ {
23
+ surface: 'tenzro-native',
24
+ scheme: 'ed25519',
25
+ publicKey: nativePub,
26
+ address: base58Encode(nativePub),
27
+ },
28
+ ],
29
+ [
30
+ 'evm-on-tenzro',
31
+ { surface: 'evm-on-tenzro', scheme: 'secp256k1', address: deriveEvmAddress(seed) },
32
+ ],
33
+ [
34
+ 'svm-on-tenzro',
35
+ {
36
+ surface: 'svm-on-tenzro',
37
+ scheme: 'ed25519',
38
+ publicKey: svmPub,
39
+ address: base58Encode(svmPub),
40
+ },
41
+ ],
42
+ ['canton-internal', cantonInternal],
43
+ ['canton-external', cantonExternal],
44
+ ]);
45
+ return { did, parts: { method: 'tenzro', kind, uuid }, keys, createdAt: Date.now() };
46
+ }
47
+ // --- helpers ---
48
+ /**
49
+ * Generate an RFC 4122 v4 UUID. Uses `crypto.randomUUID()` (universally
50
+ * available in WebCrypto-capable runtimes — browsers, Node 19+, Workers).
51
+ * M2 will move provisioning into the MPC ceremony where the quorum agrees
52
+ * on the uuid as part of the threshold key generation; this lives here
53
+ * until then.
54
+ */
55
+ function newUuid() {
56
+ if (!globalThis.crypto?.randomUUID) {
57
+ throw new Error('provisionIdentity: crypto.randomUUID unavailable on this runtime');
58
+ }
59
+ return globalThis.crypto.randomUUID();
60
+ }
61
+ function derive(seed, label, len) {
62
+ const labelBytes = new TextEncoder().encode(label);
63
+ const out = new Uint8Array(len);
64
+ for (let i = 0; i < len; i++) {
65
+ out[i] =
66
+ ((seed[i % seed.length] ?? 0) ^ (labelBytes[i % labelBytes.length] ?? 0) ^ (i * 31)) & 0xff;
67
+ }
68
+ return out;
69
+ }
70
+ function deriveEvmAddress(seed) {
71
+ const bytes = derive(seed, 'evm', 20);
72
+ let hex = '0x';
73
+ for (const b of bytes)
74
+ hex += b.toString(16).padStart(2, '0');
75
+ return hex;
76
+ }
77
+ function partyIdFor(hint, namespaceFingerprint) {
78
+ // PartyId is `<hint>::<namespace-fingerprint>`. The fingerprint is the
79
+ // multihash-prefixed SHA-256 of the namespace public key, so the party id
80
+ // is bound to the namespace key — rotating signing keys never changes it.
81
+ return `${hint}::${namespaceFingerprint}`;
82
+ }
83
+ /**
84
+ * Build the canton-internal/canton-external SurfaceKey shape with the new
85
+ * two-key model (per DESIGN.md §4.5.4 and identity.ts:CantonPartyKey).
86
+ *
87
+ * M1 placeholders: namespace + signing keys are deterministic 32-byte
88
+ * derivations from the DID seed, threshold = 1, single signing key. M5+
89
+ * onboarding-flow work replaces this with real Ed25519 keys produced under
90
+ * the passkey-quorum and a M-of-N signing-key set registered via
91
+ * `PartyToKeyMapping`.
92
+ *
93
+ * `synchronizerHostPrefix` is the Canton synchronizer id minus the trailing
94
+ * fingerprint — `global-domain::1220` for external (MainNet),
95
+ * `tenzro-internal-synchronizer::1220` for internal. The full id is
96
+ * completed with a derived 32-byte fingerprint.
97
+ */
98
+ async function cantonPartyKey(seed, label, synchronizerHostPrefix) {
99
+ const namespacePub = derive(seed, `canton-${label}-namespace`, 32);
100
+ const signingPub = derive(seed, `canton-${label}-signing`, 32);
101
+ const namespaceFingerprint = await cantonFingerprint(namespacePub);
102
+ const signingFingerprint = await cantonFingerprint(signingPub);
103
+ const synchronizerFp = derive(seed, `canton-${label}-synchronizer-fp`, 32);
104
+ let synchronizerHex = '';
105
+ for (const b of synchronizerFp)
106
+ synchronizerHex += b.toString(16).padStart(2, '0');
107
+ const signingScheme = 'ed25519';
108
+ return {
109
+ surface: label === 'internal' ? 'canton-internal' : 'canton-external',
110
+ partyId: partyIdFor(`tenzro-wallet-${label}`, namespaceFingerprint),
111
+ synchronizerId: `${synchronizerHostPrefix}${synchronizerHex.slice(0, 64)}`,
112
+ hostingParticipantId: `tenzro-validator::1220${synchronizerHex.slice(0, 64)}`,
113
+ namespaceKey: {
114
+ scheme: 'ed25519',
115
+ publicKey: namespacePub,
116
+ fingerprint: namespaceFingerprint,
117
+ },
118
+ signingKeys: [
119
+ { scheme: signingScheme, publicKey: signingPub, fingerprint: signingFingerprint },
120
+ ],
121
+ threshold: 1,
122
+ };
123
+ }
124
+ /**
125
+ * Base58 encoding (Bitcoin alphabet). Tenzro uses Base58 for native and SVM
126
+ * addresses (per `Address` typedef in tenzro-sdk/types.ts). This is a tiny
127
+ * pure-JS implementation; M5 swaps it for the canonical encoder used by
128
+ * the threshold-key derivation routine.
129
+ */
130
+ function base58Encode(bytes) {
131
+ const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
132
+ // Convert bytes to a big integer.
133
+ let n = 0n;
134
+ for (const b of bytes)
135
+ n = (n << 8n) + BigInt(b);
136
+ // Encode.
137
+ let out = '';
138
+ while (n > 0n) {
139
+ const r = Number(n % 58n);
140
+ out = ALPHABET[r] + out;
141
+ n /= 58n;
142
+ }
143
+ // Preserve leading zero-bytes as '1' chars per Base58 convention.
144
+ for (const b of bytes) {
145
+ if (b !== 0)
146
+ break;
147
+ out = '1' + out;
148
+ }
149
+ return out;
150
+ }
151
+ //# sourceMappingURL=provision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/identity/provision.ts"],"names":[],"mappings":"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"}