0 txs
1 call
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
0x6080346100f357601f61257b38819003918201601f19168301916001600160401b038311848410176100f85780849260409485528339810103126100f3576100468161010e565b906001600160a01b039061005c9060200161010e565b169081156100dd57600080546001600160a01b031981168417825560405193916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36064600255600180546001600160a01b0319166001600160a01b039290921691909117905561245890816101238239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100f35756fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80630165dd27146103c25780635d78acf4146102ee57806364df049e146102c5578063715018a61461026c57806386f201ad146102125780638da5cb5b146101e9578063b8606eef146101cb578063d73792a9146101ae578063e521cb921461011c5763f2fde38b0361000e5734610117576020366003190112610117576100a7610431565b6100af6105ee565b6001600160a01b0316801561010157600080546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b3461011757602036600319011261011757610135610431565b61013d6105ee565b6001600160a01b03168015610169576bffffffffffffffffffffffff60a01b6001541617600155600080f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642070726f746f636f6c2066656520726563697069656e7400006044820152606490fd5b346101175760003660031901126101175760206040516127108152f35b34610117576000366003190112610117576020600254604051908152f35b34610117576000366003190112610117576000546040516001600160a01b039091168152602090f35b3461011757610140366003190112610117576006602160991b016001600160a01b0361023c610447565b160361025d57602061025561025036610516565b611239565b604051908152f35b6020610267611165565b610255565b34610117576000366003190112610117576102856105ee565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610117576000366003190112610117576001546040516001600160a01b039091168152602090f35b6101403660031901126101175760006006602160991b016001600160a01b03610315610447565b160361032f5750602061025561032a36610516565b6108f2565b6001600160a01b0361033f610447565b6040516323b872dd60e01b815233600482015230602482015260a43560448201529291602091849160649183918691165af19081156103b65750610389575b506020610267610639565b6103aa9060203d6020116103af575b6103a281836104dc565b8101906104fe565b61037e565b503d610398565b604051903d90823e3d90fd5b34610117576020366003190112610117576004356103de6105ee565b61271081116103ec57600255005b60405162461bcd60e51b815260206004820152601860248201527f496e76616c69642066656520626173697320706f696e747300000000000000006044820152606490fd5b600435906001600160a01b038216820361011757565b6004356001600160a01b03811681036101175790565b356001600160a01b03811681036101175790565b610140810190811067ffffffffffffffff82111761048e57604052565b634e487b7160e01b600052604160045260246000fd5b60e0810190811067ffffffffffffffff82111761048e57604052565b60a0810190811067ffffffffffffffff82111761048e57604052565b90601f8019910116810190811067ffffffffffffffff82111761048e57604052565b90816020910312610117575180151581036101175790565b610140906003190112610117576040519061053082610471565b816004356001600160a01b03811681036101175781526024356001600160a01b0381168103610117576020820152604435600681101561011757604082015260643560068110156101175760608201526084356001600160a01b038116810361011757608082015260a43560a082015260c43560c082015260e4356001600160a01b03811681036101175760e08201526101043562ffffff8116810361011757610100820152610124359062ffffff82168203610117576101200152565b6000546001600160a01b0316330361060257565b63118cdaa760e01b6000523360045260246000fd5b60068210156106235752565b634e487b7160e01b600052602160045260246000fd5b606435600681109081156101175760006004820361078e5750610140366003190112610117576040519161066c83610471565b6004356001600160a01b03811681036101175783526024356001600160a01b0381168103610117576020840152604435600681101561011757604084015215610117576060820152608435906001600160a01b0382168203610117576080810182905260a43560a082015260c43560c082015260e4356001600160a01b03811681036101175760e08201526101043562ffffff81168103610117576101008201526101243562ffffff81168103610117578161073091610120610735940152611752565b611d5a565b906001600160a01b0381168103610117578061078b9150826040519161075c6040846104dc565b601c83527f5472616e7366657220746f20726563697069656e74206661696c6564000000006020840152611ddc565b90565b9091506004356001600160a01b038116908181036108ee575060443560068110156108ee5760e435916001600160a01b038316918284036108ea57610104359062ffffff8216918281036108e6575060405161083f9390929161080c916107f485610471565b84526006602160991b01602085015260408401610617565b6004606083015230608083015260a43560a08301528560c08301528360e083015280610100830152610120820152611752565b6024356001600160a01b03811694908581036108e25750506084356001600160a01b0381169390848103610117575050610124359262ffffff8416938481036101175761078b96816108b99250506040519661089a88610471565b6006602160991b01885260208801526004604088015260608701610617565b608085015260a084015260c43560c084015260e0830152806101008301526101208201526108f2565b5080fd5b8680fd5b8480fd5b8280fd5b6000906060810180516006811015610b4c57600214610c6a5780516006811015610b4c57600314610b605780516006811015610b4c5715610ab957516006811015610aa5576001146109835760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420746f6b656e4f757420706f6f6c20747970650000000000006044820152606490fd5b60208181015160a083015160c0840151608085015160e090950151604051639562364160e01b8152919591946001600160a01b039182169492821692909186916004918391165afa938415610a9a5791610a1f959391602095938894610a6b575b50604051630a9f337360e11b81526001600160a01b039182166004820152921660248301526044820193909352938492839182906064820190565b03926001600160a01b03165af19182156103b65791610a3c575090565b90506020813d602011610a63575b81610a57602093836104dc565b81010312610117575190565b3d9150610a4a565b610a8c919450863d8811610a93575b610a8481836104dc565b810190611e90565b92386109e4565b503d610a7a565b6040513d88823e3d90fd5b634e487b7160e01b83526021600452602483fd5b5060208181015160a083015160c0840151608085015160e090950151604051630c533cdb60e01b81526001600160a01b039687166004820181905260248201529086166044820152610100606482015261010481018790526084810187905260a481019190915260c4810186905260e481018690529384926101249284929091165af19182156103b65791610a3c575090565b634e487b7160e01b84526021600452602484fd5b50602081015160a0820151608083015160c0909301519394936001600160a01b03938416938693610bf993911690610b9790611d5a565b9160405191610ba76060846104dc565b6002835260403660208501376006602160991b01610bc48461221d565b52610bce83612240565b5260405195869485938493637ff36ab560e01b855260048501526080602485015260848401906122d6565b9060448301524260648301520391734752ba5dbc23f44d87826276bf6fd6b1c372ad245af1908115610c5f5783610c38939492610c3c575b5050612240565b5190565b610c5892503d8091833e610c5081836104dc565b810190612250565b3880610c31565b6040513d85823e3d90fd5b506040810180516006811015610b4c57600403610e53575060018060a01b0360208201511660a082015160018060a01b0360808401511691610cbb60c062ffffff6101208701511695015192611d5a565b926006602160991b013b15610e4f57604051630d0e30db60e41b81528681600481886006602160991b015af18015610e4457610e30575b5060405194610d00866104a4565b6006602160991b018652602086019283526040860190815260608601918252608086019285845260a0870194855260c08701958887526040519063095ea7b360e01b8252732626664c2603336e57b271c5c0b26f421741e481600483015260248201526020816044818c6006602160991b015af18015610e25579062ffffff939291610e08575b506040516304e45aaf60e01b815297516001600160a01b0390811660048a0152905181166024890152905191909116604487015290518116606486015290516084850152905160a484015290511660c482015260208160e48185732626664c2603336e57b271c5c0b26f421741e4815af19182156103b65791610a3c575090565b610e209060203d6020116103af576103a281836104dc565b610d87565b6040513d8b823e3d90fd5b86610e3d919792976104dc565b9438610cf2565b6040513d89823e3d90fd5b8580fd5b516006811015610aa5576005036110f25760018060a01b0360208201511660a082015160018060a01b0360808401511691610f1685610ea160c062ffffff6101208901511697015194611d5a565b60405190610eb06060836104dc565b6002825260403660208401376006602160991b01610ecd8361221d565b5273b928e5905872bda993a4ac054e1d129e658fadbd610eec83612240565b526040518080958194637ff36ab560e01b83528660048401526080602484015260848301906122d6565b3060448301524260648301520391734752ba5dbc23f44d87826276bf6fd6b1c372ad245af1908115610a9a5790610f549187916110d8575b50612240565b519260405194610f63866104a4565b73b928e5905872bda993a4ac054e1d129e658fadbd8652602086019283526040860190815260608601918252608086019285845260a0870194855260c08701958887526040519063095ea7b360e01b8252732626664c2603336e57b271c5c0b26f421741e481600483015260248201526020816044818c73b928e5905872bda993a4ac054e1d129e658fadbd5af18015610e25579062ffffff9392916110bb575b506040516304e45aaf60e01b815297516001600160a01b0390811660048a0152905181166024890152905191909116604487015290518116606486015290516084850152905160a484015290511660c482015260208160e48185732626664c2603336e57b271c5c0b26f421741e4815af19182156103b657809261108757505090565b9091506020823d6020116110b3575b816110a3602093836104dc565b810103126110b057505190565b80fd5b3d9150611096565b6110d39060203d6020116103af576103a281836104dc565b611004565b6110ec91503d8089833e610c5081836104dc565b38610f4e565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420746f6b656e496e20706f6f6c207479706520666f722057456044820152610a8960f31b6064820152608490fd5b9190820391821161114f57565b634e487b7160e01b600052601160045260246000fd5b60643560068110156101175760006004820361119957505061078b61118a6004611eaf565b61119381612203565b90611142565b6111a36004611eaf565b6024356001600160a01b03811692908381036108e25750506084356001600160a01b0381169190828103610117575060e4356001600160a01b03811691908281036101175750610124359262ffffff8416938481036101175761078b96816112149250506040519661089a88610471565b608085015260a084015260c43560c084015260e0830152806101008301526101208201525b60608101908151916006831015610623576002600093146114895780516006811015610b4c576003146113d25780516006811015610b4c571561138657516006811015610aa5576001146112cc5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420746f6b656e4f757420706f6f6c20747970650000000000006044820152606490fd5b60a0600180821b0360208301511691015160405191639562364160e01b8352602083600481845afa92831561137b57849361134d575b508161119360209361131393612393565b604051630c6b42fb60e11b8152600481019190915291829060249082906001600160a01b03165afa9182156103b657809261108757505090565b6113139193509161119381611370602095863d8811610a9357610a8481836104dc565b959350935050611302565b6040513d86823e3d90fd5b5060206113a660a0600180821b0383850151169301516111938185612313565b602460405180948193636c1f20d160e01b835260048301525afa9182156103b657809261108757505090565b5081611457916113f860a0600180829897981b0360208401511692015161119381612203565b604051916114076060846104dc565b6002835260403660208501376006602160991b016114248461221d565b5261142e83612240565b52604051938492839263d06ca61f60e01b845260048401526040602484015260448301906122d6565b0381734752ba5dbc23f44d87826276bf6fd6b1c372ad245afa908115610c5f5783610c38939492610c3c575050612240565b506040810180516006811015610b4c576004036115cb575060018060a01b0360208201511662ffffff6114cc8161010060a0860151950151169361119381612203565b92604051936114da856104c0565b6006602160991b0185526020850193845260408086019182526060860192835260808087018881529151636352813560e11b815296516001600160a01b0390811660048901529551861660248801529151604487015291519290921660648501525190911660848301528160a48185733d4e44eb1374240ce5f1b871ab261cd16335b76a5af19182156103b657809261157257505090565b9091506080823d6080116115c3575b8161158e608093836104dc565b810103126110b057815160208301519092906001600160a01b038116036108e2576040015163ffffffff8116036110b0575090565b3d9150611581565b516006811015610aa5576005036110f25760018060a01b036020820151166116558361160a62ffffff61010060a0870151960151169461119381612203565b604051906116196060836104dc565b6002825260403660208401376006602160991b016116368361221d565b5273b928e5905872bda993a4ac054e1d129e658fadbd61142e83612240565b0381734752ba5dbc23f44d87826276bf6fd6b1c372ad245afa90811561137b5762ffffff9161168a91869161173e5750612240565b519260405193611699856104c0565b73b928e5905872bda993a4ac054e1d129e658fadbd85526020850193845260408086019182526060860192835260808087018881529151636352813560e11b815296516001600160a01b0390811660048901529551861660248801529151604487015291519290921660648501525190911660848301528160a48185733d4e44eb1374240ce5f1b871ab261cd16335b76a5af19182156103b657809261157257505090565b6110ec91503d8088833e610c5081836104dc565b6000906040810180516006811015610b4c57600214611b1e5780516006811015610b4c576003146119f95780516006811015610b4c57156118ea57516006811015610aa5576001146117df5760405162461bcd60e51b8152602060048201526019602482015278496e76616c696420746f6b656e496e20706f6f6c207479706560381b6044820152606490fd5b805160a082015160e083015160c090930151604051639562364160e01b815290936001600160a01b039081169316602082600481845afa918215610a9a5786926118c9575b5060405163095ea7b360e01b81526001600160a01b03831660048201526024810184905290602090829060449082908a905af18015610a9a57608492602095949288926118ae575b50604051968795869463189fac3560e21b865230600487015260248601526044850152606484015260018060a01b03165af19182156103b65791610a3c575090565b6118c490873d89116103af576103a281836104dc565b61186c565b6118e391925060203d602011610a9357610a8481836104dc565b9038611824565b50805160a082015160e083015160c09093015160405163095ea7b360e01b81526001600160a01b0393841660048201819052602482018490529492939192919091169060208160448189895af18015610a9a576119dc575b5060405192639352c82560e01b84526004840152306024840152604483015260e060648301528360e483015283608483015260a48201528260c48201526020816101048186865af19283156103b657926119a6575b50906111938161078b93612313565b91506020823d6020116119d4575b816119c1602093836104dc565b8101031261011757905190611193611997565b3d91506119b4565b6119f49060203d6020116103af576103a281836104dc565b611942565b50805160a082015160c09092015160405193949392859283906020906001600160a01b0316611a296060886104dc565b600287526040368389013780611a3e8861221d565b526006602160991b01611a5088612240565b5260446040518094819363095ea7b360e01b8352734752ba5dbc23f44d87826276bf6fd6b1c372ad2460048401528760248401525af1801561137b57611b01575b50611ac260405194859384936318cbafe560e01b85526004850152602484015260a0604484015260a48301906122d6565b306064830152426084830152038183734752ba5dbc23f44d87826276bf6fd6b1c372ad245af1908115610c5f5783610c38939492610c3c575050612240565b611b199060203d6020116103af576103a281836104dc565b611a91565b509060018060a01b0382511660a08301519060c062ffffff610100860151169401519060405194611b4e866104a4565b81865260208601906006602160991b01825260408701908152606087019130835286602060808a019588875260a08b01978852604460c08c0199848b52604051948593849263095ea7b360e01b8452732626664c2603336e57b271c5c0b26f421741e481600485015260248401525af18015611d4f579062ffffff939291611d32575b506040516304e45aaf60e01b815298516001600160a01b0390811660048b01529051811660248a0152905191909116604488015290518116606487015290516084860152905160a485015290511660c483015260208260e48184732626664c2603336e57b271c5c0b26f421741e4815af1918215611d25578192611cf1575b506006602160991b013b156110b057604051632e1a7d4d60e01b8152600481018390528181602481836006602160991b015af18015611ce6578290611cd6575b9050505061078b604051611ca56040826104dc565b601e81527f4661696c656420746f207472616e736665722073656c6c206f7574707574000060208201528230611ddc565b611cdf916104dc565b3881611c90565b6040513d84823e3d90fd5b9091506020813d602011611d1d575b81611d0d602093836104dc565b810103126108e257519038611c50565b3d9150611d00565b50604051903d90823e3d90fd5b611d4a9060203d6020116103af576103a281836104dc565b611bd1565b6040513d8a823e3d90fd5b8015611dd65780611d6d61078b92612203565b600154604051919291611dd19184906001600160a01b0316611d906060846104dc565b602983527f5472616e7366657220746f2070726f746f636f6c2066656520726563697069656020840152681b9d0819985a5b195960ba1b6040840152611ddc565b611142565b50600090565b81611de657505050565b600080809381935af13d15611e8b573d67ffffffffffffffff811161048e5760405190611e1d601f8201601f1916602001836104dc565b8152600060203d92013e5b15611e305750565b6040519062461bcd60e51b8252602060048301528181519182602483015260005b838110611e735750508160006044809484010152601f80199101168101030190fd5b60208282018101516044878401015285935001611e51565b611e28565b9081602091031261011757516001600160a01b03811681036101175790565b604081013560068110156101175760006002821461211a575060006003821461209957506000811561200d5750600160009114611f275760405162461bcd60e51b8152602060048201526019602482015278496e76616c696420746f6b656e496e20706f6f6c207479706560381b6044820152606490fd5b611f308261045d565b604051639562364160e01b815290926020826004816001600160a01b0388165afa918215610c5f578392611fe5575b50604051635994866d60e01b815260a09190910135600482015290602090829060249082906001600160a01b03165afa9182156103b6578092611fac575b50506111938161078b93612393565b9091506020823d602011611fdd575b81611fc8602093836104dc565b810103126110b057505161119361078b611f9d565b3d9150611fbb565b6020919250602461200460a092843d8611610a9357610a8481836104dc565b93925050611f5f565b90506120188261045d565b60405163810a94d760e01b815260a0909301356004840152916020816024816001600160a01b0387165afa9182156103b6578092612060575b50506111938161078b93612313565b9091506020823d602011612091575b8161207c602093836104dc565b810103126110b057505161119361078b612051565b3d915061206f565b82915060a06120a982959461045d565b92604051936120b96060866104dc565b6002855260403660208701376120ce8561221d565b6000196001851b0190911690526006602160991b016120ec85612240565b52611457604051948593849363d06ca61f60e01b8552013560048401526040602484015260448301906122d6565b9190506121268161045d565b9061010081013562ffffff811681036121ec576040519262ffffff919061214c856104c0565b6001600160a01b0390811685526006602160991b016020860190815260a0949094013560408087019182529284166060870190815260808088018981529451636352813560e11b815297518416600489015295518316602488015290516044870152519092166064850152511660848301528160a48185733d4e44eb1374240ce5f1b871ab261cd16335b76a5af19182156103b657809261157257505090565b8380fd5b8181029291811591840414171561114f57565b8015611dd65761221961271091600254906121f0565b0490565b80511561222a5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101561222a5760400190565b6020818303126101175780519067ffffffffffffffff821161011757019080601f830112156101175781519167ffffffffffffffff831161048e578260051b9060208201936122a260405195866104dc565b845260208085019282010192831161011757602001905b8282106122c65750505090565b81518152602091820191016122b9565b906020808351928381520192019060005b8181106122f45750505090565b82516001600160a01b03168452602093840193909201916001016122e7565b60405163c56f84cf60e01b815290602090829060049082906001600160a01b03165afa90811561238757600091612353575b5061221990612710926121f0565b90506020813d60201161237f575b8161236e602093836104dc565b810103126101175751612710612345565b3d9150612361565b6040513d6000823e3d90fd5b604051639562364160e01b815290602090829060049082906001600160a01b03165afa90811561238757600491602091600091612405575b5060405163c56f84cf60e01b815292839182906001600160a01b03165afa90811561238757600091612353575061221990612710926121f0565b61241c9150823d8411610a9357610a8481836104dc565b386123cb56fea2646970667358221220a36f57ffa59d01500ce2859fc8404477ab09678e3080b8954c32ea8fd32ac5f064736f6c634300081b00330000000000000000000000009a142b38d483d150db2c115b4efa5ca37ac57ebc0000000000000000000000006a22946fb71c06295373254ebc76989ee07d4f71