0 txs
1.2k calls
constructor
constructor(address _owner, address _router, address _factory, address _swapper)
functions
getSwapRoutes
viewfunction getSwapRoutes(address from, address to) view returns (tuple[] routes)
isPoolStable
viewfunction isPoolStable(address from, address to) view returns (bool isStable)
owner
viewfunction owner() view returns (address)
pairFactory
viewfunction pairFactory(address pair) view returns (address factory)
pendingOwner
viewfunction pendingOwner() view returns (address)
poolFactory
viewfunction poolFactory() view returns (address)
router
viewfunction router() view returns (address)
swapper
viewfunction swapper() view returns (address)
swapRoutes
viewfunction swapRoutes(address from, address to, uint256) view returns (address from, address to, bool stable, address factory)
acceptOwnership
nonpayablefunction acceptOwnership()
executeSwap
nonpayablefunction executeSwap(address from, address to, uint256 fromAmount, address beneficiary) returns (uint256 toAmount)
removeRoutes
nonpayablefunction removeRoutes(address from, address to)
renounceOwnership
nonpayablefunction renounceOwnership()
setIsPoolStable
nonpayablefunction setIsPoolStable(address from, address to, bool status)
setPoolFactory
nonpayablefunction setPoolFactory(address factory)
setRouter
nonpayablefunction setRouter(address _router)
setRoutes
nonpayablefunction setRoutes(address from, address to, tuple[] routes)
setSwapper
nonpayablefunction setSwapper(address swapper)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
IsPoolStableSet
event IsPoolStableSet(address from, address to, bool status)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
PoolFactorySet
event PoolFactorySet(address factory)
RouterSet
event RouterSet(address router)
RoutesRemoved
event RoutesRemoved(address from, address to)
RoutesSet
event RoutesSet(address from, address to, (address from, address to, bool stable, address factory)[] routes)
SwapperSet
event SwapperSet(address swapper)
errors
NotSwapper
error NotSwapper()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60806040523480156200001157600080fd5b50604051620017b6380380620017b6833981016040819052620000349162000194565b836001600160a01b0381166200006457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006f81620000b5565b50600680546001600160a01b038086166001600160a01b0319928316179092556007805492851692909116919091179055620000ab81620000d3565b50505050620001f1565b600180546001600160a01b0319169055620000d08162000127565b50565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f673779832598d6a388768ee342f8de96fdd5c39a468a6955377cf1405b9652b99060200160405180910390a150565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200018f57600080fd5b919050565b60008060008060808587031215620001ab57600080fd5b620001b68562000177565b9350620001c66020860162000177565b9250620001d66040860162000177565b9150620001e66060860162000177565b905092959194509250565b6115b580620002016000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80638da5cb5b116100cd578063e4c6505e11610081578063f6daf2f211610066578063f6daf2f214610335578063f82eba2a14610388578063f887ea401461039b57600080fd5b8063e4c6505e14610302578063f2fde38b1461032257600080fd5b80639c82f2a4116100b25780639c82f2a4146102be578063c0d78655146102d1578063e30c3978146102e457600080fd5b80638da5cb5b1461026a578063990c50741461028857600080fd5b8063473597a0116101245780634aa6b254116101095780634aa6b2541461021c578063715018a61461025a57806379ba50971461026257600080fd5b8063473597a0146101f6578063495f8ca01461020957600080fd5b8063174d2aee146101565780632b3297f91461017c5780634219dc40146101c1578063467e5eb9146101e1575b600080fd5b610169610164366004610f5b565b6103bb565b6040519081526020015b60405180910390f35b60025461019c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610173565b60075461019c9073ffffffffffffffffffffffffffffffffffffffff1681565b6101f46101ef366004611087565b610424565b005b6101f46102043660046111a2565b6105ea565b6101f46102173660046111c6565b61066c565b61024a61022a3660046111c6565b600460209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610173565b6101f4610682565b6101f4610696565b60005473ffffffffffffffffffffffffffffffffffffffff1661019c565b61019c6102963660046111a2565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101f46102cc3660046111a2565b610712565b6101f46102df3660046111a2565b610723565b60015473ffffffffffffffffffffffffffffffffffffffff1661019c565b6103156103103660046111c6565b61079e565b6040516101739190611277565b6101f46103303660046111a2565b610886565b61034861034336600461128a565b610936565b6040805173ffffffffffffffffffffffffffffffffffffffff95861681529385166020850152911515918301919091529091166060820152608001610173565b6101f46103963660046112cb565b6109bc565b60065461019c9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460009073ffffffffffffffffffffffffffffffffffffffff16331461040f576040517f1e2885aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61041b85858585610a63565b95945050505050565b61042c610cae565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600360209081526040808320938616835292905220541561046e5761046e8383610d01565b60005b81518110156105a95773ffffffffffffffffffffffffffffffffffffffff808516600090815260036020908152604080832093871683529290522082518390839081106104c0576104c0611316565b602090810291909101810151825460018082018555600094855293839020825160039092020180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617825593830151948101805460408501519684167fffffffffffffffffffffff000000000000000000000000000000000000000000909116177401000000000000000000000000000000000000000096151596909602959095179094556060909101516002909301805490921692169190911790556105a281611374565b9050610471565b507f9f3750b48620c511d5d07afb781cf2e5cc2883b9178203800492ffc35d7094138383836040516105dd939291906113ac565b60405180910390a1505050565b6105f2610cae565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fcc26a9842bf398b87d3fbaaca69d27e087a9e70d9bffce9c4691461fbc306690906020015b60405180910390a150565b610674610cae565b61067e8282610d01565b5050565b61068a610cae565b6106946000610d92565b565b600154339073ffffffffffffffffffffffffffffffffffffffff168114610706576040517f118cdaa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b61070f81610d92565b50565b61071a610cae565b61070f81610dc3565b61072b610cae565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d1590602001610661565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526003602090815260408083209385168352928152828220805484518184028101840190955280855260609493919290919084015b828210156108795760008481526020908190206040805160808101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff90811684526001808301548083168688015274010000000000000000000000000000000000000000900460ff1615159385019390935260029091015416606083015290835290920191016107ef565b5050505090505b92915050565b61088e610cae565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556108f160005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6003602052826000526040600020602052816000526040600020818154811061095e57600080fd5b600091825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff918216955081831694507401000000000000000000000000000000000000000090920460ff1692501684565b6109c4610cae565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526004602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168615159081179091558251938452908301939093528101919091527fc1a548d56d17c7f07011b79c2c0cbe75ea806ebb6f29996e6e6b816b71660268906060016105dd565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905260009073ffffffffffffffffffffffffffffffffffffffff8616906323b872dd906064016020604051808303816000875af1158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906113e5565b506006546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018590529086169063095ea7b3906044016020604051808303816000875af1158015610b7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba191906113e5565b5060065473ffffffffffffffffffffffffffffffffffffffff8681166000908152600360209081526040808320898516845290915281209092919091169063cac88ea9908690849087610bf542600a611402565b6040518663ffffffff1660e01b8152600401610c15959493929190611415565b6000604051808303816000875af1158015610c34573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610c7a91908101906114db565b90508060018251610c8b919061156c565b81518110610c9b57610c9b611316565b6020026020010151915050949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610694576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016106fd565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526003602090815260408083209385168352929052908120610d3e91610eab565b6040805173ffffffffffffffffffffffffffffffffffffffff8085168252831660208201527f8b6fad1bccba6568b3b52aa8501f122861f8c164a0aae51d8d9341307a2c4408910160405180910390a15050565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561070f81610e36565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f673779832598d6a388768ee342f8de96fdd5c39a468a6955377cf1405b9652b990602001610661565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b508054600082556003029060005260206000209081019061070f91905b80821115610f355780547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180547fffffffffffffffffffffff0000000000000000000000000000000000000000001690556002820180549091169055600301610ec8565b5090565b73ffffffffffffffffffffffffffffffffffffffff8116811461070f57600080fd5b60008060008060808587031215610f7157600080fd5b8435610f7c81610f39565b93506020850135610f8c81610f39565b9250604085013591506060850135610fa381610f39565b939692955090935050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561100057611000610fae565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561104d5761104d610fae565b604052919050565b600067ffffffffffffffff82111561106f5761106f610fae565b5060051b60200190565b801515811461070f57600080fd5b6000806000606080858703121561109d57600080fd5b84356110a881610f39565b93506020858101356110b981610f39565b935060408681013567ffffffffffffffff8111156110d657600080fd5b8701601f810189136110e757600080fd5b80356110fa6110f582611055565b611006565b81815260079190911b8201840190848101908b83111561111957600080fd5b928501925b82841015611191576080848d0312156111375760008081fd5b61113f610fdd565b843561114a81610f39565b81528487013561115981610f39565b818801528486013561116a81611079565b818701528488013561117b81610f39565b818901528252608093909301929085019061111e565b809750505050505050509250925092565b6000602082840312156111b457600080fd5b81356111bf81610f39565b9392505050565b600080604083850312156111d957600080fd5b82356111e481610f39565b915060208301356111f481610f39565b809150509250929050565b600081518084526020808501945080840160005b8381101561126c578151805173ffffffffffffffffffffffffffffffffffffffff9081168952848201518116858a01526040808301511515908a0152606091820151169088015260809096019590820190600101611213565b509495945050505050565b6020815260006111bf60208301846111ff565b60008060006060848603121561129f57600080fd5b83356112aa81610f39565b925060208401356112ba81610f39565b929592945050506040919091013590565b6000806000606084860312156112e057600080fd5b83356112eb81610f39565b925060208401356112fb81610f39565b9150604084013561130b81611079565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036113a5576113a5611345565b5060010190565b600073ffffffffffffffffffffffffffffffffffffffff80861683528085166020840152506060604083015261041b60608301846111ff565b6000602082840312156113f757600080fd5b81516111bf81611079565b8082018082111561088057610880611345565b600060a0808301888452602088818601526040838187015282895480855260c0880191508a60005283600020945060005b818110156114a157855473ffffffffffffffffffffffffffffffffffffffff908116845260018088015480831688870152891c60ff161515868601526002880154909116606085015260039096019560809093019201611446565b505073ffffffffffffffffffffffffffffffffffffffff8916606088015294506114cb9350505050565b8260808301529695505050505050565b600060208083850312156114ee57600080fd5b825167ffffffffffffffff81111561150557600080fd5b8301601f8101851361151657600080fd5b80516115246110f582611055565b81815260059190911b8201830190838101908783111561154357600080fd5b928401925b8284101561156157835182529284019290840190611548565b979650505050505050565b818103818111156108805761088061134556fea2646970667358221220baa23f48811446de65937922be6618bb33d44a999c97597000a7bc801710a9c964736f6c6343000815003300000000000000000000000033eb4dea4931e5d607531fb08bd393944aa01faa000000000000000000000000cf77a3ba9a5ca399b7c97c74d54e5b1beb874e43000000000000000000000000420dd381b31aef6683db6b902084cb0ffece40da000000000000000000000000e314ae9d279919a00d4773cce37946a98faddabc