Skip to content

fix: live protocol fee, EVM chain validation, chain_id bounds, scoped auth - #322

Open
quartune wants to merge 1 commit into
stellar-vortex-protocol:mainfrom
quartune:feature/260-261-262-263-fixes
Open

fix: live protocol fee, EVM chain validation, chain_id bounds, scoped auth#322
quartune wants to merge 1 commit into
stellar-vortex-protocol:mainfrom
quartune:feature/260-261-262-263-fixes

Conversation

@quartune

Copy link
Copy Markdown

Summary

Combined fix for four assigned issues:

Also updates docs/pre-deploy-security-checklist.md (checks off #45), docs/solver-integration-guide.md (notes the scoped-auth change for solver bot authors), and CHANGELOG.md.

Validation performed

  • Reviewed each changed call site against its issue's acceptance criteria and cross-checked the EVM chain list against README.md and docs/132-supported-chains.md.
  • Added regression tests: avalanche/bsc EVM validation (accept + reject), set_config-driven fee honoring, set_authorized_emitter u16 boundary (accept at u16::MAX, reject above), and a mismatched-args MockAuth test proving fill_intent's new require_auth_for_args scope rejects a delegated auth entry signed for a different intent_id.
  • Could not run cargo build/test/clippy: no Rust toolchain is available in this environment. Additionally, main currently fails to compile for reasons unrelated to this PR — several constants used in intent_settlement/src/lib.rs (e.g. DEFAULT_MIN_BOND, MIN_FILL_WINDOW_SECS, MIN_INTENT_EXPIRY_SECS, MIN_BOND_FLOOR, MAX_PROTOCOL_FEE_BPS, SLASH_COOLDOWN, MAX_BATCH_SIZE, MAX_EXTENSION_DURATION) are referenced but never defined. This traces back to a merge conflict in PR feat: add max protocol fee cap and admin audit trail #184 (feat/protocol-fee-cap) that appears to have dropped the constant-definition hunk while keeping the code that uses them. This is a pre-existing, unrelated build-breaking issue and is out of scope for this PR — flagging it here since it will need a separate fix before CI can pass on any branch, including this one.

Closes: #260
Closes: #261
Closes: #262
Closes: #263

… solver/user auth

- fill_intent now charges the live set_config protocol_fee_bps instead of
  the compile-time PROTOCOL_FEE_BPS constant.
- validate_src_token recognizes "avalanche" and "bsc" as EVM chains, closing
  a format-validation gap.
- proof_registry's set_authorized_emitter rejects chain_id > u16::MAX.
- Audited all require_auth() call sites (docs/auth-audit.md); upgraded
  submit_intent, accept_intent, and fill_intent to require_auth_for_args
  scoped to their load-bearing arguments.

Closes: stellar-vortex-protocol#260
Closes: stellar-vortex-protocol#261
Closes: stellar-vortex-protocol#262
Closes: stellar-vortex-protocol#263
@drips-wave

drips-wave Bot commented Aug 30, 2026

Copy link
Copy Markdown

@quartune Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant