Skip to content

docs(handoff): fastUSD (#87) + multisig CLI (#85) transfer — tracking#96

Open
Zhaiyuqing2003 wants to merge 3 commits into
developfrom
docs/handoff-fastusd-multisig
Open

docs(handoff): fastUSD (#87) + multisig CLI (#85) transfer — tracking#96
Zhaiyuqing2003 wants to merge 3 commits into
developfrom
docs/handoff-fastusd-multisig

Conversation

@Zhaiyuqing2003

@Zhaiyuqing2003 Zhaiyuqing2003 commented May 20, 2026

Copy link
Copy Markdown
Contributor

Handoff — fastUSD (PR #87) + multisig CLI (PR #85)

Date: 2026-05-19
From: Yuqing
To: TBD

Two open PRs need to land on develop, in this order: PR #87 (fastUSD) first, then PR #85 (multisig) rebased on top. This doc captures branch state, what's left, and the concrete conflict surface for the multisig rebase. Rebase mechanics are standard git rebase --onto; this doc does not prescribe them.

PR #87feat(cli): fund command restructure + fastUSD adoption

Remaining — fastUSD

  • Round-2 review. Round-1 review left ~10 findings across Codex, Claude, and Copilot. The last ~6 commits on the branch address them (EVM asset id surfaced on PaymentDetails; non-throwing default-token selection in send path; Ramp URL hardened with URLSearchParams + real Fast-address validation; fastUSDC dropped as a --token value; docs reworded for route-specific defaults). A reviewer pass is needed to confirm each finding is closed.
  • Two unchecked smoke tests (from the PR description):
    • mainnet: open the emitted fund fastusd URL once the unified Fast web app is live; confirm to= is recognized and amount= pre-fills.
    • testnet: fast send fast1addr 5 (no --token) defaults to testUSDC; mainnet equivalent defaults to fastUSD.
  • Fail loud on routes the default fastUSD can't serve. Default is fastUSD on mainnet, but some routes (e.g. fund usdc crypto, which goes through allSet) can't settle in fastUSD. When --token is omitted on one of those routes, do not silently substitute a different default (e.g. fall through to fastUSDC or the chain's bridge token). Instead, print an error explaining that the default fastUSD is not supported on this command and instructing the user to pass --token USDC explicitly. The principle: default is fastUSD everywhere or it's an explicit choice — never a silent route-dependent substitution.

PR #85feat(cli): multisig support — N-of-M wallets + token operations

Remaining — multisig

  • Review old Copilot comments. The existing Copilot round-1 review was generated against old head d7e03a1 and reported 23 inline comments. Triage each comment against new head 2b1268d: close anything made obsolete by the rebase/feat(cli): fund command restructure + fastUSD adoption #87/feat(cli): explicit default-token resolution + CommandUnsupportedForTokenError #98 integration, and fix anything still valid.
  • Request fresh reviews on the rebased PR. Ask Codex/Claude/Copilot to review feat(cli): multisig support — N-of-M wallets + token operations #85 again against 2b1268d; the old review context predates the fastUSD rebase.
  • Run the three remaining testnet smoke tests from the PR description:
    • 2-of-3 multisig init -> send -> cosigner vote -> quorum success.
    • token create from single-signer -> admin assignment is correct.
    • token manage rejects a wrong updateId and accepts the current updateId.
  • Audit the deferred/out-of-scope list in the PR body. Decide which items are merge blockers vs. follow-ups. Pay special attention to the SDK MultiSigConfigInvalidError and CLI MultiSigConfigInvalidError sharing the same _tag; runtime behavior is currently fine because the CLI maps SDK errors, but reviewers may still ask for disambiguation.
  • Resolve branch protection/review blockers. CI is currently green, so remaining merge blockers should be review approval or repository policy state rather than test failures.

Rebase/conflict resolution notes — multisig onto develop

Rebase is complete. The actual conflicts matched the expected conflict surface and were resolved on feat/multisig-cli before force-pushing #85.

File/area Resolution
packages/fast-sdk/src/index.ts Kept the FastNetwork / FastToken exports from develop and added the multisig SDK public API exports.
app/cli/src/commands/fund/usdc/crypto.ts Re-applied the multisig single-signer guard at the post-#87 path and kept #98's default-token fail-loud behavior. The hint now points to fast fund usdc crypto.
app/cli/src/commands/send.ts Kept develop's default-token resolution/fail-loud path, then dispatches Fast -> Fast sends through the multisig-aware single-vs-multisig flow. --as only affects signer/member resolution, not token resolution.
app/cli/src/commands/pay.ts Kept the single-signer guard and the real paid-asset labeling/history behavior from the fastUSD/x402 work.
app/cli/src/cli.ts, app/cli/src/main.ts, app/cli/src/commands/index.ts Kept the new fund usdc / fund fastusd tree and registered all multisig/token parsers, handlers, and validation hints.
app/cli/package.json, pnpm-lock.yaml Added viem as a CLI dev dependency because app/cli/src/services/api/allset.ts directly imports viem types; this avoids clean-install tsc failures under pnpm.

Pointers

Captures branch state, remaining work, and the file-by-file conflict
surface for rebasing feat/multisig-cli onto feat/cli-fund-fastusd, so
the work can be picked up by another teammate.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 20, 2026 01:16

This comment was marked as resolved.

…#87

Default fastUSD must not silently fall back to a different token on
routes it can't serve (e.g. fund usdc crypto via allSet) — print an
error instructing the user to pass --token USDC explicitly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants