1 tx
23 calls
constructor
constructor(address _gradientRegistry)
functions
activeDEXes
viewfunction activeDEXes(uint256) view returns (address)
dexes
viewfunction dexes(address) view returns (address router, address factory, bool isActive, uint256 priority)
dexIndex
viewfunction dexIndex(address) view returns (uint256)
getActiveDEXes
viewfunction getActiveDEXes() view returns (address[])
getDEXConfig
viewfunction getDEXConfig(address dex) view returns (tuple)
gradientRegistry
viewfunction gradientRegistry() view returns (address)
MAX_DEADLINE
viewfunction MAX_DEADLINE() view returns (uint256)
maxDEXs
viewfunction maxDEXs() view returns (uint256)
minLiquidityThreshold
viewfunction minLiquidityThreshold() view returns (uint256)
owner
viewfunction owner() view returns (address)
addDEX
nonpayablefunction addDEX(address dex, address router, uint256 priority)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address[] tokens)
emergencyWithdrawETH
nonpayablefunction emergencyWithdrawETH()
executeTrade
payablefunction executeTrade(address token, uint256 amount, uint256 minAmountOut, bool isBuy) payable returns (uint256 amountOut)
removeDEX
nonpayablefunction removeDEX(address dex)
renounceOwnership
nonpayablefunction renounceOwnership()
setMinLiquidityThreshold
nonpayablefunction setMinLiquidityThreshold(uint256 newThreshold)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DEXAdded
event DEXAdded(address indexed dex, address router, address factory)
DEXRemoved
event DEXRemoved(address indexed dex)
MinLiquidityThresholdUpdated
event MinLiquidityThresholdUpdated(uint256 oldThreshold, uint256 newThreshold)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TradeExecuted
event TradeExecuted(address indexed token, address indexed dex, uint256 amountIn, uint256 amountOut, bool isBuy)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a060405260058055678ac7230489e8000060065534801561002057600080fd5b5060405161227138038061227183398101604081905261003f916100d7565b6001600055338061006a57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61007381610085565b506001600160a01b0316608052610107565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156100e957600080fd5b81516001600160a01b038116811461010057600080fd5b9392505050565b60805161214161013060003960008181610316015281816109630152610b5901526121416000f3fe60806040526004361061010c5760003560e01c8063830562bc11610095578063a7ca71ca11610064578063a7ca71ca1461038b578063af2c1ca514610411578063b5e69fe814610427578063e050bee514610449578063f2fde38b1461046957600080fd5b8063830562bc1461030457806384536017146103385780638c8f3f821461034d5780638da5cb5b1461036d57600080fd5b80634f54d1ce116100dc5780634f54d1ce146102615780634fc657511461028e5780636f0e530f146102c6578063715018a6146102dc578063815a1a0d146102f157600080fd5b8062800b1f1461011857806301c1dfba14610141578063187bc85c1461016357806321bf76621461018357600080fd5b3661011357005b600080fd5b34801561012457600080fd5b5061012e60055481565b6040519081526020015b60405180910390f35b34801561014d57600080fd5b5061016161015c366004611d6a565b610489565b005b34801561016f57600080fd5b5061016161017e366004611df6565b61063a565b34801561018f57600080fd5b5061021e61019e366004611e37565b604080516080810182526000808252602082018190529181018290526060810191909152506001600160a01b039081166000908152600260208181526040928390208351608081018552815486168152600182015495861692810192909252600160a01b90940460ff161515928101929092529190910154606082015290565b604051610138919081516001600160a01b039081168252602080840151909116908201526040808301511515908201526060918201519181019190915260800190565b34801561026d57600080fd5b5061012e61027c366004611e37565b60046020526000908152604090205481565b34801561029a57600080fd5b506102ae6102a9366004611e54565b610921565b6040516001600160a01b039091168152602001610138565b3480156102d257600080fd5b5061012e61012c81565b3480156102e857600080fd5b5061016161094b565b61012e6102ff366004611e7b565b61095f565b34801561031057600080fd5b506102ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561034457600080fd5b5061016161125d565b34801561035957600080fd5b50610161610368366004611e37565b61131d565b34801561037957600080fd5b506001546001600160a01b03166102ae565b34801561039757600080fd5b506103e06103a6366004611e37565b60026020819052600091825260409091208054600182015491909201546001600160a01b0392831692821691600160a01b900460ff169084565b604080516001600160a01b039586168152949093166020850152901515918301919091526060820152608001610138565b34801561041d57600080fd5b5061012e60065481565b34801561043357600080fd5b5061043c6114c2565b6040516101389190611f0a565b34801561045557600080fd5b50610161610464366004611e54565b611524565b34801561047557600080fd5b50610161610484366004611e37565b61160f565b61049161164a565b47801561054b5760006104ac6001546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146104f6576040519150601f19603f3d011682016040523d82523d6000602084013e6104fb565b606091505b50509050806105495760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b60448201526064015b60405180910390fd5b505b60005b8281101561063457600084848381811061056a5761056a611f1d565b905060200201602081019061057f9190611e37565b90506001600160a01b0381161561062b576040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156105d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fb9190611f33565b90508015610629576106296106186001546001600160a01b031690565b6001600160a01b0384169083611677565b505b5060010161054e565b50505050565b61064261164a565b600554600354106106885760405162461bcd60e51b815260206004820152601060248201526f13585e081111561cc81c995858da195960821b6044820152606401610540565b6001600160a01b0383166106cc5760405162461bcd60e51b815260206004820152600b60248201526a092dcecc2d8d2c840888ab60ab1b6044820152606401610540565b6001600160a01b0382166107135760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b2103937baba32b960911b6044820152606401610540565b6001600160a01b038316600090815260026020526040902060010154600160a01b900460ff161561077b5760405162461bcd60e51b815260206004820152601260248201527144455820616c72656164792065786973747360701b6044820152606401610540565b6000826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190611f4c565b604080516080810182526001600160a01b03808716825280841660208084019182526001848601818152606086018a81528c86166000818152600295869052988920975188549088166001600160a01b03199182161789559551888501805494511515600160a01b026001600160a81b031990951691909816179290921790955593519490910193909355600380548085018255948190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9094018054909116909117905590549192506108b391611f7f565b6001600160a01b0385166000908152600460205260409020556108d46116db565b604080516001600160a01b03858116825283811660208301528616917f2161d26dd2e031506bee289a523abc3337bfa101a08626541f6978f76048eac7910160405180910390a250505050565b6003818154811061093157600080fd5b6000918252602090912001546001600160a01b0316905081565b61095361164a565b61095d6000611878565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c18b1d5e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190611f4c565b6001600160a01b0316336001600160a01b031614610a555760405162461bcd60e51b815260206004820152602960248201527f46616c6c6261636b4578656375746f723a204f6e6c79206f72646572626f6f6b6044820152680818d85b8818d85b1b60ba1b6064820152608401610540565b610a5d6118ca565b6001600160a01b038516610aa35760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610540565b60008411610af35760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610540565b60008311610b3a5760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081b5a5b905b5bdd5b9d13dd5d60621b6044820152606401610540565b604051630736b32b60e31b81526001600160a01b0386811660048301527f000000000000000000000000000000000000000000000000000000000000000016906339b5995890602401602060405180830381865afa158015610ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc49190611f98565b15610c045760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881a5cc8189b1bd8dad95960821b6044820152606401610540565b8115610c665783341015610c665760405162461bcd60e51b815260206004820152602360248201527f496e73756666696369656e74204554482073656e7420666f7220627579206f726044820152623232b960e91b6064820152608401610540565b6000610c738686856118f4565b90506001600160a01b038116610cc35760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd5a5d18589b194811115608199bdd5b99605a1b6044820152606401610540565b6001600160a01b038181166000908152600260208190526040808320805482518481526060810190935290941692918160200160208202803683370190505090508515610dd857816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611f4c565b81600081518110610d7f57610d7f611f1d565b60200260200101906001600160a01b031690816001600160a01b0316815250508881600181518110610db357610db3611f1d565b60200260200101906001600160a01b031690816001600160a01b031681525050610ea2565b8881600081518110610dec57610dec611f1d565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6e9190611f4c565b81600181518110610e8157610e81611f1d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8515611055576040516370a0823160e01b81523360048201526000906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190611f33565b90506001600160a01b03831663b6f9de958a8a8533610f3461012c42611fb5565b6040518663ffffffff1660e01b8152600401610f539493929190611fc8565b6000604051808303818588803b158015610f6c57600080fd5b505af1158015610f80573d6000803e3d6000fd5b50506040516370a0823160e01b8152336004820152600093506001600160a01b038e1692506370a082319150602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff09190611f33565b9050610ffc8282611f7f565b96508887101561104e5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206f757470757420616d6f756e740000000000006044820152606401610540565b50506111e5565b4761106b6001600160a01b038b1633308c61195e565b8354611082908b906001600160a01b03168b611997565b6001600160a01b03831663791ac9478a8a85306110a161012c42611fb5565b6040518663ffffffff1660e01b81526004016110c1959493929190611ffd565b600060405180830381600087803b1580156110db57600080fd5b505af11580156110ef573d6000803e3d6000fd5b50479250611101915083905082611f7f565b9650888710156111535760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206f757470757420616d6f756e740000000000006044820152606401610540565b604051600090339089908381818185875af1925050503d8060008114611195576040519150601f19603f3d011682016040523d82523d6000602084013e61119a565b606091505b50509050806111e15760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610540565b5050505b836001600160a01b0316896001600160a01b03167fa5f8a4ef50801e7d44113fd9c467aec2fa7583dc5344619557ae4fcd77bd043f8a888a60405161123f9392919092835260208301919091521515604082015260600190565b60405180910390a3505050506112556001600055565b949350505050565b61126561164a565b47801561131a5760006112806001546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146112ca576040519150601f19603f3d011682016040523d82523d6000602084013e6112cf565b606091505b50509050806113185760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b6044820152606401610540565b505b50565b61132561164a565b6001600160a01b038116600090815260026020526040902060010154600160a01b900460ff166113875760405162461bcd60e51b815260206004820152600d60248201526c111156081b9bdd08199bdd5b99609a1b6044820152606401610540565b60035460009061139990600190611f7f565b90506000600382815481106113b0576113b0611f1d565b60009182526020808320909101546001600160a01b03868116845260049092526040909220546003805492909316935083929181106113f1576113f1611f1d565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558583168252600490526040808220549284168252902055600380548061144157611441612039565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0385168083526004825260408084208490556002909252818320600101805460ff60a01b19169055905190917f1921ba6698157d491d41801286e9e17aee1c25965119e55403ba396b104b95db91a2505050565b6060600380548060200260200160405190810160405280929190818152602001828054801561151a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114fc575b5050505050905090565b61152c61164a565b6000811161157c5760405162461bcd60e51b815260206004820181905260248201527f5468726573686f6c64206d7573742062652067726561746572207468616e20306044820152606401610540565b683635c9adc5dea000008111156115ca5760405162461bcd60e51b81526020600482015260126024820152710a8d0e4cae6d0ded8c840e8dede40d0d2ced60731b6044820152606401610540565b600680549082905560408051828152602081018490527f4c9c64aa20b7602b4c92bb9602dda2cbcb5412afe6e30903f767f8dd3aa407da910160405180910390a15050565b61161761164a565b6001600160a01b03811661164157604051631e4fbdf760e01b815260006004820152602401610540565b61131a81611878565b6001546001600160a01b0316331461095d5760405163118cdaa760e01b8152336004820152602401610540565b6040516001600160a01b038381166024830152604482018390526116d691859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611a7e565b505050565b60015b60035481101561131a576000600382815481106116fd576116fd611f1d565b60009182526020808320909101546001600160a01b031680835260029182905260409092200154909150825b600081118015611780575081600260006003611746600186611f7f565b8154811061175657611756611f1d565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b1561181f5760006003611794600184611f7f565b815481106117a4576117a4611f1d565b600091825260209091200154600380546001600160a01b0390921692508291849081106117d3576117d3611f1d565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600490915260409020829055816118168161204f565b92505050611729565b826003828154811061183357611833611f1d565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559490911681526004909352604090922091909155506001016116de565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002600054036118ed57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6000805b6003548110156119515760006003828154811061191757611917611f1d565b6000918252602090912001546001600160a01b0316905061193a81878787611aef565b156119485791506119579050565b506001016118f8565b50600090505b9392505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526106349186918216906323b872dd906084016116a4565b60405163095ea7b360e01b81526001600160a01b0383811660048301526000602483015284169063095ea7b3906044016020604051808303816000875af11580156119e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0a9190611f98565b5060405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b3906044016020604051808303816000875af1158015611a5a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106349190611f98565b600080602060008451602086016000885af180611aa1576040513d6000823e3d81fd5b50506000513d91508115611ab9578060011415611ac6565b6001600160a01b0384163b155b1561063457604051635274afe760e01b81526001600160a01b0385166004820152602401610540565b6001600160a01b03841660009081526002602052604081206001810154600160a01b900460ff16611b24576000915050611255565b8054604080516315ab88c960e31b815290516001600160a01b0390921691600091839163ad5c4648916004808201926020929091908290030181865afa158015611b72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b969190611f4c565b600184015460405163e6a4390560e01b81526001600160a01b038a8116600483015280841660248301529293506000929091169063e6a4390590604401602060405180830381865afa158015611bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c149190611f4c565b90506001600160a01b038116611c31576000945050505050611255565b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190612082565b50915091506000846001600160a01b03168b6001600160a01b031610611cbc5781611cbe565b825b6001600160701b031690506000856001600160a01b03168c6001600160a01b031610611cea5783611cec565b825b6001600160701b03169050600654811015611d1257600098505050505050505050611255565b8915611d4157600a611d258c600b6120d2565b611d2f91906120e9565b81101598505050505050505050611255565b600a611d4e8c600b6120d2565b611d5891906120e9565b82101598505050505050505050611255565b60008060208385031215611d7d57600080fd5b823567ffffffffffffffff811115611d9457600080fd5b8301601f81018513611da557600080fd5b803567ffffffffffffffff811115611dbc57600080fd5b8560208260051b8401011115611dd157600080fd5b6020919091019590945092505050565b6001600160a01b038116811461131a57600080fd5b600080600060608486031215611e0b57600080fd5b8335611e1681611de1565b92506020840135611e2681611de1565b929592945050506040919091013590565b600060208284031215611e4957600080fd5b813561195781611de1565b600060208284031215611e6657600080fd5b5035919050565b801515811461131a57600080fd5b60008060008060808587031215611e9157600080fd5b8435611e9c81611de1565b935060208501359250604085013591506060850135611eba81611e6d565b939692955090935050565b600081518084526020840193506020830160005b82811015611f005781516001600160a01b0316865260209586019590910190600101611ed9565b5093949350505050565b6020815260006119576020830184611ec5565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f4557600080fd5b5051919050565b600060208284031215611f5e57600080fd5b815161195781611de1565b634e487b7160e01b600052601160045260246000fd5b81810381811115611f9257611f92611f69565b92915050565b600060208284031215611faa57600080fd5b815161195781611e6d565b80820180821115611f9257611f92611f69565b848152608060208201526000611fe16080830186611ec5565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a06040820152600061201c60a0830186611ec5565b6001600160a01b0394909416606083015250608001529392505050565b634e487b7160e01b600052603160045260246000fd5b60008161205e5761205e611f69565b506000190190565b80516001600160701b038116811461207d57600080fd5b919050565b60008060006060848603121561209757600080fd5b6120a084612066565b92506120ae60208501612066565b9150604084015163ffffffff811681146120c757600080fd5b809150509250925092565b8082028115828204841417611f9257611f92611f69565b60008261210657634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220aff762ca5b09b5eeb5455dac9a4e4bda52f8c02d1f45f654ea667a258f9da09764736f6c634300081a003300000000000000000000000015a495c1b95b6843633dd3ec851f16b259c5e325