Skip to content

Add bulk operations support to Stacks DEX AMM pool#1

Open
AdekunleBamz wants to merge 2 commits intophessophissy:mainfrom
AdekunleBamz:main
Open

Add bulk operations support to Stacks DEX AMM pool#1
AdekunleBamz wants to merge 2 commits intophessophissy:mainfrom
AdekunleBamz:main

Conversation

@AdekunleBamz
Copy link

This PR introduces comprehensive bulk operations functionality to the Stacks DEX AMM pool, enabling efficient batch processing of swaps and liquidity operations.

Changes Made

Contract Updates (contracts/pool-v5.clar)

  • bulk-swap-x-for-y: Bulk X→Y swaps allowing up to 10 swaps per transaction
  • bulk-swap-y-for-x: Bulk Y→X swaps allowing up to 10 swaps per transaction
  • bulk-add-liquidity: Bulk liquidity additions allowing up to 5 additions per transaction
  • bulk-remove-liquidity: Bulk liquidity removals allowing up to 5 removals per transaction
  • Added helper functions for processing individual operations within bulk calls
  • Uses Clarity's map function for efficient bulk processing while maintaining AMM integrity

Test Suite Updates (contracts/tests/pool-v5.test.ts)

  • Created comprehensive test suite with 20+ test cases covering bulk operations
  • Bulk Swap Tests: Multiple swaps in both directions, error handling, slippage protection
  • Bulk Liquidity Tests: Multiple liquidity additions/removals with proper validation
  • Integration Tests: Complex scenarios combining bulk operations with existing functionality
  • Error Handling: Empty lists, expired deadlines, insufficient liquidity scenarios
  • All tests maintain existing AMM math and fee collection logic

New Features

For DEX Users

  • Bulk Trading: Execute multiple token swaps in a single transaction
  • Cost Efficiency: Reduced gas fees for batch operations
  • Arbitrage Opportunities: Execute multiple arbitrage trades atomically
  • Portfolio Rebalancing: Efficiently adjust token positions

For Liquidity Providers

  • Bulk Liquidity Management: Add/remove liquidity across multiple positions
  • Portfolio Optimization: Efficiently manage LP positions
  • Yield Farming: Bulk operations for farming strategies

For DEX Operators

  • Operational Efficiency: Handle large-scale liquidity operations
  • Market Making: Bulk operations for algorithmic market making
  • Treasury Management: Efficient fee collection and distribution

API Examples

;; Bulk swap X for Y
(bulk-swap-x-for-y (list 
  {token-x: token-x, token-y: token-y, dx: u10000000, min-dy: u18000000, recipient: user1, deadline: u1000}
  {token-x: token-x, token-y: token-y, dx: u20000000, min-dy: u36000000, recipient: user2, deadline: u1000}
))
;; Returns: (list {dx: u10000000, dy: u19980019, fee: u30000, recipient: user1} ...)

;; Bulk add liquidity
(bulk-add-liquidity (list
  {token-x: token-x, token-y: token-y, amount-x: u50000000, amount-y: u100000000, min-shares: u50000}
  {token-x: token-x, token-y: token-y, amount-x: u25000000, amount-y: u50000000, min-shares: u25000}
))
;; Returns: (list {shares: u70710, x: u50000000, y: u100000000} ...)

Technical Details

  • Batch Limits: 10 swaps, 5 liquidity operations per transaction for gas efficiency
  • AMM Integrity: All operations maintain constant-product invariant (x·y=k)
  • Fee Collection: Proper 0.3% fee deduction and distribution to fee recipient
  • Slippage Protection: Individual slippage checks for each operation
  • Deadline Protection: Block height validation for each operation
  • Atomic Execution: Either all operations succeed or the entire transaction fails

Use Cases

  • Arbitrage Trading: Execute multiple arbitrage opportunities in one transaction
  • Portfolio Rebalancing: Efficiently adjust token allocations across multiple assets
  • Liquidity Provision: Bulk management of LP positions for yield optimization
  • Market Making: Algorithmic strategies requiring multiple correlated trades
  • Treasury Operations: Large-scale liquidity management for DEX operators

This enhancement significantly improves the operational efficiency of the Stacks DEX while maintaining all existing AMM properties, security validations, and mathematical guarantees.

SmartFlow Developer and others added 2 commits December 28, 2025 02:04
- Implement bulk-swap-x-for-y for multiple X→Y swaps in one transaction (up to 10 swaps)
- Implement bulk-swap-y-for-x for multiple Y→X swaps in one transaction (up to 10 swaps)
- Implement bulk-add-liquidity for multiple liquidity additions (up to 5 additions)
- Implement bulk-remove-liquidity for multiple liquidity removals (up to 5 removals)
- Added comprehensive test suite covering all bulk operations
- Tests include successful bulk operations, error handling, slippage protection, and integration scenarios
- Bulk operations maintain all existing AMM logic, fee collection, and security validations
- Compatible with existing single-operation workflow while providing efficiency for DEX users
- Added confirmation modal before executing swaps
- Displays swap details: pay amount, receive amount, exchange rate, slippage, deadline
- Improved user experience with clear swap preview
- Added modal styling and event handlers
- Separated swap preparation from execution for better UX
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