411 txs
700 calls
constructor
constructor(address _protocolFeeRecipient, address _owner)
functions
FEE_DENOMINATOR
viewfunction FEE_DENOMINATOR() view returns (uint256)
feeBasisPoints
viewfunction feeBasisPoints() view returns (uint256)
owner
viewfunction owner() view returns (address)
protocolFeeRecipient
viewfunction protocolFeeRecipient() view returns (address)
estimateSwap
nonpayablefunction estimateSwap(tuple params) returns (uint256 amountOut)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeBasisPoints
nonpayablefunction setFeeBasisPoints(uint256 newFeeBasisPoints)
setProtocolFeeRecipient
nonpayablefunction setProtocolFeeRecipient(address newProtocolFeeRecipient)
swap
payablefunction swap(tuple params) payable returns (uint256 amountOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x6080346100f357601f61279238819003918201601f19168301916001600160401b038311848410176100f85780849260409485528339810103126100f3576100468161010e565b906001600160a01b039061005c9060200161010e565b169081156100dd57600080546001600160a01b031981168417825560405193916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36064600255600180546001600160a01b0319166001600160a01b039290921691909117905561266f90816101238239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100f35756fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80630165dd27146103c25780635d78acf4146102ee57806364df049e146102c5578063715018a61461026c57806386f201ad146102125780638da5cb5b146101e9578063b8606eef146101cb578063d73792a9146101ae578063e521cb921461011c5763f2fde38b0361000e5734610117576020366003190112610117576100a7610431565b6100af6105ee565b6001600160a01b0316801561010157600080546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b3461011757602036600319011261011757610135610431565b61013d6105ee565b6001600160a01b03168015610169576bffffffffffffffffffffffff60a01b6001541617600155600080f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642070726f746f636f6c2066656520726563697069656e7400006044820152606490fd5b346101175760003660031901126101175760206040516127108152f35b34610117576000366003190112610117576020600254604051908152f35b34610117576000366003190112610117576000546040516001600160a01b039091168152602090f35b3461011757610140366003190112610117576006602160991b016001600160a01b0361023c610447565b160361025d57602061025561025036610516565b611224565b604051908152f35b6020610267611150565b610255565b34610117576000366003190112610117576102856105ee565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610117576000366003190112610117576001546040516001600160a01b039091168152602090f35b6101403660031901126101175760006006602160991b016001600160a01b03610315610447565b160361032f5750602061025561032a36610516565b6108f2565b6001600160a01b0361033f610447565b6040516323b872dd60e01b815233600482015230602482015260a43560448201529291602091849160649183918691165af19081156103b65750610389575b506020610267610639565b6103aa9060203d6020116103af575b6103a281836104dc565b8101906104fe565b61037e565b503d610398565b604051903d90823e3d90fd5b34610117576020366003190112610117576004356103de6105ee565b61271081116103ec57600255005b60405162461bcd60e51b815260206004820152601860248201527f496e76616c69642066656520626173697320706f696e747300000000000000006044820152606490fd5b600435906001600160a01b038216820361011757565b6004356001600160a01b03811681036101175790565b356001600160a01b03811681036101175790565b610140810190811067ffffffffffffffff82111761048e57604052565b634e487b7160e01b600052604160045260246000fd5b60e0810190811067ffffffffffffffff82111761048e57604052565b60a0810190811067ffffffffffffffff82111761048e57604052565b90601f8019910116810190811067ffffffffffffffff82111761048e57604052565b90816020910312610117575180151581036101175790565b610140906003190112610117576040519061053082610471565b816004356001600160a01b03811681036101175781526024356001600160a01b0381168103610117576020820152604435600681101561011757604082015260643560068110156101175760608201526084356001600160a01b038116810361011757608082015260a43560a082015260c43560c082015260e4356001600160a01b03811681036101175760e08201526101043562ffffff8116810361011757610100820152610124359062ffffff82168203610117576101200152565b6000546001600160a01b0316330361060257565b63118cdaa760e01b6000523360045260246000fd5b60068210156106235752565b634e487b7160e01b600052602160045260246000fd5b606435600681109081156101175760006004820361078e5750610140366003190112610117576040519161066c83610471565b6004356001600160a01b03811681036101175783526024356001600160a01b0381168103610117576020840152604435600681101561011757604084015215610117576060820152608435906001600160a01b0382168203610117576080810182905260a43560a082015260c43560c082015260e4356001600160a01b03811681036101175760e08201526101043562ffffff81168103610117576101008201526101243562ffffff811681036101175781610730916101206107359401526116f6565b611cf3565b906001600160a01b0381168103610117578061078b9150826040519161075c6040846104dc565b601c83527f5472616e7366657220746f20726563697069656e74206661696c6564000000006020840152611d75565b90565b9091506004356001600160a01b038116908181036108ee575060443560068110156108ee5760e435916001600160a01b038316918284036108ea57610104359062ffffff8216918281036108e6575060405161083f9390929161080c916107f485610471565b84526006602160991b01602085015260408401610617565b6004606083015230608083015260a43560a08301528560c08301528360e0830152806101008301526101208201526116f6565b6024356001600160a01b03811694908581036108e25750506084356001600160a01b0381169390848103610117575050610124359262ffffff8416938481036101175761078b96816108b99250506040519661089a88610471565b6006602160991b01885260208801526004604088015260608701610617565b608085015260a084015260c43560c084015260e0830152806101008301526101208201526108f2565b5080fd5b8680fd5b8480fd5b8280fd5b6000906060810180516006811015610b4c57600214610c6a5780516006811015610b4c57600314610b605780516006811015610b4c5715610ab957516006811015610aa5576001146109835760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420746f6b656e4f757420706f6f6c20747970650000000000006044820152606490fd5b60208181015160a083015160c0840151608085015160e090950151604051639562364160e01b8152919591946001600160a01b039182169492821692909186916004918391165afa938415610a9a5791610a1f959391602095938894610a6b575b50604051630a9f337360e11b81526001600160a01b039182166004820152921660248301526044820193909352938492839182906064820190565b03926001600160a01b03165af19182156103b65791610a3c575090565b90506020813d602011610a63575b81610a57602093836104dc565b81010312610117575190565b3d9150610a4a565b610a8c919450863d8811610a93575b610a8481836104dc565b810190611e36565b92386109e4565b503d610a7a565b6040513d88823e3d90fd5b634e487b7160e01b83526021600452602483fd5b5060208181015160a083015160c0840151608085015160e090950151604051630c533cdb60e01b81526001600160a01b039687166004820181905260248201529086166044820152610100606482015261010481018790526084810187905260a481019190915260c4810186905260e481018690529384926101249284929091165af19182156103b65791610a3c575090565b634e487b7160e01b84526021600452602484fd5b50602081015160a0820151608083015160c0909301519394936001600160a01b03938416938693610bf993911690610b9790611cf3565b9160405191610ba76060846104dc565b6002835260403660208501376006602160991b01610bc484612218565b52610bce8361223b565b5260405195869485938493637ff36ab560e01b855260048501526080602485015260848401906122d1565b9060448301524260648301520391734752ba5dbc23f44d87826276bf6fd6b1c372ad245af1908115610c5f5783610c38939492610c3c575b505061223b565b5190565b610c5892503d8091833e610c5081836104dc565b81019061224b565b3880610c31565b6040513d85823e3d90fd5b50604081939293018051600681101561111957600403610d21575060018060a01b0360208201511660a082015160018060a01b0360808401511691610cbe60c062ffffff6101208701511695015192611cf3565b906006602160991b013b156108e657604051630d0e30db60e41b81528781600481866006602160991b015af18015610d1657610d01575b5061078b95965061230e565b610d0c8880926104dc565b6108e65786610cf5565b6040513d8a823e3d90fd5b92909192516006811015611105576005036110b55760018060a01b036020830151169160a08101519060018060a01b03608082015116610d7060c062ffffff6101208501511693015193611cf3565b948560011c610d7e81611cf3565b6006602160991b013b156108e657604051630d0e30db60e41b81528781600481856006602160991b015af18015610d1657611095575b5090610dc6858589610dcc958761230e565b9761112d565b92610e4b8660609560405190610de288836104dc565b60028252601f1988013660208401376006602160991b01610e0283612218565b5273b928e5905872bda993a4ac054e1d129e658fadbd610e218361223b565b526040518080958194637ff36ab560e01b83528660048401526080602484015260848301906122d1565b3060448301524260648301520391734752ba5dbc23f44d87826276bf6fd6b1c372ad245af190811561108a5790610e89918891611070575b5061223b565b519260405194610e98866104a4565b73b928e5905872bda993a4ac054e1d129e658fadbd865260208601938452604086019283528501908152608085019184835260a086019388855260c08701958987526040519063095ea7b360e01b8252732626664c2603336e57b271c5c0b26f421741e481600483015260248201526020816044818d73b928e5905872bda993a4ac054e1d129e658fadbd5af18015611065579062ffffff939291611048575b506040516304e45aaf60e01b815297516001600160a01b0390811660048a0152905181166024890152905191909116604487015290518116606486015290516084850152905160a484015290511660c482015260208160e48186732626664c2603336e57b271c5c0b26f421741e4815af19283156103b65792611014575b50610fc18284611e29565b10610fcf5761078b91611e29565b60405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206f757470757420616d6f756e740000000000006044820152606490fd5b9091506020813d602011611040575b81611030602093836104dc565b8101031261011757519038610fb6565b3d9150611023565b6110609060203d6020116103af576103a281836104dc565b610f38565b6040513d8c823e3d90fd5b61108491503d808a833e610c5081836104dc565b38610e83565b6040513d89823e3d90fd5b8585896110aa610dcc96959b610dc6956104dc565b999394505050610db4565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420746f6b656e496e20706f6f6c207479706520666f722057456044820152610a8960f31b6064820152608490fd5b634e487b7160e01b82526021600452602482fd5b634e487b7160e01b85526021600452602485fd5b9190820391821161113a57565b634e487b7160e01b600052601160045260246000fd5b60643560068110156101175760006004820361118457505061078b6111756004611e55565b61117e816121fe565b9061112d565b61118e6004611e55565b6024356001600160a01b03811692908381036108e25750506084356001600160a01b0381169190828103610117575060e4356001600160a01b03811691908281036101175750610124359262ffffff8416938481036101175761078b96816111ff9250506040519661089a88610471565b608085015260a084015260c43560c084015260e0830152806101008301526101208201525b60608101908151916006831015610623576002600093146114a85780516006811015610b4c576003146113f15780516006811015610b4c57156113a557516006811015610aa5576001146112b75760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420746f6b656e4f757420706f6f6c20747970650000000000006044820152606490fd5b60a0600180821b0360208301511691015160405191639562364160e01b8352602083600481845afa92831561139a57849361136c575b508161117e6020936112fe936125aa565b604051630c6b42fb60e11b8152600481019190915291829060249082906001600160a01b03165afa9182156103b657809261133857505090565b9091506020823d602011611364575b81611354602093836104dc565b8101031261136157505190565b80fd5b3d9150611347565b6112fe9193509161117e8161138f602095863d8811610a9357610a8481836104dc565b9593509350506112ed565b6040513d86823e3d90fd5b5060206113c560a0600180821b03838501511693015161117e8185612536565b602460405180948193636c1f20d160e01b835260048301525afa9182156103b657809261133857505090565b50816114769161141760a0600180829897981b0360208401511692015161117e816121fe565b604051916114266060846104dc565b6002835260403660208501376006602160991b0161144384612218565b5261144d8361223b565b52604051938492839263d06ca61f60e01b845260048401526040602484015260448301906122d1565b0381734752ba5dbc23f44d87826276bf6fd6b1c372ad245afa908115610c5f5783610c38939492610c3c57505061223b565b506040819392930180516006811015611119576004036114f9575061078b91925060018060a01b036020820151166114f362ffffff61012060a0850151940151169261117e816121fe565b90612468565b516006811015610b4c576005036110b55760018060a01b0360208201511661153462ffffff61012060a0850151940151169261117e816121fe565b9061159e856115528561154b8660011c809761112d565b9585612468565b93604051906115626060836104dc565b6002825260403660208401376006602160991b0161157f83612218565b5273b928e5905872bda993a4ac054e1d129e658fadbd61144d8361223b565b0381734752ba5dbc23f44d87826276bf6fd6b1c372ad245afa908115610a9a5762ffffff916115d3918891611070575061223b565b5193604051946115e2866104c0565b73b928e5905872bda993a4ac054e1d129e658fadbd86526020860193845260408087019182526060870192835260808088018a81529151636352813560e11b815297516001600160a01b0390811660048a01529551861660248901529151604488015291519290921660648601525190911660848401528260a48187733d4e44eb1374240ce5f1b871ab261cd16335b76a5af191821561139a57849261168f575b5061078b929350611e29565b9091506080813d6080116116ee575b816116ab608093836104dc565b810103126116ea57805160208201519091906001600160a01b038116036108ea576040015163ffffffff8116036116ea5761078b929350908392611683565b8380fd5b3d915061169e565b6000906040810180516006811015610b4c57600214611ac25780516006811015610b4c5760031461199d5780516006811015610b4c571561188e57516006811015610aa5576001146117835760405162461bcd60e51b8152602060048201526019602482015278496e76616c696420746f6b656e496e20706f6f6c207479706560381b6044820152606490fd5b805160a082015160e083015160c090930151604051639562364160e01b815290936001600160a01b039081169316602082600481845afa918215610a9a57869261186d575b5060405163095ea7b360e01b81526001600160a01b03831660048201526024810184905290602090829060449082908a905af18015610a9a5760849260209594928892611852575b50604051968795869463189fac3560e21b865230600487015260248601526044850152606484015260018060a01b03165af19182156103b65791610a3c575090565b61186890873d89116103af576103a281836104dc565b611810565b61188791925060203d602011610a9357610a8481836104dc565b90386117c8565b50805160a082015160e083015160c09093015160405163095ea7b360e01b81526001600160a01b0393841660048201819052602482018490529492939192919091169060208160448189895af18015610a9a57611980575b5060405192639352c82560e01b84526004840152306024840152604483015260e060648301528360e483015283608483015260a48201528260c48201526020816101048186865af19283156103b6579261194a575b509061117e8161078b93612536565b91506020823d602011611978575b81611965602093836104dc565b810103126101175790519061117e61193b565b3d9150611958565b6119989060203d6020116103af576103a281836104dc565b6118e6565b50805160a082015160c09092015160405193949392859283906020906001600160a01b03166119cd6060886104dc565b6002875260403683890137806119e288612218565b526006602160991b016119f48861223b565b5260446040518094819363095ea7b360e01b8352734752ba5dbc23f44d87826276bf6fd6b1c372ad2460048401528760248401525af1801561139a57611aa5575b50611a6660405194859384936318cbafe560e01b85526004850152602484015260a0604484015260a48301906122d1565b306064830152426084830152038183734752ba5dbc23f44d87826276bf6fd6b1c372ad245af1908115610c5f5783610c38939492610c3c57505061223b565b611abd9060203d6020116103af576103a281836104dc565b611a35565b509060018060a01b0382511660a08301519060c062ffffff610100860151169401519060405194611af2866104a4565b81865260208601906006602160991b01825260408701908152606087019130835286602060808a019588875260a08b01978852604460c08c0199848b52604051948593849263095ea7b360e01b8452732626664c2603336e57b271c5c0b26f421741e481600485015260248401525af18015610d16579062ffffff939291611cd6575b506040516304e45aaf60e01b815298516001600160a01b0390811660048b01529051811660248a0152905191909116604488015290518116606487015290516084860152905160a485015290511660c483015260208260e48184732626664c2603336e57b271c5c0b26f421741e4815af1918215611cc9578192611c95575b506006602160991b013b1561136157604051632e1a7d4d60e01b8152600481018390528181602481836006602160991b015af18015611c8a578290611c7a575b9050505061078b604051611c496040826104dc565b601e81527f4661696c656420746f207472616e736665722073656c6c206f7574707574000060208201528230611d75565b611c83916104dc565b3881611c34565b6040513d84823e3d90fd5b9091506020813d602011611cc1575b81611cb1602093836104dc565b810103126108e257519038611bf4565b3d9150611ca4565b50604051903d90823e3d90fd5b611cee9060203d6020116103af576103a281836104dc565b611b75565b8015611d6f5780611d0661078b926121fe565b600154604051919291611d6a9184906001600160a01b0316611d296060846104dc565b602983527f5472616e7366657220746f2070726f746f636f6c2066656520726563697069656020840152681b9d0819985a5b195960ba1b6040840152611d75565b61112d565b50600090565b81611d7f57505050565b600080809381935af13d15611e24573d67ffffffffffffffff811161048e5760405190611db6601f8201601f1916602001836104dc565b8152600060203d92013e5b15611dc95750565b6040519062461bcd60e51b8252602060048301528181519182602483015260005b838110611e0c5750508160006044809484010152601f80199101168101030190fd5b60208282018101516044878401015285935001611dea565b611dc1565b9190820180921161113a57565b9081602091031261011757516001600160a01b03811681036101175790565b60408101356006811015610117576000600282146120c0575060006003821461203f575060008115611fb35750600160009114611ecd5760405162461bcd60e51b8152602060048201526019602482015278496e76616c696420746f6b656e496e20706f6f6c207479706560381b6044820152606490fd5b611ed68261045d565b604051639562364160e01b815290926020826004816001600160a01b0388165afa918215610c5f578392611f8b575b50604051635994866d60e01b815260a09190910135600482015290602090829060249082906001600160a01b03165afa9182156103b6578092611f52575b505061117e8161078b936125aa565b9091506020823d602011611f83575b81611f6e602093836104dc565b8101031261136157505161117e61078b611f43565b3d9150611f61565b60209192506024611faa60a092843d8611610a9357610a8481836104dc565b93925050611f05565b9050611fbe8261045d565b60405163810a94d760e01b815260a0909301356004840152916020816024816001600160a01b0387165afa9182156103b6578092612006575b505061117e8161078b93612536565b9091506020823d602011612037575b81612022602093836104dc565b8101031261136157505161117e61078b611ff7565b3d9150612015565b82915060a061204f82959461045d565b926040519361205f6060866104dc565b60028552604036602087013761207485612218565b6000196001851b0190911690526006602160991b016120928561223b565b52611476604051948593849363d06ca61f60e01b8552013560048401526040602484015260448301906122d1565b9190506120cc8161045d565b9061010081013562ffffff811681036116ea576040519262ffffff91906120f2856104c0565b6001600160a01b0390811685526006602160991b016020860190815260a0949094013560408087019182529284166060870190815260808088018981529451636352813560e11b815297518416600489015295518316602488015290516044870152519092166064850152511660848301528160a48185733d4e44eb1374240ce5f1b871ab261cd16335b76a5af19182156103b657809261219257505090565b9091506080823d6080116121e3575b816121ae608093836104dc565b8101031261136157815160208301519092906001600160a01b038116036108e2576040015163ffffffff811603611361575090565b3d91506121a1565b8181029291811591840414171561113a57565b8015611d6f5761221461271091600254906121eb565b0490565b8051156122255760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156122255760400190565b6020818303126101175780519067ffffffffffffffff821161011757019080601f830112156101175781519167ffffffffffffffff831161048e578260051b90602082019361229d60405195866104dc565b845260208085019282010192831161011757602001905b8282106122c15750505090565b81518152602091820191016122b4565b906020808351928381520192019060005b8181106122ef5750505090565b82516001600160a01b03168452602093840193909201916001016122e2565b929390936040519461231f866104a4565b6006602160991b018652602086019460018060a01b0316855262ffffff6040870193168352606086019160018060a01b03168252608086019281845260a0870194855260c0870195600087526040519263095ea7b360e01b8452732626664c2603336e57b271c5c0b26f421741e4816004850152602484015260208360448160006006602160991b015af192831561243f5762ffffff9361244b575b506040516304e45aaf60e01b815297516001600160a01b0390811660048a0152905181166024890152905191909116604487015290518116606486015290516084850152905160a484015290511660c482015260208160e4816000732626664c2603336e57b271c5c0b26f421741e4815af190811561243f57600091610a3c575090565b6040513d6000823e3d90fd5b6124639060203d6020116103af576103a281836104dc565b6123bb565b909162ffffff906040519361247c856104c0565b6006602160991b0185526001600160a01b0393841660208601908152604080870192835292841660608701908152600060808089018281529551636352813560e11b81529851881660048a0152925187166024890152925160448801525190931660648601529051909216608484015290829060a4908290733d4e44eb1374240ce5f1b871ab261cd16335b76a5af190811561243f5760009161251d575090565b906080823d6080116121e357816121ae608093836104dc565b60405163c56f84cf60e01b815290602090829060049082906001600160a01b03165afa90811561243f57600091612576575b5061221490612710926121eb565b90506020813d6020116125a2575b81612591602093836104dc565b810103126101175751612710612568565b3d9150612584565b604051639562364160e01b815290602090829060049082906001600160a01b03165afa90811561243f5760049160209160009161261c575b5060405163c56f84cf60e01b815292839182906001600160a01b03165afa90811561243f57600091612576575061221490612710926121eb565b6126339150823d8411610a9357610a8481836104dc565b386125e256fea2646970667358221220be0bc7df41606b04f4338db0f4ec7ef998f576d1e513b2496c6c3518b56f0e1d64736f6c634300081b00330000000000000000000000009a142b38d483d150db2c115b4efa5ca37ac57ebc0000000000000000000000006a22946fb71c06295373254ebc76989ee07d4f71