1 tx
2 calls
constructor
constructor(address _gradientRegistry)
functions
activeDEXes
viewfunction activeDEXes(uint256) view returns (address)
BASIS_POINTS
viewfunction BASIS_POINTS() view returns (uint256)
dexes
viewfunction dexes(address) view returns (address router, address factory, bool isActive, uint256 priority)
gradientRegistry
viewfunction gradientRegistry() view returns (address)
MAX_SLIPPAGE
viewfunction MAX_SLIPPAGE() view returns (uint256)
owner
viewfunction owner() view returns (address)
addDEX
nonpayablefunction addDEX(address dex, address router, address factory, 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()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DEXAdded
event DEXAdded(address indexed dex, address router, address factory)
DEXRemoved
event DEXRemoved(address indexed dex)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SlippageUpdated
event SlippageUpdated(uint256 newSlippage)
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
0x60a060405234801561001057600080fd5b50604051611c1e380380611c1e83398101604081905261002f916100c7565b6001600055338061005a57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006381610075565b506001600160a01b03166080526100f7565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156100d957600080fd5b81516001600160a01b03811681146100f057600080fd5b9392505050565b608051611b0561011960003960008181610179015261058e0152611b056000f3fe6080604052600436106100c65760003560e01c80638c8f3f821161007f578063e1f1c4a711610059578063e1f1c4a714610274578063e704d6c41461028a578063f2fde38b146102aa578063f9759518146102ca57600080fd5b80638c8f3f82146101b05780638da5cb5b146101d0578063a7ca71ca146101ee57600080fd5b806301c1dfba146100d25780634fc65751146100f4578063715018a614610131578063815a1a0d14610146578063830562bc14610167578063845360171461019b57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004611781565b6102e0565b005b34801561010057600080fd5b5061011461010f3660046117f8565b610491565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561013d57600080fd5b506100f26104bb565b610159610154366004611834565b6104cf565b604051908152602001610128565b34801561017357600080fd5b506101147f000000000000000000000000000000000000000000000000000000000000000081565b3480156101a757600080fd5b506100f2610c53565b3480156101bc57600080fd5b506100f26101cb36600461187e565b610d13565b3480156101dc57600080fd5b506001546001600160a01b0316610114565b3480156101fa57600080fd5b5061024361020936600461187e565b60026020819052600091825260409091208054600182015491909201546001600160a01b0392831692821691600160a01b900460ff169084565b604080516001600160a01b039586168152949093166020850152901515918301919091526060820152608001610128565b34801561028057600080fd5b5061015961271081565b34801561029657600080fd5b506100f26102a536600461189b565b610ed7565b3480156102b657600080fd5b506100f26102c536600461187e565b611132565b3480156102d657600080fd5b506101596103e881565b6102e861116d565b4780156103a25760006103036001546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d806000811461034d576040519150601f19603f3d011682016040523d82523d6000602084013e610352565b606091505b50509050806103a05760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b60448201526064015b60405180910390fd5b505b60005b8281101561048b5760008484838181106103c1576103c16118ec565b90506020020160208101906103d6919061187e565b90506001600160a01b03811615610482576040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561042e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104529190611902565b905080156104805761048061046f6001546001600160a01b031690565b6001600160a01b038416908361119a565b505b506001016103a5565b50505050565b600381815481106104a157600080fd5b6000918252602090912001546001600160a01b0316905081565b6104c361116d565b6104cd60006111fe565b565b60006104d9611250565b6001600160a01b03851661051f5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610397565b6000841161056f5760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610397565b604051630736b32b60e31b81526001600160a01b0386811660048301527f000000000000000000000000000000000000000000000000000000000000000016906339b5995890602401602060405180830381865afa1580156105d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f9919061191b565b156106395760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881a5cc8189b1bd8dad95960821b6044820152606401610397565b811561069b578334101561069b5760405162461bcd60e51b815260206004820152602360248201527f496e73756666696369656e74204554482073656e7420666f7220627579206f726044820152623232b960e91b6064820152608401610397565b60006106a886868561127a565b90506001600160a01b0381166106f85760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd5a5d18589b194811115608199bdd5b99605a1b6044820152606401610397565b6001600160a01b03818116600090815260026020819052604080832080548251848152606081019093529094169291816020016020820280368337019050509050851561080d57816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a19190611938565b816000815181106107b4576107b46118ec565b60200260200101906001600160a01b031690816001600160a01b03168152505088816001815181106107e8576107e86118ec565b60200260200101906001600160a01b031690816001600160a01b0316815250506108d7565b8881600081518110610821576108216118ec565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611938565b816001815181106108b6576108b66118ec565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8515610a3a576040516370a0823160e01b81523360048201526000906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610924573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109489190611902565b90506001600160a01b03831663b6f9de958a8a85336109694261012c61196b565b6040518663ffffffff1660e01b815260040161098894939291906119c9565b6000604051808303818588803b1580156109a157600080fd5b505af11580156109b5573d6000803e3d6000fd5b50506040516370a0823160e01b8152336004820152600093506001600160a01b038e1692506370a082319150602401602060405180830381865afa158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a259190611902565b9050610a3182826119fe565b96505050610bdb565b47610a506001600160a01b038b1633308c6112e4565b835460405163095ea7b360e01b81526001600160a01b039182166004820152602481018b9052908b169063095ea7b3906044016020604051808303816000875af1158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac6919061191b565b506001600160a01b03831663791ac9478a8a8530610ae64261012c61196b565b6040518663ffffffff1660e01b8152600401610b06959493929190611a11565b600060405180830381600087803b158015610b2057600080fd5b505af1158015610b34573d6000803e3d6000fd5b50479250610b469150839050826119fe565b604051909750600090339089908381818185875af1925050503d8060008114610b8b576040519150601f19603f3d011682016040523d82523d6000602084013e610b90565b606091505b5050905080610bd75760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610397565b5050505b836001600160a01b0316896001600160a01b03167fa5f8a4ef50801e7d44113fd9c467aec2fa7583dc5344619557ae4fcd77bd043f8a888a604051610c359392919092835260208301919091521515604082015260600190565b60405180910390a350505050610c4b6001600055565b949350505050565b610c5b61116d565b478015610d10576000610c766001546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610cc0576040519150601f19603f3d011682016040523d82523d6000602084013e610cc5565b606091505b5050905080610d0e5760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b6044820152606401610397565b505b50565b610d1b61116d565b6001600160a01b038116600090815260026020526040902060010154600160a01b900460ff16610d7d5760405162461bcd60e51b815260206004820152600d60248201526c111156081b9bdd08199bdd5b99609a1b6044820152606401610397565b6001600160a01b0381166000908152600260205260408120600101805460ff60a01b191690555b600354811015610e9f57816001600160a01b031660038281548110610dcb57610dcb6118ec565b6000918252602090912001546001600160a01b031603610e975760038054610df5906001906119fe565b81548110610e0557610e056118ec565b600091825260209091200154600380546001600160a01b039092169183908110610e3157610e316118ec565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506003805480610e7057610e70611a4d565b600082815260209020810160001990810180546001600160a01b0319169055019055610e9f565b600101610da4565b506040516001600160a01b038216907f1921ba6698157d491d41801286e9e17aee1c25965119e55403ba396b104b95db90600090a250565b610edf61116d565b6001600160a01b038416610f235760405162461bcd60e51b815260206004820152600b60248201526a092dcecc2d8d2c840888ab60ab1b6044820152606401610397565b6001600160a01b038316610f6a5760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b2103937baba32b960911b6044820152606401610397565b6001600160a01b038216610fb25760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420666163746f727960881b6044820152606401610397565b6001600160a01b038416600090815260026020526040902060010154600160a01b900460ff161561101a5760405162461bcd60e51b815260206004820152601260248201527144455820616c72656164792065786973747360701b6044820152606401610397565b604080516080810182526001600160a01b03808616825284811660208084019182526001848601818152606086018881528b86166000818152600295869052988920975188549088166001600160a01b03199182161789559551888501805494511515600160a01b026001600160a81b0319909516919098161792909217909555935194909101939093556003805493840181559093527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180549092161790556110e561131d565b604080516001600160a01b03858116825284811660208301528616917f2161d26dd2e031506bee289a523abc3337bfa101a08626541f6978f76048eac7910160405180910390a250505050565b61113a61116d565b6001600160a01b03811661116457604051631e4fbdf760e01b815260006004820152602401610397565b610d10816111fe565b6001546001600160a01b031633146104cd5760405163118cdaa760e01b8152336004820152602401610397565b6040516001600160a01b038381166024830152604482018390526111f991859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506114dc565b505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60026000540361127357604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6000805b6003548110156112d75760006003828154811061129d5761129d6118ec565b6000918252602090912001546001600160a01b031690506112c08187878761154d565b156112ce5791506112dd9050565b5060010161127e565b50600090505b9392505050565b6040516001600160a01b03848116602483015283811660448301526064820183905261048b9186918216906323b872dd906084016111c7565b60005b600354811015610d105760005b60035460019061133e9084906119fe565b61134891906119fe565b8110156114d35760026000600361136084600161196b565b81548110611370576113706118ec565b60009182526020808320909101546001600160a01b03168352820192909252604001812060029081015460038054919391859081106113b1576113b16118ec565b60009182526020808320909101546001600160a01b0316835282019290925260400190206002015411156114cb576000600382815481106113f4576113f46118ec565b6000918252602090912001546001600160a01b03169050600361141883600161196b565b81548110611428576114286118ec565b600091825260209091200154600380546001600160a01b039092169184908110611454576114546118ec565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905580600361148b84600161196b565b8154811061149b5761149b6118ec565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b60010161132d565b50600101611320565b600080602060008451602086016000885af1806114ff576040513d6000823e3d81fd5b50506000513d91508115611517578060011415611524565b6001600160a01b0384163b155b1561048b57604051635274afe760e01b81526001600160a01b0385166004820152602401610397565b6001600160a01b03841660009081526002602052604081206001810154600160a01b900460ff16611582576000915050610c4b565b8054604080516315ab88c960e31b815290516001600160a01b0390921691600091839163ad5c4648916004808201926020929091908290030181865afa1580156115d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f49190611938565b600184015460405163e6a4390560e01b81526001600160a01b038a8116600483015280841660248301529293506000929091169063e6a4390590604401602060405180830381865afa15801561164e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116729190611938565b90506001600160a01b03811661168f576000945050505050610c4b565b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f49190611a7f565b50915091506000846001600160a01b03168b6001600160a01b03161061171a578161171c565b825b6001600160701b031690506000856001600160a01b03168c6001600160a01b031610611748578361174a565b825b6001600160701b03169050891561176e578a81101598505050505050505050610c4b565b8a82101598505050505050505050610c4b565b6000806020838503121561179457600080fd5b823567ffffffffffffffff8111156117ab57600080fd5b8301601f810185136117bc57600080fd5b803567ffffffffffffffff8111156117d357600080fd5b8560208260051b84010111156117e857600080fd5b6020919091019590945092505050565b60006020828403121561180a57600080fd5b5035919050565b6001600160a01b0381168114610d1057600080fd5b8015158114610d1057600080fd5b6000806000806080858703121561184a57600080fd5b843561185581611811565b93506020850135925060408501359150606085013561187381611826565b939692955090935050565b60006020828403121561189057600080fd5b81356112dd81611811565b600080600080608085870312156118b157600080fd5b84356118bc81611811565b935060208501356118cc81611811565b925060408501356118dc81611811565b9396929550929360600135925050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561191457600080fd5b5051919050565b60006020828403121561192d57600080fd5b81516112dd81611826565b60006020828403121561194a57600080fd5b81516112dd81611811565b634e487b7160e01b600052601160045260246000fd5b8082018082111561197e5761197e611955565b92915050565b600081518084526020840193506020830160005b828110156119bf5781516001600160a01b0316865260209586019590910190600101611998565b5093949350505050565b8481526080602082015260006119e26080830186611984565b6001600160a01b03949094166040830152506060015292915050565b8181038181111561197e5761197e611955565b85815284602082015260a060408201526000611a3060a0830186611984565b6001600160a01b0394909416606083015250608001529392505050565b634e487b7160e01b600052603160045260246000fd5b80516001600160701b0381168114611a7a57600080fd5b919050565b600080600060608486031215611a9457600080fd5b611a9d84611a63565b9250611aab60208501611a63565b9150604084015163ffffffff81168114611ac457600080fd5b80915050925092509256fea2646970667358221220bce23e3535ae2d648eea537b32646778827da20aad4d364ab22b833c67d52ecf64736f6c634300081a0033000000000000000000000000893d41635725d8ea6f528d3f3f3df3e9e8076934