341 txs
339 calls
constructor
constructor(address _permit2)
functions
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
permit2
viewfunction permit2() view returns (address)
tokenManager
viewfunction tokenManager() view returns (address)
executeOrder
payablefunction executeOrder(tuple _order, tuple[] _route) payable
executeOrder
nonpayablefunction executeOrder(tuple _permit, tuple _order, bytes _signature, tuple[] _route)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
FulfilledOrder
event FulfilledOrder(((address token, uint256 amount)[] inputs, (address token, uint256 minOutputAmount)[] outputs, (address target, uint256 value, bytes data) relay, address user, address recipient) indexed order, address indexed caller, address indexed recipient)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RelayData
event RelayData(address indexed target, uint256 value, bytes data)
TokenReturned
event TokenReturned(address indexed token, uint256 amount)
Unpaused
event Unpaused(address account)
errors
CallerNotZap
error CallerNotZap(address caller)
CallFailed
error CallFailed(address target, uint256 value, bytes callData)
EtherTransferFailed
error EtherTransferFailed(address recipient)
InsufficientRelayValue
error InsufficientRelayValue(uint256 balance, uint256 relayValue)
InvalidCaller
error InvalidCaller(address owner, address caller)
Slippage
error Slippage(address token, uint256 minAmountOut, uint256 balance)
TargetingInvalidContract
error TargetingInvalidContract(address target)
creation bytecode
0x60c034610138576001600160401b0390601f6200255638819003918201601f19168301918483118484101761013d5780849260209460405283398101031261013857516001600160a01b03919082811681036101385760009182549160405192338682167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08780a36001600160a81b0319163360ff60a01b1916178455600180556080526104ef8281019182118383101761012457908291620020678339039082f090811561011857501660a052604051611f13908162000154823960805181818160f001528181610905015281816110220152611b35015260a051818181610134015281816105a7015281816112ce0152611c460152f35b604051903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806312261ee7146100bb5780632a709b14146100b65780632e0af5e5146100b15780633f4ba83a146100ac5780635c975abb146100a7578063715018a6146100a25780638456cb591461009d5780638da5cb5b14610098578063f2fde38b146100935763f41b2db60361000e57610520565b610437565b6103f2565b610381565b61031a565b6102f4565b61024f565b6101c5565b610114565b6100d0565b60009103126100cb57565b600080fd5b346100cb5760003660031901126100cb5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100cb5760003660031901126100cb5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b908160a09103126100cb5790565b9181601f840112156100cb5782359167ffffffffffffffff83116100cb57602083818601950101116100cb57565b9181601f840112156100cb5782359167ffffffffffffffff83116100cb576020808501948460051b0101116100cb57565b346100cb576003196080368201126100cb5760043567ffffffffffffffff918282116100cb5760609082360301126100cb576024358281116100cb5761020f903690600401610158565b906044358381116100cb57610228903690600401610166565b906064359485116100cb57610244610019953690600401610194565b9490936004016108e6565b346100cb576000806003193601126102f1576102696106b5565b805460ff8160a01c16156102ad5760ff60a01b191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b606460405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152fd5b80fd5b346100cb5760003660031901126100cb57602060ff60005460a01c166040519015158152f35b346100cb576000806003193601126102f1576103346106b5565b806001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b346100cb576000806003193601126102f15761039b6106b5565b6103a361083e565b7401000000000000000000000000000000000000000060ff60a01b198254161781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b346100cb5760003660031901126100cb5760206001600160a01b0360005416604051908152f35b6001600160a01b038116036100cb57565b359061043582610419565b565b346100cb5760203660031901126100cb5760043561045481610419565b61045c6106b5565b6001600160a01b0380911680156104b65760009182548273ffffffffffffffffffffffffffffffffffffffff198216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b608460405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b60403660031901126100cb5767ffffffffffffffff6004358181116100cb5761054d903690600401610158565b906024359081116100cb57610566903690600401610194565b9061056f610891565b61057761083e565b60608301926105946105888561070d565b6001600160a01b031690565b330361065f576105cd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169461070d565b6105d7828061071a565b9095803b156100cb5761061e9660008094604051998a95869485937f77fc3fa8000000000000000000000000000000000000000000000000000000008552600485016107de565b03925af193841561065a5761063894610641575b50611012565b61001960018055565b8061064e61065492610766565b806100c0565b38610632565b610832565b6106b161066b8561070d565b6040517f16cece480000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201523360248201529081906044820190565b0390fd5b6001600160a01b036000541633036106c957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3561071781610419565b90565b903590601e19813603018212156100cb570180359067ffffffffffffffff82116100cb57602001918160061b360383136100cb57565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161077a57604052565b610750565b6040810190811067ffffffffffffffff82111761077a57604052565b90601f8019910116810190811067ffffffffffffffff82111761077a57604052565b602080916001600160a01b0381356107d481610419565b1684520135910152565b60609093919293826040946001600160a01b03868401911683528560208401525201929160005b828110610813575050505090565b90919293828082610826600194896107bd565b01950193929101610805565b6040513d6000823e3d90fd5b60ff60005460a01c1661084d57565b606460405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152fd5b6002600154146108a2576002600155565b606460405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b94939290916108f3610891565b6108fb61083e565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610938610932858061071a565b90611c9a565b6109446060860161070d565b9260405160208101906109698161095b8a85610af6565b03601f19810183528261079b565b51902098610975610c14565b843b156100cb5760009687936109bb926040519d8e998a9889977ffe8ec1a700000000000000000000000000000000000000000000000000000000895260048901610e22565b03925af193841561065a576109d4946106415750611012565b61043560018055565b9035601e19823603018112156100cb57016020813591019167ffffffffffffffff82116100cb578160061b360383136100cb57565b9160209082815201919060005b818110610a2c5750505090565b90919280610a3c600192866107bd565b60409081019401929101610a1f565b9035605e19823603018112156100cb570190565b9035601e19823603018112156100cb57016020813591019167ffffffffffffffff82116100cb5781360383136100cb57565b908060209392818452848401376000828201840152601f01601f1916010190565b906060610ae6610717936001600160a01b038135610acf81610419565b168452602081013560208501526040810190610a5f565b9190928160408201520191610a91565b7fc709880ce3db9deadf408dae85548b37e4530edc88a93e955bd080b45f3255c28152604080602083015260e08201610b2f84806109dd565b60a0858501529182905261010084019160005b818110610bce57505050610bc06080610b9a610717959460c094610b8c610b83610b6f60208c018c6109dd565b603f198b8603810160608d01529491610a12565b928a018a610a4b565b908783030184880152610ab2565b95610bba610baa6060830161042a565b6001600160a01b031660a0870152565b0161042a565b6001600160a01b0316910152565b909192848082610be0600194886107bd565b019401929101610b42565b604051906104358261077f565b67ffffffffffffffff811161077a57601f01601f191660200190565b60405190610140820182811067ffffffffffffffff82111761077a5760405261010982527f3620616d6f756e74290000000000000000000000000000000000000000000000610120837f4f72646572206f72646572294f7264657228496e7075745b5d20696e7075747360208201527f2c4f75747075745b5d206f7574707574732c52656c61792072656c61792c616460408201527f647265737320757365722c6164647265737320726563697069656e7429496e7060608201527f7574286164647265737320746f6b656e2c75696e7432353620616d6f756e742960808201527f4f7574707574286164647265737320746f6b656e2c75696e74323536206d696e60a08201527f4f7574707574416d6f756e742952656c6179286164647265737320746172676560c08201527f742c75696e743235362076616c75652c6279746573206461746129546f6b656e60e08201527f5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432356101008201520152565b90815180825260208080930193019160005b828110610db2575050505090565b835180516001600160a01b031686528201518583015260409094019392810192600101610da4565b60005b838110610ded5750506000910152565b8181015183820152602001610ddd565b90602091610e1681518092818552858086019101610dda565b601f01601f1916010190565b959391979694929760c08752610120870191610e3e81806109dd565b606060c08b01529384905261014089019360005b818110610ec357505050610e91610eb595936107179a9b95936040848c60e06020610ea398013591015201356101008c01528a820360208c0152610d92565b6001600160a01b039094166040890152565b60608701528582036080870152610dfd565b9260a0818503910152610a91565b90919480610ed3600192886107bd565b60409081019601929101610e52565b903590605e19813603018212156100cb570190565b90610f276040926001600160a01b038135610f1181610419565b1683526020810135602084015283810190610a5f565b8091848401376000828201840152601f01601f1916010190565b60408051918291610f5282806109dd565b8492919060005b818110610fed57505050610f7060208401846109dd565b60005b818110610fc8575050506080610fbb610f9e8594610f99610faa95610fc2980187610a4b565b610ef7565b610faa6060860161042a565b6001600160a01b0316815260200190565b920161042a565b03902090565b919495509192838082610fdd600194896107bd565b0195019101918695949392610f73565b919495509192838082611002600194896107bd565b0195019101918695949392610f59565b919060006001600160a01b0392837f000000000000000000000000000000000000000000000000000000000000000016915b8181106110d757505050506110ab6110a56110956110a061109b8661106c602082018261071a565b9490608083019561107c8761070d565b90602061108d604087018097610ee2565b013592611843565b87610ee2565b611af8565b61070d565b92610f41565b91169033907f1ba5b6ed656994657175705961138c96bd8ec133c35817fa85903f450129e0b1600080a4565b6110e281838661130b565b6110eb8161070d565b9061111e6040916110fe83820182611332565b929061110d606084018461071a565b929091602080950135953691611365565b948b87168a81149081156112c9575b506112aa5791908551926000935b83851061117457505050505060008091845190850184875af19261115d61146e565b931561116f5750505050600101611044565b6117df565b90919293958d61118588878761139c565b9061119a886111938461070d565b93016113ac565b908216806111b55750505050600147965b019392919061113b565b85516370a0823160e01b8152306004820152939993908990829060249082905afa92831561065a578c91600094611277575b506111f391849161149e565b60030b90600082121561120b575b50506001906111ab565b9061126f916112698b611221846001979e611dd8565b936112488c61123a8b5196879283019190602083019252565b03601f19810186528561079b565b61126361125d611257836113df565b926113df565b8961140d565b91611e58565b9161141a565b979038611201565b6111f392945061129c908b3d8d116112a3575b611294818361079b565b8101906113ba565b93916111e7565b503d61128a565b51631e055a2960e21b81526001600160a01b0387166004820152602490fd5b90508c7f000000000000000000000000000000000000000000000000000000000000000016143861112d565b634e487b7160e01b600052603260045260246000fd5b919081101561132d5760051b81013590607e19813603018212156100cb570190565b6112f5565b903590601e19813603018212156100cb570180359067ffffffffffffffff82116100cb576020019181360383136100cb57565b92919261137182610bf8565b9161137f604051938461079b565b8294818452818301116100cb578281602093846000960137010152565b919081101561132d5760061b0190565b358060030b81036100cb5790565b908160209103126100cb575190565b634e487b7160e01b600052601160045260246000fd5b90602082018092116113ed57565b6113c9565b90601f82018092116113ed57565b919082018092116113ed57565b919082039182116113ed57565b61043591939293604051948591835161143b81602096878088019101610dda565b830161144f82518093878085019101610dda565b0161146282518093868085019101610dda565b0103808552018361079b565b3d15611499573d9061147f82610bf8565b9161148d604051938461079b565b82523d6000602084013e565b606090565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015292936020939290921691908381604481865afa90811561065a57600091611619575b501061150757505050565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000008382018181526001600160a01b03861660248401526000196044808501919091528352601f199592949290600090819061156660648961079b565b87519082885af161157561146e565b816115e9575b50806115df575b15611590575b505050505050565b604051928301919091526001600160a01b0316602482015260006044820152606493840181526115d4936115cf91906115c9908261079b565b8261164e565b61164e565b388080808080611588565b50833b1515611582565b80518015925085908315611601575b5050503861157b565b6116119350820181019101611636565b3884816115f8565b6116309150843d86116112a357611294818361079b565b386114fc565b908160209103126100cb575180151581036100cb5790565b6040516116ac916001600160a01b03166116678261077f565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16116a661146e565b91611747565b80519082821592831561172f575b505050156116c55750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b61173f9350820181019101611636565b3882816116ba565b919290156117a8575081511561175b575090565b3b156117645790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156117bb5750805190602001fd5b6106b19060405191829162461bcd60e51b8352602060048401526024830190610dfd565b91908351156117f057835160208501fd5b6001600160a01b0392916106b1916040519485947fe1eec8f10000000000000000000000000000000000000000000000000000000086521660048501526024840152606060448401526064830190610dfd565b919060005b818110611856575050505050565b61186181838661139c565b61186a8161070d565b6020809201356001600160a01b03821692831560001461196f5750479181831061193d575050868082116118dd575b50907feaf449319c042c9ba3474fa0c5329eb58cd1f23be110cdbf9d697b8d303dac156118d4600194935b6040519081529081906020820190565b0390a201611848565b6118e69161140d565b600080808084895af16118f761146e565b50156119035786611899565b6040517f464e254d0000000000000000000000000000000000000000000000000000000081526001600160a01b0386166004820152602490fd5b604051636a67a2d160e11b81526001600160a01b03919091166004820152602481019190915260448101829052606490fd5b9590946119a9979298939460409586516370a0823160e01b815289818060049d8e309083019190916001600160a01b036020820193169052565b0381855afa998a1561065a5760009a611a4e575b505088888a106000146119fd578751636a67a2d160e11b81526001600160a01b038d16818d01908152602081018b9052604081018c905281906060010390fd5b91959a509398506118d491965060019550877feaf449319c042c9ba3474fa0c5329eb58cd1f23be110cdbf9d697b8d303dac159398611a3d575b506118c4565b611a48908986611a6d565b38611a37565b611a65929a50803d106112a357611294818361079b565b9738806119bd565b916001600160a01b03604051927fa9059cbb000000000000000000000000000000000000000000000000000000006020850152166024830152604482015260448152608081019181831067ffffffffffffffff84111761077a576104359260405261164e565b908092918237016000815290565b604090610717949281528160208201520191610a91565b611b018161070d565b90611b156020820135916040810190611332565b6001600160a01b03929192938481169485611b3257505050505050565b807f0000000000000000000000000000000000000000000000000000000000000000168614908115611c42575b50611c1f57824710611be75760008060405180611b7d81878a611ad3565b039086855af190611b8c61146e565b9115611bd557505090611bc77f6c936258f37a22c831493e49cb45429bdf7b6bb0e261f271a15f084e5b08aaff939260405193849384611ae1565b0390a2388080808080611588565b83611be1368588611365565b916117df565b6040517f74c8cbe600000000000000000000000000000000000000000000000000000000815247600482015260248101849052604490fd5b604051631e055a2960e21b81526001600160a01b03919091166004820152602490fd5b90507f000000000000000000000000000000000000000000000000000000000000000016851438611b5f565b67ffffffffffffffff811161077a5760051b60200190565b805182101561132d5760209160051b010190565b611ca382611c6e565b916040611cb28151948561079b565b818452601f19611cc183611c6e565b019060005b828110611d1e5750505060005b818110611ce05750505090565b600190602080611cf183868861139c565b0135611cfb610beb565b30815291820152611d0c8287611c86565b52611d178186611c86565b5001611cd3565b6020908251611d2c8161077f565b6000815282600081830152828901015201611cc6565b15611d4957565b606460405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152fd5b15611d9457565b606460405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152fd5b611dec82611de5816113f2565b1015611d42565b611df98282511015611d8d565b81611e11575050604051600081526020810160405290565b60405191601f811691821560051b808486010193838501920101905b808410611e455750508252601f01601f191660405290565b9092835181526020809101930190611e2d565b91611e6681611de5816113f2565b611e7c8351611e758385611400565b1115611d8d565b80611e9557505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410611eca5750508252601f01601f191660405290565b9092835181526020809101930190611eb256fea2646970667358221220d15c026976fd53c243c6efdc0dfa863262a5cf11ff35a677f18822467419481564736f6c6343000813003360a0806040523461002957336080526104c0908161002f823960805181818160ab015261037f0152f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c908163262d61521461036157506377fc3fa81461003557600080fd5b346102e85760403660031901126102e8576004356001600160a01b03811681036102e85767ffffffffffffffff602435116102e8573660236024350112156102e85767ffffffffffffffff60243560040135116102e85736602480356004013560061b81350101116102e8576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036103315760005b6024356004013581106100e357005b8060061b602435016001602482019201916001600160a01b03610105826103a3565b161561032a5761011c6001600160a01b03916103a3565b166044604051927f23b872dd0000000000000000000000000000000000000000000000000000000060208501526001600160a01b0386166024850152338285015201356064830152606482528160a081011067ffffffffffffffff60a0840111176102ed5760a0820160e083011067ffffffffffffffff60e0840111176102ed5760e08201604052602060a08301527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460c083015260008083516020850182855af1913d1561031c573d9267ffffffffffffffff84116102ed5760405191601f199067ffffffffffffffff601f87018316603f0183168501908111908511176102ed578582603f60a094601f6102489a011601168501604052845283600060203d92013e5b01926103b7565b80519081159182156102c5575b50506100d457608460405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b81925090602091810103126102e8576020015180151581036102e8573880610255565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102489260a0606092610241565b50506100d4565b60246040517f403e63e9000000000000000000000000000000000000000000000000000000008152336004820152fd5b346102e85760003660031901126102e8576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b356001600160a01b03811681036102e85790565b9192901561041857508151156103cb575090565b3b156103d45790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b82519091501561042b5750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b828510610471575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061044e56fea264697066735822122085fb7bebc57122badc26c5fa5acb3da0d80345cf1fa12b611c14bc938456608464736f6c63430008130033000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3