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