Periphery Overview
Contract Summary
Contract
Purpose
Source
Architecture
┌─────────────────────────────────────────────────────────────────────────────┐
│ USER INTERFACE │
└─────────────────────────────────────────────────────────────────────────────┘
│ │ │
exactInput/Output mint/collect quoteExact
│ │ │
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐ ┌──────────────────┐
│ SwapRouter │ │ NonfungiblePosition │ │ VinuSwapQuoter │
│ ┌─────────────────────┐ │ │ Manager │ │ │
│ │ PeripheryPayments │ │ │ ┌─────────────────────┐ │ │ - quoteExact │
│ │ PeripheryValidation │ │ │ │ ERC721 + Permit │ │ │ InputSingle │
│ │ Multicall │ │ │ │ Position Locking │ │ │ - quoteExact │
│ │ SelfPermit │ │ │ │ LiquidityMgmt │ │ │ OutputSingle │
│ └─────────────────────┘ │ │ └─────────────────────┘ │ │ │
└────────────┬────────────┘ └───────────┬─────────────┘ └────────┬─────────┘
│ │ │
│ swap() │ mint() │ (read-only)
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ VinuSwapPool │
└─────────────────────────────────────────────────────────────────────────────┘Base Contracts (Mixins)
PeripheryImmutableState
PeripheryPayments
PeripheryPaymentsWithFee
PeripheryValidation
Multicall
SelfPermit
LiquidityManagement
ERC721Permit
Contract Details
SwapRouter
NonfungiblePositionManager
VinuSwapQuoter
NonfungibleTokenPositionDescriptor
Common Patterns
Deadline Protection
Slippage Protection
Multicall Usage
VC Handling
VinuSwap Extensions
Position Locking
Security Considerations
Next Steps
Last updated