Skip to content

Document and verify multi-chain EVM payment funding #19

Description

@snissn

Parent tracker: #14

Depends on:

Goal

Document and validate the multi-chain EVM funding feature at current head without requiring a funded transfer for every token in Squid's mutable catalog.

Role And Gate Ownership

  • Role: documentation and final validation
  • Depends on: both CLI integrations and Harden, document, and verify Filecoin CLI self-funding #6
  • Blocks: parent completion
  • Authoritative gate: deterministic coverage spans the eight selected chain IDs and the dynamic token policy, live read-only probes confirm current routes, and representative funded runs cover the distinct external-chain, token-type, same-chain, and CLI-entry-point risks.

Validation Strategy

1. Deterministic no-funds matrix

  • All eight selected chain IDs and accepted CLI aliases.
  • Unique symbol, exact address, ambiguous symbol, native token, unsupported token, unsupported chain, and non-EVM catalog entry.
  • Token decimals other than six.
  • Native and ERC-20 planning/execution.
  • Chain-specific router/spender validation.
  • Source RPC chain mismatch.
  • Invocation-wide token and source-native gas caps.
  • Filecoin same-chain FIL reserve.
  • Checkpoint identity, interruption, rerun, partial success, refund, needs-gas, timeout, and arrival reconciliation.
  • Direct/no-op paths with zero provider/source-RPC calls.

2. Live read-only checks

  • Record current Squid catalog membership for the selected networks.
  • Probe at least one current token per selected network for the FIL and USDFC outputs when Squid advertises a viable route.
  • Record exact chain/token addresses, quote IDs, minimum outputs, target/spender identities, expiry, and result.
  • Treat provider support and liquidity as current observations, not permanent repository promises.
  • Low-liquidity or unavailable routes must fail closed and do not make an otherwise correctly bounded network implementation unsafe.
  • No signing or funded transfer is part of this phase.

3. Representative funded checks

Funded validation is representative, not exhaustive:

  • Reuse successful current-head Harden, document, and verify Filecoin CLI self-funding #6 Arbitrum evidence for the original external ERC-20 route when the relevant code is unchanged, or rerun it if the generalized code invalidates that evidence.
  • Execute one low-value non-Arbitrum external ERC-20 route end to end.
  • Execute one low-value Filecoin same-chain route, native or ERC-20, while proving the FIL reserve remains sufficient.
  • Represent both payments fund and payments setup --auto across these checks.
  • Verify FIL/USDFC wallet arrival, Filecoin Pay deposit/approval as applicable, and no duplicate source spending on rerun.
  • Use dedicated disposable wallets, explicit hard caps, approved budgets, and sanitized transaction identifiers/output.

Documentation

Update user-facing documentation to explain:

  • the eight input networks;
  • dynamic Squid token eligibility;
  • unique-symbol versus exact-address selection;
  • native-token selection;
  • source and Filecoin wallet ownership;
  • source RPC and chain verification;
  • source token and source-native gas caps;
  • Filecoin same-chain FIL reserve;
  • route/approval confirmation;
  • unsupported, ambiguous, low-liquidity, and provider-unavailable fallbacks;
  • recovery and safe rerun behavior;
  • Calibration/devnet fail-closed behavior;
  • why the CLI does not scan balances or recommend sources.

Generated operator reports remain outside the repository. Do not commit private keys, provider credentials, credential-bearing RPC URLs, raw signed payloads, or portfolio/balance history.

Non-Goals

  • A funded transfer for every Squid token.
  • A claim that today's catalog or route liquidity is permanent.
  • Balance-based suggestions.
  • Expanding the chain list during closeout.
  • Turning generated operator reports into versioned repository content.

Test-First And Work Log

Start

  • Define the deterministic matrix and expected failures before closeout changes.
  • Record current head and exact commands.
  • Confirm dedicated wallet, cap, RPC, provider credential, and approved budget prerequisites without printing secrets.

Implement and validate

  • Complete deterministic matrix.
  • Complete live read-only route matrix.
  • Complete/reuse current-head Arbitrum first-route validation.
  • Complete one non-Arbitrum external ERC-20 funded run.
  • Complete one Filecoin same-chain funded run.
  • Exercise both CLI entry points and reruns.
  • Update README, payments documentation, glossary links, help text, and changelog as appropriate.

Close

  • pnpm test.
  • Browser tests.
  • Build, typecheck, lint, and docs generation.
  • Exact current-head CI is green.
  • Latest-head review findings are resolved.
  • Sanitized issue/PR evidence records transaction IDs, outputs, caps, and rerun results.
  • Parent tracker reflects current catalog observations separately from durable supported behavior.

Performance Classification

Not performance-relevant as an optimization. Record provider/RPC call counts, route duration, and polling count as operational observations. Unbounded retries or new provider/source-RPC calls on direct paths are blocking correctness regressions.

Branch And PR Policy

  • Topic branch and draft PR for repository documentation/test changes.
  • Conventional Commit PR title; PR references this issue and the parent.
  • Follow AGENTS.md: obtain explicit permission before commit or push.
  • Do not request automated review until deterministic tests, documentation, sanitized funded results, and latest-head CI are coherent.

Exit Gate

This issue closes when current-head deterministic and live checks support the claimed eight-network/dynamic-token contract, representative funded runs prove one non-Arbitrum external ERC-20 path and one Filecoin same-chain path across both CLI entry points, reruns do not duplicate spending, #6's first-route gate is satisfied or validly reused, and the documentation states the boundaries without implying balance discovery or exhaustive token certification.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions