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,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canton external-party onboarding flow.
|
|
3
|
+
*
|
|
4
|
+
* Kept separate from the canton-external/canton-internal "send" surface
|
|
5
|
+
* because onboarding is a one-shot ceremony, not a transaction:
|
|
6
|
+
* 1. Wallet derives namespace + signing keypairs (provisioned at identity
|
|
7
|
+
* creation time — see `provisionIdentity`).
|
|
8
|
+
* 2. `generateTopology` asks the validator to render the three unsigned
|
|
9
|
+
* topology transactions (NamespaceDelegation, PartyToKeyMapping,
|
|
10
|
+
* PartyToParticipant) plus a bundle hash.
|
|
11
|
+
* 3. Wallet signs the bundle hash with the **namespace key** (cold key —
|
|
12
|
+
* this is the only time it's used in normal operation; rotations re-use it).
|
|
13
|
+
* 4. `submitTopology` ships the signed bundle to the synchronizer.
|
|
14
|
+
* 5. `setupProposal` asks the Tenzro validator to publish a setup-proposal
|
|
15
|
+
* contract that, once accepted, federates the new external party with
|
|
16
|
+
* the validator's hosting participant.
|
|
17
|
+
* 6. `prepareAcceptSetup` returns a PreparedTransaction for the
|
|
18
|
+
* `ExternalPartySetupProposal_Accept` choice.
|
|
19
|
+
* 7. Wallet recomputes the prepared-tx hash, signs it with the namespace
|
|
20
|
+
* key (Canton's setup-proposal accept is namespace-signed by convention).
|
|
21
|
+
* 8. `submitAcceptSetup` finalises — TransferPreapproval + featured-app
|
|
22
|
+
* delegate are created in the same atomic submission.
|
|
23
|
+
*
|
|
24
|
+
* After step 8 the party can transact normally through `cantonExternalSurface`.
|
|
25
|
+
*
|
|
26
|
+
* Spec refs:
|
|
27
|
+
* - DESIGN.md §4.5.5 (onboarding flow), §4.5.6 (auto-renewal)
|
|
28
|
+
* - Splice docs `validator-onboarding-external-party.md`
|
|
29
|
+
* - Canton OSS `topology.proto` (NamespaceDelegation, PartyToKeyMapping,
|
|
30
|
+
* PartyToParticipant)
|
|
31
|
+
*/
|
|
32
|
+
import type { CantonValidatorPort } from '../ports/canton/canton-validator.js';
|
|
33
|
+
import type { SurfaceKey, TdipDid } from '../types/identity.js';
|
|
34
|
+
import type { SigningDriver } from '../types/signing-driver.js';
|
|
35
|
+
export interface CantonOnboardingDeps {
|
|
36
|
+
readonly keyResolver: (did: TdipDid) => SurfaceKey | undefined;
|
|
37
|
+
readonly signingDriver: SigningDriver;
|
|
38
|
+
/** Pointed at the Tenzro validator hosting the new party (canton-external
|
|
39
|
+
* goes to the GSN-attached validator; canton-internal to the Tenzro-
|
|
40
|
+
* operated synchronizer's validator). */
|
|
41
|
+
readonly validatorPort: CantonValidatorPort;
|
|
42
|
+
}
|
|
43
|
+
export interface OnboardExternalPartyRequest {
|
|
44
|
+
readonly did: TdipDid;
|
|
45
|
+
/** `canton-internal` or `canton-external` — selects which provisioned
|
|
46
|
+
* party key to onboard. */
|
|
47
|
+
readonly surface: 'canton-internal' | 'canton-external';
|
|
48
|
+
/** Hint portion of the resulting party id; the validator may sanitize it. */
|
|
49
|
+
readonly partyHint: string;
|
|
50
|
+
}
|
|
51
|
+
export interface OnboardExternalPartyResult {
|
|
52
|
+
/** The fully-qualified party id (`<hint>::<namespace-fingerprint>`). */
|
|
53
|
+
readonly partyId: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Run the complete onboarding ceremony. Idempotent at the validator-app
|
|
57
|
+
* layer — the validator no-ops topology submissions for a party already on
|
|
58
|
+
* the synchronizer, and `setupProposal` no-ops if a live proposal exists.
|
|
59
|
+
* Re-running on a party that's already accepted-setup will fail at step 7
|
|
60
|
+
* (the validator returns 409); that's fine — the surface caller should only
|
|
61
|
+
* invoke this once.
|
|
62
|
+
*/
|
|
63
|
+
export declare function onboardExternalParty(deps: CantonOnboardingDeps, req: OnboardExternalPartyRequest): Promise<OnboardExternalPartyResult>;
|
|
64
|
+
//# sourceMappingURL=canton-onboarding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canton-onboarding.d.ts","sourceRoot":"","sources":["../../src/surfaces/canton-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAM/E,OAAO,KAAK,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC;;8CAE0C;IAC1C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB;gCAC4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACxD,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,2BAA2B,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAoFrC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canton external-party onboarding flow.
|
|
3
|
+
*
|
|
4
|
+
* Kept separate from the canton-external/canton-internal "send" surface
|
|
5
|
+
* because onboarding is a one-shot ceremony, not a transaction:
|
|
6
|
+
* 1. Wallet derives namespace + signing keypairs (provisioned at identity
|
|
7
|
+
* creation time — see `provisionIdentity`).
|
|
8
|
+
* 2. `generateTopology` asks the validator to render the three unsigned
|
|
9
|
+
* topology transactions (NamespaceDelegation, PartyToKeyMapping,
|
|
10
|
+
* PartyToParticipant) plus a bundle hash.
|
|
11
|
+
* 3. Wallet signs the bundle hash with the **namespace key** (cold key —
|
|
12
|
+
* this is the only time it's used in normal operation; rotations re-use it).
|
|
13
|
+
* 4. `submitTopology` ships the signed bundle to the synchronizer.
|
|
14
|
+
* 5. `setupProposal` asks the Tenzro validator to publish a setup-proposal
|
|
15
|
+
* contract that, once accepted, federates the new external party with
|
|
16
|
+
* the validator's hosting participant.
|
|
17
|
+
* 6. `prepareAcceptSetup` returns a PreparedTransaction for the
|
|
18
|
+
* `ExternalPartySetupProposal_Accept` choice.
|
|
19
|
+
* 7. Wallet recomputes the prepared-tx hash, signs it with the namespace
|
|
20
|
+
* key (Canton's setup-proposal accept is namespace-signed by convention).
|
|
21
|
+
* 8. `submitAcceptSetup` finalises — TransferPreapproval + featured-app
|
|
22
|
+
* delegate are created in the same atomic submission.
|
|
23
|
+
*
|
|
24
|
+
* After step 8 the party can transact normally through `cantonExternalSurface`.
|
|
25
|
+
*
|
|
26
|
+
* Spec refs:
|
|
27
|
+
* - DESIGN.md §4.5.5 (onboarding flow), §4.5.6 (auto-renewal)
|
|
28
|
+
* - Splice docs `validator-onboarding-external-party.md`
|
|
29
|
+
* - Canton OSS `topology.proto` (NamespaceDelegation, PartyToKeyMapping,
|
|
30
|
+
* PartyToParticipant)
|
|
31
|
+
*/
|
|
32
|
+
import { bytesEqualConstantTime, preparedTransactionHash, topologyBundleHash, } from "../ports/canton/hash.js";
|
|
33
|
+
/**
|
|
34
|
+
* Run the complete onboarding ceremony. Idempotent at the validator-app
|
|
35
|
+
* layer — the validator no-ops topology submissions for a party already on
|
|
36
|
+
* the synchronizer, and `setupProposal` no-ops if a live proposal exists.
|
|
37
|
+
* Re-running on a party that's already accepted-setup will fail at step 7
|
|
38
|
+
* (the validator returns 409); that's fine — the surface caller should only
|
|
39
|
+
* invoke this once.
|
|
40
|
+
*/
|
|
41
|
+
export async function onboardExternalParty(deps, req) {
|
|
42
|
+
const key = deps.keyResolver(req.did);
|
|
43
|
+
if (!key || key.surface !== req.surface) {
|
|
44
|
+
throw new Error(`onboarding: no ${req.surface} key for ${req.did}`);
|
|
45
|
+
}
|
|
46
|
+
const partyKey = key;
|
|
47
|
+
// 1) Ask the validator to render the unsigned topology bundle.
|
|
48
|
+
const generated = await deps.validatorPort.generateTopology({
|
|
49
|
+
partyHint: req.partyHint,
|
|
50
|
+
namespacePublicKey: partyKey.namespaceKey.publicKey,
|
|
51
|
+
signingPublicKeys: partyKey.signingKeys.map((k) => ({
|
|
52
|
+
publicKey: k.publicKey,
|
|
53
|
+
scheme: k.scheme,
|
|
54
|
+
})),
|
|
55
|
+
threshold: partyKey.threshold,
|
|
56
|
+
});
|
|
57
|
+
// 2) Recompute the bundle hash and verify it matches the validator's hash.
|
|
58
|
+
// Same security argument as `preparedTransactionHash` recomputation: we
|
|
59
|
+
// can't sign the validator's claim of what the bundle hashes to without
|
|
60
|
+
// verifying it ourselves, otherwise a malicious validator could swap in
|
|
61
|
+
// a different topology behind our back.
|
|
62
|
+
const recomputedBundle = await topologyBundleHash(generated.topologyTransactions);
|
|
63
|
+
if (!bytesEqualConstantTime(recomputedBundle, generated.bundleHash)) {
|
|
64
|
+
throw new Error('onboarding: topology bundle hash mismatch — refusing to sign. ' +
|
|
65
|
+
'Validator returned bundle bytes whose hash differs from its claimed bundle hash.');
|
|
66
|
+
}
|
|
67
|
+
// 3) Sign the bundle hash with the namespace (cold) key.
|
|
68
|
+
const namespaceSig = await deps.signingDriver.sign({
|
|
69
|
+
did: req.did,
|
|
70
|
+
surfaceKey: key,
|
|
71
|
+
scheme: 'ed25519',
|
|
72
|
+
preimage: recomputedBundle,
|
|
73
|
+
purpose: 'canton-topology-bundle',
|
|
74
|
+
});
|
|
75
|
+
if (namespaceSig.signatures.length === 0) {
|
|
76
|
+
throw new Error('onboarding: signing driver returned no signatures');
|
|
77
|
+
}
|
|
78
|
+
const namespaceSignature = namespaceSig.signatures[0];
|
|
79
|
+
// 4) Submit the signed topology bundle to the synchronizer.
|
|
80
|
+
await deps.validatorPort.submitTopology({
|
|
81
|
+
topologyTransactions: generated.topologyTransactions,
|
|
82
|
+
namespaceSignature,
|
|
83
|
+
});
|
|
84
|
+
// 5) Ask the Tenzro validator to publish a setup-proposal contract.
|
|
85
|
+
await deps.validatorPort.setupProposal({ partyId: generated.partyId });
|
|
86
|
+
// 6) Get the prepared accept-setup tx + its hash from the validator.
|
|
87
|
+
const accept = await deps.validatorPort.prepareAcceptSetup({
|
|
88
|
+
partyId: generated.partyId,
|
|
89
|
+
});
|
|
90
|
+
// 7) Recompute the accept-setup hash and assert equality before signing.
|
|
91
|
+
const recomputedAccept = await preparedTransactionHash(accept.preparedTransaction);
|
|
92
|
+
if (!bytesEqualConstantTime(recomputedAccept, accept.preparedTransactionHash)) {
|
|
93
|
+
throw new Error('onboarding: accept-setup preparedTransactionHash mismatch — refusing to sign.');
|
|
94
|
+
}
|
|
95
|
+
const acceptSig = await deps.signingDriver.sign({
|
|
96
|
+
did: req.did,
|
|
97
|
+
surfaceKey: key,
|
|
98
|
+
scheme: 'ed25519',
|
|
99
|
+
preimage: recomputedAccept,
|
|
100
|
+
purpose: 'canton-accept-setup',
|
|
101
|
+
});
|
|
102
|
+
if (acceptSig.signatures.length === 0) {
|
|
103
|
+
throw new Error('onboarding: signing driver returned no signatures for accept-setup');
|
|
104
|
+
}
|
|
105
|
+
// 8) Finalise — submit the signed accept-setup.
|
|
106
|
+
await deps.validatorPort.submitAcceptSetup({
|
|
107
|
+
preparedTransaction: accept.preparedTransaction,
|
|
108
|
+
signature: acceptSig.signatures[0],
|
|
109
|
+
hashingSchemeVersion: accept.hashingSchemeVersion,
|
|
110
|
+
});
|
|
111
|
+
return { partyId: generated.partyId };
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=canton-onboarding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canton-onboarding.js","sourceRoot":"","sources":["../../src/surfaces/canton-onboarding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EVM surface inside the Tenzro multi-VM runtime. wTNZO ERC-20 lives at
|
|
3
|
+
* 0x7a4bcb13a6b2b384c284b5caa6e5ef3126527f93. Cross-VM token moves to other
|
|
4
|
+
* on-Tenzro surfaces are pointer ops via precompile 0x1003 — handled by the
|
|
5
|
+
* router, not by this surface directly.
|
|
6
|
+
*/
|
|
7
|
+
import type { SurfaceKey, TdipDid } from '../types/identity.js';
|
|
8
|
+
import type { SigningDriver } from '../types/signing-driver.js';
|
|
9
|
+
import type { SurfaceModule } from '../types/surface-module.js';
|
|
10
|
+
export interface EvmOnTenzroDeps {
|
|
11
|
+
readonly keyResolver: (did: TdipDid) => SurfaceKey | undefined;
|
|
12
|
+
readonly signingDriver: SigningDriver;
|
|
13
|
+
readonly rpc?: {
|
|
14
|
+
getNonce(addr: `0x${string}`): Promise<number>;
|
|
15
|
+
getChainId(): Promise<number>;
|
|
16
|
+
estimateFees(): Promise<{
|
|
17
|
+
maxFeePerGas: bigint;
|
|
18
|
+
maxPriorityFeePerGas: bigint;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Broadcast wire-format bytes (`0x02 || rlp(...)` for EIP-1559) and
|
|
22
|
+
* return the tx hash. Maps to `eth_sendRawTransaction` on real EVM
|
|
23
|
+
* RPC nodes.
|
|
24
|
+
*/
|
|
25
|
+
sendRawTransaction(rawTx: Uint8Array): Promise<string>;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export declare function evmOnTenzroSurface(deps: EvmOnTenzroDeps): SurfaceModule;
|
|
29
|
+
//# sourceMappingURL=evm-on-tenzro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm-on-tenzro.d.ts","sourceRoot":"","sources":["../../src/surfaces/evm-on-tenzro.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAsChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,YAAY,IAAI,OAAO,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,oBAAoB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChF;;;;WAIG;QACH,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACxD,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,CAgJvE"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EVM surface inside the Tenzro multi-VM runtime. wTNZO ERC-20 lives at
|
|
3
|
+
* 0x7a4bcb13a6b2b384c284b5caa6e5ef3126527f93. Cross-VM token moves to other
|
|
4
|
+
* on-Tenzro surfaces are pointer ops via precompile 0x1003 — handled by the
|
|
5
|
+
* router, not by this surface directly.
|
|
6
|
+
*/
|
|
7
|
+
import { encodeForSigning, serializeSigned, signingHash, splitSignature, } from "../crypto/eip1559.js";
|
|
8
|
+
import { CROSS_VM_PRECOMPILE, dustResidual, truncateForView, } from "../ports/cross-vm.js";
|
|
9
|
+
import { makeHandle, mockStatusWalk } from "./util.js";
|
|
10
|
+
export function evmOnTenzroSurface(deps) {
|
|
11
|
+
const rpc = deps.rpc ?? mockRpc();
|
|
12
|
+
return {
|
|
13
|
+
name: 'evm-on-tenzro',
|
|
14
|
+
async prepare(intent) {
|
|
15
|
+
if (intent.kind !== 'send')
|
|
16
|
+
throw new Error(`unsupported: ${intent.kind}`);
|
|
17
|
+
if (intent.to.kind !== 'evm') {
|
|
18
|
+
throw new Error('evm-on-tenzro requires an EVM recipient');
|
|
19
|
+
}
|
|
20
|
+
const fromKey = deps.keyResolver(intent.from);
|
|
21
|
+
if (!fromKey || fromKey.surface !== 'evm-on-tenzro') {
|
|
22
|
+
throw new Error(`no evm-on-tenzro key for ${intent.from}`);
|
|
23
|
+
}
|
|
24
|
+
const [nonce, chainId, fees] = await Promise.all([
|
|
25
|
+
rpc.getNonce(fromKey.address),
|
|
26
|
+
rpc.getChainId(),
|
|
27
|
+
rpc.estimateFees(),
|
|
28
|
+
]);
|
|
29
|
+
const body = {
|
|
30
|
+
kind: 'evm-send',
|
|
31
|
+
from: fromKey.address,
|
|
32
|
+
to: intent.to.address,
|
|
33
|
+
value: intent.amount,
|
|
34
|
+
nonce,
|
|
35
|
+
chainId,
|
|
36
|
+
maxFeePerGas: fees.maxFeePerGas,
|
|
37
|
+
maxPriorityFeePerGas: fees.maxPriorityFeePerGas,
|
|
38
|
+
gasLimit: 21000n,
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
route: { kind: 'native', surface: 'evm-on-tenzro' },
|
|
42
|
+
intent,
|
|
43
|
+
fees: [
|
|
44
|
+
{
|
|
45
|
+
asset: intent.asset,
|
|
46
|
+
amount: body.gasLimit * body.maxFeePerGas,
|
|
47
|
+
label: 'evm gas',
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
etaMs: 1000,
|
|
51
|
+
reversibility: 'final-on-submit',
|
|
52
|
+
warnings: [],
|
|
53
|
+
body,
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
async preparePointer(intent, op) {
|
|
57
|
+
if (intent.kind !== 'send')
|
|
58
|
+
throw new Error(`unsupported: ${intent.kind}`);
|
|
59
|
+
const fromKey = deps.keyResolver(intent.from);
|
|
60
|
+
if (!fromKey || fromKey.surface !== 'evm-on-tenzro') {
|
|
61
|
+
throw new Error(`no evm-on-tenzro key for ${intent.from}`);
|
|
62
|
+
}
|
|
63
|
+
const [nonce, chainId, fees] = await Promise.all([
|
|
64
|
+
rpc.getNonce(fromKey.address),
|
|
65
|
+
rpc.getChainId(),
|
|
66
|
+
rpc.estimateFees(),
|
|
67
|
+
]);
|
|
68
|
+
const body = {
|
|
69
|
+
kind: 'evm-pointer',
|
|
70
|
+
from: fromKey.address,
|
|
71
|
+
to: CROSS_VM_PRECOMPILE,
|
|
72
|
+
value: 0n,
|
|
73
|
+
nonce,
|
|
74
|
+
chainId,
|
|
75
|
+
maxFeePerGas: fees.maxFeePerGas,
|
|
76
|
+
maxPriorityFeePerGas: fees.maxPriorityFeePerGas,
|
|
77
|
+
// Pointer ops cost more than a plain send because the precompile
|
|
78
|
+
// touches multiple-VM state. 80k is a placeholder; M3.3 / a Tenzro
|
|
79
|
+
// gas oracle will refine.
|
|
80
|
+
gasLimit: 80000n,
|
|
81
|
+
data: encodePointerCall(op),
|
|
82
|
+
pointer: op,
|
|
83
|
+
};
|
|
84
|
+
const dust = dustResidual(op.amount, op.toSurface);
|
|
85
|
+
const truncated = truncateForView(op.amount, op.toSurface);
|
|
86
|
+
const warnings = [];
|
|
87
|
+
if (dust > 0n) {
|
|
88
|
+
warnings.push(`${dust.toString()} sub-units below ${op.toSurface} precision will ` +
|
|
89
|
+
`not appear in the destination view; ${truncated.toString()} ` +
|
|
90
|
+
`canonical units will move`);
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
route: {
|
|
94
|
+
kind: 'cross-vm-pointer',
|
|
95
|
+
fromSurface: 'evm-on-tenzro',
|
|
96
|
+
toSurface: op.toSurface,
|
|
97
|
+
precompile: CROSS_VM_PRECOMPILE,
|
|
98
|
+
},
|
|
99
|
+
intent,
|
|
100
|
+
fees: [
|
|
101
|
+
{
|
|
102
|
+
asset: intent.asset,
|
|
103
|
+
amount: body.gasLimit * body.maxFeePerGas,
|
|
104
|
+
label: 'evm gas (pointer call)',
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
// Pointer ops settle in the same EVM block — same ETA shape as a send.
|
|
108
|
+
etaMs: 1000,
|
|
109
|
+
reversibility: 'final-on-submit',
|
|
110
|
+
warnings,
|
|
111
|
+
body,
|
|
112
|
+
};
|
|
113
|
+
},
|
|
114
|
+
async sign(prepared, _consent) {
|
|
115
|
+
const body = prepared.body;
|
|
116
|
+
const did = prepared.intent.from;
|
|
117
|
+
const key = deps.keyResolver(did);
|
|
118
|
+
if (!key || key.surface !== 'evm-on-tenzro') {
|
|
119
|
+
throw new Error('missing evm key at sign time');
|
|
120
|
+
}
|
|
121
|
+
const preimage = canonicalize(body);
|
|
122
|
+
const result = await deps.signingDriver.sign({
|
|
123
|
+
did,
|
|
124
|
+
surfaceKey: key,
|
|
125
|
+
scheme: 'secp256k1',
|
|
126
|
+
preimage,
|
|
127
|
+
purpose: body.kind === 'evm-pointer' ? 'evm-pointer' : 'evm-send',
|
|
128
|
+
});
|
|
129
|
+
return { prepared, signatures: result.signatures, body };
|
|
130
|
+
},
|
|
131
|
+
async submit(signed) {
|
|
132
|
+
const body = signed.body;
|
|
133
|
+
const sig = signed.signatures[0];
|
|
134
|
+
if (!sig)
|
|
135
|
+
throw new Error('missing signature');
|
|
136
|
+
const rawTx = serializeForSubmit(body, sig);
|
|
137
|
+
const hash = await rpc.sendRawTransaction(rawTx);
|
|
138
|
+
return makeHandle('evm-on-tenzro', signed.prepared.intent, hash);
|
|
139
|
+
},
|
|
140
|
+
watch(handle) {
|
|
141
|
+
return mockStatusWalk(handle);
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Encode the calldata for a pointer-op call to precompile 0x1003.
|
|
147
|
+
*
|
|
148
|
+
* The outer EIP-1559 envelope is real (RLP-encoded, keccak-hashed,
|
|
149
|
+
* secp256k1-signed) — what's still placeholder is the *inner* calldata
|
|
150
|
+
* format. The Tenzro precompile's exact Solidity-side ABI signature is not
|
|
151
|
+
* pinned in our docs yet; once `https://tenzro.com/docs/cross-vm-tokens`
|
|
152
|
+
* publishes the canonical signature (likely
|
|
153
|
+
* `(uint8 toSurfaceTag, bytes32 owner, uint256 amount)`), swap this for
|
|
154
|
+
* proper ABI head/tail encoding. The wallet's signature over the EIP-1559
|
|
155
|
+
* envelope is unchanged when that swap happens — only the inner `data`
|
|
156
|
+
* bytes change.
|
|
157
|
+
*/
|
|
158
|
+
function encodePointerCall(op) {
|
|
159
|
+
const payload = JSON.stringify({
|
|
160
|
+
fromSurface: op.fromSurface,
|
|
161
|
+
toSurface: op.toSurface,
|
|
162
|
+
owner: op.owner,
|
|
163
|
+
amount: op.amount.toString(),
|
|
164
|
+
});
|
|
165
|
+
return new TextEncoder().encode(payload);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Map an `EvmBody | EvmPointerBody` to the canonical `Eip1559Tx` shape the
|
|
169
|
+
* RLP encoder consumes. Sends use `to = recipient, value = amount, data = ∅`.
|
|
170
|
+
* Pointer ops use `to = 0x1003, value = 0, data = encoded payload`.
|
|
171
|
+
*/
|
|
172
|
+
function toEip1559(body) {
|
|
173
|
+
if (body.kind === 'evm-send') {
|
|
174
|
+
return {
|
|
175
|
+
chainId: body.chainId,
|
|
176
|
+
nonce: body.nonce,
|
|
177
|
+
maxPriorityFeePerGas: body.maxPriorityFeePerGas,
|
|
178
|
+
maxFeePerGas: body.maxFeePerGas,
|
|
179
|
+
gasLimit: body.gasLimit,
|
|
180
|
+
to: body.to,
|
|
181
|
+
value: body.value,
|
|
182
|
+
data: new Uint8Array(0),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
chainId: body.chainId,
|
|
187
|
+
nonce: body.nonce,
|
|
188
|
+
maxPriorityFeePerGas: body.maxPriorityFeePerGas,
|
|
189
|
+
maxFeePerGas: body.maxFeePerGas,
|
|
190
|
+
gasLimit: body.gasLimit,
|
|
191
|
+
// The precompile lives at the canonical address `0x1003` left-padded
|
|
192
|
+
// to 20 bytes (Ethereum address width). Equivalent to
|
|
193
|
+
// `0x0000000000000000000000000000000000001003`.
|
|
194
|
+
to: '0x0000000000000000000000000000000000001003',
|
|
195
|
+
value: 0n,
|
|
196
|
+
data: body.data,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* 32-byte EIP-1559 signing hash. Replaces the M1/M3.2 JSON canonicalize
|
|
201
|
+
* placeholder. SigningDriver consumes this directly; secp256k1 signs over
|
|
202
|
+
* the hash, not the pre-image.
|
|
203
|
+
*/
|
|
204
|
+
function canonicalize(body) {
|
|
205
|
+
return signingHash(toEip1559(body));
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Wire-format bytes the RPC submits. `0x02 || rlp(body || [yParity, r, s])`.
|
|
209
|
+
* Driver-supplied signatures may be 65-byte r||s||v (legacy) or
|
|
210
|
+
* (r, s, yParity) split — `splitSignature` normalises.
|
|
211
|
+
*/
|
|
212
|
+
function serializeForSubmit(body, signature) {
|
|
213
|
+
return serializeSigned(toEip1559(body), splitSignature(signature));
|
|
214
|
+
}
|
|
215
|
+
function mockRpc() {
|
|
216
|
+
return {
|
|
217
|
+
getNonce: async () => 0,
|
|
218
|
+
getChainId: async () => 1337,
|
|
219
|
+
estimateFees: async () => ({
|
|
220
|
+
maxFeePerGas: 1000000000n,
|
|
221
|
+
maxPriorityFeePerGas: 100000000n,
|
|
222
|
+
}),
|
|
223
|
+
sendRawTransaction: async () => '0xmock',
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=evm-on-tenzro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm-on-tenzro.js","sourceRoot":"","sources":["../../src/surfaces/evm-on-tenzro.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { tenzroNativeSurface } from './tenzro-native.js';
|
|
2
|
+
export type { TenzroNativeDeps } from './tenzro-native.js';
|
|
3
|
+
export { evmOnTenzroSurface } from './evm-on-tenzro.js';
|
|
4
|
+
export type { EvmOnTenzroDeps } from './evm-on-tenzro.js';
|
|
5
|
+
export { svmOnTenzroSurface } from './svm-on-tenzro.js';
|
|
6
|
+
export type { SvmOnTenzroDeps } from './svm-on-tenzro.js';
|
|
7
|
+
export { cantonInternalSurface } from './canton-internal.js';
|
|
8
|
+
export type { CantonInternalDeps } from './canton-internal.js';
|
|
9
|
+
export { cantonExternalSurface } from './canton-external.js';
|
|
10
|
+
export type { CantonExternalDeps } from './canton-external.js';
|
|
11
|
+
export { onboardExternalParty } from './canton-onboarding.js';
|
|
12
|
+
export type { CantonOnboardingDeps, OnboardExternalPartyRequest, OnboardExternalPartyResult, } from './canton-onboarding.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/surfaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { tenzroNativeSurface } from "./tenzro-native.js";
|
|
2
|
+
export { evmOnTenzroSurface } from "./evm-on-tenzro.js";
|
|
3
|
+
export { svmOnTenzroSurface } from "./svm-on-tenzro.js";
|
|
4
|
+
export { cantonInternalSurface } from "./canton-internal.js";
|
|
5
|
+
export { cantonExternalSurface } from "./canton-external.js";
|
|
6
|
+
export { onboardExternalParty } from "./canton-onboarding.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/surfaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVM surface inside the Tenzro runtime. SPL Token Adapter view of TNZO at
|
|
3
|
+
* 9 decimals. Sub-lamport (sub-9-decimal) dust is truncated when crossing into
|
|
4
|
+
* this view from EVM/native — the router surfaces a warning when applicable.
|
|
5
|
+
*/
|
|
6
|
+
import type { SurfaceKey, TdipDid } from '../types/identity.js';
|
|
7
|
+
import type { SigningDriver } from '../types/signing-driver.js';
|
|
8
|
+
import type { SurfaceModule } from '../types/surface-module.js';
|
|
9
|
+
export interface SvmOnTenzroDeps {
|
|
10
|
+
readonly keyResolver: (did: TdipDid) => SurfaceKey | undefined;
|
|
11
|
+
readonly signingDriver: SigningDriver;
|
|
12
|
+
readonly rpc?: {
|
|
13
|
+
/** Returns a base58-encoded 32-byte recent blockhash. */
|
|
14
|
+
getRecentBlockhash(): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Broadcast wire-format bytes (compact-array(sigs) || compiled-message)
|
|
17
|
+
* and return the base58 transaction signature (SVM uses the first sig
|
|
18
|
+
* as the tx id). Maps to `sendTransaction` on Solana JSON-RPC.
|
|
19
|
+
*/
|
|
20
|
+
sendRawTransaction(rawTx: Uint8Array): Promise<string>;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare function svmOnTenzroSurface(deps: SvmOnTenzroDeps): SurfaceModule;
|
|
24
|
+
//# sourceMappingURL=svm-on-tenzro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svm-on-tenzro.d.ts","sourceRoot":"","sources":["../../src/surfaces/svm-on-tenzro.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAsChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACb,yDAAyD;QACzD,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC;;;;WAIG;QACH,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACxD,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,CAiHvE"}
|