2 txs
3 calls
constructor
constructor(address _uniswapV3Router, address _uniswapV2Router, address _aerodromeV3Router, address _aerodromeV2Router, address _aerodromeV2Factory, address _weth, address _treasury)
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
aerodromeV2Factory
viewfunction aerodromeV2Factory() view returns (address)
aerodromeV2Router
viewfunction aerodromeV2Router() view returns (address)
aerodromeV3Router
viewfunction aerodromeV3Router() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TREASURY_FEE
viewfunction TREASURY_FEE() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
uniswapV2Router
viewfunction uniswapV2Router() view returns (address)
uniswapV3Router
viewfunction uniswapV3Router() view returns (address)
weth
viewfunction weth() view returns (address)
executeSwap
nonpayablefunction executeSwap(address tokenIn, uint256 amountIn, uint8 routerType, uint24 fee, uint256 amountOutMinimum, uint160 sqrtPriceLimitX96, uint256 deadline)
executeSwapWithPermit
nonpayablefunction executeSwapWithPermit(address tokenIn, uint256 amountIn, uint8 routerType, uint24 fee, uint256 amountOutMinimum, uint160 sqrtPriceLimitX96, uint256 deadline, uint256 permitDeadline, uint8 v, bytes32 r, bytes32 s)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setTreasury
nonpayablefunction setTreasury(address _newTreasury)
setTreasuryFee
nonpayablefunction setTreasuryFee(uint256 _newTreasuryFee)
unpause
nonpayablefunction unpause()
updateAdmin
nonpayablefunction updateAdmin(address _newAdmin)
events
ETHToTokenSwapExecuted
event ETHToTokenSwapExecuted(address indexed tokenOut, uint256 amountIn, uint256 amountOut, uint8 routerType)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SwapExecuted
event SwapExecuted(address indexed tokenIn, uint256 amountIn, uint256 amountOut, uint8 routerType)
TreasuryFeeTransferred
event TreasuryFeeTransferred(uint256 amount)
TreasuryFeeUpdated
event TreasuryFeeUpdated(uint256 newTreasuryFee)
TreasuryUpdated
event TreasuryUpdated(address indexed newTreasury)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x61014060405260646003553480156200001757600080fd5b506040516200208d3803806200208d8339810160408190526200003a916200043d565b600180556002805460ff191690556001600160a01b038716620000ae5760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420556e697377617020563320726f75746572206164647265736044820152607360f81b60648201526084015b60405180910390fd5b6001600160a01b038616620001105760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420556e697377617020563220726f75746572206164647265736044820152607360f81b6064820152608401620000a5565b6001600160a01b038516620001745760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964204165726f64726f6d6520563320726f75746572206164647260448201526265737360e81b6064820152608401620000a5565b6001600160a01b038416620001d85760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964204165726f64726f6d6520563220726f75746572206164647260448201526265737360e81b6064820152608401620000a5565b6001600160a01b0383166200023c5760405162461bcd60e51b8152602060048201526024808201527f496e76616c6964204165726f64726f6d6520563220666163746f7279206164646044820152637265737360e01b6064820152608401620000a5565b6001600160a01b038216620002945760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964205745544820616464726573730000000000000000000000006044820152606401620000a5565b6001600160a01b038116620002ec5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207472656173757279206164647265737300000000000000006044820152606401620000a5565b6001600160a01b0387811660805286811660a05285811660c05284811660e0528381166101009081528382166101205260028054610100600160a81b031916928416909102919091179055620003637fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217753362000371565b5050505050505050620004d2565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000416576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003cd3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200041a565b5060005b92915050565b80516001600160a01b03811681146200043857600080fd5b919050565b600080600080600080600060e0888a0312156200045957600080fd5b620004648862000420565b9650620004746020890162000420565b9550620004846040890162000420565b9450620004946060890162000420565b9350620004a46080890162000420565b9250620004b460a0890162000420565b9150620004c460c0890162000420565b905092959891949750929550565b60805160a05160c05160e0516101005161012051611b1e6200056f600039600081816102b701528181610f8b01528181611093015281816111d3015281816113280152818161143d015261159001526000818161039e01526115c80152600081816102eb0152610cef0152600081816104d20152610ca70152600081816101a20152610c6101526000818161022c0152610c130152611b1e6000f3fe60806040526004361061014f5760003560e01c806377e741c7116100b6578063d547741f1161006f578063d547741f14610420578063e2f273bd14610440578063e81dcb6a14610460578063f0f4426014610480578063f3210800146104a0578063fce44be0146104c057600080fd5b806377e741c71461036c5780637e01841d1461038c5780638456cb59146103c05780638ce1a483146103d557806391d14854146103eb578063a217fddf1461040b57600080fd5b80633f4ba83a116101085780633f4ba83a146102905780633fc8cef3146102a557806345f76747146102d95780635c975abb1461030d57806361d027b31461032557806375b238fc1461034a57600080fd5b806301ffc9a71461015b5780631694505e14610190578063248a9ca3146101dc5780632c76d7a61461021a5780632f2ff15d1461024e57806336568abe1461027057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046116b8565b6104f4565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610187565b3480156101e857600080fd5b5061020c6101f73660046116e9565b60009081526020819052604090206001015490565b604051908152602001610187565b34801561022657600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561025a57600080fd5b5061026e610269366004611717565b61052b565b005b34801561027c57600080fd5b5061026e61028b366004611717565b610556565b34801561029c57600080fd5b5061026e61058e565b3480156102b157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102e557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561031957600080fd5b5060025460ff1661017b565b34801561033157600080fd5b506002546101c49061010090046001600160a01b031681565b34801561035657600080fd5b5061020c600080516020611ac983398151915281565b34801561037857600080fd5b5061026e6103873660046116e9565b6105b1565b34801561039857600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156103cc57600080fd5b5061026e610674565b3480156103e157600080fd5b5061020c60035481565b3480156103f757600080fd5b5061017b610406366004611717565b610694565b34801561041757600080fd5b5061020c600081565b34801561042c57600080fd5b5061026e61043b366004611717565b6106bd565b34801561044c57600080fd5b5061026e61045b366004611747565b6106e2565b34801561046c57600080fd5b5061026e61047b36600461178b565b610712565b34801561048c57600080fd5b5061026e61049b366004611747565b6107e1565b3480156104ac57600080fd5b5061026e6104bb366004611802565b6108a2565b3480156104cc57600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b03198216637965db0b60e01b148061052557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600082815260208190526040902060010154610546816109f9565b6105508383610a03565b50505050565b6001600160a01b038116331461057f5760405163334bd91960e11b815260040160405180910390fd5b6105898282610a95565b505050565b600080516020611ac98339815191526105a6816109f9565b6105ae610b00565b50565b600080516020611ac98339815191526105c9816109f9565b6127108211156106385760405162461bcd60e51b815260206004820152602f60248201527f547265617375727920666565206d757374206265206c657373207468616e206f60448201526e7220657175616c20746f203130302560881b60648201526084015b60405180910390fd5b60038290556040518281527ffdc6c17f190a1a7e236af2f7387d9494b31405f8f9fad26e36a7fefe7190cef89060200160405180910390a15050565b600080516020611ac983398151915261068c816109f9565b6105ae610b52565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000828152602081905260409020600101546106d8816109f9565b6105508383610a95565b600080516020611ac98339815191526106fa816109f9565b610589600080516020611ac983398151915283610a03565b61071a610b8f565b610722610bb5565b6001600160a01b0387166107705760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b604482015260640161062f565b600086116107c05760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161062f565b6107cf87878787878787610bdf565b6107d860018055565b50505050505050565b600080516020611ac98339815191526107f9816109f9565b6001600160a01b03821661084f5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420747265617375727920616464726573730000000000000000604482015260640161062f565b60028054610100600160a81b0319166101006001600160a01b038516908102919091179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050565b6108aa610b8f565b6108b2610bb5565b6001600160a01b038b166109005760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b604482015260640161062f565b60008a116109505760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161062f565b60405163d505accf60e01b8152336004820152306024820152604481018b90526064810185905260ff8416608482015260a4810183905260c481018290526001600160a01b038c169063d505accf9060e401600060405180830381600087803b1580156109bc57600080fd5b505af11580156109d0573d6000803e3d6000fd5b505050506109e38b8b8b8b8b8b8b610bdf565b6109ec60018055565b5050505050505050505050565b6105ae8133610e40565b6000610a0f8383610694565b610a8d576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610a453390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610525565b506000610525565b6000610aa18383610694565b15610a8d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610525565b610b08610e7d565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610b5a610b8f565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b353390565b60025460ff1615610bb35760405163d93c066560e01b815260040160405180910390fd5b565b600260015403610bd857604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b610bf46001600160a01b038816333089610ea0565b600080866003811115610c0957610c096118b2565b03610c4357610c3c7f00000000000000000000000000000000000000000000000000000000000000008989888888610efa565b9050610d1a565b6001866003811115610c5757610c576118b2565b03610c8957610c3c7f000000000000000000000000000000000000000000000000000000000000000089898786611104565b6002866003811115610c9d57610c9d6118b2565b03610cd157610c3c7f0000000000000000000000000000000000000000000000000000000000000000898988888888611296565b6003866003811115610ce557610ce56118b2565b03610d1a57610d177f0000000000000000000000000000000000000000000000000000000000000000898987866114af565b90505b600061271060035483610d2d91906118de565b610d3791906118f5565b90508015610db2576002546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610d7d573d6000803e3d6000fd5b506040518181527fe4d1eaf19a6b8737a45cdcb0fb58e67257edb14c3a6208629044ee41dcc9417c9060200160405180910390a15b6000610dbe8284611917565b604051909150339082156108fc029083906000818181858888f19350505050158015610dee573d6000803e3d6000fd5b50896001600160a01b03167fadf9dccf6a07ca4ca56ef4624f7ce838935b8af886c483e2e3b3d39695bb76278a858b604051610e2c9392919061192a565b60405180910390a250505050505050505050565b610e4a8282610694565b610e795760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161062f565b5050565b60025460ff16610bb357604051638dfc202b60e01b815260040160405180910390fd5b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610550908590611647565b60405163095ea7b360e01b81526001600160a01b038781166004830152602482018690526000919087169063095ea7b3906044016020604051808303816000875af1158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f719190611964565b506040805160e0810182526001600160a01b0388811682527f000000000000000000000000000000000000000000000000000000000000000081166020830190815262ffffff8881168486019081523060608601908152608086018c815260a087018b81528a871660c0890190815298516304e45aaf60e01b8152885188166004820152955187166024870152925190931660448501525184166064840152905160848301525160a48201529251811660c484015290916000918a16906304e45aaf9060e4016020604051808303816000875af1158015611056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107a9190611986565b604051632e1a7d4d60e01b8152600481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156110df57600080fd5b505af11580156110f3573d6000803e3d6000fd5b50929b9a5050505050505050505050565b60405163095ea7b360e01b81526001600160a01b038681166004830152602482018590526000919086169063095ea7b3906044016020604051808303816000875af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b9190611964565b5060408051600280825260608201835260009260208301908036833701905050905085816000815181106111b1576111b161199f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106112055761120561199f565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b8152479189169063791ac947906112499089908990879030908b906004016119b5565b600060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b50505050600081476112899190611917565b9998505050505050505050565b60405163095ea7b360e01b81526001600160a01b038881166004830152602482018790526000919088169063095ea7b3906044016020604051808303816000875af11580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d9190611964565b5060408051610100810182526001600160a01b03808a1682527f0000000000000000000000000000000000000000000000000000000000000000811660208301908152600289810b84860190815230606086019081526080860189815260a087018e815260c088018d81528c881660e08a0190815299516350131c1f60e11b8152895189166004820152965188166024880152935190940b6044860152905185166064850152516084840152905160a48301525160c48201529251811660e484015290916000918b169063a026383e90610104016020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190611986565b604051632e1a7d4d60e01b8152600481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561148957600080fd5b505af115801561149d573d6000803e3d6000fd5b50929c9b505050505050505050505050565b60405163095ea7b360e01b81526001600160a01b038681166004830152602482018590526000919086169063095ea7b3906044016020604051808303816000875af1158015611502573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115269190611964565b50604080516001808252818301909252600091816020015b60408051608081018252600080825260208083018290529282018190526060820152825260001990920191018161153e5790505090506040518060800160405280876001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020016000151581526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250816000815181106116065761160661199f565b602090810291909101015260405163095e1d6560e11b815247906001600160a01b038916906312bc3aca906112499089908990879030908b90600401611a26565b600080602060008451602086016000885af18061166a576040513d6000823e3d81fd5b50506000513d9150811561168257806001141561168f565b6001600160a01b0384163b155b1561055057604051635274afe760e01b81526001600160a01b038516600482015260240161062f565b6000602082840312156116ca57600080fd5b81356001600160e01b0319811681146116e257600080fd5b9392505050565b6000602082840312156116fb57600080fd5b5035919050565b6001600160a01b03811681146105ae57600080fd5b6000806040838503121561172a57600080fd5b82359150602083013561173c81611702565b809150509250929050565b60006020828403121561175957600080fd5b81356116e281611702565b80356004811061177357600080fd5b919050565b803562ffffff8116811461177357600080fd5b600080600080600080600060e0888a0312156117a657600080fd5b87356117b181611702565b9650602088013595506117c660408901611764565b94506117d460608901611778565b93506080880135925060a08801356117eb81611702565b8092505060c0880135905092959891949750929550565b60008060008060008060008060008060006101608c8e03121561182457600080fd5b8b3561182f81611702565b9a5060208c0135995061184460408d01611764565b985061185260608d01611778565b975060808c0135965060a08c013561186981611702565b955060c08c0135945060e08c013593506101008c013560ff8116811461188e57600080fd5b809350506101208c013591506101408c013590509295989b509295989b9093969950565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610525576105256118c8565b60008261191257634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610525576105256118c8565b83815260208101839052606081016004831061195657634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b60006020828403121561197657600080fd5b815180151581146116e257600080fd5b60006020828403121561199857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a055784516001600160a01b0316835293830193918301916001016119e0565b50506001600160a01b03969096166060850152505050608001529392505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b81811015611a9c57855180516001600160a01b0390811685528682015181168786015285820151151586860152606091820151169084015294840194608090920191600101611a52565b50506001600160a01b03881660608701529350611ab892505050565b826080830152969550505050505056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220af01e8bdb51ee856275158110afb7ea0a5d5675760d5b3a68c96d55787d30af164736f6c634300081400330000000000000000000000002626664c2603336e57b271c5c0b26f421741e4810000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24000000000000000000000000be6d8f0d05cc4be24d5167a3ef062215be6d18a5000000000000000000000000cf77a3ba9a5ca399b7c97c74d54e5b1beb874e43000000000000000000000000420dd381b31aef6683db6b902084cb0ffece40da000000000000000000000000420000000000000000000000000000000000000600000000000000000000000006bff275cbcc675ac6c1f0bc32e2a8343d40229a