0 txs
1 call
constructor
constructor(address tStoracle_)
functions
FEE_SCALE
viewfunction FEE_SCALE() view returns (uint256)
MAX_FEE_PERCENT
viewfunction MAX_FEE_PERCENT() view returns (uint256)
tStoracle
viewfunction tStoracle() view returns (address)
swap
nonpayablefunction swap(address sellToken, address buyToken, uint256 sellAmount, uint256 minBuyAmount, uint256 feeAmount, address feeRecipient) returns (uint256)
events
SwapExecuted
event SwapExecuted(address indexed sender, address indexed sellToken, address indexed buyToken, uint256 sellAmount, uint256 buyAmount, address feeToken, address feeRecipient, uint256 feeAmount, address swapContract, string swapSource)
errors
FeeTooHigh
error FeeTooHigh(uint256 fee, uint256 maxFee)
InvalidFeeRecipient
error InvalidFeeRecipient()
SwapFailed
error SwapFailed(bytes returnData)
TooMuchSlippage
error TooMuchSlippage(uint256 expected, uint256 actual)
creation bytecode
0x60a06040523461003e57610019610014610103565b610124565b610021610043565b61180661012a823960805181818160810152610b21015261180690f35b610049565b60405190565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906100759061004d565b810190811060018060401b0382111761008d57604052565b610057565b906100a561009e610043565b928361006b565b565b5f80fd5b60018060a01b031690565b6100bf906100ab565b90565b6100cb816100b6565b036100d257565b5f80fd5b905051906100e3826100c2565b565b906020828203126100fe576100fb915f016100d6565b90565b6100a7565b6101216119308038038061011681610092565b9283398101906100e5565b90565b60805256fe60806040526004361015610013575b610316565b61001d5f3561005c565b80635906218f1461005757806367d81740146100525780636a33d28e1461004d57638a5fddd80361000e576102e1565b610267565b610184565b6100ea565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f91031261007a57565b61006c565b7f000000000000000000000000000000000000000000000000000000000000000090565b73ffffffffffffffffffffffffffffffffffffffff1690565b6100c5906100a3565b90565b6100d1906100bc565b9052565b91906100e8905f602085019401906100c8565b565b3461011a576100fa366004610070565b61011661010561007f565b61010d610062565b918291826100d5565b0390f35b610068565b90565b90565b90565b61013c6101376101419261011f565b610125565b610122565b90565b610154662386f26fc10000610128565b90565b61015f610144565b90565b61016b90610122565b9052565b9190610182905f60208501940190610162565b565b346101b457610194366004610070565b6101b061019f610157565b6101a7610062565b9182918261016f565b0390f35b610068565b5f80fd5b6101c6816100bc565b036101cd57565b5f80fd5b905035906101de826101bd565b565b6101e981610122565b036101f057565b5f80fd5b90503590610201826101e0565b565b909160c0828403126102625761021b835f84016101d1565b9261022981602085016101d1565b9261023782604083016101f4565b9261025f61024884606085016101f4565b9361025681608086016101f4565b9360a0016101d1565b90565b61006c565b3461029e5761029a61028961027d366004610203565b94939093929192610a14565b610291610062565b9182918261016f565b0390f35b610068565b90565b6102ba6102b56102bf926102a3565b610125565b610122565b90565b6102d3670de0b6b3a76400006102a6565b90565b6102de6102c2565b90565b34610311576102f1366004610070565b61030d6102fc6102d6565b610304610062565b9182918261016f565b0390f35b610068565b5f80fd5b5f90565b90565b61033561033061033a9261031e565b610125565b610122565b90565b61035161034c6103569261031e565b610125565b6100a3565b90565b6103629061033d565b90565b5f0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6103a66103ac91939293610122565b92610122565b916103b8838202610122565b9281840414901517156103c757565b61036a565b6103db6103e191939293610122565b92610122565b82018092116103ec57565b61036a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b61042a61043091610122565b91610122565b90811561043b570490565b6103f1565b91602061046192949361045a60408201965f830190610162565b0190610162565b565b61047761047261047c926100a3565b610125565b6100a3565b90565b61048890610463565b90565b6104949061047f565b90565b6104a090610463565b90565b6104ac90610497565b90565b6104b890610497565b90565b601f801991011690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b906104fc906104bb565b810190811067ffffffffffffffff82111761051657604052565b6104c5565b60e01b90565b9050519061052e826101e0565b565b9060208282031261054957610546915f01610521565b90565b61006c565b610556610062565b3d5f823e3d90fd5b61056790610463565b90565b6105739061055e565b90565b61057f90610497565b90565b5f1c90565b61059b6105966105a092610122565b610125565b610122565b90565b6105af6105b491610582565b610587565b90565b90565b6105ce6105c96105d3926105b7565b610125565b610122565b90565b6105e56105eb91939293610122565b92610122565b82039182116105f657565b61036a565b90565b5f1b90565b61061761061261061c92610122565b6105fe565b6105fb565b90565b61066361065e61064e7f501b72e2db3b6f3e5b006bf9a07841fb93dafd5dfae834a6669a424f7d7383c06105a3565b61065860016105ba565b906105d6565b610603565b90565b90565b61067561067a916105fb565b610666565b9052565b61068a81602093610669565b0190565b5f80fd5b5f80fd5b906106a96106a2610062565b92836104f2565b565b67ffffffffffffffff81116106c9576106c56020916104bb565b0190565b6104c5565b90825f9392825e0152565b909291926106ee6106e9826106ab565b610696565b9381855260208501908284011161070a57610708926106ce565b565b610692565b9080601f8301121561072d5781602061072a935191016106d9565b90565b61068e565b90602082820312610762575f82015167ffffffffffffffff811161075d5761075a920161070f565b90565b6101b9565b61006c565b5190565b60209181520190565b61079361079c6020936107a19361078a81610767565b9384809361076b565b958691016106ce565b6104bb565b0190565b6107ba9160208201915f818403910152610774565b90565b5f80fd5b5f80fd5b905051906107d2826101bd565b565b67ffffffffffffffff81116107f2576107ee6020916104bb565b0190565b6104c5565b9092919261080c610807826107d4565b610696565b9381855260208501908284011161082857610826926106ce565b565b610692565b9080601f8301121561084b57816020610848935191016107f7565b90565b61068e565b9190916060818403126108cc576108676060610696565b92610874815f84016107c5565b5f850152602082015167ffffffffffffffff81116108c7578161089891840161070f565b6020850152604082015167ffffffffffffffff81116108c2576108bb920161082d565b6040830152565b6107c1565b6107c1565b6107bd565b90602082820312610901575f82015167ffffffffffffffff81116108fc576108f99201610850565b90565b6101b9565b61006c565b61091090516100bc565b90565b90610925610920836106ab565b610696565b918252565b606090565b3d5f1461094a5761093f3d610913565b903d5f602084013e5b565b61095261092a565b90610948565b151590565b61096690610497565b90565b5190565b60209181520190565b61099561099e6020936109a39361098c81610969565b9384809361096d565b958691016106ce565b6104bb565b0190565b93946109f0610a1198966109e6610a04966109dc6109fa969b976109d260e08c019d5f8d0190610162565b60208b0190610162565b60408901906100c8565b60608701906100c8565b6080850190610162565b60a08301906100c8565b60c0818403910152610976565b90565b909493919294610a2261031a565b5082610a36610a305f610321565b91610122565b11610f8d575b610a5a610a488361048b565b33610a52306104a3565b9087926110e9565b610aa26020610a70610a6b8561048b565b6104af565b6370a0823190610a97610a82306104a3565b92610a8b610062565b9586948593849361051b565b8352600483016100d5565b03915afa908115610f88575f91610f5a575b5093610afe6020610acc610ac78561048b565b6104af565b6370a0823190610af3610ade306104a3565b92610ae7610062565b9586948593849361051b565b8352600483016100d5565b03915afa908115610f55575f91610f27575b5094610b9f5f610b71610b4a610b457f000000000000000000000000000000000000000000000000000000000000000061056a565b610576565b610b9463d6d7d525610b80610b5d61061f565b610b65610062565b9586916020830161067e565b602082018103825203856104f2565b610b88610062565b9586948593849361051b565b8352600483016107a5565b03915afa908115610f2257610bed91610bd0915f91610f00575b506020610bc582610767565b8183010191016108d1565b92610bda8661048b565b90610be65f8601610906565b90916111ad565b5f80610bfa818501610906565b602085015182602082019151925af1610c1b610c1461092f565b9115610958565b610ec15750610c686020610c36610c318761048b565b6104af565b6370a0823190610c5d610c48306104a3565b92610c51610062565b9586948593849361051b565b8352600483016100d5565b03915afa8015610ebc57610ccd92610c87925f92610e8c575b506105d6565b956020610c9b610c968661048b565b6104af565b6370a0823190610cc2610cad306104a3565b92610cb6610062565b9687948593849361051b565b8352600483016100d5565b03915afa908115610e8757610cea925f92610e57575b50906105d6565b968785610cff610cf95f610321565b91610122565b11610e2f575b5087610d19610d1383610122565b91610122565b10610df65750610d45610d2b8461048b565b610d365f8401610906565b610d3f5f610321565b916111ad565b610d59610d518361048b565b338991611267565b610de0339394839692899482610d77610d715f610321565b91610122565b115f14610de657985b916040610d8e5f8401610906565b92015192610dce610dc8610dc27f7ccce292b8c7c965a3369f48f69a25a8d7a06dfdfabe59d93b55e8f1cb71ef7a9a61095d565b9a61095d565b9a61095d565b9a610dd7610062565b978897886109a7565b0390a490565b50610df05f610359565b98610d80565b8790610e2b5f9283927f42e0f17d00000000000000000000000000000000000000000000000000000000845260048401610440565b0390fd5b610e3c91985085906105d6565b96610e51610e498461048b565b888791611267565b5f610d05565b610e7991925060203d8111610e80575b610e7181836104f2565b810190610530565b905f610ce3565b503d610e67565b61054e565b610eae91925060203d8111610eb5575b610ea681836104f2565b810190610530565b905f610c81565b503d610e9c565b61054e565b610efc90610ecd610062565b9182917fff9fa595000000000000000000000000000000000000000000000000000000008352600483016107a5565b0390fd5b610f1c91503d805f833e610f1481836104f2565b810190610732565b5f610bb9565b61054e565b610f48915060203d8111610f4e575b610f4081836104f2565b810190610530565b5f610b10565b503d610f36565b61054e565b610f7b915060203d8111610f81575b610f7381836104f2565b810190610530565b5f610ab4565b503d610f69565b61054e565b84610fa8610fa2610f9d5f610359565b6100bc565b916100bc565b1461103857610fd3610fc284610fbc6102c2565b90610397565b610fcd8886906103cc565b9061041e565b80610fed610fe7610fe2610144565b610122565b91610122565b11610ff85750610a3c565b611000610144565b906110345f9283927fe757126a00000000000000000000000000000000000000000000000000000000845260048401610440565b0390fd5b5f7f768dc5980000000000000000000000000000000000000000000000000000000081528061106960048201610365565b0390fd5b63ffffffff1690565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b6110af6110aa6110b49261106d565b61051b565b611076565b90565b6040906110e06110e794969593966110d660608401985f8501906100c8565b60208301906100c8565b0190610162565b565b611136939161112260049461113193946111066323b872dd61109b565b93919091611112610062565b97889560208701908152016110b7565b602082018103825203836104f2565b611417565b565b91602061115992949361115260408201965f8301906100c8565b0190610162565b565b60ff1690565b61117561117061117a9261031e565b610125565b61115b565b90565b61118690611161565b9052565b9160206111ab9294936111a460408201965f8301906100c8565b019061117d565b565b90916111ee6004916111df6111c563095ea7b361109b565b91866111cf610062565b9586946020860190815201611138565b602082018103825203826104f2565b906112036111fd828490611487565b15610958565b61120d575b505050565b61125a600461125f94611255849161124661122b63095ea7b361109b565b915f90611236610062565b968794602086019081520161118a565b602082018103825203836104f2565b611417565b611417565b5f8080611208565b916112ab60049261129c6112b0959361128363a9059cbb61109b565b9261128c610062565b9687946020860190815201611138565b602082018103825203836104f2565b611417565b565b906112c46112bf836107d4565b610696565b918252565b5f7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564910152565b6112fa60206112b2565b90611307602083016112c9565b565b6113116112f0565b90565b61131d81610958565b0361132457565b5f80fd5b9050519061133582611314565b565b906020828203126113505761134d915f01611328565b90565b61006c565b60207f6f74207375636365656400000000000000000000000000000000000000000000917f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201520152565b6113af602a60409261096d565b6113b881611355565b0190565b6113d19060208101905f8183039101526113a2565b90565b156113db57565b6113e3610062565b7f08c379a000000000000000000000000000000000000000000000000000000000815280611413600482016113bc565b0390fd5b61146091611427611436926104af565b90611430611309565b91611529565b61143f81610767565b61145161144b5f610321565b91610122565b14908115611462575b506113d4565b565b61147d9150602061147282610767565b818301019101611337565b5f61145a565b5f90565b905f8091611493611483565b5061149d846104af565b9082602082019151925af16114b061092f565b816114db575b5090816114c2575b5090565b6114d591506114d0906104af565b61154b565b5f6114be565b90506114e681610767565b6114f86114f25f610321565b91610122565b14908115611508575b505f6114b6565b6115239150602061151882610767565b818301019101611337565b5f611501565b90611548929161153761092a565b50906115425f610321565b91611639565b90565b611553611483565b503b6115676115615f610321565b91610122565b1190565b61157490610497565b90565b60207f722063616c6c0000000000000000000000000000000000000000000000000000917f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201520152565b6115d1602660409261096d565b6115da81611577565b0190565b6115f39060208101905f8183039101526115c4565b90565b156115fd57565b611605610062565b7f08c379a000000000000000000000000000000000000000000000000000000000815280611635600482016115de565b0390fd5b915f809161168f959361164a61092a565b506116716116573061156b565b3161166a61166485610122565b91610122565b10156115f6565b8591602082019151925af19161168561092f565b909290919261172e565b90565b5f7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000910152565b6116c6601d60209261096d565b6116cf81611692565b0190565b6116e89060208101905f8183039101526116b9565b90565b156116f257565b6116fa610062565b7f08c379a00000000000000000000000000000000000000000000000000000000081528061172a600482016116d3565b0390fd5b91929061173961092a565b505f1461177d575061174a82610767565b61175c6117565f610321565b91610122565b14611766575b5090565b6117726117779161154b565b6116eb565b5f611762565b8261179b565b6117989160208201915f818403910152610976565b90565b906117a582610767565b6117b76117b15f610321565b91610122565b115f146117c75750805190602001fd5b611802906117d3610062565b9182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301611783565b0390fd0000000000000000000000003e2bc9f12ae600951a68cc167c7a1268e9551528