Contract Details
Tech Stack
Solidity ^0.8.24 OpenZeppelin v5 Permit2 Foundry
Chains
Ethereum Arbitrum Base Optimism
Description
Stateless adapter enabling one-transaction ERC-4626 vault deposits via Uniswap Permit2. Eliminates the separate approve transaction. Supports single and batch deposits across multiple vaults.
Features
- ✓ Single-tx deposits (no separate approve)
- ✓ Batch deposits across multiple vaults
- ✓ Slippage protection (minSharesOut)
- ✓ Completely stateless — no funds held
- ✓ Works with any ERC-4626 vault
- ✓ Canonical Permit2 integration
- ✓ Full NatSpec + security notes
- ✓ Comprehensive test suite with mocks
// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; /// @title Permit2 Vault Adapter /// @notice One-tx deposit flows using Permit2 for non-EIP-2612 tokens. contract Permit2VaultAdapter { address public immutable owner; uint256 public constant VERSION = 1; event Initialized(address indexed deployer); constructor() { owner = msg.sender; emit Initialized(msg.sender); } // ... full implementation in purchased package }