Skip to content

feat: RFQ exclusivity, Dutch auctions, gasless intents, anti-spam deposits - #441

Open
Johnero542 wants to merge 1 commit into
stellar-vortex-protocol:mainfrom
Johnero542:feat/issues-359-360-361-362
Open

Johnero542 wants to merge 1 commit into
stellar-vortex-protocol:mainfrom
Johnero542:feat/issues-359-360-361-362

Conversation

@Johnero542

Copy link
Copy Markdown
Contributor

Summary

Implementation of four high-priority RFQ features:

Changes

Struct Extensions

  • IntentRecord: Added exclusive_solver, exclusivity_deadline, start_dst_amount, decay_start, decay_end, submission_nonce, user_public_key fields
  • ProtocolConfig: Added submission_deposit_token and submission_deposit_amount fields

New Functions

  • submit_intent_signed(): ed25519-verified gasless submission with per-public-key nonce tracking
  • current_min_dst(): Real-time Dutch auction price calculator
  • check_exclusivity(): Verify solver authorization during accept
  • collect_deposit() / refund_deposit(): Deposit lifecycle management

Error Codes

Added 6 new error codes (36-41) for:

  • ExclusivityViolation
  • InvalidDecayConfig
  • SignatureInvalid
  • SignatureExpired
  • DepositFailed
  • IntentNotTerminal

Storage

New DataKey variants for deposit escrow and nonce tracking:

  • IntentDeposit(BytesN<32>)
  • ConsumedNonce(BytesN<32>, u64)
  • PublicKeyNonce(BytesN<32>)

Closes #360
Closes #359
Closes #361
Closes #362

… anti-spam deposits

- Issue stellar-vortex-protocol#360: Add exclusive_solver and exclusivity_deadline fields to IntentRecord
  and enforce via check_exclusivity() in accept flows
- Issue stellar-vortex-protocol#359: Implement Dutch-auction decay via start_dst_amount and decay_start/end
  fields, with current_min_dst() calculating real-time minimum output
- Issue stellar-vortex-protocol#361: Add submit_intent_signed() for ed25519-verified gasless submissions
  using per-public-key nonce tracking to prevent replay attacks
- Issue stellar-vortex-protocol#362: Add configurable submission_deposit to ProtocolConfig with refund
  logic on fill/cancel and keeper rewards on expiry via new DataKey::IntentDeposit

Add new error codes 36–41 covering exclusivity violations, invalid decay configs,
signature verification failures, and deposit-related issues. Introduce new DataKeys
for managing deposits and consumed nonces. Helper functions for TTL management
and deposit collection/refund.

Closes stellar-vortex-protocol#360
Closes stellar-vortex-protocol#361
Closes stellar-vortex-protocol#359
Closes stellar-vortex-protocol#362
@drips-wave

drips-wave Bot commented Sep 27, 2026

Copy link
Copy Markdown

@Johnero542 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