0 txs
2 calls
constructor
constructor()
functions
calculateFees
viewfunction calculateFees(address pair, uint256 amount) view returns (address[] recipients, uint256[] amounts, uint256 totalAmount)
getConfig
viewfunction getConfig(address pair) view returns (tuple config)
owner
viewfunction owner() view returns (address)
pairConfigs
viewfunction pairConfigs(address) view returns (address feeRecipient, uint16 pairFeeBps, uint16 protocolFeeBps)
protocolFeeRecipient
viewfunction protocolFeeRecipient() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
initialize
nonpayablefunction initialize(address _owner, address _protocolFeeRecipient)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
registerPair
nonpayablefunction registerPair(address feeRecipient, uint16 pairFeeBps, uint16 protocolFeeBps)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updatePairFees
nonpayablefunction updatePairFees(address pair, uint16 pairFeeBps, uint16 protocolFeeBps)
updatePairRecipient
nonpayablefunction updatePairRecipient(address pair, address newFeeRecipient)
updateProtocolRecipient
nonpayablefunction updateProtocolRecipient(address newFeeRecipient)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PairFeesUpdated
event PairFeesUpdated(address indexed pair, uint16 pairFeeBps, uint16 protocolFeeBps)
PairRecipientUpdated
event PairRecipientUpdated(address indexed pair, address indexed newRecipient)
PairRegistered
event PairRegistered(address indexed pair, address indexed feeRecipient, uint16 pairFeeBps, uint16 protocolFeeBps)
ProtocolRecipientUpdated
event ProtocolRecipientUpdated(address indexed newRecipient)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
FeesExceedMaximum
error FeesExceedMaximum()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
NotPairOwner
error NotPairOwner()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PairAlreadyRegistered
error PairAlreadyRegistered()
PairNotRegistered
error PairNotRegistered()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
ZeroAddress
error ZeroAddress()
creation bytecode
0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516116096100f95f395f8181610cc701528181610cf00152610e3401526116095ff3fe6080604052600436106100ef575f3560e01c80638824986d11610087578063ad3cb1cc11610057578063ad3cb1cc14610300578063bb521e381461033d578063e48a5f7b1461035c578063f2fde38b1461040e575f5ffd5b80638824986d146102045780638da5cb5b146102795780639b5e13c8146102b5578063ac9650d8146102d4575f5ffd5b806352d1902d116100c257806352d1902d1461016557806364df049e1461018c578063715018a6146101c257806379350a8f146101d6575f5ffd5b80632aa5ed12146100f3578063485cc95514610114578063490febf2146101335780634f1ef28614610152575b5f5ffd5b3480156100fe575f5ffd5b5061011261010d36600461112e565b61042d565b005b34801561011f575f5ffd5b5061011261012e366004611170565b61051e565b34801561013e575f5ffd5b5061011261014d36600461112e565b610676565b6101126101603660046111bb565b610788565b348015610170575f5ffd5b506101796107a7565b6040519081526020015b60405180910390f35b348015610197575f5ffd5b505f546101aa906001600160a01b031681565b6040516001600160a01b039091168152602001610183565b3480156101cd575f5ffd5b506101126107c2565b3480156101e1575f5ffd5b506101f56101f0366004611281565b6107d5565b604051610183939291906112ab565b34801561020f575f5ffd5b5061024f61021e36600461133c565b60016020525f90815260409020546001600160a01b0381169061ffff600160a01b8204811691600160b01b90041683565b604080516001600160a01b03909416845261ffff9283166020850152911690820152606001610183565b348015610284575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166101aa565b3480156102c0575f5ffd5b506101126102cf366004611170565b61096a565b3480156102df575f5ffd5b506102f36102ee366004611357565b610aa9565b60405161018391906113f6565b34801561030b575f5ffd5b50610330604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101839190611459565b348015610348575f5ffd5b5061011261035736600461133c565b610b90565b348015610367575f5ffd5b506103d761037636600461133c565b60408051606080820183525f80835260208084018290529284018190526001600160a01b039485168152600183528390208351918201845254938416815261ffff600160a01b8504811692820192909252600160b01b909304169082015290565b6040805182516001600160a01b0316815260208084015161ffff908116918301919091529282015190921690820152606001610183565b348015610419575f5ffd5b5061011261042836600461133c565b610c06565b610435610c48565b611388610442828461147f565b61ffff16111561046557604051633338c07160e11b815260040160405180910390fd5b6001600160a01b038084165f908152600160205260409020805490911661049f57604051630cf5f8a960e21b815260040160405180910390fd5b805463ffffffff60a01b1916600160a01b61ffff85811691820261ffff60b01b191692909217600160b01b9285169283021783556040805191825260208201929092526001600160a01b038616917f7e646d8a40e9465173b2fd466bf444190664c7f06336d5f935c4af9fe53a320f910160405180910390a250505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156105635750825b90505f8267ffffffffffffffff16600114801561057f5750303b155b90508115801561058d575080155b156105ab5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105d557845460ff60401b1916600160401b1785555b6001600160a01b0386166105fc5760405163d92e233d60e01b815260040160405180910390fd5b61060587610ca3565b61060d610cb4565b5f80546001600160a01b0319166001600160a01b038816179055831561066d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6001600160a01b03831661069d5760405163d92e233d60e01b815260040160405180910390fd5b6113886106aa828461147f565b61ffff1611156106cd57604051633338c07160e11b815260040160405180910390fd5b335f90815260016020526040902080546001600160a01b0316156107045760405163cb4c86e560e01b815260040160405180910390fd5b80546001600160a01b0385166001600160b01b03199091168117600160a01b61ffff8681169182029290921761ffff60b01b1916600160b01b92861692830217845560408051918252602082019290925233917f196741a8cd17852cb82932cb9c9d13423dbdb99592804a51fa73b86f7402cf80910160405180910390a350505050565b610790610cbc565b61079982610d60565b6107a38282610d68565b5050565b5f6107b0610e29565b505f5160206115b45f395f51905f5290565b6107ca610c48565b6107d35f610e72565b565b6001600160a01b038083165f9081526001602052604081208054606093849392911661081457604051630cf5f8a960e21b815260040160405180910390fd5b80545f906127109061083190600160a01b900461ffff1688611499565b61083b91906114b0565b82549091505f906127109061085b90600160b01b900461ffff1689611499565b61086591906114b0565b604080516002808252606082018352929350919060208301908036833750506040805160028082526060820183529399509291506020830190803683375050845488519297506001600160a01b0316918891505f906108c6576108c66114cf565b6001600160a01b0392831660209182029290920101525f548751911690879060019081106108f6576108f66114cf565b60200260200101906001600160a01b031690816001600160a01b03168152505081855f81518110610929576109296114cf565b6020026020010181815250508085600181518110610949576109496114cf565b602090810291909101015261095e81836114e3565b93505050509250925092565b816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ca91906114f6565b6001600160a01b0316336001600160a01b0316146109fb57604051630ebd2a9160e31b815260040160405180910390fd5b6001600160a01b038116610a225760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038083165f9081526001602052604090208054909116610a5c57604051630cf5f8a960e21b815260040160405180910390fd5b80546001600160a01b0319166001600160a01b038381169182178355604051908516907fd840b95ca75048f33c915ba94c65c957456e08ccb74d7ce5e74e173ee99dea33905f90a3505050565b604080515f8152602081019091526060908267ffffffffffffffff811115610ad357610ad36111a7565b604051908082528060200260200182016040528015610b0657816020015b6060815260200190600190039081610af15790505b5091505f5b83811015610b8757610b6230868684818110610b2957610b296114cf565b9050602002810190610b3b9190611511565b85604051602001610b4e93929190611572565b604051602081830303815290604052610ee2565b838281518110610b7457610b746114cf565b6020908102919091010152600101610b0b565b50505b92915050565b610b98610c48565b6001600160a01b038116610bbf5760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038316908117825560405190917f3411a9517742fa0c5aa29cd6aba5cbc665ffae0aadaec1d9f0f8df1c35806e1891a250565b610c0e610c48565b6001600160a01b038116610c3c57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610c4581610e72565b50565b33610c7a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146107d35760405163118cdaa760e01b8152336004820152602401610c33565b610cab610f54565b610c4581610f9d565b6107d3610f54565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610d4257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d365f5160206115b45f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156107d35760405163703e46dd60e11b815260040160405180910390fd5b610c45610c48565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610dc2575060408051601f3d908101601f19168201909252610dbf91810190611591565b60015b610dea57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610c33565b5f5160206115b45f395f51905f528114610e1a57604051632a87526960e21b815260048101829052602401610c33565b610e248383610fa5565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d35760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b60605f5f846001600160a01b031684604051610efe91906115a8565b5f60405180830381855af49150503d805f8114610f36576040519150601f19603f3d011682016040523d82523d5f602084013e610f3b565b606091505b5091509150610f4b858383610ffa565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166107d357604051631afcd79f60e31b815260040160405180910390fd5b610c0e610f54565b610fae82611059565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115610ff257610e248282610ee2565b6107a36110bc565b60608261100f5761100a826110db565b611052565b815115801561102657506001600160a01b0384163b155b1561104f57604051639996b31560e01b81526001600160a01b0385166004820152602401610c33565b50805b9392505050565b806001600160a01b03163b5f0361108e57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610c33565b5f5160206115b45f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b34156107d35760405163b398979f60e01b815260040160405180910390fd5b8051156110eb5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b0381168114610c45575f5ffd5b803561ffff81168114611129575f5ffd5b919050565b5f5f5f60608486031215611140575f5ffd5b833561114b81611104565b925061115960208501611118565b915061116760408501611118565b90509250925092565b5f5f60408385031215611181575f5ffd5b823561118c81611104565b9150602083013561119c81611104565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156111cc575f5ffd5b82356111d781611104565b9150602083013567ffffffffffffffff8111156111f2575f5ffd5b8301601f81018513611202575f5ffd5b803567ffffffffffffffff81111561121c5761121c6111a7565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561124b5761124b6111a7565b604052818152828201602001871015611262575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f60408385031215611292575f5ffd5b823561129d81611104565b946020939093013593505050565b606080825284519082018190525f9060208601906080840190835b818110156112ed5783516001600160a01b03168352602093840193909201916001016112c6565b5050838103602080860191909152865180835291810192508601905f5b8181101561132857825184526020938401939092019160010161130a565b505050604092909201929092529392505050565b5f6020828403121561134c575f5ffd5b813561105281611104565b5f5f60208385031215611368575f5ffd5b823567ffffffffffffffff81111561137e575f5ffd5b8301601f8101851361138e575f5ffd5b803567ffffffffffffffff8111156113a4575f5ffd5b8560208260051b84010111156113b8575f5ffd5b6020919091019590945092505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561144d57603f198786030184526114388583516113c8565b9450602093840193919091019060010161141c565b50929695505050505050565b602081525f61105260208301846113c8565b634e487b7160e01b5f52601160045260245ffd5b61ffff8181168382160190811115610b8a57610b8a61146b565b8082028115828204841417610b8a57610b8a61146b565b5f826114ca57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115610b8a57610b8a61146b565b5f60208284031215611506575f5ffd5b815161105281611104565b5f5f8335601e19843603018112611526575f5ffd5b83018035915067ffffffffffffffff821115611540575f5ffd5b602001915036819003821315611554575f5ffd5b9250929050565b5f81518060208401855e5f93019283525090919050565b828482375f8382015f8152611587818561155b565b9695505050505050565b5f602082840312156115a1575f5ffd5b5051919050565b5f611052828461155b56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212200e32efe0f42e341cee3394fd452baec4f5a67d3a783627f4144121995a207fdd64736f6c634300081c0033