A robust Vypric suite for conducting token auctions with multiple payment options and automated market making functionality.
The Leviathan News Auction Block is a decentralized auction platform that enables:
- Single-price English auctions with configurable parameters
- Upgradable modular directory to support future auction types
- Multi-token support via integrated Curve trading
To be deployed onto Fraxtal for deploymnet with SQUID as the payment token.
- Central registry for provisioning/disabling all auction contracts and zaps
- Unified delegated bidding interface for users
- Flexible token support management through zap contracts
- Reference implementation of English auction mechanics
- Configurable parameters for reserve price, duration, etc.
- Support for auction and bid metadata via IPFS
- Curve AMM integration for token swaps
- Slippage protection
- Safe estimation for bid amounts
-
Owner creates auction in Auction House with customizable parameters:
- Time buffer
- Reserve price
- Minimum bid increment
- Duration
-
Bidders interact with Directory:
- Place bids in primary token or alternate tokens (provisioned via Zap)
- Optionally attach IPFS hash to bid with metadata
- Withdraw failed bids
-
Auction completion:
- Automatic extension if bid near end
- Settlement optionally mints NFT to winner
- Fee distribution
- Two-step ownership transfers
- Granular delegation system
- Clear separation between admin and user functions
- Tokens always collected before swaps/bids
- Slippage protection on all AMM interactions
- No WETH/ETH held in any contracts
- Pausable functionality at multiple levels
- Auction nullification capability
- Protected withdrawal system
Deployments artifacts are stored in the /deployment directory. Test contracts available on Arbitrum Sepolia to facilitate mock token trading via the Curve Lite deployment.
Test interaction with live auctions via the most current test builds of the UI, available in private repository or demo builds:
- Web Frontend Coming to @leviathan-news/auction-ui
- Telegram Coming to @leviathan-news/auction-bot h/t @johnnyonline
- Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate # On Windows use: .\venv\Scripts\activate- Install dependencies:
pip install -r requirements.txtVyper linting is handled using mamushi. Test and deployment script linting rquires black, isort, and flake8.
The project includes comprehensive test suites:
- Standard tests:
pytest- Fork-mode tests (requires Alchemy API key):
pytest tests/fork --fork
pytest tests/hypothesis --fork- Coverage reporting:
pytest --cov=contracts --cov-branch tests/
coverage htmlView the report in htmlcov/index.html
This project is licensed under the MIT License - see the LICENSE file for details. Contributions welcomed:
- Fork the repository
- Create your feature branch
- Commit changes with tests
- Push to your branch
- Open a Pull Request
Built with:
- Vyper - Smart contract language
- Boa - Testing framework
- Hypothesis - Property-based testing
- Snekmate - NFT and ownable/pausable functions
- Wen Llama - Forked from the inspirational auctions
