Skip to content

fix: filter extraneous VKey witnesses + add CI smoke test system#217

Merged
QSchlegel merged 2 commits intopreprodfrom
fix/invalid-witnesses-and-ci-smoke
Apr 4, 2026
Merged

fix: filter extraneous VKey witnesses + add CI smoke test system#217
QSchlegel merged 2 commits intopreprodfrom
fix/invalid-witnesses-and-ci-smoke

Conversation

@QSchlegel
Copy link
Copy Markdown
Collaborator

Summary

  • Fix InvalidWitnessesUTXOW: Filter VKey witnesses after signing to remove keys not required by any native script in the transaction. This prevents Conway ledger rejection when wallets return extraneous witnesses during partial signing (e.g. ballot votes with both payment + DRep scripts).
  • Defense-in-depth: submitTxWithScriptRecovery now also handles InvalidWitnessesUTXOW by stripping offending witnesses and retrying submission.
  • CI smoke test system (Create real-chain CI smoke system #213): 3-stage real-chain smoke tests targeting v1 API routes on preprod, running on PRs via GitHub Actions.

Test plan

  • npm run build passes (verified)
  • Existing tests pass with same results as before (17 pre-existing failures, 0 regressions)
  • Ballot vote submission no longer fails with InvalidWitnessesUTXOW
  • Non-ballot transactions (sends, staking) still work (filter is passthrough when no native scripts)
  • CI smoke workflow runs on PR (requires secrets: SMOKE_API_BASE_URL, SMOKE_SIGNER_MNEMONIC_1, SMOKE_SIGNER_MNEMONIC_2, SMOKE_BOT_MNEMONIC, SMOKE_BOT_KEY_ID, SMOKE_BOT_SECRET)

🤖 Generated with Claude Code

Fix InvalidWitnessesUTXOW error on ballot vote submission by filtering
witnesses whose key hash is not required by any native script in the
transaction. Also adds defense-in-depth recovery in submitTxWithScriptRecovery.

Create real-chain CI smoke system (issue #213) with 3 stages:
- Stage 1: Bootstrap wallets from mnemonic secrets
- Stage 2: Run 9 scenario tests against v1 API routes
- Stage 3: Produce JSON report artifacts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
multisig Ready Ready Preview, Comment Apr 4, 2026 9:37pm

Request Review

The workflow now checks for SMOKE_* secrets before running and skips
cleanly if they are missing. The bootstrap script also exits 0 with
a message instead of failing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@QSchlegel QSchlegel merged commit b9ea7b8 into preprod Apr 4, 2026
3 checks passed
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.

1 participant