tenzro-wallet 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +128 -0
  3. package/dist/balance/aggregator.d.ts +16 -0
  4. package/dist/balance/aggregator.d.ts.map +1 -0
  5. package/dist/balance/aggregator.js +73 -0
  6. package/dist/balance/aggregator.js.map +1 -0
  7. package/dist/balance/index.d.ts +3 -0
  8. package/dist/balance/index.d.ts.map +1 -0
  9. package/dist/balance/index.js +2 -0
  10. package/dist/balance/index.js.map +1 -0
  11. package/dist/consent/index.d.ts +3 -0
  12. package/dist/consent/index.d.ts.map +1 -0
  13. package/dist/consent/index.js +2 -0
  14. package/dist/consent/index.js.map +1 -0
  15. package/dist/consent/policy.d.ts +27 -0
  16. package/dist/consent/policy.d.ts.map +1 -0
  17. package/dist/consent/policy.js +121 -0
  18. package/dist/consent/policy.js.map +1 -0
  19. package/dist/crypto/eip1559.d.ts +53 -0
  20. package/dist/crypto/eip1559.d.ts.map +1 -0
  21. package/dist/crypto/eip1559.js +79 -0
  22. package/dist/crypto/eip1559.js.map +1 -0
  23. package/dist/crypto/keccak256.d.ts +20 -0
  24. package/dist/crypto/keccak256.d.ts.map +1 -0
  25. package/dist/crypto/keccak256.js +167 -0
  26. package/dist/crypto/keccak256.js.map +1 -0
  27. package/dist/crypto/rlp.d.ts +30 -0
  28. package/dist/crypto/rlp.d.ts.map +1 -0
  29. package/dist/crypto/rlp.js +165 -0
  30. package/dist/crypto/rlp.js.map +1 -0
  31. package/dist/crypto/sha256.d.ts +14 -0
  32. package/dist/crypto/sha256.d.ts.map +1 -0
  33. package/dist/crypto/sha256.js +33 -0
  34. package/dist/crypto/sha256.js.map +1 -0
  35. package/dist/crypto/solana.d.ts +86 -0
  36. package/dist/crypto/solana.d.ts.map +1 -0
  37. package/dist/crypto/solana.js +218 -0
  38. package/dist/crypto/solana.js.map +1 -0
  39. package/dist/custody/frost/backend.d.ts +59 -0
  40. package/dist/custody/frost/backend.d.ts.map +1 -0
  41. package/dist/custody/frost/backend.js +83 -0
  42. package/dist/custody/frost/backend.js.map +1 -0
  43. package/dist/custody/frost/coordinator.d.ts +148 -0
  44. package/dist/custody/frost/coordinator.d.ts.map +1 -0
  45. package/dist/custody/frost/coordinator.js +58 -0
  46. package/dist/custody/frost/coordinator.js.map +1 -0
  47. package/dist/custody/frost/ed25519-driver.d.ts +30 -0
  48. package/dist/custody/frost/ed25519-driver.d.ts.map +1 -0
  49. package/dist/custody/frost/ed25519-driver.js +76 -0
  50. package/dist/custody/frost/ed25519-driver.js.map +1 -0
  51. package/dist/custody/frost/http-adapter.d.ts +77 -0
  52. package/dist/custody/frost/http-adapter.d.ts.map +1 -0
  53. package/dist/custody/frost/http-adapter.js +168 -0
  54. package/dist/custody/frost/http-adapter.js.map +1 -0
  55. package/dist/custody/frost/hybrid-driver.d.ts +37 -0
  56. package/dist/custody/frost/hybrid-driver.d.ts.map +1 -0
  57. package/dist/custody/frost/hybrid-driver.js +60 -0
  58. package/dist/custody/frost/hybrid-driver.js.map +1 -0
  59. package/dist/custody/frost/index.d.ts +12 -0
  60. package/dist/custody/frost/index.d.ts.map +1 -0
  61. package/dist/custody/frost/index.js +6 -0
  62. package/dist/custody/frost/index.js.map +1 -0
  63. package/dist/custody/frost/secp256k1-driver.d.ts +26 -0
  64. package/dist/custody/frost/secp256k1-driver.d.ts.map +1 -0
  65. package/dist/custody/frost/secp256k1-driver.js +78 -0
  66. package/dist/custody/frost/secp256k1-driver.js.map +1 -0
  67. package/dist/custody/index.d.ts +9 -0
  68. package/dist/custody/index.d.ts.map +1 -0
  69. package/dist/custody/index.js +11 -0
  70. package/dist/custody/index.js.map +1 -0
  71. package/dist/custody/internal-mpc.d.ts +14 -0
  72. package/dist/custody/internal-mpc.d.ts.map +1 -0
  73. package/dist/custody/internal-mpc.js +40 -0
  74. package/dist/custody/internal-mpc.js.map +1 -0
  75. package/dist/custody/mldsa/coordinator.d.ts +63 -0
  76. package/dist/custody/mldsa/coordinator.d.ts.map +1 -0
  77. package/dist/custody/mldsa/coordinator.js +44 -0
  78. package/dist/custody/mldsa/coordinator.js.map +1 -0
  79. package/dist/custody/mldsa/driver.d.ts +23 -0
  80. package/dist/custody/mldsa/driver.d.ts.map +1 -0
  81. package/dist/custody/mldsa/driver.js +43 -0
  82. package/dist/custody/mldsa/driver.js.map +1 -0
  83. package/dist/custody/mldsa/http-adapter.d.ts +59 -0
  84. package/dist/custody/mldsa/http-adapter.d.ts.map +1 -0
  85. package/dist/custody/mldsa/http-adapter.js +103 -0
  86. package/dist/custody/mldsa/http-adapter.js.map +1 -0
  87. package/dist/custody/mldsa/index.d.ts +7 -0
  88. package/dist/custody/mldsa/index.d.ts.map +1 -0
  89. package/dist/custody/mldsa/index.js +4 -0
  90. package/dist/custody/mldsa/index.js.map +1 -0
  91. package/dist/custody/pairing/http-adapter.d.ts +40 -0
  92. package/dist/custody/pairing/http-adapter.d.ts.map +1 -0
  93. package/dist/custody/pairing/http-adapter.js +113 -0
  94. package/dist/custody/pairing/http-adapter.js.map +1 -0
  95. package/dist/custody/pairing/index.d.ts +10 -0
  96. package/dist/custody/pairing/index.d.ts.map +1 -0
  97. package/dist/custody/pairing/index.js +8 -0
  98. package/dist/custody/pairing/index.js.map +1 -0
  99. package/dist/custody/pairing/port.d.ts +121 -0
  100. package/dist/custody/pairing/port.d.ts.map +1 -0
  101. package/dist/custody/pairing/port.js +40 -0
  102. package/dist/custody/pairing/port.js.map +1 -0
  103. package/dist/custody/passkey-share/http-adapter.d.ts +77 -0
  104. package/dist/custody/passkey-share/http-adapter.d.ts.map +1 -0
  105. package/dist/custody/passkey-share/http-adapter.js +125 -0
  106. package/dist/custody/passkey-share/http-adapter.js.map +1 -0
  107. package/dist/custody/passkey-share/index.d.ts +7 -0
  108. package/dist/custody/passkey-share/index.d.ts.map +1 -0
  109. package/dist/custody/passkey-share/index.js +4 -0
  110. package/dist/custody/passkey-share/index.js.map +1 -0
  111. package/dist/custody/passkey-share/unwrapper.d.ts +174 -0
  112. package/dist/custody/passkey-share/unwrapper.d.ts.map +1 -0
  113. package/dist/custody/passkey-share/unwrapper.js +132 -0
  114. package/dist/custody/passkey-share/unwrapper.js.map +1 -0
  115. package/dist/custody/passkey-share/webauthn-adapter.d.ts +112 -0
  116. package/dist/custody/passkey-share/webauthn-adapter.d.ts.map +1 -0
  117. package/dist/custody/passkey-share/webauthn-adapter.js +150 -0
  118. package/dist/custody/passkey-share/webauthn-adapter.js.map +1 -0
  119. package/dist/custody/surface-key-id.d.ts +15 -0
  120. package/dist/custody/surface-key-id.d.ts.map +1 -0
  121. package/dist/custody/surface-key-id.js +25 -0
  122. package/dist/custody/surface-key-id.js.map +1 -0
  123. package/dist/dapp/eip6963.d.ts +64 -0
  124. package/dist/dapp/eip6963.d.ts.map +1 -0
  125. package/dist/dapp/eip6963.js +55 -0
  126. package/dist/dapp/eip6963.js.map +1 -0
  127. package/dist/dapp/index.d.ts +21 -0
  128. package/dist/dapp/index.d.ts.map +1 -0
  129. package/dist/dapp/index.js +24 -0
  130. package/dist/dapp/index.js.map +1 -0
  131. package/dist/identity/delegate-set.d.ts +57 -0
  132. package/dist/identity/delegate-set.d.ts.map +1 -0
  133. package/dist/identity/delegate-set.js +85 -0
  134. package/dist/identity/delegate-set.js.map +1 -0
  135. package/dist/identity/did.d.ts +17 -0
  136. package/dist/identity/did.d.ts.map +1 -0
  137. package/dist/identity/did.js +60 -0
  138. package/dist/identity/did.js.map +1 -0
  139. package/dist/identity/index.d.ts +14 -0
  140. package/dist/identity/index.d.ts.map +1 -0
  141. package/dist/identity/index.js +8 -0
  142. package/dist/identity/index.js.map +1 -0
  143. package/dist/identity/provision.d.ts +13 -0
  144. package/dist/identity/provision.d.ts.map +1 -0
  145. package/dist/identity/provision.js +151 -0
  146. package/dist/identity/provision.js.map +1 -0
  147. package/dist/identity/provisioning-http-adapter.d.ts +81 -0
  148. package/dist/identity/provisioning-http-adapter.d.ts.map +1 -0
  149. package/dist/identity/provisioning-http-adapter.js +114 -0
  150. package/dist/identity/provisioning-http-adapter.js.map +1 -0
  151. package/dist/identity/recovery-http-adapter.d.ts +83 -0
  152. package/dist/identity/recovery-http-adapter.d.ts.map +1 -0
  153. package/dist/identity/recovery-http-adapter.js +139 -0
  154. package/dist/identity/recovery-http-adapter.js.map +1 -0
  155. package/dist/identity/wallet-new.d.ts +132 -0
  156. package/dist/identity/wallet-new.d.ts.map +1 -0
  157. package/dist/identity/wallet-new.js +94 -0
  158. package/dist/identity/wallet-new.js.map +1 -0
  159. package/dist/identity/wallet-recover.d.ts +116 -0
  160. package/dist/identity/wallet-recover.d.ts.map +1 -0
  161. package/dist/identity/wallet-recover.js +95 -0
  162. package/dist/identity/wallet-recover.js.map +1 -0
  163. package/dist/index.d.ts +12 -0
  164. package/dist/index.d.ts.map +1 -0
  165. package/dist/index.js +11 -0
  166. package/dist/index.js.map +1 -0
  167. package/dist/kernel.d.ts +119 -0
  168. package/dist/kernel.d.ts.map +1 -0
  169. package/dist/kernel.js +144 -0
  170. package/dist/kernel.js.map +1 -0
  171. package/dist/ports/adapters/tenzro-identity-adapter.d.ts +44 -0
  172. package/dist/ports/adapters/tenzro-identity-adapter.d.ts.map +1 -0
  173. package/dist/ports/adapters/tenzro-identity-adapter.js +60 -0
  174. package/dist/ports/adapters/tenzro-identity-adapter.js.map +1 -0
  175. package/dist/ports/adapters/tenzro-sdk-adapter.d.ts +86 -0
  176. package/dist/ports/adapters/tenzro-sdk-adapter.d.ts.map +1 -0
  177. package/dist/ports/adapters/tenzro-sdk-adapter.js +100 -0
  178. package/dist/ports/adapters/tenzro-sdk-adapter.js.map +1 -0
  179. package/dist/ports/agent/acp.d.ts +66 -0
  180. package/dist/ports/agent/acp.d.ts.map +1 -0
  181. package/dist/ports/agent/acp.js +27 -0
  182. package/dist/ports/agent/acp.js.map +1 -0
  183. package/dist/ports/agent/adapters/acp-adapter.d.ts +67 -0
  184. package/dist/ports/agent/adapters/acp-adapter.d.ts.map +1 -0
  185. package/dist/ports/agent/adapters/acp-adapter.js +70 -0
  186. package/dist/ports/agent/adapters/acp-adapter.js.map +1 -0
  187. package/dist/ports/agent/adapters/agent-bond-adapter.d.ts +31 -0
  188. package/dist/ports/agent/adapters/agent-bond-adapter.d.ts.map +1 -0
  189. package/dist/ports/agent/adapters/agent-bond-adapter.js +82 -0
  190. package/dist/ports/agent/adapters/agent-bond-adapter.js.map +1 -0
  191. package/dist/ports/agent/adapters/agent-payment-adapter.d.ts +66 -0
  192. package/dist/ports/agent/adapters/agent-payment-adapter.d.ts.map +1 -0
  193. package/dist/ports/agent/adapters/agent-payment-adapter.js +75 -0
  194. package/dist/ports/agent/adapters/agent-payment-adapter.js.map +1 -0
  195. package/dist/ports/agent/adapters/ap2-adapter.d.ts +28 -0
  196. package/dist/ports/agent/adapters/ap2-adapter.d.ts.map +1 -0
  197. package/dist/ports/agent/adapters/ap2-adapter.js +97 -0
  198. package/dist/ports/agent/adapters/ap2-adapter.js.map +1 -0
  199. package/dist/ports/agent/adapters/auth-approval-adapter.d.ts +26 -0
  200. package/dist/ports/agent/adapters/auth-approval-adapter.d.ts.map +1 -0
  201. package/dist/ports/agent/adapters/auth-approval-adapter.js +37 -0
  202. package/dist/ports/agent/adapters/auth-approval-adapter.js.map +1 -0
  203. package/dist/ports/agent/adapters/erc7802-adapter.d.ts +30 -0
  204. package/dist/ports/agent/adapters/erc7802-adapter.d.ts.map +1 -0
  205. package/dist/ports/agent/adapters/erc7802-adapter.js +60 -0
  206. package/dist/ports/agent/adapters/erc7802-adapter.js.map +1 -0
  207. package/dist/ports/agent/adapters/erc8004-adapter.d.ts +54 -0
  208. package/dist/ports/agent/adapters/erc8004-adapter.d.ts.map +1 -0
  209. package/dist/ports/agent/adapters/erc8004-adapter.js +53 -0
  210. package/dist/ports/agent/adapters/erc8004-adapter.js.map +1 -0
  211. package/dist/ports/agent/adapters/escrow-adapter.d.ts +33 -0
  212. package/dist/ports/agent/adapters/escrow-adapter.d.ts.map +1 -0
  213. package/dist/ports/agent/adapters/escrow-adapter.js +109 -0
  214. package/dist/ports/agent/adapters/escrow-adapter.js.map +1 -0
  215. package/dist/ports/agent/adapters/fee-estimator-adapter.d.ts +31 -0
  216. package/dist/ports/agent/adapters/fee-estimator-adapter.d.ts.map +1 -0
  217. package/dist/ports/agent/adapters/fee-estimator-adapter.js +103 -0
  218. package/dist/ports/agent/adapters/fee-estimator-adapter.js.map +1 -0
  219. package/dist/ports/agent/adapters/htlc-escrow-adapter.d.ts +68 -0
  220. package/dist/ports/agent/adapters/htlc-escrow-adapter.d.ts.map +1 -0
  221. package/dist/ports/agent/adapters/htlc-escrow-adapter.js +131 -0
  222. package/dist/ports/agent/adapters/htlc-escrow-adapter.js.map +1 -0
  223. package/dist/ports/agent/adapters/insurance-adapter.d.ts +32 -0
  224. package/dist/ports/agent/adapters/insurance-adapter.d.ts.map +1 -0
  225. package/dist/ports/agent/adapters/insurance-adapter.js +103 -0
  226. package/dist/ports/agent/adapters/insurance-adapter.js.map +1 -0
  227. package/dist/ports/agent/adapters/lifecycle-adapter.d.ts +26 -0
  228. package/dist/ports/agent/adapters/lifecycle-adapter.d.ts.map +1 -0
  229. package/dist/ports/agent/adapters/lifecycle-adapter.js +136 -0
  230. package/dist/ports/agent/adapters/lifecycle-adapter.js.map +1 -0
  231. package/dist/ports/agent/adapters/nanopayment-adapter.d.ts +62 -0
  232. package/dist/ports/agent/adapters/nanopayment-adapter.d.ts.map +1 -0
  233. package/dist/ports/agent/adapters/nanopayment-adapter.js +76 -0
  234. package/dist/ports/agent/adapters/nanopayment-adapter.js.map +1 -0
  235. package/dist/ports/agent/adapters/payment-rails-adapter.d.ts +67 -0
  236. package/dist/ports/agent/adapters/payment-rails-adapter.d.ts.map +1 -0
  237. package/dist/ports/agent/adapters/payment-rails-adapter.js +108 -0
  238. package/dist/ports/agent/adapters/payment-rails-adapter.js.map +1 -0
  239. package/dist/ports/agent/adapters/principal-chain-adapter.d.ts +23 -0
  240. package/dist/ports/agent/adapters/principal-chain-adapter.d.ts.map +1 -0
  241. package/dist/ports/agent/adapters/principal-chain-adapter.js +156 -0
  242. package/dist/ports/agent/adapters/principal-chain-adapter.js.map +1 -0
  243. package/dist/ports/agent/adapters/session-key-adapter.d.ts +45 -0
  244. package/dist/ports/agent/adapters/session-key-adapter.d.ts.map +1 -0
  245. package/dist/ports/agent/adapters/session-key-adapter.js +80 -0
  246. package/dist/ports/agent/adapters/session-key-adapter.js.map +1 -0
  247. package/dist/ports/agent/adapters/tee-attestation-adapter.d.ts +32 -0
  248. package/dist/ports/agent/adapters/tee-attestation-adapter.d.ts.map +1 -0
  249. package/dist/ports/agent/adapters/tee-attestation-adapter.js +38 -0
  250. package/dist/ports/agent/adapters/tee-attestation-adapter.js.map +1 -0
  251. package/dist/ports/agent/agent-bond.d.ts +80 -0
  252. package/dist/ports/agent/agent-bond.d.ts.map +1 -0
  253. package/dist/ports/agent/agent-bond.js +23 -0
  254. package/dist/ports/agent/agent-bond.js.map +1 -0
  255. package/dist/ports/agent/agent-payment.d.ts +72 -0
  256. package/dist/ports/agent/agent-payment.d.ts.map +1 -0
  257. package/dist/ports/agent/agent-payment.js +17 -0
  258. package/dist/ports/agent/agent-payment.js.map +1 -0
  259. package/dist/ports/agent/ap2.d.ts +104 -0
  260. package/dist/ports/agent/ap2.d.ts.map +1 -0
  261. package/dist/ports/agent/ap2.js +22 -0
  262. package/dist/ports/agent/ap2.js.map +1 -0
  263. package/dist/ports/agent/auth-approval.d.ts +40 -0
  264. package/dist/ports/agent/auth-approval.d.ts.map +1 -0
  265. package/dist/ports/agent/auth-approval.js +23 -0
  266. package/dist/ports/agent/auth-approval.js.map +1 -0
  267. package/dist/ports/agent/erc7802.d.ts +94 -0
  268. package/dist/ports/agent/erc7802.d.ts.map +1 -0
  269. package/dist/ports/agent/erc7802.js +30 -0
  270. package/dist/ports/agent/erc7802.js.map +1 -0
  271. package/dist/ports/agent/erc8004.d.ts +57 -0
  272. package/dist/ports/agent/erc8004.d.ts.map +1 -0
  273. package/dist/ports/agent/erc8004.js +20 -0
  274. package/dist/ports/agent/erc8004.js.map +1 -0
  275. package/dist/ports/agent/escrow.d.ts +74 -0
  276. package/dist/ports/agent/escrow.d.ts.map +1 -0
  277. package/dist/ports/agent/escrow.js +18 -0
  278. package/dist/ports/agent/escrow.js.map +1 -0
  279. package/dist/ports/agent/fee-estimator.d.ts +71 -0
  280. package/dist/ports/agent/fee-estimator.d.ts.map +1 -0
  281. package/dist/ports/agent/fee-estimator.js +21 -0
  282. package/dist/ports/agent/fee-estimator.js.map +1 -0
  283. package/dist/ports/agent/htlc-escrow.d.ts +94 -0
  284. package/dist/ports/agent/htlc-escrow.d.ts.map +1 -0
  285. package/dist/ports/agent/htlc-escrow.js +25 -0
  286. package/dist/ports/agent/htlc-escrow.js.map +1 -0
  287. package/dist/ports/agent/index.d.ts +58 -0
  288. package/dist/ports/agent/index.d.ts.map +1 -0
  289. package/dist/ports/agent/index.js +24 -0
  290. package/dist/ports/agent/index.js.map +1 -0
  291. package/dist/ports/agent/insurance.d.ts +65 -0
  292. package/dist/ports/agent/insurance.d.ts.map +1 -0
  293. package/dist/ports/agent/insurance.js +18 -0
  294. package/dist/ports/agent/insurance.js.map +1 -0
  295. package/dist/ports/agent/lifecycle.d.ts +69 -0
  296. package/dist/ports/agent/lifecycle.d.ts.map +1 -0
  297. package/dist/ports/agent/lifecycle.js +17 -0
  298. package/dist/ports/agent/lifecycle.js.map +1 -0
  299. package/dist/ports/agent/nanopayment.d.ts +72 -0
  300. package/dist/ports/agent/nanopayment.d.ts.map +1 -0
  301. package/dist/ports/agent/nanopayment.js +16 -0
  302. package/dist/ports/agent/nanopayment.js.map +1 -0
  303. package/dist/ports/agent/payment-rails.d.ts +140 -0
  304. package/dist/ports/agent/payment-rails.d.ts.map +1 -0
  305. package/dist/ports/agent/payment-rails.js +25 -0
  306. package/dist/ports/agent/payment-rails.js.map +1 -0
  307. package/dist/ports/agent/principal-chain.d.ts +95 -0
  308. package/dist/ports/agent/principal-chain.d.ts.map +1 -0
  309. package/dist/ports/agent/principal-chain.js +16 -0
  310. package/dist/ports/agent/principal-chain.js.map +1 -0
  311. package/dist/ports/agent/session-key.d.ts +94 -0
  312. package/dist/ports/agent/session-key.d.ts.map +1 -0
  313. package/dist/ports/agent/session-key.js +31 -0
  314. package/dist/ports/agent/session-key.js.map +1 -0
  315. package/dist/ports/agent/tee-attestation.d.ts +51 -0
  316. package/dist/ports/agent/tee-attestation.d.ts.map +1 -0
  317. package/dist/ports/agent/tee-attestation.js +28 -0
  318. package/dist/ports/agent/tee-attestation.js.map +1 -0
  319. package/dist/ports/bridge/adapters/bridge-adapter-base.d.ts +47 -0
  320. package/dist/ports/bridge/adapters/bridge-adapter-base.d.ts.map +1 -0
  321. package/dist/ports/bridge/adapters/bridge-adapter-base.js +144 -0
  322. package/dist/ports/bridge/adapters/bridge-adapter-base.js.map +1 -0
  323. package/dist/ports/bridge/adapters/canton-bridge-adapter.d.ts +30 -0
  324. package/dist/ports/bridge/adapters/canton-bridge-adapter.d.ts.map +1 -0
  325. package/dist/ports/bridge/adapters/canton-bridge-adapter.js +31 -0
  326. package/dist/ports/bridge/adapters/canton-bridge-adapter.js.map +1 -0
  327. package/dist/ports/bridge/adapters/ccip-adapter.d.ts +30 -0
  328. package/dist/ports/bridge/adapters/ccip-adapter.d.ts.map +1 -0
  329. package/dist/ports/bridge/adapters/ccip-adapter.js +31 -0
  330. package/dist/ports/bridge/adapters/ccip-adapter.js.map +1 -0
  331. package/dist/ports/bridge/adapters/debridge-adapter.d.ts +27 -0
  332. package/dist/ports/bridge/adapters/debridge-adapter.d.ts.map +1 -0
  333. package/dist/ports/bridge/adapters/debridge-adapter.js +28 -0
  334. package/dist/ports/bridge/adapters/debridge-adapter.js.map +1 -0
  335. package/dist/ports/bridge/adapters/layerzero-adapter.d.ts +30 -0
  336. package/dist/ports/bridge/adapters/layerzero-adapter.d.ts.map +1 -0
  337. package/dist/ports/bridge/adapters/layerzero-adapter.js +31 -0
  338. package/dist/ports/bridge/adapters/layerzero-adapter.js.map +1 -0
  339. package/dist/ports/bridge/adapters/lifi-adapter.d.ts +48 -0
  340. package/dist/ports/bridge/adapters/lifi-adapter.d.ts.map +1 -0
  341. package/dist/ports/bridge/adapters/lifi-adapter.js +49 -0
  342. package/dist/ports/bridge/adapters/lifi-adapter.js.map +1 -0
  343. package/dist/ports/bridge/adapters/wormhole-adapter.d.ts +26 -0
  344. package/dist/ports/bridge/adapters/wormhole-adapter.d.ts.map +1 -0
  345. package/dist/ports/bridge/adapters/wormhole-adapter.js +27 -0
  346. package/dist/ports/bridge/adapters/wormhole-adapter.js.map +1 -0
  347. package/dist/ports/bridge/bridge.d.ts +123 -0
  348. package/dist/ports/bridge/bridge.d.ts.map +1 -0
  349. package/dist/ports/bridge/bridge.js +20 -0
  350. package/dist/ports/bridge/bridge.js.map +1 -0
  351. package/dist/ports/bridge/index.d.ts +13 -0
  352. package/dist/ports/bridge/index.d.ts.map +1 -0
  353. package/dist/ports/bridge/index.js +11 -0
  354. package/dist/ports/bridge/index.js.map +1 -0
  355. package/dist/ports/canton/adapters/ledger-api-adapter.d.ts +52 -0
  356. package/dist/ports/canton/adapters/ledger-api-adapter.d.ts.map +1 -0
  357. package/dist/ports/canton/adapters/ledger-api-adapter.js +232 -0
  358. package/dist/ports/canton/adapters/ledger-api-adapter.js.map +1 -0
  359. package/dist/ports/canton/canton-identity.d.ts +60 -0
  360. package/dist/ports/canton/canton-identity.d.ts.map +1 -0
  361. package/dist/ports/canton/canton-identity.js +28 -0
  362. package/dist/ports/canton/canton-identity.js.map +1 -0
  363. package/dist/ports/canton/canton-validator.d.ts +182 -0
  364. package/dist/ports/canton/canton-validator.d.ts.map +1 -0
  365. package/dist/ports/canton/canton-validator.js +39 -0
  366. package/dist/ports/canton/canton-validator.js.map +1 -0
  367. package/dist/ports/canton/fingerprint.d.ts +24 -0
  368. package/dist/ports/canton/fingerprint.d.ts.map +1 -0
  369. package/dist/ports/canton/fingerprint.js +31 -0
  370. package/dist/ports/canton/fingerprint.js.map +1 -0
  371. package/dist/ports/canton/hash.d.ts +37 -0
  372. package/dist/ports/canton/hash.d.ts.map +1 -0
  373. package/dist/ports/canton/hash.js +68 -0
  374. package/dist/ports/canton/hash.js.map +1 -0
  375. package/dist/ports/canton/http.d.ts +64 -0
  376. package/dist/ports/canton/http.d.ts.map +1 -0
  377. package/dist/ports/canton/http.js +177 -0
  378. package/dist/ports/canton/http.js.map +1 -0
  379. package/dist/ports/cross-vm.d.ts +79 -0
  380. package/dist/ports/cross-vm.d.ts.map +1 -0
  381. package/dist/ports/cross-vm.js +81 -0
  382. package/dist/ports/cross-vm.js.map +1 -0
  383. package/dist/ports/index.d.ts +18 -0
  384. package/dist/ports/index.d.ts.map +1 -0
  385. package/dist/ports/index.js +11 -0
  386. package/dist/ports/index.js.map +1 -0
  387. package/dist/ports/tenzro-identity.d.ts +29 -0
  388. package/dist/ports/tenzro-identity.d.ts.map +1 -0
  389. package/dist/ports/tenzro-identity.js +19 -0
  390. package/dist/ports/tenzro-identity.js.map +1 -0
  391. package/dist/ports/tenzro-rpc.d.ts +79 -0
  392. package/dist/ports/tenzro-rpc.d.ts.map +1 -0
  393. package/dist/ports/tenzro-rpc.js +21 -0
  394. package/dist/ports/tenzro-rpc.js.map +1 -0
  395. package/dist/router/index.d.ts +3 -0
  396. package/dist/router/index.d.ts.map +1 -0
  397. package/dist/router/index.js +2 -0
  398. package/dist/router/index.js.map +1 -0
  399. package/dist/router/route.d.ts +17 -0
  400. package/dist/router/route.d.ts.map +1 -0
  401. package/dist/router/route.js +78 -0
  402. package/dist/router/route.js.map +1 -0
  403. package/dist/settlement/nanopayment-flow.d.ts +48 -0
  404. package/dist/settlement/nanopayment-flow.d.ts.map +1 -0
  405. package/dist/settlement/nanopayment-flow.js +111 -0
  406. package/dist/settlement/nanopayment-flow.js.map +1 -0
  407. package/dist/surfaces/canton-external.d.ts +43 -0
  408. package/dist/surfaces/canton-external.d.ts.map +1 -0
  409. package/dist/surfaces/canton-external.js +252 -0
  410. package/dist/surfaces/canton-external.js.map +1 -0
  411. package/dist/surfaces/canton-internal.d.ts +34 -0
  412. package/dist/surfaces/canton-internal.d.ts.map +1 -0
  413. package/dist/surfaces/canton-internal.js +163 -0
  414. package/dist/surfaces/canton-internal.js.map +1 -0
  415. package/dist/surfaces/canton-onboarding.d.ts +64 -0
  416. package/dist/surfaces/canton-onboarding.d.ts.map +1 -0
  417. package/dist/surfaces/canton-onboarding.js +113 -0
  418. package/dist/surfaces/canton-onboarding.js.map +1 -0
  419. package/dist/surfaces/evm-on-tenzro.d.ts +29 -0
  420. package/dist/surfaces/evm-on-tenzro.d.ts.map +1 -0
  421. package/dist/surfaces/evm-on-tenzro.js +226 -0
  422. package/dist/surfaces/evm-on-tenzro.js.map +1 -0
  423. package/dist/surfaces/index.d.ts +13 -0
  424. package/dist/surfaces/index.d.ts.map +1 -0
  425. package/dist/surfaces/index.js +7 -0
  426. package/dist/surfaces/index.js.map +1 -0
  427. package/dist/surfaces/svm-on-tenzro.d.ts +24 -0
  428. package/dist/surfaces/svm-on-tenzro.d.ts.map +1 -0
  429. package/dist/surfaces/svm-on-tenzro.js +238 -0
  430. package/dist/surfaces/svm-on-tenzro.js.map +1 -0
  431. package/dist/surfaces/tenzro-native.d.ts +45 -0
  432. package/dist/surfaces/tenzro-native.d.ts.map +1 -0
  433. package/dist/surfaces/tenzro-native.js +299 -0
  434. package/dist/surfaces/tenzro-native.js.map +1 -0
  435. package/dist/surfaces/util.d.ts +18 -0
  436. package/dist/surfaces/util.d.ts.map +1 -0
  437. package/dist/surfaces/util.js +36 -0
  438. package/dist/surfaces/util.js.map +1 -0
  439. package/dist/types/asset.d.ts +43 -0
  440. package/dist/types/asset.d.ts.map +1 -0
  441. package/dist/types/asset.js +13 -0
  442. package/dist/types/asset.js.map +1 -0
  443. package/dist/types/consent.d.ts +46 -0
  444. package/dist/types/consent.d.ts.map +1 -0
  445. package/dist/types/consent.js +18 -0
  446. package/dist/types/consent.js.map +1 -0
  447. package/dist/types/identity.d.ts +115 -0
  448. package/dist/types/identity.d.ts.map +1 -0
  449. package/dist/types/identity.js +12 -0
  450. package/dist/types/identity.js.map +1 -0
  451. package/dist/types/index.d.ts +10 -0
  452. package/dist/types/index.d.ts.map +1 -0
  453. package/dist/types/index.js +3 -0
  454. package/dist/types/index.js.map +1 -0
  455. package/dist/types/intent.d.ts +132 -0
  456. package/dist/types/intent.d.ts.map +1 -0
  457. package/dist/types/intent.js +8 -0
  458. package/dist/types/intent.js.map +1 -0
  459. package/dist/types/signing-driver.d.ts +48 -0
  460. package/dist/types/signing-driver.d.ts.map +1 -0
  461. package/dist/types/signing-driver.js +9 -0
  462. package/dist/types/signing-driver.js.map +1 -0
  463. package/dist/types/surface-module.d.ts +38 -0
  464. package/dist/types/surface-module.d.ts.map +1 -0
  465. package/dist/types/surface-module.js +19 -0
  466. package/dist/types/surface-module.js.map +1 -0
  467. package/dist/types/surface.d.ts +17 -0
  468. package/dist/types/surface.d.ts.map +1 -0
  469. package/dist/types/surface.js +28 -0
  470. package/dist/types/surface.js.map +1 -0
  471. package/package.json +84 -0
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Canton external-party onboarding flow.
3
+ *
4
+ * Kept separate from the canton-external/canton-internal "send" surface
5
+ * because onboarding is a one-shot ceremony, not a transaction:
6
+ * 1. Wallet derives namespace + signing keypairs (provisioned at identity
7
+ * creation time — see `provisionIdentity`).
8
+ * 2. `generateTopology` asks the validator to render the three unsigned
9
+ * topology transactions (NamespaceDelegation, PartyToKeyMapping,
10
+ * PartyToParticipant) plus a bundle hash.
11
+ * 3. Wallet signs the bundle hash with the **namespace key** (cold key —
12
+ * this is the only time it's used in normal operation; rotations re-use it).
13
+ * 4. `submitTopology` ships the signed bundle to the synchronizer.
14
+ * 5. `setupProposal` asks the Tenzro validator to publish a setup-proposal
15
+ * contract that, once accepted, federates the new external party with
16
+ * the validator's hosting participant.
17
+ * 6. `prepareAcceptSetup` returns a PreparedTransaction for the
18
+ * `ExternalPartySetupProposal_Accept` choice.
19
+ * 7. Wallet recomputes the prepared-tx hash, signs it with the namespace
20
+ * key (Canton's setup-proposal accept is namespace-signed by convention).
21
+ * 8. `submitAcceptSetup` finalises — TransferPreapproval + featured-app
22
+ * delegate are created in the same atomic submission.
23
+ *
24
+ * After step 8 the party can transact normally through `cantonExternalSurface`.
25
+ *
26
+ * Spec refs:
27
+ * - DESIGN.md §4.5.5 (onboarding flow), §4.5.6 (auto-renewal)
28
+ * - Splice docs `validator-onboarding-external-party.md`
29
+ * - Canton OSS `topology.proto` (NamespaceDelegation, PartyToKeyMapping,
30
+ * PartyToParticipant)
31
+ */
32
+ import type { CantonValidatorPort } from '../ports/canton/canton-validator.js';
33
+ import type { SurfaceKey, TdipDid } from '../types/identity.js';
34
+ import type { SigningDriver } from '../types/signing-driver.js';
35
+ export interface CantonOnboardingDeps {
36
+ readonly keyResolver: (did: TdipDid) => SurfaceKey | undefined;
37
+ readonly signingDriver: SigningDriver;
38
+ /** Pointed at the Tenzro validator hosting the new party (canton-external
39
+ * goes to the GSN-attached validator; canton-internal to the Tenzro-
40
+ * operated synchronizer's validator). */
41
+ readonly validatorPort: CantonValidatorPort;
42
+ }
43
+ export interface OnboardExternalPartyRequest {
44
+ readonly did: TdipDid;
45
+ /** `canton-internal` or `canton-external` — selects which provisioned
46
+ * party key to onboard. */
47
+ readonly surface: 'canton-internal' | 'canton-external';
48
+ /** Hint portion of the resulting party id; the validator may sanitize it. */
49
+ readonly partyHint: string;
50
+ }
51
+ export interface OnboardExternalPartyResult {
52
+ /** The fully-qualified party id (`<hint>::<namespace-fingerprint>`). */
53
+ readonly partyId: string;
54
+ }
55
+ /**
56
+ * Run the complete onboarding ceremony. Idempotent at the validator-app
57
+ * layer — the validator no-ops topology submissions for a party already on
58
+ * the synchronizer, and `setupProposal` no-ops if a live proposal exists.
59
+ * Re-running on a party that's already accepted-setup will fail at step 7
60
+ * (the validator returns 409); that's fine — the surface caller should only
61
+ * invoke this once.
62
+ */
63
+ export declare function onboardExternalParty(deps: CantonOnboardingDeps, req: OnboardExternalPartyRequest): Promise<OnboardExternalPartyResult>;
64
+ //# sourceMappingURL=canton-onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canton-onboarding.d.ts","sourceRoot":"","sources":["../../src/surfaces/canton-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAM/E,OAAO,KAAK,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC;;8CAE0C;IAC1C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB;gCAC4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACxD,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,2BAA2B,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAoFrC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Canton external-party onboarding flow.
3
+ *
4
+ * Kept separate from the canton-external/canton-internal "send" surface
5
+ * because onboarding is a one-shot ceremony, not a transaction:
6
+ * 1. Wallet derives namespace + signing keypairs (provisioned at identity
7
+ * creation time — see `provisionIdentity`).
8
+ * 2. `generateTopology` asks the validator to render the three unsigned
9
+ * topology transactions (NamespaceDelegation, PartyToKeyMapping,
10
+ * PartyToParticipant) plus a bundle hash.
11
+ * 3. Wallet signs the bundle hash with the **namespace key** (cold key —
12
+ * this is the only time it's used in normal operation; rotations re-use it).
13
+ * 4. `submitTopology` ships the signed bundle to the synchronizer.
14
+ * 5. `setupProposal` asks the Tenzro validator to publish a setup-proposal
15
+ * contract that, once accepted, federates the new external party with
16
+ * the validator's hosting participant.
17
+ * 6. `prepareAcceptSetup` returns a PreparedTransaction for the
18
+ * `ExternalPartySetupProposal_Accept` choice.
19
+ * 7. Wallet recomputes the prepared-tx hash, signs it with the namespace
20
+ * key (Canton's setup-proposal accept is namespace-signed by convention).
21
+ * 8. `submitAcceptSetup` finalises — TransferPreapproval + featured-app
22
+ * delegate are created in the same atomic submission.
23
+ *
24
+ * After step 8 the party can transact normally through `cantonExternalSurface`.
25
+ *
26
+ * Spec refs:
27
+ * - DESIGN.md §4.5.5 (onboarding flow), §4.5.6 (auto-renewal)
28
+ * - Splice docs `validator-onboarding-external-party.md`
29
+ * - Canton OSS `topology.proto` (NamespaceDelegation, PartyToKeyMapping,
30
+ * PartyToParticipant)
31
+ */
32
+ import { bytesEqualConstantTime, preparedTransactionHash, topologyBundleHash, } from "../ports/canton/hash.js";
33
+ /**
34
+ * Run the complete onboarding ceremony. Idempotent at the validator-app
35
+ * layer — the validator no-ops topology submissions for a party already on
36
+ * the synchronizer, and `setupProposal` no-ops if a live proposal exists.
37
+ * Re-running on a party that's already accepted-setup will fail at step 7
38
+ * (the validator returns 409); that's fine — the surface caller should only
39
+ * invoke this once.
40
+ */
41
+ export async function onboardExternalParty(deps, req) {
42
+ const key = deps.keyResolver(req.did);
43
+ if (!key || key.surface !== req.surface) {
44
+ throw new Error(`onboarding: no ${req.surface} key for ${req.did}`);
45
+ }
46
+ const partyKey = key;
47
+ // 1) Ask the validator to render the unsigned topology bundle.
48
+ const generated = await deps.validatorPort.generateTopology({
49
+ partyHint: req.partyHint,
50
+ namespacePublicKey: partyKey.namespaceKey.publicKey,
51
+ signingPublicKeys: partyKey.signingKeys.map((k) => ({
52
+ publicKey: k.publicKey,
53
+ scheme: k.scheme,
54
+ })),
55
+ threshold: partyKey.threshold,
56
+ });
57
+ // 2) Recompute the bundle hash and verify it matches the validator's hash.
58
+ // Same security argument as `preparedTransactionHash` recomputation: we
59
+ // can't sign the validator's claim of what the bundle hashes to without
60
+ // verifying it ourselves, otherwise a malicious validator could swap in
61
+ // a different topology behind our back.
62
+ const recomputedBundle = await topologyBundleHash(generated.topologyTransactions);
63
+ if (!bytesEqualConstantTime(recomputedBundle, generated.bundleHash)) {
64
+ throw new Error('onboarding: topology bundle hash mismatch — refusing to sign. ' +
65
+ 'Validator returned bundle bytes whose hash differs from its claimed bundle hash.');
66
+ }
67
+ // 3) Sign the bundle hash with the namespace (cold) key.
68
+ const namespaceSig = await deps.signingDriver.sign({
69
+ did: req.did,
70
+ surfaceKey: key,
71
+ scheme: 'ed25519',
72
+ preimage: recomputedBundle,
73
+ purpose: 'canton-topology-bundle',
74
+ });
75
+ if (namespaceSig.signatures.length === 0) {
76
+ throw new Error('onboarding: signing driver returned no signatures');
77
+ }
78
+ const namespaceSignature = namespaceSig.signatures[0];
79
+ // 4) Submit the signed topology bundle to the synchronizer.
80
+ await deps.validatorPort.submitTopology({
81
+ topologyTransactions: generated.topologyTransactions,
82
+ namespaceSignature,
83
+ });
84
+ // 5) Ask the Tenzro validator to publish a setup-proposal contract.
85
+ await deps.validatorPort.setupProposal({ partyId: generated.partyId });
86
+ // 6) Get the prepared accept-setup tx + its hash from the validator.
87
+ const accept = await deps.validatorPort.prepareAcceptSetup({
88
+ partyId: generated.partyId,
89
+ });
90
+ // 7) Recompute the accept-setup hash and assert equality before signing.
91
+ const recomputedAccept = await preparedTransactionHash(accept.preparedTransaction);
92
+ if (!bytesEqualConstantTime(recomputedAccept, accept.preparedTransactionHash)) {
93
+ throw new Error('onboarding: accept-setup preparedTransactionHash mismatch — refusing to sign.');
94
+ }
95
+ const acceptSig = await deps.signingDriver.sign({
96
+ did: req.did,
97
+ surfaceKey: key,
98
+ scheme: 'ed25519',
99
+ preimage: recomputedAccept,
100
+ purpose: 'canton-accept-setup',
101
+ });
102
+ if (acceptSig.signatures.length === 0) {
103
+ throw new Error('onboarding: signing driver returned no signatures for accept-setup');
104
+ }
105
+ // 8) Finalise — submit the signed accept-setup.
106
+ await deps.validatorPort.submitAcceptSetup({
107
+ preparedTransaction: accept.preparedTransaction,
108
+ signature: acceptSig.signatures[0],
109
+ hashingSchemeVersion: accept.hashingSchemeVersion,
110
+ });
111
+ return { partyId: generated.partyId };
112
+ }
113
+ //# sourceMappingURL=canton-onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canton-onboarding.js","sourceRoot":"","sources":["../../src/surfaces/canton-onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * EVM surface inside the Tenzro multi-VM runtime. wTNZO ERC-20 lives at
3
+ * 0x7a4bcb13a6b2b384c284b5caa6e5ef3126527f93. Cross-VM token moves to other
4
+ * on-Tenzro surfaces are pointer ops via precompile 0x1003 — handled by the
5
+ * router, not by this surface directly.
6
+ */
7
+ import type { SurfaceKey, TdipDid } from '../types/identity.js';
8
+ import type { SigningDriver } from '../types/signing-driver.js';
9
+ import type { SurfaceModule } from '../types/surface-module.js';
10
+ export interface EvmOnTenzroDeps {
11
+ readonly keyResolver: (did: TdipDid) => SurfaceKey | undefined;
12
+ readonly signingDriver: SigningDriver;
13
+ readonly rpc?: {
14
+ getNonce(addr: `0x${string}`): Promise<number>;
15
+ getChainId(): Promise<number>;
16
+ estimateFees(): Promise<{
17
+ maxFeePerGas: bigint;
18
+ maxPriorityFeePerGas: bigint;
19
+ }>;
20
+ /**
21
+ * Broadcast wire-format bytes (`0x02 || rlp(...)` for EIP-1559) and
22
+ * return the tx hash. Maps to `eth_sendRawTransaction` on real EVM
23
+ * RPC nodes.
24
+ */
25
+ sendRawTransaction(rawTx: Uint8Array): Promise<string>;
26
+ };
27
+ }
28
+ export declare function evmOnTenzroSurface(deps: EvmOnTenzroDeps): SurfaceModule;
29
+ //# sourceMappingURL=evm-on-tenzro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-on-tenzro.d.ts","sourceRoot":"","sources":["../../src/surfaces/evm-on-tenzro.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAsChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,YAAY,IAAI,OAAO,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,oBAAoB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChF;;;;WAIG;QACH,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACxD,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,CAgJvE"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * EVM surface inside the Tenzro multi-VM runtime. wTNZO ERC-20 lives at
3
+ * 0x7a4bcb13a6b2b384c284b5caa6e5ef3126527f93. Cross-VM token moves to other
4
+ * on-Tenzro surfaces are pointer ops via precompile 0x1003 — handled by the
5
+ * router, not by this surface directly.
6
+ */
7
+ import { encodeForSigning, serializeSigned, signingHash, splitSignature, } from "../crypto/eip1559.js";
8
+ import { CROSS_VM_PRECOMPILE, dustResidual, truncateForView, } from "../ports/cross-vm.js";
9
+ import { makeHandle, mockStatusWalk } from "./util.js";
10
+ export function evmOnTenzroSurface(deps) {
11
+ const rpc = deps.rpc ?? mockRpc();
12
+ return {
13
+ name: 'evm-on-tenzro',
14
+ async prepare(intent) {
15
+ if (intent.kind !== 'send')
16
+ throw new Error(`unsupported: ${intent.kind}`);
17
+ if (intent.to.kind !== 'evm') {
18
+ throw new Error('evm-on-tenzro requires an EVM recipient');
19
+ }
20
+ const fromKey = deps.keyResolver(intent.from);
21
+ if (!fromKey || fromKey.surface !== 'evm-on-tenzro') {
22
+ throw new Error(`no evm-on-tenzro key for ${intent.from}`);
23
+ }
24
+ const [nonce, chainId, fees] = await Promise.all([
25
+ rpc.getNonce(fromKey.address),
26
+ rpc.getChainId(),
27
+ rpc.estimateFees(),
28
+ ]);
29
+ const body = {
30
+ kind: 'evm-send',
31
+ from: fromKey.address,
32
+ to: intent.to.address,
33
+ value: intent.amount,
34
+ nonce,
35
+ chainId,
36
+ maxFeePerGas: fees.maxFeePerGas,
37
+ maxPriorityFeePerGas: fees.maxPriorityFeePerGas,
38
+ gasLimit: 21000n,
39
+ };
40
+ return {
41
+ route: { kind: 'native', surface: 'evm-on-tenzro' },
42
+ intent,
43
+ fees: [
44
+ {
45
+ asset: intent.asset,
46
+ amount: body.gasLimit * body.maxFeePerGas,
47
+ label: 'evm gas',
48
+ },
49
+ ],
50
+ etaMs: 1000,
51
+ reversibility: 'final-on-submit',
52
+ warnings: [],
53
+ body,
54
+ };
55
+ },
56
+ async preparePointer(intent, op) {
57
+ if (intent.kind !== 'send')
58
+ throw new Error(`unsupported: ${intent.kind}`);
59
+ const fromKey = deps.keyResolver(intent.from);
60
+ if (!fromKey || fromKey.surface !== 'evm-on-tenzro') {
61
+ throw new Error(`no evm-on-tenzro key for ${intent.from}`);
62
+ }
63
+ const [nonce, chainId, fees] = await Promise.all([
64
+ rpc.getNonce(fromKey.address),
65
+ rpc.getChainId(),
66
+ rpc.estimateFees(),
67
+ ]);
68
+ const body = {
69
+ kind: 'evm-pointer',
70
+ from: fromKey.address,
71
+ to: CROSS_VM_PRECOMPILE,
72
+ value: 0n,
73
+ nonce,
74
+ chainId,
75
+ maxFeePerGas: fees.maxFeePerGas,
76
+ maxPriorityFeePerGas: fees.maxPriorityFeePerGas,
77
+ // Pointer ops cost more than a plain send because the precompile
78
+ // touches multiple-VM state. 80k is a placeholder; M3.3 / a Tenzro
79
+ // gas oracle will refine.
80
+ gasLimit: 80000n,
81
+ data: encodePointerCall(op),
82
+ pointer: op,
83
+ };
84
+ const dust = dustResidual(op.amount, op.toSurface);
85
+ const truncated = truncateForView(op.amount, op.toSurface);
86
+ const warnings = [];
87
+ if (dust > 0n) {
88
+ warnings.push(`${dust.toString()} sub-units below ${op.toSurface} precision will ` +
89
+ `not appear in the destination view; ${truncated.toString()} ` +
90
+ `canonical units will move`);
91
+ }
92
+ return {
93
+ route: {
94
+ kind: 'cross-vm-pointer',
95
+ fromSurface: 'evm-on-tenzro',
96
+ toSurface: op.toSurface,
97
+ precompile: CROSS_VM_PRECOMPILE,
98
+ },
99
+ intent,
100
+ fees: [
101
+ {
102
+ asset: intent.asset,
103
+ amount: body.gasLimit * body.maxFeePerGas,
104
+ label: 'evm gas (pointer call)',
105
+ },
106
+ ],
107
+ // Pointer ops settle in the same EVM block — same ETA shape as a send.
108
+ etaMs: 1000,
109
+ reversibility: 'final-on-submit',
110
+ warnings,
111
+ body,
112
+ };
113
+ },
114
+ async sign(prepared, _consent) {
115
+ const body = prepared.body;
116
+ const did = prepared.intent.from;
117
+ const key = deps.keyResolver(did);
118
+ if (!key || key.surface !== 'evm-on-tenzro') {
119
+ throw new Error('missing evm key at sign time');
120
+ }
121
+ const preimage = canonicalize(body);
122
+ const result = await deps.signingDriver.sign({
123
+ did,
124
+ surfaceKey: key,
125
+ scheme: 'secp256k1',
126
+ preimage,
127
+ purpose: body.kind === 'evm-pointer' ? 'evm-pointer' : 'evm-send',
128
+ });
129
+ return { prepared, signatures: result.signatures, body };
130
+ },
131
+ async submit(signed) {
132
+ const body = signed.body;
133
+ const sig = signed.signatures[0];
134
+ if (!sig)
135
+ throw new Error('missing signature');
136
+ const rawTx = serializeForSubmit(body, sig);
137
+ const hash = await rpc.sendRawTransaction(rawTx);
138
+ return makeHandle('evm-on-tenzro', signed.prepared.intent, hash);
139
+ },
140
+ watch(handle) {
141
+ return mockStatusWalk(handle);
142
+ },
143
+ };
144
+ }
145
+ /**
146
+ * Encode the calldata for a pointer-op call to precompile 0x1003.
147
+ *
148
+ * The outer EIP-1559 envelope is real (RLP-encoded, keccak-hashed,
149
+ * secp256k1-signed) — what's still placeholder is the *inner* calldata
150
+ * format. The Tenzro precompile's exact Solidity-side ABI signature is not
151
+ * pinned in our docs yet; once `https://tenzro.com/docs/cross-vm-tokens`
152
+ * publishes the canonical signature (likely
153
+ * `(uint8 toSurfaceTag, bytes32 owner, uint256 amount)`), swap this for
154
+ * proper ABI head/tail encoding. The wallet's signature over the EIP-1559
155
+ * envelope is unchanged when that swap happens — only the inner `data`
156
+ * bytes change.
157
+ */
158
+ function encodePointerCall(op) {
159
+ const payload = JSON.stringify({
160
+ fromSurface: op.fromSurface,
161
+ toSurface: op.toSurface,
162
+ owner: op.owner,
163
+ amount: op.amount.toString(),
164
+ });
165
+ return new TextEncoder().encode(payload);
166
+ }
167
+ /**
168
+ * Map an `EvmBody | EvmPointerBody` to the canonical `Eip1559Tx` shape the
169
+ * RLP encoder consumes. Sends use `to = recipient, value = amount, data = ∅`.
170
+ * Pointer ops use `to = 0x1003, value = 0, data = encoded payload`.
171
+ */
172
+ function toEip1559(body) {
173
+ if (body.kind === 'evm-send') {
174
+ return {
175
+ chainId: body.chainId,
176
+ nonce: body.nonce,
177
+ maxPriorityFeePerGas: body.maxPriorityFeePerGas,
178
+ maxFeePerGas: body.maxFeePerGas,
179
+ gasLimit: body.gasLimit,
180
+ to: body.to,
181
+ value: body.value,
182
+ data: new Uint8Array(0),
183
+ };
184
+ }
185
+ return {
186
+ chainId: body.chainId,
187
+ nonce: body.nonce,
188
+ maxPriorityFeePerGas: body.maxPriorityFeePerGas,
189
+ maxFeePerGas: body.maxFeePerGas,
190
+ gasLimit: body.gasLimit,
191
+ // The precompile lives at the canonical address `0x1003` left-padded
192
+ // to 20 bytes (Ethereum address width). Equivalent to
193
+ // `0x0000000000000000000000000000000000001003`.
194
+ to: '0x0000000000000000000000000000000000001003',
195
+ value: 0n,
196
+ data: body.data,
197
+ };
198
+ }
199
+ /**
200
+ * 32-byte EIP-1559 signing hash. Replaces the M1/M3.2 JSON canonicalize
201
+ * placeholder. SigningDriver consumes this directly; secp256k1 signs over
202
+ * the hash, not the pre-image.
203
+ */
204
+ function canonicalize(body) {
205
+ return signingHash(toEip1559(body));
206
+ }
207
+ /**
208
+ * Wire-format bytes the RPC submits. `0x02 || rlp(body || [yParity, r, s])`.
209
+ * Driver-supplied signatures may be 65-byte r||s||v (legacy) or
210
+ * (r, s, yParity) split — `splitSignature` normalises.
211
+ */
212
+ function serializeForSubmit(body, signature) {
213
+ return serializeSigned(toEip1559(body), splitSignature(signature));
214
+ }
215
+ function mockRpc() {
216
+ return {
217
+ getNonce: async () => 0,
218
+ getChainId: async () => 1337,
219
+ estimateFees: async () => ({
220
+ maxFeePerGas: 1000000000n,
221
+ maxPriorityFeePerGas: 100000000n,
222
+ }),
223
+ sendRawTransaction: async () => '0xmock',
224
+ };
225
+ }
226
+ //# sourceMappingURL=evm-on-tenzro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-on-tenzro.js","sourceRoot":"","sources":["../../src/surfaces/evm-on-tenzro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export { tenzroNativeSurface } from './tenzro-native.js';
2
+ export type { TenzroNativeDeps } from './tenzro-native.js';
3
+ export { evmOnTenzroSurface } from './evm-on-tenzro.js';
4
+ export type { EvmOnTenzroDeps } from './evm-on-tenzro.js';
5
+ export { svmOnTenzroSurface } from './svm-on-tenzro.js';
6
+ export type { SvmOnTenzroDeps } from './svm-on-tenzro.js';
7
+ export { cantonInternalSurface } from './canton-internal.js';
8
+ export type { CantonInternalDeps } from './canton-internal.js';
9
+ export { cantonExternalSurface } from './canton-external.js';
10
+ export type { CantonExternalDeps } from './canton-external.js';
11
+ export { onboardExternalParty } from './canton-onboarding.js';
12
+ export type { CantonOnboardingDeps, OnboardExternalPartyRequest, OnboardExternalPartyResult, } from './canton-onboarding.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/surfaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { tenzroNativeSurface } from "./tenzro-native.js";
2
+ export { evmOnTenzroSurface } from "./evm-on-tenzro.js";
3
+ export { svmOnTenzroSurface } from "./svm-on-tenzro.js";
4
+ export { cantonInternalSurface } from "./canton-internal.js";
5
+ export { cantonExternalSurface } from "./canton-external.js";
6
+ export { onboardExternalParty } from "./canton-onboarding.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/surfaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * SVM surface inside the Tenzro runtime. SPL Token Adapter view of TNZO at
3
+ * 9 decimals. Sub-lamport (sub-9-decimal) dust is truncated when crossing into
4
+ * this view from EVM/native — the router surfaces a warning when applicable.
5
+ */
6
+ import type { SurfaceKey, TdipDid } from '../types/identity.js';
7
+ import type { SigningDriver } from '../types/signing-driver.js';
8
+ import type { SurfaceModule } from '../types/surface-module.js';
9
+ export interface SvmOnTenzroDeps {
10
+ readonly keyResolver: (did: TdipDid) => SurfaceKey | undefined;
11
+ readonly signingDriver: SigningDriver;
12
+ readonly rpc?: {
13
+ /** Returns a base58-encoded 32-byte recent blockhash. */
14
+ getRecentBlockhash(): Promise<string>;
15
+ /**
16
+ * Broadcast wire-format bytes (compact-array(sigs) || compiled-message)
17
+ * and return the base58 transaction signature (SVM uses the first sig
18
+ * as the tx id). Maps to `sendTransaction` on Solana JSON-RPC.
19
+ */
20
+ sendRawTransaction(rawTx: Uint8Array): Promise<string>;
21
+ };
22
+ }
23
+ export declare function svmOnTenzroSurface(deps: SvmOnTenzroDeps): SurfaceModule;
24
+ //# sourceMappingURL=svm-on-tenzro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svm-on-tenzro.d.ts","sourceRoot":"","sources":["../../src/surfaces/svm-on-tenzro.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAsChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACb,yDAAyD;QACzD,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC;;;;WAIG;QACH,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACxD,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,CAiHvE"}