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 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/ports/canton/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * CrossVmPointerPort — wire-level shape of a cross-VM pointer op on Tenzro.
3
+ *
4
+ * Tenzro Ledger holds a single canonical TNZO balance. Each on-Tenzro surface
5
+ * (tenzro-native, evm-on-tenzro, svm-on-tenzro, canton-internal) presents a
6
+ * *view* of that balance at its own decimal precision. Moving TNZO "from" one
7
+ * view "to" another is therefore not a value transfer — it's a balance-view
8
+ * pointer update. The Tenzro runtime exposes this as:
9
+ *
10
+ * - On EVM-on-Tenzro: precompile call to 0x1003, calldata =
11
+ * abi.encode(toSurface, owner, amount).
12
+ * - On SVM-on-Tenzro: a `tenzro_cross_vm` system program instruction
13
+ * carrying the same payload.
14
+ * - On tenzro-native: a native syscall (`crossvm_pointer_move`).
15
+ * - On canton-internal: same as native, executed inside DAML choice on the
16
+ * Tenzro-internal synchroniser (M4 wires this; M3 stops at native/EVM/SVM).
17
+ *
18
+ * Each surface module owns the encoding of its own pointer-op tx. This port
19
+ * exists so the kernel can describe the *intent* of a pointer op uniformly,
20
+ * and so dust-truncation accounting at the EVM↔SVM boundary lives in one
21
+ * place (see `decimalsFor` + `truncateForView`).
22
+ *
23
+ * Notes:
24
+ * - Pointer ops are atomic and free of value-transfer fees on Tenzro. Gas is
25
+ * still charged at the source surface (e.g. EVM-side gas for a precompile
26
+ * call from EVM-on-Tenzro). The router surfaces this as a single fee row,
27
+ * not as a "bridge fee."
28
+ * - The "receive" side has no work to do — the balance view update is a
29
+ * side-effect of the source-side tx. `watch()` is the source surface's
30
+ * own watch loop (e.g. EVM tx receipt).
31
+ *
32
+ * Refs:
33
+ * - https://tenzro.com/docs/multi-vm
34
+ * - https://tenzro.com/docs/cross-vm-tokens
35
+ * - DESIGN.md §2 (the four surfaces), §5.2 (decimal problem),
36
+ * §6.1 (route table — pointer ops vs bridges).
37
+ */
38
+ import type { TdipDid } from '../types/identity.js';
39
+ import type { SurfaceName } from '../types/surface.js';
40
+ /** Cross-VM pointer-op address constant. */
41
+ export declare const CROSS_VM_PRECOMPILE: "0x1003";
42
+ /**
43
+ * The pointer-op intent, surface-agnostic. Each source surface reads this and
44
+ * encodes its own wire-format tx (EVM precompile call, SVM system instruction,
45
+ * native syscall).
46
+ *
47
+ * `amount` is in canonical native units (1 TNZO = 10^18). Truncation to the
48
+ * destination view's precision happens via `truncateForView` and any residual
49
+ * dust is surfaced as a `PreparedTx.warnings` entry.
50
+ */
51
+ export interface CrossVmPointerOp {
52
+ readonly fromSurface: SurfaceName;
53
+ readonly toSurface: SurfaceName;
54
+ /** TDIP DID owning the balance — same DID on both surfaces. */
55
+ readonly owner: TdipDid;
56
+ /** Amount to move, in canonical native units (10^18-scaled). */
57
+ readonly amount: bigint;
58
+ }
59
+ /**
60
+ * Return the decimal precision a surface uses for its TNZO view. The kernel
61
+ * stores balances in canonical 10^18 units; surfaces convert at the wire.
62
+ */
63
+ export declare function decimalsFor(surface: SurfaceName): number;
64
+ /**
65
+ * Truncate a canonical (10^18) amount to the precision of `surface`, then
66
+ * re-expand to canonical units. The difference between input and output is
67
+ * the dust that gets dropped on the destination view.
68
+ *
69
+ * Example: 1.000_000_000_500_000_000 TNZO from EVM (18 dec) into SVM (9 dec)
70
+ * truncates the trailing 500_000_000 sub-units (sub-lamport dust).
71
+ */
72
+ export declare function truncateForView(amount: bigint, surface: SurfaceName): bigint;
73
+ /**
74
+ * Sub-unit dust that would be lost moving `amount` from one canonical-units
75
+ * view to a lower-precision view. Positive only when the destination has
76
+ * fewer decimals than 18 and `amount` is not a whole multiple of that step.
77
+ */
78
+ export declare function dustResidual(amount: bigint, toSurface: SurfaceName): bigint;
79
+ //# sourceMappingURL=cross-vm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-vm.d.ts","sourceRoot":"","sources":["../../src/ports/cross-vm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,EAAG,QAAiB,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAaxD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAK5E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * CrossVmPointerPort — wire-level shape of a cross-VM pointer op on Tenzro.
3
+ *
4
+ * Tenzro Ledger holds a single canonical TNZO balance. Each on-Tenzro surface
5
+ * (tenzro-native, evm-on-tenzro, svm-on-tenzro, canton-internal) presents a
6
+ * *view* of that balance at its own decimal precision. Moving TNZO "from" one
7
+ * view "to" another is therefore not a value transfer — it's a balance-view
8
+ * pointer update. The Tenzro runtime exposes this as:
9
+ *
10
+ * - On EVM-on-Tenzro: precompile call to 0x1003, calldata =
11
+ * abi.encode(toSurface, owner, amount).
12
+ * - On SVM-on-Tenzro: a `tenzro_cross_vm` system program instruction
13
+ * carrying the same payload.
14
+ * - On tenzro-native: a native syscall (`crossvm_pointer_move`).
15
+ * - On canton-internal: same as native, executed inside DAML choice on the
16
+ * Tenzro-internal synchroniser (M4 wires this; M3 stops at native/EVM/SVM).
17
+ *
18
+ * Each surface module owns the encoding of its own pointer-op tx. This port
19
+ * exists so the kernel can describe the *intent* of a pointer op uniformly,
20
+ * and so dust-truncation accounting at the EVM↔SVM boundary lives in one
21
+ * place (see `decimalsFor` + `truncateForView`).
22
+ *
23
+ * Notes:
24
+ * - Pointer ops are atomic and free of value-transfer fees on Tenzro. Gas is
25
+ * still charged at the source surface (e.g. EVM-side gas for a precompile
26
+ * call from EVM-on-Tenzro). The router surfaces this as a single fee row,
27
+ * not as a "bridge fee."
28
+ * - The "receive" side has no work to do — the balance view update is a
29
+ * side-effect of the source-side tx. `watch()` is the source surface's
30
+ * own watch loop (e.g. EVM tx receipt).
31
+ *
32
+ * Refs:
33
+ * - https://tenzro.com/docs/multi-vm
34
+ * - https://tenzro.com/docs/cross-vm-tokens
35
+ * - DESIGN.md §2 (the four surfaces), §5.2 (decimal problem),
36
+ * §6.1 (route table — pointer ops vs bridges).
37
+ */
38
+ /** Cross-VM pointer-op address constant. */
39
+ export const CROSS_VM_PRECOMPILE = '0x1003';
40
+ /**
41
+ * Return the decimal precision a surface uses for its TNZO view. The kernel
42
+ * stores balances in canonical 10^18 units; surfaces convert at the wire.
43
+ */
44
+ export function decimalsFor(surface) {
45
+ switch (surface) {
46
+ case 'tenzro-native':
47
+ return 18;
48
+ case 'evm-on-tenzro':
49
+ return 18;
50
+ case 'svm-on-tenzro':
51
+ return 9;
52
+ case 'canton-internal':
53
+ return 10;
54
+ case 'canton-external':
55
+ return 10;
56
+ }
57
+ }
58
+ /**
59
+ * Truncate a canonical (10^18) amount to the precision of `surface`, then
60
+ * re-expand to canonical units. The difference between input and output is
61
+ * the dust that gets dropped on the destination view.
62
+ *
63
+ * Example: 1.000_000_000_500_000_000 TNZO from EVM (18 dec) into SVM (9 dec)
64
+ * truncates the trailing 500_000_000 sub-units (sub-lamport dust).
65
+ */
66
+ export function truncateForView(amount, surface) {
67
+ const dec = decimalsFor(surface);
68
+ if (dec >= 18)
69
+ return amount;
70
+ const div = 10n ** BigInt(18 - dec);
71
+ return (amount / div) * div;
72
+ }
73
+ /**
74
+ * Sub-unit dust that would be lost moving `amount` from one canonical-units
75
+ * view to a lower-precision view. Positive only when the destination has
76
+ * fewer decimals than 18 and `amount` is not a whole multiple of that step.
77
+ */
78
+ export function dustResidual(amount, toSurface) {
79
+ return amount - truncateForView(amount, toSurface);
80
+ }
81
+ //# sourceMappingURL=cross-vm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-vm.js","sourceRoot":"","sources":["../../src/ports/cross-vm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAiB,CAAC;AAoBrD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAoB;IAC9C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,eAAe;YAClB,OAAO,EAAE,CAAC;QACZ,KAAK,eAAe;YAClB,OAAO,EAAE,CAAC;QACZ,KAAK,eAAe;YAClB,OAAO,CAAC,CAAC;QACX,KAAK,iBAAiB;YACpB,OAAO,EAAE,CAAC;QACZ,KAAK,iBAAiB;YACpB,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,OAAoB;IAClE,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,GAAG,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC7B,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,SAAsB;IACjE,OAAO,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type { TenzroRpcPort, TenzroSendArgs, TenzroTxStatus, } from './tenzro-rpc.js';
2
+ export { TenzroSdkAdapter, TenzroNotInstalledError, } from './adapters/tenzro-sdk-adapter.js';
3
+ export type { TenzroClientLike } from './adapters/tenzro-sdk-adapter.js';
4
+ export type { TenzroIdentityPort } from './tenzro-identity.js';
5
+ export { TenzroIdentityAdapter } from './adapters/tenzro-identity-adapter.js';
6
+ export type { IdentityClientLike } from './adapters/tenzro-identity-adapter.js';
7
+ export type { CrossVmPointerOp } from './cross-vm.js';
8
+ export { CROSS_VM_PRECOMPILE, decimalsFor, truncateForView, dustResidual, } from './cross-vm.js';
9
+ export type { CantonValidatorPort, PrepareSubmissionRequest, PrepareSubmissionResponse, ExecuteSubmissionRequest, CantonCompletion, CompletionFilter, ActiveContractsFilter, CantonActiveContract, TransferPreapproval, GenerateTopologyRequest, GenerateTopologyResponse, SubmitTopologyRequest, SetupProposalRequest, PrepareAcceptSetupRequest, PrepareAcceptSetupResponse, SubmitAcceptSetupRequest, CantonHashingSchemeVersion, CantonSigningScheme, } from './canton/canton-validator.js';
10
+ export type { CantonIdentityPort, TenzroSurfaceCantonParty } from './canton/canton-identity.js';
11
+ export type { CantonHttpConfig } from './canton/http.js';
12
+ export { CantonHttpError } from './canton/http.js';
13
+ export { LedgerApiAdapter } from './canton/adapters/ledger-api-adapter.js';
14
+ export type { LedgerApiAdapterConfig } from './canton/adapters/ledger-api-adapter.js';
15
+ export { preparedTransactionHash, topologyBundleHash, bytesEqualConstantTime, } from './canton/hash.js';
16
+ export * from './agent/index.js';
17
+ export * from './bridge/index.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAChG,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { TenzroSdkAdapter, TenzroNotInstalledError, } from "./adapters/tenzro-sdk-adapter.js";
2
+ export { TenzroIdentityAdapter } from "./adapters/tenzro-identity-adapter.js";
3
+ export { CROSS_VM_PRECOMPILE, decimalsFor, truncateForView, dustResidual, } from "./cross-vm.js";
4
+ export { CantonHttpError } from "./canton/http.js";
5
+ export { LedgerApiAdapter } from "./canton/adapters/ledger-api-adapter.js";
6
+ export { preparedTransactionHash, topologyBundleHash, bytesEqualConstantTime, } from "./canton/hash.js";
7
+ // ── Agent-payments ports + adapters (AP2, ERC-8004, agent-payments, nano) ──
8
+ export * from "./agent/index.js";
9
+ // ── Bridge router ports + adapter stubs (M8 — see DESIGN.md §10) ──
10
+ export * from "./bridge/index.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAG9E,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAyBvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,8EAA8E;AAC9E,cAAc,kBAAkB,CAAC;AAEjC,qEAAqE;AACrE,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * TenzroIdentityPort — narrow port for resolving *other people's* DIDs.
3
+ *
4
+ * The kernel already knows the user's own surface keys synchronously (they
5
+ * come in through the constructor as `identity.keys`). This port exists for
6
+ * the *recipient* side: when a user sends to a DID that isn't their own,
7
+ * the kernel needs to ask the network "what tenzro-native address does
8
+ * `did:tenzro:human:...` map to?".
9
+ *
10
+ * Why a separate port (vs. folding into a single `identityPort` that also
11
+ * serves the user's own keys): own-keys are cached locally and used on the
12
+ * sign-time hot path. Conflating them with a remote lookup would force an
13
+ * `await` on every signing operation. This port stays remote-only.
14
+ *
15
+ * Backed by `IdentityClient.resolveDidDocument` over JSON-RPC; see
16
+ * `TenzroIdentityAdapter`.
17
+ */
18
+ import type { TdipDid } from '../types/identity.js';
19
+ export interface TenzroIdentityPort {
20
+ /**
21
+ * Resolve a DID to its tenzro-native base58 address.
22
+ *
23
+ * Returns `undefined` when the DID exists but has no tenzro-native key
24
+ * (e.g., a Canton-only identity). Throws if the DID is unknown or the
25
+ * RPC fails — callers should let those propagate.
26
+ */
27
+ resolveTenzroAddress(did: TdipDid): Promise<string | undefined>;
28
+ }
29
+ //# sourceMappingURL=tenzro-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenzro-identity.d.ts","sourceRoot":"","sources":["../../src/ports/tenzro-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjE"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * TenzroIdentityPort — narrow port for resolving *other people's* DIDs.
3
+ *
4
+ * The kernel already knows the user's own surface keys synchronously (they
5
+ * come in through the constructor as `identity.keys`). This port exists for
6
+ * the *recipient* side: when a user sends to a DID that isn't their own,
7
+ * the kernel needs to ask the network "what tenzro-native address does
8
+ * `did:tenzro:human:...` map to?".
9
+ *
10
+ * Why a separate port (vs. folding into a single `identityPort` that also
11
+ * serves the user's own keys): own-keys are cached locally and used on the
12
+ * sign-time hot path. Conflating them with a remote lookup would force an
13
+ * `await` on every signing operation. This port stays remote-only.
14
+ *
15
+ * Backed by `IdentityClient.resolveDidDocument` over JSON-RPC; see
16
+ * `TenzroIdentityAdapter`.
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=tenzro-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenzro-identity.js","sourceRoot":"","sources":["../../src/ports/tenzro-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * TenzroRpcPort — the kernel's view of the Tenzro Ledger JSON-RPC.
3
+ *
4
+ * The port is the only contract the surface modules (and tests) care about.
5
+ * The real implementation in `adapters/tenzro-sdk-adapter.ts` wraps
6
+ * `tenzro-sdk`'s `TenzroClient`. Tests inject in-memory fakes shaped like
7
+ * this interface, so nothing under `src/surfaces/` or `src/kernel.ts` ever
8
+ * imports from `tenzro-sdk` directly.
9
+ *
10
+ * Why a port at all (instead of taking the SDK type as the parameter):
11
+ * - `tenzro-sdk` is a moving target on testnet. Pinning the surface modules
12
+ * to its exact shape would mean every SDK release touches every surface.
13
+ * - We only need a tiny slice of the SDK; the port documents that slice.
14
+ * - Tests can build a fake without instantiating an `RpcClient`.
15
+ *
16
+ * Spec refs:
17
+ * - https://tenzro.com/docs/wallet-sdk
18
+ * - https://tenzro.com/docs/typescript-sdk
19
+ */
20
+ /**
21
+ * Server-side hybrid-signed transaction submission.
22
+ * Maps to `tenzro_signAndSendTransaction` (see SDK `WalletClient.signAndSend`).
23
+ *
24
+ * The node holds the TEE share of a 2-of-2 passkey-quorum (per DESIGN.md §4.3),
25
+ * derives the canonical preimage including the PQ pubkey, signs both Ed25519
26
+ * and ML-DSA-65 legs, and submits. Authorisation is via the ambient DPoP-bound
27
+ * session JWT (the SDK's `RpcClient` reads `TENZRO_BEARER_JWT` /
28
+ * `TENZRO_DPOP_PROOF` env vars and sets the headers automatically).
29
+ */
30
+ export interface TenzroSendArgs {
31
+ /** Sender's Tenzro-shape address (20-byte hex, "0x..."). */
32
+ readonly from: string;
33
+ /** Recipient's Tenzro-shape address. */
34
+ readonly to: string;
35
+ /** Amount in canonical units (1 TNZO = 10^18). */
36
+ readonly value: bigint;
37
+ /** Defaults to 21000 in the SDK. */
38
+ readonly gasLimit?: number;
39
+ /** Defaults to 1 gwei in the SDK. */
40
+ readonly gasPrice?: number;
41
+ /** Optional nonce override; SDK fetches if omitted. */
42
+ readonly nonce?: number;
43
+ /** Optional chain id override; SDK fetches if omitted. */
44
+ readonly chainId?: number;
45
+ }
46
+ /**
47
+ * On-chain transaction state — kept narrow on purpose. Surfaces the only
48
+ * fields the kernel's `watch()` walk needs to translate to a TxStatus.phase.
49
+ */
50
+ export interface TenzroTxStatus {
51
+ /** 64-char lowercase hex, no '0x' prefix per SDK convention. */
52
+ readonly hash: string;
53
+ /** 'pending' before inclusion, 'included' after, 'finalized' after the
54
+ * finalized-block-height crosses the inclusion height. */
55
+ readonly status: 'pending' | 'included' | 'finalized' | 'failed';
56
+ /** Block height at which the tx was included; absent when pending. */
57
+ readonly blockHeight?: number;
58
+ }
59
+ /**
60
+ * The kernel-facing slice of Tenzro RPC. Implemented for real by
61
+ * `TenzroSdkAdapter`; faked in-memory for tests.
62
+ */
63
+ export interface TenzroRpcPort {
64
+ /** Latest nonce for an address (for transaction ordering). */
65
+ getNonce(address: string): Promise<number>;
66
+ /** Chain id. Maps to `eth_chainId` in the SDK. */
67
+ getChainId(): Promise<number>;
68
+ /**
69
+ * Server-side sign + submit. Returns the tx hash.
70
+ * Throws if the session is unauthenticated or the TEE refuses to co-sign.
71
+ */
72
+ sendTransaction(args: TenzroSendArgs): Promise<string>;
73
+ /**
74
+ * Look up a tx by hash. Returns `null` if the node has never seen it.
75
+ * Used by the kernel's `watch()` poll loop.
76
+ */
77
+ getTransaction(hash: string): Promise<TenzroTxStatus | null>;
78
+ }
79
+ //# sourceMappingURL=tenzro-rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenzro-rpc.d.ts","sourceRoot":"","sources":["../../src/ports/tenzro-rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;+DAC2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IACjE,sEAAsE;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C,kDAAkD;IAClD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAC9D"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * TenzroRpcPort — the kernel's view of the Tenzro Ledger JSON-RPC.
3
+ *
4
+ * The port is the only contract the surface modules (and tests) care about.
5
+ * The real implementation in `adapters/tenzro-sdk-adapter.ts` wraps
6
+ * `tenzro-sdk`'s `TenzroClient`. Tests inject in-memory fakes shaped like
7
+ * this interface, so nothing under `src/surfaces/` or `src/kernel.ts` ever
8
+ * imports from `tenzro-sdk` directly.
9
+ *
10
+ * Why a port at all (instead of taking the SDK type as the parameter):
11
+ * - `tenzro-sdk` is a moving target on testnet. Pinning the surface modules
12
+ * to its exact shape would mean every SDK release touches every surface.
13
+ * - We only need a tiny slice of the SDK; the port documents that slice.
14
+ * - Tests can build a fake without instantiating an `RpcClient`.
15
+ *
16
+ * Spec refs:
17
+ * - https://tenzro.com/docs/wallet-sdk
18
+ * - https://tenzro.com/docs/typescript-sdk
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=tenzro-rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenzro-rpc.js","sourceRoot":"","sources":["../../src/ports/tenzro-rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
@@ -0,0 +1,3 @@
1
+ export { selectRoute } from './route.js';
2
+ export type { RouteSelection } from './route.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { selectRoute } from "./route.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Route selection. Given a SendIntent, choose the source surface and the
3
+ * route shape (native-on-surface, cross-VM pointer, or external bridge).
4
+ *
5
+ * The wallet's UX promise hinges on this: pointer ops within Tenzro must NOT
6
+ * be presented as bridges, must NOT charge a bridge fee, and must NOT show a
7
+ * "lock-and-mint" confirmation. Bridges are reserved for moves that genuinely
8
+ * cross ledgers.
9
+ */
10
+ import type { Intent, Route } from '../types/intent.js';
11
+ import { type SurfaceName } from '../types/surface.js';
12
+ export interface RouteSelection {
13
+ readonly route: Route;
14
+ readonly fromSurface: SurfaceName;
15
+ }
16
+ export declare function selectRoute(intent: Intent): RouteSelection;
17
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/router/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAkC1D"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Route selection. Given a SendIntent, choose the source surface and the
3
+ * route shape (native-on-surface, cross-VM pointer, or external bridge).
4
+ *
5
+ * The wallet's UX promise hinges on this: pointer ops within Tenzro must NOT
6
+ * be presented as bridges, must NOT charge a bridge fee, and must NOT show a
7
+ * "lock-and-mint" confirmation. Bridges are reserved for moves that genuinely
8
+ * cross ledgers.
9
+ */
10
+ import { SURFACE_IS_ON_TENZRO } from "../types/surface.js";
11
+ export function selectRoute(intent) {
12
+ if (intent.kind !== 'send') {
13
+ throw new Error(`route selection unsupported for intent: ${intent.kind}`);
14
+ }
15
+ const fromSurface = intent.fromSurface ?? inferFromSurface(intent);
16
+ const toSurface = inferToSurface(intent);
17
+ if (fromSurface === toSurface) {
18
+ return { fromSurface, route: { kind: 'native', surface: fromSurface } };
19
+ }
20
+ // Both surfaces inside the Tenzro runtime → pointer op, no bridge.
21
+ if (SURFACE_IS_ON_TENZRO[fromSurface] && SURFACE_IS_ON_TENZRO[toSurface]) {
22
+ return {
23
+ fromSurface,
24
+ route: {
25
+ kind: 'cross-vm-pointer',
26
+ fromSurface,
27
+ toSurface,
28
+ precompile: '0x1003',
29
+ },
30
+ };
31
+ }
32
+ // Otherwise we cross a real ledger boundary — pick a bridge adapter.
33
+ return {
34
+ fromSurface,
35
+ route: {
36
+ kind: 'bridge',
37
+ fromSurface,
38
+ toSurface,
39
+ adapter: pickBridgeAdapter(fromSurface, toSurface),
40
+ },
41
+ };
42
+ }
43
+ function inferFromSurface(intent) {
44
+ switch (intent.asset.scope) {
45
+ case 'tenzro-native':
46
+ return 'tenzro-native';
47
+ case 'tenzro-asset':
48
+ return 'tenzro-native';
49
+ case 'external-evm':
50
+ return 'evm-on-tenzro'; // bridged in via EVM by default
51
+ case 'external-svm':
52
+ return 'svm-on-tenzro';
53
+ case 'canton-mainnet':
54
+ return 'canton-external';
55
+ }
56
+ }
57
+ function inferToSurface(intent) {
58
+ switch (intent.to.kind) {
59
+ case 'tdip':
60
+ return 'tenzro-native';
61
+ case 'evm':
62
+ return 'evm-on-tenzro';
63
+ case 'svm':
64
+ return 'svm-on-tenzro';
65
+ case 'canton':
66
+ // Without more context, Canton MainNet is the safer default — internal
67
+ // Canton routing is typically requested explicitly via fromSurface.
68
+ return 'canton-external';
69
+ }
70
+ }
71
+ function pickBridgeAdapter(from, to) {
72
+ // M1 heuristic: Canton-external goes through the Canton adapter; everything
73
+ // else defaults to LI.FI (the aggregator picks underlying bridges).
74
+ if (from === 'canton-external' || to === 'canton-external')
75
+ return 'canton-adapter';
76
+ return 'lifi';
77
+ }
78
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/router/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,oBAAoB,EAAoB,MAAM,qBAAqB,CAAC;AAO7E,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;IAC1E,CAAC;IAED,mEAAmE;IACnE,IAAI,oBAAoB,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QACzE,OAAO;YACL,WAAW;YACX,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,WAAW;gBACX,SAAS;gBACT,UAAU,EAAE,QAAQ;aACrB;SACF,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,OAAO;QACL,WAAW;QACX,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW;YACX,SAAS;YACT,OAAO,EAAE,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC;SACnD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAyC;IACjE,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,eAAe,CAAC;QACzB,KAAK,cAAc;YACjB,OAAO,eAAe,CAAC;QACzB,KAAK,cAAc;YACjB,OAAO,eAAe,CAAC,CAAC,gCAAgC;QAC1D,KAAK,cAAc;YACjB,OAAO,eAAe,CAAC;QACzB,KAAK,gBAAgB;YACnB,OAAO,iBAAiB,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAyC;IAC/D,QAAQ,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,eAAe,CAAC;QACzB,KAAK,KAAK;YACR,OAAO,eAAe,CAAC;QACzB,KAAK,KAAK;YACR,OAAO,eAAe,CAAC;QACzB,KAAK,QAAQ;YACX,uEAAuE;YACvE,oEAAoE;YACpE,OAAO,iBAAiB,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAiB,EACjB,EAAe;IAEf,4EAA4E;IAC5E,oEAAoE;IACpE,IAAI,IAAI,KAAK,iBAAiB,IAAI,EAAE,KAAK,iBAAiB;QAAE,OAAO,gBAAgB,CAAC;IACpF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * NanopaymentFlow — wallet-side orchestration helpers for nanopayment
3
+ * channels. The `NanopaymentPort` exposes the SDK's primitives one-for-one;
4
+ * this module composes them into the lifecycle a real consumer (LLM
5
+ * streaming UI, per-API-call paywall, bandwidth meter) actually drives:
6
+ *
7
+ * open → many sendNanopayment → autoFlush at threshold → close on done
8
+ *
9
+ * The orchestration is all wallet-side. The node holds the channel state,
10
+ * the SDK exposes RPCs, this module sequences them.
11
+ */
12
+ import type { NanopaymentPort, NanopaymentReceipt } from '../ports/agent/nanopayment.js';
13
+ export interface NanopaymentSessionOptions {
14
+ /** Auto-flush after this many off-chain payments accumulate. */
15
+ readonly flushEvery?: number;
16
+ /** Auto-flush when accumulated value crosses this threshold (smallest units). */
17
+ readonly flushAtAmount?: bigint;
18
+ /** Hard cap on total session spend. Throws if exceeded. */
19
+ readonly sessionCap?: bigint;
20
+ }
21
+ /**
22
+ * Stateful helper that owns one open channel. Counts payments + value, flushes
23
+ * on threshold, closes on `done()`. Designed to be created once at the start
24
+ * of a streaming session and discarded at the end.
25
+ */
26
+ export declare class NanopaymentSession {
27
+ #private;
28
+ private constructor();
29
+ /** Open a channel and return a session bound to it. */
30
+ static open(port: NanopaymentPort, req: {
31
+ payer: string;
32
+ payee: string;
33
+ deposit: bigint;
34
+ asset?: string;
35
+ }, opts?: NanopaymentSessionOptions): Promise<NanopaymentSession>;
36
+ get channelId(): string;
37
+ get totalPaid(): bigint;
38
+ /**
39
+ * Send a single off-chain payment. Returns the receipt. Auto-flushes
40
+ * when count or amount thresholds cross.
41
+ */
42
+ send(amount: bigint, memo?: string): Promise<NanopaymentReceipt>;
43
+ /** Force an on-chain batch settlement. Resets unsettled counters. */
44
+ flush(): Promise<void>;
45
+ /** Close the channel. Idempotent; subsequent sends throw. */
46
+ close(): Promise<void>;
47
+ }
48
+ //# sourceMappingURL=nanopayment-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nanopayment-flow.d.ts","sourceRoot":"","sources":["../../src/settlement/nanopayment-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,yBAAyB;IACxC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAOD;;;;GAIG;AACH,qBAAa,kBAAkB;;IAS7B,OAAO;IAUP,uDAAuD;WAC1C,IAAI,CACf,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EACtE,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,kBAAkB,CAAC;IAU9B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBtE,qEAAqE;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,6DAA6D;IACvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB7B"}