0 txs
0 calls
constructor
No constructor.
functions
getAmountOut
viewfunction getAmountOut(address _fromToken, address _toToken, uint256 _amountIn) view returns (uint256 amountOut)
oracle
viewfunction oracle() view returns (address)
owner
viewfunction owner() view returns (address)
slippage
viewfunction slippage() view returns (uint256)
swapInfo
viewfunction swapInfo(address, address) view returns (address router, bytes data, uint256 amountIndex, uint256 minIndex, int8 minAmountSign)
initialize
nonpayablefunction initialize(address _oracle, uint256 _slippage)
renounceOwnership
nonpayablefunction renounceOwnership()
setOracle
nonpayablefunction setOracle(address _oracle)
setSlippage
nonpayablefunction setSlippage(uint256 _slippage)
setSwapInfo
nonpayablefunction setSwapInfo(address _fromToken, address _toToken, tuple _swapInfo)
setSwapInfos
nonpayablefunction setSwapInfos(address[] _fromTokens, address[] _toTokens, tuple[] _swapInfos)
swap
nonpayablefunction swap(address _fromToken, address _toToken, uint256 _amountIn, uint256 _minAmountOut) returns (uint256 amountOut)
swap
nonpayablefunction swap(address _fromToken, address _toToken, uint256 _amountIn) returns (uint256 amountOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetOracle
event SetOracle(address oracle)
SetSlippage
event SetSlippage(uint256 slippage)
SetSwapInfo
event SetSwapInfo(address indexed fromToken, address indexed toToken, (address router, bytes data, uint256 amountIndex, uint256 minIndex, int8 minAmountSign) swapInfo)
Swap
event Swap(address indexed caller, address indexed fromToken, address indexed toToken, uint256 amountIn, uint256 amountOut)
errors
NoSwapData
error NoSwapData(address fromToken, address toToken)
PriceFailed
error PriceFailed(address token)
SlippageExceeded
error SlippageExceeded(uint256 amountOut, uint256 minAmountOut)
SwapFailed
error SwapFailed(address router, bytes data)
creation bytecode
0x608060405234801561001057600080fd5b5061203f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b84ea7731161008c578063e0146c8e11610066578063e0146c8e146101c3578063f0fa55a9146101e7578063f2fde38b146101fa578063fe0291561461020d57600080fd5b8063b84ea7731461018a578063cd6dc6871461019d578063df791e50146101b057600080fd5b8063717c821b116100c8578063717c821b146101285780637adbf9731461013b5780637dc0d1d01461014e5780638da5cb5b1461017957600080fd5b80633e032a3b146100ef5780634aa066521461010b578063715018a61461011e575b600080fd5b6100f860675481565b6040519081526020015b60405180910390f35b6100f86101193660046116d7565b610220565b6101266103ec565b005b610126610136366004611764565b610400565b6101266101493660046117fe565b61059e565b606654610161906001600160a01b031681565b6040516001600160a01b039091168152602001610102565b6033546001600160a01b0316610161565b610126610198366004611822565b6105fb565b6101266101ab36600461188b565b610687565b6100f86101be3660046116d7565b6107bf565b6101d66101d13660046118b7565b6107e4565b604051610102959493929190611940565b6101266101f5366004611984565b6108b5565b6101266102083660046117fe565b61090d565b6100f861021b36600461199d565b610986565b6066546040516341976e0960e01b81526001600160a01b03858116600483015260009283928392909116906341976e0990602401602060405180830381865afa158015610271573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029591906119e3565b6066546040516341976e0960e01b81526001600160a01b038881166004830152909116906341976e0990602401602060405180830381865afa1580156102df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030391906119e3565b915091506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b91906119fc565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d191906119fc565b90506103e08685858585610994565b98975050505050505050565b6103f46109de565b6103fe6000610a38565b565b6104086109de565b8460005b818110156105945783838281811061042657610426611a1f565b90506020028101906104389190611a35565b606560008a8a8581811061044e5761044e611a1f565b905060200201602081019061046391906117fe565b6001600160a01b03166001600160a01b03168152602001908152602001600020600088888581811061049757610497611a1f565b90506020020160208101906104ac91906117fe565b6001600160a01b0316815260208101919091526040016000206104cf8282611bd0565b9050508585828181106104e4576104e4611a1f565b90506020020160208101906104f991906117fe565b6001600160a01b031688888381811061051457610514611a1f565b905060200201602081019061052991906117fe565b6001600160a01b03167f5f3b2610bbe37065dec3d702f3bec7a246a869b1fa28b632468981cda5b241a686868581811061056557610565611a1f565b90506020028101906105779190611a35565b6040516105849190611cbf565b60405180910390a360010161040c565b5050505050505050565b6105a66109de565b606680546001600160a01b0319166001600160a01b0383169081179091556040519081527fd3b5d1e0ffaeff528910f3663f0adace7694ab8241d58e17a91351ced2e08031906020015b60405180910390a150565b6106036109de565b6001600160a01b03808416600090815260656020908152604080832093861683529290522081906106348282611bd0565b905050816001600160a01b0316836001600160a01b03167f5f3b2610bbe37065dec3d702f3bec7a246a869b1fa28b632468981cda5b241a68360405161067a9190611cbf565b60405180910390a3505050565b600054610100900460ff16158080156106a75750600054600160ff909116105b806106c15750303b1580156106c1575060005460ff166001145b6107295760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561074c576000805461ff0019166101001790555b610754610a8a565b606680546001600160a01b0319166001600160a01b038516179055606782905580156107ba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000806107cd858585610ab9565b90506107db85858584610bd7565b95945050505050565b6065602090815260009283526040808420909152908252902080546001820180546001600160a01b03909216929161081b90611a6b565b80601f016020809104026020016040519081016040528092919081815260200182805461084790611a6b565b80156108945780601f1061086957610100808354040283529160200191610894565b820191906000526020600020905b81548152906001019060200180831161087757829003601f168201915b50505050600283015460038401546004909401549293909290915060000b85565b6108bd6109de565b670de0b6b3a76400008111156108d85750670de0b6b3a76400005b60678190556040518181527f3facf1379d243c7dca4557da77e575797c040ac0b1bc8ea70d997b452fcf8af3906020016105f0565b6109156109de565b6001600160a01b03811661097a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610720565b61098381610a38565b50565b60006107db85858585610bd7565b60006109a183600a611e65565b6109ab9085611e74565b6109b683600a611e65565b6109c09087611e74565b6109ca9088611e74565b6109d49190611e8b565b9695505050505050565b6033546001600160a01b031633146103fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610720565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ab15760405162461bcd60e51b815260040161072090611ead565b6103fe610cf6565b6000806000610ac88686610d26565b915091506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906119fc565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9691906119fc565b90506000670de0b6b3a764000060675488610bb19190611e74565b610bbb9190611e8b565b9050610bca8186868686610994565b9998505050505050505050565b6000610bee6001600160a01b038616333086610e6f565b610bfa85858585610ee0565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6291906119e3565b905081811015610c8f576040516371c4efed60e01b81526004810182905260248101839052604401610720565b610ca36001600160a01b038516338361115e565b60408051848152602081018390526001600160a01b03808716929088169133917fcd3829a3813dc3cdd188fd3d01dcf3268c16be2fdd2dd21d0665418816e46062910160405180910390a4949350505050565b600054610100900460ff16610d1d5760405162461bcd60e51b815260040161072090611ead565b6103fe33610a38565b60665460405163baeb325b60e01b81526001600160a01b038481166004830152600092839283929091169063baeb325b9060240160408051808303816000875af1158015610d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9c9190611f08565b909350905080610dca576040516310c0e38560e21b81526001600160a01b0386166004820152602401610720565b60665460405163baeb325b60e01b81526001600160a01b0386811660048301529091169063baeb325b9060240160408051808303816000875af1158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e399190611f08565b909250905080610e67576040516310c0e38560e21b81526001600160a01b0385166004820152602401610720565b509250929050565b6040516001600160a01b0380851660248301528316604482015260648101829052610eda9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261118e565b50505050565b6001600160a01b03808516600090815260656020908152604080832087851684528252808320815160a0810190925280549094168152600184018054939491939192840191610f2e90611a6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5a90611a6b565b8015610fa75780601f10610f7c57610100808354040283529160200191610fa7565b820191906000526020600020905b815481529060010190602001808311610f8a57829003601f168201915b5050509183525050600282015460208201526003820154604082015260049091015460000b60609091015280519091506001600160a01b0381166110115760405163661af8a960e11b81526001600160a01b03808816600483015286166024820152604401610720565b60008260200151905061104a8184604001518760405160200161103691815260200190565b604051602081830303815290604052611263565b9050600080846080015160000b121561108c5761106685611f34565b60405160200161107891815260200190565b6040516020818303038152906040526110a8565b6040805160208101879052016040516020818303038152906040525b90506110b982856060015183611263565b91506110d16001600160a01b038916846000196112e9565b6000836001600160a01b0316836040516110eb9190611f50565b6000604051808303816000865af19150503d8060008114611128576040519150601f19603f3d011682016040523d82523d6000602084013e61112d565b606091505b5050905080611153578383604051630de816ad60e31b8152600401610720929190611f62565b505050505050505050565b6040516001600160a01b0383166024820152604481018290526107ba90849063a9059cbb60e01b90606401610ea3565b60006111e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113789092919063ffffffff16565b90508051600014806112045750808060200190518101906112049190611f86565b6107ba5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610720565b60606112718460008561138f565b82604051602001611283929190611fa1565b60408051601f198184030181529190526112c06112a1856020611fd0565b6112ac866020611fd0565b87516112b89190611fe3565b87919061138f565b6040516020016112d1929190611fa1565b60405160208183030381529060405290509392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261133a848261149c565b610eda576040516001600160a01b03841660248201526000604482015261136e90859063095ea7b360e01b90606401610ea3565b610eda848261118e565b60606113878484600085611545565b949350505050565b60608161139d81601f611fd0565b10156113dc5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610720565b6113e68284611fd0565b8451101561142a5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610720565b6060821580156114495760405191506000825260208201604052611493565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561148257805183526020928301920161146a565b5050858452601f01601f1916604052505b50949350505050565b6000806000846001600160a01b0316846040516114b99190611f50565b6000604051808303816000865af19150503d80600081146114f6576040519150601f19603f3d011682016040523d82523d6000602084013e6114fb565b606091505b50915091508180156115255750805115806115255750808060200190518101906115259190611f86565b801561153a57506001600160a01b0385163b15155b925050505b92915050565b6060824710156115a65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610720565b600080866001600160a01b031685876040516115c29190611f50565b60006040518083038185875af1925050503d80600081146115ff576040519150601f19603f3d011682016040523d82523d6000602084013e611604565b606091505b509150915061161587838387611620565b979650505050505050565b6060831561168f578251600003611688576001600160a01b0385163b6116885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610720565b5081611387565b61138783838151156116a45781518083602001fd5b8060405162461bcd60e51b81526004016107209190611ff6565b5050565b6001600160a01b038116811461098357600080fd5b6000806000606084860312156116ec57600080fd5b83356116f7816116c2565b92506020840135611707816116c2565b929592945050506040919091013590565b60008083601f84011261172a57600080fd5b50813567ffffffffffffffff81111561174257600080fd5b6020830191508360208260051b850101111561175d57600080fd5b9250929050565b6000806000806000806060878903121561177d57600080fd5b863567ffffffffffffffff8082111561179557600080fd5b6117a18a838b01611718565b909850965060208901359150808211156117ba57600080fd5b6117c68a838b01611718565b909650945060408901359150808211156117df57600080fd5b506117ec89828a01611718565b979a9699509497509295939492505050565b60006020828403121561181057600080fd5b813561181b816116c2565b9392505050565b60008060006060848603121561183757600080fd5b8335611842816116c2565b92506020840135611852816116c2565b9150604084013567ffffffffffffffff81111561186e57600080fd5b840160a0818703121561188057600080fd5b809150509250925092565b6000806040838503121561189e57600080fd5b82356118a9816116c2565b946020939093013593505050565b600080604083850312156118ca57600080fd5b82356118d5816116c2565b915060208301356118e5816116c2565b809150509250929050565b60005b8381101561190b5781810151838201526020016118f3565b50506000910152565b6000815180845261192c8160208601602086016118f0565b601f01601f19169290920160200192915050565b6001600160a01b038616815260a06020820181905260009061196490830187611914565b604083019590955250606081019290925260000b60809091015292915050565b60006020828403121561199657600080fd5b5035919050565b600080600080608085870312156119b357600080fd5b84356119be816116c2565b935060208501356119ce816116c2565b93969395505050506040820135916060013590565b6000602082840312156119f557600080fd5b5051919050565b600060208284031215611a0e57600080fd5b815160ff8116811461181b57600080fd5b634e487b7160e01b600052603260045260246000fd5b60008235609e19833603018112611a4b57600080fd5b9190910192915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680611a7f57607f821691505b602082108103611a9f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156107ba57600081815260208120601f850160051c81016020861015611acc5750805b601f850160051c820191505b81811015611aeb57828155600101611ad8565b505050505050565b67ffffffffffffffff831115611b0b57611b0b611a55565b611b1f83611b198354611a6b565b83611aa5565b6000601f841160018114611b535760008515611b3b5750838201355b600019600387901b1c1916600186901b178355611bad565b600083815260209020601f19861690835b82811015611b845786850135825560209485019460019092019101611b64565b5086821015611ba15760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8060000b811461098357600080fd5b6000813561153f81611bb4565b8135611bdb816116c2565b81546001600160a01b0319166001600160a01b0391909116178155602082013536839003601e19018112611c0e57600080fd5b8201803567ffffffffffffffff811115611c2757600080fd5b602082019150803603821315611c3c57600080fd5b611c4a818360018601611af3565b505060408201356002820155606082013560038201556116be611c6f60808401611bc3565b6004830160ff198154168260ff1681178255505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8035611cba81611bb4565b919050565b6020815260008235611cd0816116c2565b6001600160a01b031660208381019190915283013536849003601e19018112611cf857600080fd5b830160208101903567ffffffffffffffff811115611d1557600080fd5b803603821315611d2457600080fd5b60a06040850152611d3960c085018284611c86565b9150506040840135606084015260608401356080840152611d5c60808501611caf565b611d6b60a085018260000b9052565b509392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610e67578160001904821115611daa57611daa611d73565b80851615611db757918102915b93841c9390800290611d8e565b600082611dd35750600161153f565b81611de05750600061153f565b8160018114611df65760028114611e0057611e1c565b600191505061153f565b60ff841115611e1157611e11611d73565b50506001821b61153f565b5060208310610133831016604e8410600b8410161715611e3f575081810a61153f565b611e498383611d89565b8060001904821115611e5d57611e5d611d73565b029392505050565b600061181b60ff841683611dc4565b808202811582820484141761153f5761153f611d73565b600082611ea857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b80518015158114611cba57600080fd5b60008060408385031215611f1b57600080fd5b82519150611f2b60208401611ef8565b90509250929050565b6000600160ff1b8201611f4957611f49611d73565b5060000390565b60008251611a4b8184602087016118f0565b6001600160a01b038316815260406020820181905260009061138790830184611914565b600060208284031215611f9857600080fd5b61181b82611ef8565b60008351611fb38184602088016118f0565b835190830190611fc78183602088016118f0565b01949350505050565b8082018082111561153f5761153f611d73565b8181038181111561153f5761153f611d73565b60208152600061181b602083018461191456fea26469706673582212203fe4f06a8cc64731ae14a58edb608278d55a4f22bd286919ecd3683f9a2c1e5664736f6c63430008130033