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,123 @@
1
+ /**
2
+ * BridgeRoutePort — cross-chain bridge route abstraction (M8 milestone).
3
+ *
4
+ * The kernel never picks a bridge itself; it asks each registered adapter
5
+ * for a quote and lets the consumer (router UI / agent policy) pick the
6
+ * winner. Adapters wrap third-party SDKs (LI.FI, CCIP, LayerZero) — none
7
+ * of which are browser-clean as a class. Each adapter file in
8
+ * `./adapters/` lives as a stub (`*-pending.ts`-style: shape + throws)
9
+ * until the third-party SDK shape is pinned and we decide whether to
10
+ * embed via dynamic import, run server-side, or wrap a Tenzro RPC proxy.
11
+ *
12
+ * Per DESIGN.md §10 milestone 8 — "mostly assembly", not new design work.
13
+ *
14
+ * Per `reference_agentic_payments_2026.md`: the wallet's *unique* multi-VM
15
+ * value lands at the kernel's route layer (one consent flow across
16
+ * EVM/SVM/Canton/Tenzro), so we keep the *port* shape stable now even
17
+ * though the adapters wait for M8.
18
+ */
19
+ /**
20
+ * Vendor adapters Tenzro's BridgeRouter supports (per docs/bridge):
21
+ * - `lifi` — LI.FI aggregator (27+ bridges, 58+ chains)
22
+ * - `ccip` — Chainlink CCIP (DON-verified)
23
+ * - `layerzero` — LayerZero v2 (cross-chain messaging)
24
+ * - `wormhole` — Wormhole (rolled out in the latest Tenzro update)
25
+ * - `debridge` — deBridge DLN (intent-based, post-fulfilment hooks)
26
+ * - `canton` — Canton-side adapter for Canton/external-chain corridors
27
+ */
28
+ export type BridgeAdapterId = 'lifi' | 'ccip' | 'layerzero' | 'wormhole' | 'debridge' | 'canton';
29
+ /**
30
+ * Identifies a destination chain in a bridge-vendor-neutral way. The
31
+ * adapter maps this onto the vendor's own ID space (LI.FI uses chain ids,
32
+ * CCIP uses 64-bit selectors, LayerZero uses endpoint ids — the kernel
33
+ * does not care).
34
+ */
35
+ export interface BridgeChainRef {
36
+ /**
37
+ * Tenzro-side surface name when the source/destination is on Tenzro.
38
+ * For external chains, this is the canonical chain slug
39
+ * (`'ethereum'`, `'polygon'`, `'solana'`, `'canton-mainnet'`, etc.).
40
+ */
41
+ readonly chain: string;
42
+ /**
43
+ * Optional — chain id (EVM 1, 137; non-EVM "solana"). Carried only when
44
+ * the adapter needs it; canonical chain slug above is the primary key.
45
+ */
46
+ readonly chainId?: number;
47
+ }
48
+ export interface BridgeQuoteRequest {
49
+ readonly fromChain: BridgeChainRef;
50
+ readonly toChain: BridgeChainRef;
51
+ /** Sender address (chain-native shape). */
52
+ readonly fromAddress: string;
53
+ /** Receiver address (chain-native shape). */
54
+ readonly toAddress: string;
55
+ /** Asset on the source side. Adapter resolves the destination asset. */
56
+ readonly fromAsset: string;
57
+ /** Decimal amount in source-asset smallest units. */
58
+ readonly amount: bigint;
59
+ /**
60
+ * Optional preference — caller can ask for the cheapest, fastest, or
61
+ * lowest-trust route. Adapters may ignore unknown values and return
62
+ * their default ordering.
63
+ */
64
+ readonly prefer?: 'cheapest' | 'fastest' | 'safest';
65
+ }
66
+ export interface BridgeQuote {
67
+ readonly adapter: BridgeAdapterId;
68
+ /** Estimated arrival on destination, in source-asset smallest units. */
69
+ readonly toAmount: bigint;
70
+ /** Estimated total fees in source-asset smallest units. */
71
+ readonly fees: bigint;
72
+ /** ETA in seconds. */
73
+ readonly etaSec: number;
74
+ /** Adapter-specific opaque payload — the wallet hands it back to `build`. */
75
+ readonly opaque: Readonly<Record<string, unknown>>;
76
+ /**
77
+ * One-line human description shown in the route picker
78
+ * (e.g. "LI.FI · Stargate USDC · ~30s · $0.42").
79
+ */
80
+ readonly summary: string;
81
+ }
82
+ export interface BridgeBuildRequest {
83
+ /** A `BridgeQuote.opaque` returned by the same adapter. */
84
+ readonly opaque: Readonly<Record<string, unknown>>;
85
+ }
86
+ /**
87
+ * The transactions the wallet must sign + submit to start the bridge. The
88
+ * kernel hands these to the source surface for signing; the adapter does
89
+ * NOT sign on its own. Most adapters return one tx; some (e.g. ERC-20
90
+ * approve + bridge call) return two.
91
+ */
92
+ export interface BridgeBuildResult {
93
+ readonly transactions: ReadonlyArray<{
94
+ readonly chain: string;
95
+ /**
96
+ * Surface-shaped tx body — opaque to the kernel. EVM bridges return
97
+ * `{ to, data, value }`; SVM bridges return `{ instructions: [...] }`;
98
+ * Canton bridges return `{ command: ... }`. The source surface narrows.
99
+ */
100
+ readonly body: Readonly<Record<string, unknown>>;
101
+ /** Free-form label for the consent screen ("Approve USDC", "Bridge"). */
102
+ readonly label: string;
103
+ }>;
104
+ /** Bridge identifier the adapter uses to track delivery. */
105
+ readonly trackerId: string;
106
+ }
107
+ export type BridgeStatusPhase = 'pending-source' | 'in-flight' | 'delivered' | 'failed';
108
+ export interface BridgeStatus {
109
+ readonly trackerId: string;
110
+ readonly phase: BridgeStatusPhase;
111
+ /** Source-chain tx hash, when known. */
112
+ readonly sourceTx?: string;
113
+ /** Destination-chain tx hash, when known. */
114
+ readonly destinationTx?: string;
115
+ readonly error?: string;
116
+ }
117
+ export interface BridgeRoutePort {
118
+ readonly adapterId: BridgeAdapterId;
119
+ quote(req: BridgeQuoteRequest): Promise<BridgeQuote>;
120
+ build(req: BridgeBuildRequest): Promise<BridgeBuildResult>;
121
+ track(trackerId: string): AsyncIterable<BridgeStatus>;
122
+ }
123
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/ports/bridge/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjG;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB;;;;WAIG;QACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,yEAAyE;QACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,KAAK,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,KAAK,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;CACvD"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * BridgeRoutePort — cross-chain bridge route abstraction (M8 milestone).
3
+ *
4
+ * The kernel never picks a bridge itself; it asks each registered adapter
5
+ * for a quote and lets the consumer (router UI / agent policy) pick the
6
+ * winner. Adapters wrap third-party SDKs (LI.FI, CCIP, LayerZero) — none
7
+ * of which are browser-clean as a class. Each adapter file in
8
+ * `./adapters/` lives as a stub (`*-pending.ts`-style: shape + throws)
9
+ * until the third-party SDK shape is pinned and we decide whether to
10
+ * embed via dynamic import, run server-side, or wrap a Tenzro RPC proxy.
11
+ *
12
+ * Per DESIGN.md §10 milestone 8 — "mostly assembly", not new design work.
13
+ *
14
+ * Per `reference_agentic_payments_2026.md`: the wallet's *unique* multi-VM
15
+ * value lands at the kernel's route layer (one consent flow across
16
+ * EVM/SVM/Canton/Tenzro), so we keep the *port* shape stable now even
17
+ * though the adapters wait for M8.
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/ports/bridge/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Bridge router ports + adapter stubs (M8). All adapters throw "M8 pending"
3
+ * until the third-party SDK wiring lands; the port shape is stable.
4
+ */
5
+ export type { BridgeAdapterId, BridgeChainRef, BridgeQuoteRequest, BridgeQuote, BridgeBuildRequest, BridgeBuildResult, BridgeStatusPhase, BridgeStatus, BridgeRoutePort, } from './bridge.js';
6
+ export { LiFiBridgeAdapter } from './adapters/lifi-adapter.js';
7
+ export { CcipBridgeAdapter } from './adapters/ccip-adapter.js';
8
+ export { LayerZeroBridgeAdapter } from './adapters/layerzero-adapter.js';
9
+ export { WormholeBridgeAdapter } from './adapters/wormhole-adapter.js';
10
+ export { DeBridgeBridgeAdapter } from './adapters/debridge-adapter.js';
11
+ export { CantonBridgeAdapter } from './adapters/canton-bridge-adapter.js';
12
+ export type { BridgeClientLike } from './adapters/bridge-adapter-base.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/bridge/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Bridge router ports + adapter stubs (M8). All adapters throw "M8 pending"
3
+ * until the third-party SDK wiring lands; the port shape is stable.
4
+ */
5
+ export { LiFiBridgeAdapter } from "./adapters/lifi-adapter.js";
6
+ export { CcipBridgeAdapter } from "./adapters/ccip-adapter.js";
7
+ export { LayerZeroBridgeAdapter } from "./adapters/layerzero-adapter.js";
8
+ export { WormholeBridgeAdapter } from "./adapters/wormhole-adapter.js";
9
+ export { DeBridgeBridgeAdapter } from "./adapters/debridge-adapter.js";
10
+ export { CantonBridgeAdapter } from "./adapters/canton-bridge-adapter.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/bridge/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * LedgerApiAdapter — `CantonValidatorPort` backed by the JSON Ledger API
3
+ * + Splice validator-app HTTP surface.
4
+ *
5
+ * Browser-clean by design: only `fetch` + `WebCrypto` (the `http.ts`
6
+ * helpers handle both). No `@canton-network/wallet-sdk` dep — that package
7
+ * pulls `@grpc/grpc-js` which doesn't run in browsers, Workers, or Deno.
8
+ *
9
+ * The adapter mirrors the pattern Splice Wallet Kernel itself uses
10
+ * (`core/ledger-client`): hand-rolled HTTP client over the published JSON
11
+ * Ledger API. CIP-0103 explicitly endorses raw Ledger API access.
12
+ *
13
+ * Wire-format details:
14
+ * - Bytes are base64-encoded on the JSON Ledger API (handled by the
15
+ * `replacer` in `http.ts`; decoded back to `Uint8Array` here).
16
+ * - Bigint amounts are decimal strings on the wire; the kernel keeps them
17
+ * as bigint internally.
18
+ * - Completion stream is NDJSON over a keep-alive HTTP/1.1 connection.
19
+ *
20
+ * Spec refs:
21
+ * - DESIGN.md §4.4 (canton-internal) + §4.5 (canton-external)
22
+ * - https://docs.digitalasset.com/integrate/devnet/preparing-and-signing-transactions/
23
+ * - Canton OSS `interactive_submission_service.proto`
24
+ * - Splice Wallet Kernel `core/ledger-client` (reference pattern)
25
+ */
26
+ import type { ActiveContractsFilter, CantonActiveContract, CantonCompletion, CantonValidatorPort, CompletionFilter, ExecuteSubmissionRequest, GenerateTopologyRequest, GenerateTopologyResponse, PrepareAcceptSetupRequest, PrepareAcceptSetupResponse, PrepareSubmissionRequest, PrepareSubmissionResponse, SetupProposalRequest, SubmitAcceptSetupRequest, SubmitTopologyRequest, TransferPreapproval } from '../canton-validator.js';
27
+ import { type CantonHttpConfig } from '../http.js';
28
+ export interface LedgerApiAdapterConfig extends CantonHttpConfig {
29
+ /**
30
+ * The Ledger API requires a `user_id` on prepare/execute and completions
31
+ * filters. This is the validator-side identifier of the wallet's
32
+ * application user (Auth0 subject mapped to a Canton user). The host
33
+ * passes it through; the kernel doesn't care about its shape.
34
+ */
35
+ readonly userId: string;
36
+ }
37
+ export declare class LedgerApiAdapter implements CantonValidatorPort {
38
+ #private;
39
+ constructor(cfg: LedgerApiAdapterConfig);
40
+ prepareSubmission(req: PrepareSubmissionRequest): Promise<PrepareSubmissionResponse>;
41
+ executeSubmission(req: ExecuteSubmissionRequest): Promise<void>;
42
+ tailCompletions(filter: CompletionFilter): AsyncIterable<CantonCompletion>;
43
+ getActiveContracts(filter: ActiveContractsFilter): AsyncIterable<CantonActiveContract>;
44
+ lookupPreapproval(party: string): Promise<TransferPreapproval | null>;
45
+ resolveCns(name: string): Promise<string | null>;
46
+ generateTopology(req: GenerateTopologyRequest): Promise<GenerateTopologyResponse>;
47
+ submitTopology(req: SubmitTopologyRequest): Promise<void>;
48
+ setupProposal(req: SetupProposalRequest): Promise<void>;
49
+ prepareAcceptSetup(req: PrepareAcceptSetupRequest): Promise<PrepareAcceptSetupResponse>;
50
+ submitAcceptSetup(req: SubmitAcceptSetupRequest): Promise<void>;
51
+ }
52
+ //# sourceMappingURL=ledger-api-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-api-adapter.d.ts","sourceRoot":"","sources":["../../../../src/ports/canton/adapters/ledger-api-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAEhB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,gBAAgB,EAMtB,MAAM,YAAY,CAAC;AAkHpB,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gBAAiB,YAAW,mBAAmB;;gBAG9C,GAAG,EAAE,sBAAsB;IAIjC,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAuBpF,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB9D,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;IA4B1E,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,aAAa,CAAC,oBAAoB,CAAC;IA4CvF,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAuBrE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAchD,gBAAgB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuBjF,cAAc,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzD,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD,kBAAkB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqBvF,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CAetE"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * LedgerApiAdapter — `CantonValidatorPort` backed by the JSON Ledger API
3
+ * + Splice validator-app HTTP surface.
4
+ *
5
+ * Browser-clean by design: only `fetch` + `WebCrypto` (the `http.ts`
6
+ * helpers handle both). No `@canton-network/wallet-sdk` dep — that package
7
+ * pulls `@grpc/grpc-js` which doesn't run in browsers, Workers, or Deno.
8
+ *
9
+ * The adapter mirrors the pattern Splice Wallet Kernel itself uses
10
+ * (`core/ledger-client`): hand-rolled HTTP client over the published JSON
11
+ * Ledger API. CIP-0103 explicitly endorses raw Ledger API access.
12
+ *
13
+ * Wire-format details:
14
+ * - Bytes are base64-encoded on the JSON Ledger API (handled by the
15
+ * `replacer` in `http.ts`; decoded back to `Uint8Array` here).
16
+ * - Bigint amounts are decimal strings on the wire; the kernel keeps them
17
+ * as bigint internally.
18
+ * - Completion stream is NDJSON over a keep-alive HTTP/1.1 connection.
19
+ *
20
+ * Spec refs:
21
+ * - DESIGN.md §4.4 (canton-internal) + §4.5 (canton-external)
22
+ * - https://docs.digitalasset.com/integrate/devnet/preparing-and-signing-transactions/
23
+ * - Canton OSS `interactive_submission_service.proto`
24
+ * - Splice Wallet Kernel `core/ledger-client` (reference pattern)
25
+ */
26
+ import { base64Decode, base64Encode, getJson, postJson, streamNdjson, } from "../http.js";
27
+ export class LedgerApiAdapter {
28
+ #cfg;
29
+ constructor(cfg) {
30
+ this.#cfg = cfg;
31
+ }
32
+ async prepareSubmission(req) {
33
+ const wire = {
34
+ user_id: this.#cfg.userId,
35
+ command_id: req.commandId,
36
+ synchronizer_id: req.synchronizerId,
37
+ act_as: [req.actAs],
38
+ package_id_selection_preference: [req.packageIdSelectionPreference],
39
+ commands: req.commands,
40
+ verbose_hashing: true,
41
+ };
42
+ const res = await postJson(this.#cfg, 'ledger', '/v2/interactive-submission/prepare', wire);
43
+ return {
44
+ preparedTransaction: base64Decode(res.prepared_transaction),
45
+ preparedTransactionHash: base64Decode(res.prepared_transaction_hash),
46
+ hashingSchemeVersion: assertHashingScheme(res.hashing_scheme_version),
47
+ };
48
+ }
49
+ async executeSubmission(req) {
50
+ const wire = {
51
+ prepared_transaction: base64Encode(req.preparedTransaction),
52
+ party_signatures: req.partySignatures.map((s) => ({
53
+ party: s.party,
54
+ signature: base64Encode(s.signature),
55
+ signing_algorithm_spec: s.scheme,
56
+ signed_by: s.signedBy,
57
+ })),
58
+ hashing_scheme_version: req.hashingSchemeVersion,
59
+ submission_id: req.submissionId,
60
+ user_id: this.#cfg.userId,
61
+ };
62
+ await postJson(this.#cfg, 'ledger', '/v2/interactive-submission/execute', wire);
63
+ }
64
+ async *tailCompletions(filter) {
65
+ const wire = {
66
+ user_id: filter.userId,
67
+ parties: [...filter.actAs],
68
+ ...(filter.beginExclusive !== undefined ? { begin_exclusive: filter.beginExclusive } : {}),
69
+ };
70
+ for await (const el of streamNdjson(this.#cfg, 'ledger', '/v2/commands/completions', wire)) {
71
+ const c = el.completion;
72
+ if (!c)
73
+ continue;
74
+ // Canton status codes: 0 = OK, anything else is a failure. The
75
+ // gRPC status carries the structured error in `message`.
76
+ const failed = c.status !== undefined && c.status.code !== 0;
77
+ const completion = {
78
+ commandId: c.command_id,
79
+ updateId: c.update_id,
80
+ completionOffset: c.offset,
81
+ status: failed ? 'failed' : 'executed',
82
+ ...(failed && c.status?.message !== undefined ? { errorMessage: c.status.message } : {}),
83
+ };
84
+ yield completion;
85
+ }
86
+ }
87
+ async *getActiveContracts(filter) {
88
+ // Active set on the JSON Ledger API needs an offset to read at. We pull
89
+ // the current ledger end first, then read the active set at that point.
90
+ // This matches Splice Wallet Kernel's `getActiveContracts` flow.
91
+ const ledgerEnd = await getJson(this.#cfg, 'ledger', '/v2/state/ledger-end');
92
+ const wire = {
93
+ filter: {
94
+ filters_by_party: {
95
+ [filter.party]: {
96
+ cumulative: filter.templateIds === undefined || filter.templateIds.length === 0
97
+ ? [{ wildcard_filter: {} }]
98
+ : filter.templateIds.map((t) => ({
99
+ template_filter: { template_id: t },
100
+ })),
101
+ },
102
+ },
103
+ },
104
+ verbose: false,
105
+ active_at_offset: ledgerEnd.offset,
106
+ };
107
+ for await (const el of streamNdjson(this.#cfg, 'ledger', '/v2/state/active-contracts', wire)) {
108
+ const ev = el.contract_entry?.active_contract?.created_event;
109
+ if (!ev)
110
+ continue;
111
+ yield {
112
+ contractId: ev.contract_id,
113
+ templateId: ev.template_id,
114
+ // The validator returns either a structured payload or a base64 blob;
115
+ // the kernel surface narrows this per template, so keep it raw.
116
+ payload: ev.create_arguments ?? ev.create_arguments_blob ?? null,
117
+ createdAtOffset: ev.offset,
118
+ };
119
+ }
120
+ }
121
+ async lookupPreapproval(party) {
122
+ // Scan-proxied via the validator-app. The Tenzro validator wraps the
123
+ // global Scan API at `/api/validator/v0/scan-proxy/...`.
124
+ try {
125
+ const res = await getJson(this.#cfg, 'validator', `/api/validator/v0/scan-proxy/transfer-preapprovals/by-party/${encodeURIComponent(party)}`);
126
+ if (!res.transfer_preapproval)
127
+ return null;
128
+ const p = res.transfer_preapproval;
129
+ return {
130
+ contractId: p.contract_id,
131
+ receiver: p.payload.receiver,
132
+ provider: p.payload.provider,
133
+ expiresAt: parseTimestamp(p.payload.expires_at),
134
+ };
135
+ }
136
+ catch (e) {
137
+ if (isHttpStatus(e, 404))
138
+ return null;
139
+ throw e;
140
+ }
141
+ }
142
+ async resolveCns(name) {
143
+ try {
144
+ const res = await getJson(this.#cfg, 'validator', `/api/validator/v0/scan-proxy/ans-entries/by-name/${encodeURIComponent(name)}`);
145
+ return res.entry?.party_id ?? null;
146
+ }
147
+ catch (e) {
148
+ if (isHttpStatus(e, 404))
149
+ return null;
150
+ throw e;
151
+ }
152
+ }
153
+ async generateTopology(req) {
154
+ const wire = {
155
+ party_hint: req.partyHint,
156
+ public_key: base64Encode(req.namespacePublicKey),
157
+ signing_keys: req.signingPublicKeys.map((k) => ({
158
+ public_key: base64Encode(k.publicKey),
159
+ signing_algorithm_spec: k.scheme,
160
+ })),
161
+ threshold: req.threshold,
162
+ };
163
+ const res = await postJson(this.#cfg, 'validator', '/api/validator/v0/admin/external-party/topology/generate', wire);
164
+ return {
165
+ topologyTransactions: res.topology_transactions.map(base64Decode),
166
+ bundleHash: base64Decode(res.multi_hash),
167
+ partyId: res.party_id,
168
+ };
169
+ }
170
+ async submitTopology(req) {
171
+ const wire = {
172
+ topology_transactions: req.topologyTransactions.map(base64Encode),
173
+ signed_topology_txs: [
174
+ {
175
+ signature: base64Encode(req.namespaceSignature),
176
+ // Namespace key is always Ed25519 per Canton's external-party model.
177
+ signed_by: 'namespace',
178
+ signing_algorithm_spec: 'ed25519',
179
+ },
180
+ ],
181
+ };
182
+ await postJson(this.#cfg, 'validator', '/api/validator/v0/admin/external-party/topology/submit', wire);
183
+ }
184
+ async setupProposal(req) {
185
+ await postJson(this.#cfg, 'validator', '/api/validator/v0/admin/external-party/setup-proposal', { user_party_id: req.partyId });
186
+ }
187
+ async prepareAcceptSetup(req) {
188
+ const res = await postJson(this.#cfg, 'validator', '/api/validator/v0/admin/external-party/setup-proposal/prepare-accept', { user_party_id: req.partyId });
189
+ return {
190
+ preparedTransaction: base64Decode(res.transaction),
191
+ preparedTransactionHash: base64Decode(res.tx_hash),
192
+ hashingSchemeVersion: assertHashingScheme(res.hashing_scheme_version),
193
+ };
194
+ }
195
+ async submitAcceptSetup(req) {
196
+ const wire = {
197
+ transaction: base64Encode(req.preparedTransaction),
198
+ signed_tx_hash: base64Encode(req.signature),
199
+ hashing_scheme_version: req.hashingSchemeVersion,
200
+ // Setup acceptance is always Ed25519 (signed by the namespace key).
201
+ signing_algorithm_spec: 'ed25519',
202
+ };
203
+ await postJson(this.#cfg, 'validator', '/api/validator/v0/admin/external-party/setup-proposal/submit-accept', wire);
204
+ }
205
+ }
206
+ // ─────────────────────────── helpers ───────────────────────────
207
+ function assertHashingScheme(v) {
208
+ if (v !== 'HASHING_SCHEME_VERSION_V2') {
209
+ throw new Error(`LedgerApiAdapter: unsupported hashing scheme ${v}; kernel only knows V2 ` +
210
+ `(see DESIGN.md §11 open question #4)`);
211
+ }
212
+ return 'HASHING_SCHEME_VERSION_V2';
213
+ }
214
+ /**
215
+ * Parse a Canton timestamp. The Scan API returns ISO-8601 strings; some
216
+ * validator-app endpoints emit epoch microseconds as decimal strings. This
217
+ * normalises both to Unix milliseconds.
218
+ */
219
+ function parseTimestamp(s) {
220
+ if (/^\d+$/.test(s)) {
221
+ // Epoch microseconds → milliseconds.
222
+ return Math.floor(Number(s) / 1000);
223
+ }
224
+ return Date.parse(s);
225
+ }
226
+ function isHttpStatus(e, status) {
227
+ return (typeof e === 'object' &&
228
+ e !== null &&
229
+ 'status' in e &&
230
+ e.status === status);
231
+ }
232
+ //# sourceMappingURL=ledger-api-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-api-adapter.js","sourceRoot":"","sources":["../../../../src/ports/canton/adapters/ledger-api-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * CantonIdentityPort — narrow port for resolving DIDs to Canton party ids.
3
+ *
4
+ * Mirror of `TenzroIdentityPort` but for Canton parties. Like its tenzro-
5
+ * native sibling, this port handles *other people's* DIDs only — the user's
6
+ * own canton-internal/canton-external party ids come in synchronously through
7
+ * the kernel constructor as `identity.keys`.
8
+ *
9
+ * Two distinct backing paths share the same port:
10
+ * - **canton-external**: lookup goes through the validator's Scan proxy
11
+ * (`/v0/scan-proxy/...`) and Canton Name Service (`name.cns` → party id).
12
+ * A DID maps to at most one party on the Global Synchronizer.
13
+ * - **canton-internal**: lookup goes through the Tenzro-operated
14
+ * synchronizer's directory (validator-app endpoint TBD until 2026-05-05).
15
+ * A DID maps to at most one party on the Tenzro synchronizer.
16
+ *
17
+ * The kernel asks for both in parallel because the two surfaces are routed
18
+ * separately — a DID can have a canton-internal party, a canton-external
19
+ * party, both, or neither. Returning `undefined` for the missing surface
20
+ * is normal (vs. throwing — only RPC failures throw).
21
+ *
22
+ * Spec refs:
23
+ * - DESIGN.md §4.4 (canton-internal) + §4.5 (canton-external)
24
+ * - Splice Wallet Kernel `openrpc-dapp-remote-api.json` for the wire shape
25
+ * of party-resolution requests
26
+ */
27
+ import type { TdipDid } from '../../types/identity.js';
28
+ export interface TenzroSurfaceCantonParty {
29
+ /** `<hint>::<32-byte-fingerprint-hex>` */
30
+ readonly partyId: string;
31
+ /** Synchronizer the party is hosted on. `global-domain::<fp>` for MainNet
32
+ * external, Tenzro-operated synchronizer id for internal. */
33
+ readonly synchronizerId: string;
34
+ /** Participant id hosting the party — used when constructing
35
+ * `PartyToParticipant` topology references and when filtering
36
+ * completions. */
37
+ readonly hostingParticipantId: string;
38
+ }
39
+ export interface CantonIdentityPort {
40
+ /**
41
+ * Resolve a DID to its Canton party on the Global Synchronizer (the
42
+ * canton-external surface). Returns `undefined` if the DID has no
43
+ * external party registered.
44
+ */
45
+ resolveCantonExternalParty(did: TdipDid): Promise<TenzroSurfaceCantonParty | undefined>;
46
+ /**
47
+ * Resolve a DID to its Canton party on the Tenzro-operated synchronizer
48
+ * (the canton-internal surface). Returns `undefined` if the DID has no
49
+ * internal party registered.
50
+ */
51
+ resolveCantonInternalParty(did: TdipDid): Promise<TenzroSurfaceCantonParty | undefined>;
52
+ /**
53
+ * Reverse direction: Canton Name Service entry → party id. Used for
54
+ * "send to alice.cns" UX flows on canton-external. Tenzro-internal CNS
55
+ * (if any) is TBD — implementations may throw "not supported" for
56
+ * the internal synchronizer until the namespace is published.
57
+ */
58
+ resolveCnsName(name: string): Promise<string | null>;
59
+ }
60
+ //# sourceMappingURL=canton-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canton-identity.d.ts","sourceRoot":"","sources":["../../../src/ports/canton/canton-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;uBAEmB;IACnB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;IAExF;;;;OAIG;IACH,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;IAExF;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * CantonIdentityPort — narrow port for resolving DIDs to Canton party ids.
3
+ *
4
+ * Mirror of `TenzroIdentityPort` but for Canton parties. Like its tenzro-
5
+ * native sibling, this port handles *other people's* DIDs only — the user's
6
+ * own canton-internal/canton-external party ids come in synchronously through
7
+ * the kernel constructor as `identity.keys`.
8
+ *
9
+ * Two distinct backing paths share the same port:
10
+ * - **canton-external**: lookup goes through the validator's Scan proxy
11
+ * (`/v0/scan-proxy/...`) and Canton Name Service (`name.cns` → party id).
12
+ * A DID maps to at most one party on the Global Synchronizer.
13
+ * - **canton-internal**: lookup goes through the Tenzro-operated
14
+ * synchronizer's directory (validator-app endpoint TBD until 2026-05-05).
15
+ * A DID maps to at most one party on the Tenzro synchronizer.
16
+ *
17
+ * The kernel asks for both in parallel because the two surfaces are routed
18
+ * separately — a DID can have a canton-internal party, a canton-external
19
+ * party, both, or neither. Returning `undefined` for the missing surface
20
+ * is normal (vs. throwing — only RPC failures throw).
21
+ *
22
+ * Spec refs:
23
+ * - DESIGN.md §4.4 (canton-internal) + §4.5 (canton-external)
24
+ * - Splice Wallet Kernel `openrpc-dapp-remote-api.json` for the wire shape
25
+ * of party-resolution requests
26
+ */
27
+ export {};
28
+ //# sourceMappingURL=canton-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canton-identity.js","sourceRoot":"","sources":["../../../src/ports/canton/canton-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}