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