0 txs
559 calls
constructor
constructor(address _v3TwapUtilities, address _v2Router, address _v3Router, bool _asyncInit)
functions
ASYNC_INITIALIZE
viewfunction ASYNC_INITIALIZE() view returns (bool)
getReserves
viewfunction getReserves(address _pool) view returns (uint112 _reserve0, uint112 _reserve1)
getV2Pool
viewfunction getV2Pool(address _token0, address _token1) view returns (address)
getV3Pool
viewfunction getV3Pool(address _token0, address _token1, uint24 _poolFee) view returns (address)
getV3Pool
viewfunction getV3Pool(address, address, int24) view returns (address _p)
V2_ROUTER
viewfunction V2_ROUTER() view returns (address)
V3_ROUTER
viewfunction V3_ROUTER() view returns (address)
V3_TWAP_UTILS
viewfunction V3_TWAP_UTILS() view returns (address)
WETH
viewfunction WETH() view returns (address)
addLiquidity
nonpayablefunction addLiquidity(address _tokenA, address _tokenB, uint256 _amountADesired, uint256 _amountBDesired, uint256 _amountAMin, uint256 _amountBMin, address _to, uint256 _deadline)
createV2Pool
nonpayablefunction createV2Pool(address _token0, address _token1) returns (address)
removeLiquidity
nonpayablefunction removeLiquidity(address _tokenA, address _tokenB, uint256 _liquidity, uint256 _amountAMin, uint256 _amountBMin, address _to, uint256 _deadline)
swapV2Single
nonpayablefunction swapV2Single(address _tokenIn, address _tokenOut, uint256 _amountIn, uint256 _amountOutMin, address _recipient) returns (uint256 _amountOut)
swapV2SingleExactOut
nonpayablefunction swapV2SingleExactOut(address _tokenIn, address _tokenOut, uint256 _amountInMax, uint256 _amountOut, address _recipient) returns (uint256 _amountInUsed)
swapV3Single
nonpayablefunction swapV3Single(address _tokenIn, address _tokenOut, uint24 _fee, uint256 _amountIn, uint256 _amountOutMin, address _recipient) returns (uint256 _amountOut)
swapV3Single
nonpayablefunction swapV3Single(address, address, int24, uint256, uint256, address) returns (uint256 _amountOut)
events
No events.
errors
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x610100604052348015610010575f5ffd5b5060405161207438038061207483398101604081905261002f9161006a565b6001600160a01b0393841660805291831660a05290911660c052151560e0526100ca565b6001600160a01b0381168114610067575f5ffd5b50565b5f5f5f5f6080858703121561007d575f5ffd5b845161008881610053565b602086015190945061009981610053565b60408601519093506100aa81610053565b606086015190925080151581146100bf575f5ffd5b939692955090935050565b60805160a05160c05160e051611f006101745f395f61023f01525f81816101fb0152818161074c015281816107cb015261113e01525f818161019b015281816104f00152818161052c015281816109f601528181610a3201528181610b5c01528181610c5801528181610cde01528181610e5f01528181610ecf0152818161103f015281816113530152818161138701526113fd01525f81816102af015261110f0152611f005ff3fe608060405234801561000f575f5ffd5b50600436106100fb575f3560e01c8063a111985611610093578063c4f3e9d711610063578063c4f3e9d714610271578063e3ddd77914610284578063e8e3370014610297578063f191c16a146102aa575f5ffd5b8063a1119856146101f6578063ad5c46481461021d578063baa2abde14610225578063c3749ae51461023a575f5ffd5b80638ada032e116100ce5780638ada032e146101965780638d5752d6146101bd5780639a8fadee146101d05780639f4f9745146101e3575f5ffd5b80630a8e060f146100ff5780633e99c1e41461012f57806383e4b89f146101625780638489d96014610183575b5f5ffd5b61011261010d366004611900565b6102d1565b6040516001600160a01b0390911681526020015b60405180910390f35b61014261013d366004611944565b610305565b604080516001600160701b03938416815292909116602083015201610126565b610175610170366004611966565b610372565b604051908152602001610126565b6101756101913660046119c1565b610616565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b6101756101cb366004611a3d565b610646565b6101756101de366004611966565b610888565b6101126101f1366004611a7b565b610b59565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b610112610c55565b610238610233366004611ab2565b610cdb565b005b6102617f000000000000000000000000000000000000000000000000000000000000000081565b6040519015158152602001610126565b61011261027f366004611a7b565b61103c565b610112610292366004611b20565b61110c565b6102386102a5366004611b5b565b611245565b6101127f000000000000000000000000000000000000000000000000000000000000000081565b60405162461bcd60e51b8152602060048201526002602482015261049360f41b60448201525f906064015b60405180910390fd5b5f5f826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610343573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103679190611be8565b509094909350915050565b6040516370a0823160e01b81526001600160a01b0382811660048301525f9182918716906370a0823190602401602060405180830381865afa1580156103ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103de9190611c34565b9050845f03610454576040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015610429573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044d9190611c34565b945061046b565b61046b335b6001600160a01b038916903088611665565b6040805160028082526060820183525f9260208301908036833701905050905087815f8151811061049e5761049e611c5f565b60200260200101906001600160a01b031690816001600160a01b03168152505086816001815181106104d2576104d2611c5f565b6001600160a01b0392831660209182029290920101526105159089167f0000000000000000000000000000000000000000000000000000000000000000886116d2565b604051635c11d79560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635c11d79590610569908990899086908a904290600401611c73565b5f604051808303815f87803b158015610580575f5ffd5b505af1158015610592573d5f5f3e3d5ffd5b50506040516370a0823160e01b81526001600160a01b0387811660048301528593508a1691506370a0823190602401602060405180830381865afa1580156105dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106009190611c34565b61060a9190611cf7565b98975050505050505050565b60405162461bcd60e51b81526020600482015260036024820152624e493360e81b60448201525f906064016102fc565b6040516370a0823160e01b81526001600160a01b0382811660048301525f9182918816906370a0823190602401602060405180830381865afa15801561068e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b29190611c34565b9050845f03610728576040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa1580156106fd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107219190611c34565b945061073d565b61073d6001600160a01b038916333088611665565b6107716001600160a01b0389167f0000000000000000000000000000000000000000000000000000000000000000876116d2565b60408051610100810182526001600160a01b038a81168252898116602083015262ffffff891682840152858116606083015242608083015260a0820188905260c082018790525f60e0830152915163414bf38960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163414bf3899161080091600401611d0a565b6020604051808303815f875af115801561081c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108409190611c34565b506040516370a0823160e01b81526001600160a01b0384811660048301528291908916906370a0823190602401602060405180830381865afa1580156105dc573d5f5f3e3d5ffd5b6040516370a0823160e01b81523060048201525f9081906001600160a01b038816906370a0823190602401602060405180830381865afa1580156108ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f29190611c34565b9050845f03610968576040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa15801561093d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109619190611c34565b9450610971565b61097133610459565b6040805160028082526060820183525f9260208301908036833701905050905087815f815181106109a4576109a4611c5f565b60200260200101906001600160a01b031690816001600160a01b03168152505086816001815181106109d8576109d8611c5f565b6001600160a01b039283166020918202929092010152610a1b9089167f0000000000000000000000000000000000000000000000000000000000000000886116d2565b604051634401edf760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638803dbee90610a6f9088908a9086908a904290600401611c73565b5f604051808303815f875af1158015610a8a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ab19190810190611d87565b506040516370a0823160e01b81523060048201525f9083906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610af8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611c34565b610b269190611cf7565b90508015610b4257610b426001600160a01b038a163383611759565b610b4c8188611cf7565b9998505050505050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611e4f565b60405163e6a4390560e01b81526001600160a01b0385811660048301528481166024830152919091169063e6a4390590604401602060405180830381865afa158015610c28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4c9190611e4f565b90505b92915050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd69190611e4f565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5c9190611e4f565b60405163e6a4390560e01b81526001600160a01b038a811660048301528981166024830152919091169063e6a4390590604401602060405180830381865afa158015610daa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dce9190611e4f565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e15573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e399190611c34565b9050610e506001600160a01b03831633308a611665565b610e846001600160a01b0383167f0000000000000000000000000000000000000000000000000000000000000000896116d2565b604051635d5155ef60e11b81526001600160a01b038a81166004830152898116602483015260448201899052606482018890526084820187905285811660a483015260c482018590527f0000000000000000000000000000000000000000000000000000000000000000169063baa2abde9060e40160408051808303815f875af1158015610f14573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f389190611e6a565b50506040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015610f7e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa29190611c34565b1115611031576040516370a0823160e01b815230600482015261103190859083906001600160a01b038616906370a0823190602401602060405180830381865afa158015610ff2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110169190611c34565b6110209190611cf7565b6001600160a01b0385169190611759565b505050505050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bd9190611e4f565b6040516364e329cb60e11b81526001600160a01b0385811660048301528481166024830152919091169063c9c65396906044016020604051808303815f875af1158015610c28573d5f5f3e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634556bd207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611198573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bc9190611e4f565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201528188166024820152908616604482015262ffffff85166064820152608401602060405180830381865afa158015611219573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123d9190611e4f565b949350505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015611289573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ad9190611c34565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038a16906370a0823190602401602060405180830381865afa1580156112f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113189190611c34565b905061132f6001600160a01b038b1633308b611665565b6113446001600160a01b038a1633308a611665565b6113786001600160a01b038b167f00000000000000000000000000000000000000000000000000000000000000008a6116d2565b6113ac6001600160a01b038a167f0000000000000000000000000000000000000000000000000000000000000000896116d2565b60405162e8e33760e81b81526001600160a01b038b811660048301528a81166024830152604482018a9052606482018990526084820188905260a4820187905285811660c483015260e482018590527f0000000000000000000000000000000000000000000000000000000000000000169063e8e3370090610104016060604051808303815f875af1158015611444573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114689190611e8c565b50506040516370a0823160e01b81523060048201528391506001600160a01b038c16906370a0823190602401602060405180830381865afa1580156114af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d39190611c34565b1115611562576040516370a0823160e01b815230600482015261156290859084906001600160a01b038e16906370a0823190602401602060405180830381865afa158015611523573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115479190611c34565b6115519190611cf7565b6001600160a01b038d169190611759565b6040516370a0823160e01b815230600482015281906001600160a01b038b16906370a0823190602401602060405180830381865afa1580156115a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ca9190611c34565b1115611659576040516370a0823160e01b815230600482015261165990859083906001600160a01b038d16906370a0823190602401602060405180830381865afa15801561161a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061163e9190611c34565b6116489190611cf7565b6001600160a01b038c169190611759565b50505050505050505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526116cc9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061178f565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa15801561171f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117439190611c34565b90506116cc84846117548585611eb7565b6117fb565b6040516001600160a01b0383811660248301526044820183905261178a91859182169063a9059cbb9060640161169a565b505050565b5f5f60205f8451602086015f885af1806117ae576040513d5f823e3d81fd5b50505f513d915081156117c55780600114156117d2565b6001600160a01b0384163b155b156116cc57604051635274afe760e01b81526001600160a01b03851660048201526024016102fc565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261184c848261188a565b6116cc576040516001600160a01b0384811660248301525f604483015261188091869182169063095ea7b39060640161169a565b6116cc848261178f565b5f5f5f5f60205f8651602088015f8a5af192503d91505f5190508280156118c9575081156118bb57806001146118c9565b5f866001600160a01b03163b115b9695505050505050565b6001600160a01b03811681146118e7575f5ffd5b50565b8035600281900b81146118fb575f5ffd5b919050565b5f5f5f60608486031215611912575f5ffd5b833561191d816118d3565b9250602084013561192d816118d3565b915061193b604085016118ea565b90509250925092565b5f60208284031215611954575f5ffd5b813561195f816118d3565b9392505050565b5f5f5f5f5f60a0868803121561197a575f5ffd5b8535611985816118d3565b94506020860135611995816118d3565b9350604086013592506060860135915060808601356119b3816118d3565b809150509295509295909350565b5f5f5f5f5f5f60c087890312156119d6575f5ffd5b86356119e1816118d3565b955060208701356119f1816118d3565b94506119ff604088016118ea565b9350606087013592506080870135915060a0870135611a1d816118d3565b809150509295509295509295565b803562ffffff811681146118fb575f5ffd5b5f5f5f5f5f5f60c08789031215611a52575f5ffd5b8635611a5d816118d3565b95506020870135611a6d816118d3565b94506119ff60408801611a2b565b5f5f60408385031215611a8c575f5ffd5b8235611a97816118d3565b91506020830135611aa7816118d3565b809150509250929050565b5f5f5f5f5f5f5f60e0888a031215611ac8575f5ffd5b8735611ad3816118d3565b96506020880135611ae3816118d3565b955060408801359450606088013593506080880135925060a0880135611b08816118d3565b96999598509396929591949193505060c09091013590565b5f5f5f60608486031215611b32575f5ffd5b8335611b3d816118d3565b92506020840135611b4d816118d3565b915061193b60408501611a2b565b5f5f5f5f5f5f5f5f610100898b031215611b73575f5ffd5b8835611b7e816118d3565b97506020890135611b8e816118d3565b965060408901359550606089013594506080890135935060a0890135925060c0890135611bba816118d3565b979a969950949793969295919450919260e001359150565b80516001600160701b03811681146118fb575f5ffd5b5f5f5f60608486031215611bfa575f5ffd5b611c0384611bd2565b9250611c1160208501611bd2565b9150604084015163ffffffff81168114611c29575f5ffd5b809150509250925092565b5f60208284031215611c44575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611cc35783516001600160a01b0316835260209384019390920191600101611c9c565b50506001600160a01b039590951660608401525050608001529392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610c4f57610c4f611ce3565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015191821690830152610100820190506080830151608083015260a083015160a083015260c083015160c083015260e0830151611d8060e08401826001600160a01b03169052565b5092915050565b5f60208284031215611d97575f5ffd5b815167ffffffffffffffff811115611dad575f5ffd5b8201601f81018413611dbd575f5ffd5b805167ffffffffffffffff811115611dd757611dd7611c4b565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611e0457611e04611c4b565b604052918252602081840181019290810187841115611e21575f5ffd5b6020850194505b83851015611e4457845180825260209586019590935001611e28565b509695505050505050565b5f60208284031215611e5f575f5ffd5b815161195f816118d3565b5f5f60408385031215611e7b575f5ffd5b505080516020909101519092909150565b5f5f5f60608486031215611e9e575f5ffd5b5050815160208301516040909301519094929350919050565b80820180821115610c4f57610c4f611ce356fea2646970667358221220fe14d6b231ccd643a3c9692bea39dc7ccaac5cb0c9ca82dc1d4231bde3e0c39f64736f6c634300081c00330000000000000000000000005baf7ffaf04c7afe1d22da65baf534f1a545833f00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000001b81d678ffb9c0263b24a97847620c99d213eb140000000000000000000000000000000000000000000000000000000000000000