0 txs
11 calls
constructor
constructor()
functions
feesAccrued
viewfunction feesAccrued(address vault) view returns (uint256)
feesDistributed
viewfunction feesDistributed(address vault) view returns (uint256)
feeSplitForVaultIsActive
viewfunction feeSplitForVaultIsActive(address vault) view returns (bool)
getFeeFractionForSecondaryRecipient
viewfunction getFeeFractionForSecondaryRecipient(address vault) view returns (uint32)
getFeeType
viewfunction getFeeType() view returns (uint8)
getMainRecipient
viewfunction getMainRecipient(address vault) view returns (address)
getSecondaryRecipient
viewfunction getSecondaryRecipient(address vault) view returns (address)
hasValidFeeSplit
viewfunction hasValidFeeSplit(address vault) view returns (bool)
owner
viewfunction owner() view returns (address)
distributeFees
nonpayablefunction distributeFees(address vault)
initialize
nonpayablefunction initialize(address owner, uint8 feeType)
renounceOwnership
nonpayablefunction renounceOwnership()
rescueTokens
nonpayablefunction rescueTokens(address token)
setFeeFraction
nonpayablefunction setFeeFraction(address vault, uint32 newFeeFractionOfSecondaryRecipient)
setFeeSplit
nonpayablefunction setFeeSplit(address vault, uint32 feeFractionOfSecondaryRecipient, address mainRecipient, address secondaryRecipient)
setMainRecipient
nonpayablefunction setMainRecipient(address vault, address newMainRecipient)
setSecondaryRecipient
nonpayablefunction setSecondaryRecipient(address vault, address secondaryRecipient)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
FeeFractionSet
event FeeFractionSet(address indexed vault, uint32 newFeeFraction)
FeesDistributed
event FeesDistributed(address indexed vault, uint256 fee1Amount, uint256 fee2Amount, address recipient1, address recipient2)
Initialized
event Initialized(uint64 version)
MainRecipientSet
event MainRecipientSet(address indexed vault, address newMainRecipient)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RegisterNewFeeSplit
event RegisterNewFeeSplit(address indexed vault, uint32 feeFractionOfSecondaryRecipient, address mainRecipient, address secondaryRecipient)
SecondaryRecipientSet
event SecondaryRecipientSet(address indexed vault, address newSecondaryRecipient)
TokensRescued
event TokensRescued(address indexed token, uint256 amount)
errors
FeeFractionOutOfBounds
error FeeFractionOutOfBounds()
InvalidFeeSplit
error InvalidFeeSplit(uint32 feeFractionOfSecondaryRecipient, address mainRecipient, address secondaryRecipient)
InvalidInitialization
error InvalidInitialization()
InvalidToken
error InvalidToken(address token)
NeitherOwnerNorVaultManager
error NeitherOwnerNorVaultManager()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
VaultInvalidOrWIthInvalidFeeSplit
error VaultInvalidOrWIthInvalidFeeSplit(address vault)
creation bytecode
0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611774806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610110575f3560e01c80637c22b1771161009e578063943b24b21161006e578063943b24b2146102395780639cca92381461024c5780639d54e0d61461025f578063f2fde38b14610287578063fbbbe47f1461029a575f5ffd5b80637c22b177146101f85780638da5cb5b1461020b5780639255bab6146102135780639413f25c14610226575f5ffd5b80633b587bdb116100e45780633b587bdb1461017e5780635dc724911461019f578063613bd4bf146101b25780636649c86b146101dd578063715018a6146101f0575f5ffd5b8062ae3bf814610114578063012f56a0146101295780630f889993146101515780632d76064214610164575b5f5ffd5b610127610122366004611560565b6102ad565b005b61013c610137366004611560565b6103c2565b60405190151581526020015b60405180910390f35b61012761015f36600461158c565b610444565b61016c610700565b60405160ff9091168152602001610148565b61019161018c366004611560565b610712565b604051908152602001610148565b6101276101ad3660046115dd565b61073c565b6101c56101c0366004611560565b610864565b6040516001600160a01b039091168152602001610148565b61013c6101eb366004611560565b610899565b6101276108d1565b6101c5610206366004611560565b6108e4565b6101c5610912565b61012761022136600461160e565b610940565b610127610234366004611560565b610a4f565b610127610247366004611636565b610b22565b61019161025a366004611560565b610c54565b61027261026d366004611560565b610cc2565b60405163ffffffff9091168152602001610148565b610127610295366004611560565b610cf2565b6101276102a836600461160e565b610d2c565b6102b5610f14565b6001600160a01b03811615806102cf57506102cf81610899565b156102fd5760405163961c9a4f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610341573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103659190611670565b905061037b6001600160a01b0383163383610f46565b816001600160a01b03167f68f67de89e96b13a3ea058af5fd44cc125efceb528482d539c7b43db2faa066e826040516103b691815260200190565b60405180910390a25050565b5f5f6103cc610f9d565b6001600160a01b038481165f908152600192830160209081526040918290208251608081018452815463ffffffff8116808352600160201b90910486169382018490529190950154938416928501839052600160a01b90930460ff161515606085015292935061043c9290610fc1565b159392505050565b61044c610f14565b5f610455610f9d565b6001600160a01b038681165f908152600192830160209081526040918290208251608081018452815463ffffffff81168252600160201b90048516928101929092529093015491821690830152600160a01b900460ff161515606082015290506104c0848484611054565b8060600151156104d9576104d485826110c5565b61052e565b6040805163ffffffff861681526001600160a01b038581166020830152848116828401529151918716917f99f78d8116c5edb11c8905413ba5d3d947517504f8aa0c241fb92cb40781b2e69181900360600190a25b60405180608001604052808563ffffffff168152602001846001600160a01b03168152602001836001600160a01b0316815260200160011515815250610572610f9d565b6001600160a01b038088165f9081526001928301602090815260409182902085518154928701518516600160201b026001600160c01b031990931663ffffffff91821617929092178155918501519190930180546060909501511515600160a01b026001600160a81b0319909516919092161792909217909155815185821691161461063d5760405163ffffffff851681526001600160a01b038616907fc592715aad983b3e77f921741ae8ff9ec8a1a9e9eaec0721da5fd114a62936e49060200160405180910390a25b80602001516001600160a01b0316836001600160a01b03161461069b576040516001600160a01b0384811682528616907fe0b37c23eedb70ada8bb0869be8c4e0dbf8ba5d6f902d8881ebce775249348239060200160405180910390a25b80604001516001600160a01b0316826001600160a01b0316146106f9576040516001600160a01b0383811682528616907f48673a4eb73df4ed6e57136f5080af21b728bd7247ad82481129a50b60c851799060200160405180910390a25b5050505050565b5f610709610f9d565b5460ff16919050565b5f61071b610f9d565b6001600160a01b039092165f90815260029290920160205250604090205490565b610744610f14565b815f61074e610f9d565b6001600160a01b038381165f9081526001928301602090815260408083208151608081018352815463ffffffff81168252600160201b90048616938101939093529094015492831693810193909352600160a01b90910460ff16151560608301529091506107ba610f9d565b6001600160a01b038087165f9081526001928301602052604090208054928101549093506107f5928792600160201b90910481169116611054565b805463ffffffff191663ffffffff851690811782556040519081526001600160a01b038616907fc592715aad983b3e77f921741ae8ff9ec8a1a9e9eaec0721da5fd114a62936e4906020015b60405180910390a25080606001511561085e5761085e82826110c5565b50505050565b5f61086d610f9d565b6001600160a01b039283165f9081526001919091016020526040902054600160201b9004909116919050565b5f6108a2610f9d565b6001600160a01b039092165f9081526001928301602052604090209091015460ff600160a01b90910416919050565b6108d9610f14565b6108e25f6111e9565b565b5f6108ed610f9d565b6001600160a01b039283165f9081526001918201602052604090200154909116919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b610948610f14565b815f610952610f9d565b6001600160a01b038381165f9081526001928301602090815260408083208151608081018352815463ffffffff81168252600160201b90048616938101939093529094015492831693810193909352600160a01b90910460ff16151560608301529091506109be610f9d565b6001600160a01b038087165f908152600192909201602052604090912080549092506109fa9163ffffffff821691600160201b90041686611054565b6001810180546001600160a01b0319166001600160a01b03868116918217909255604051908152908616907f48673a4eb73df4ed6e57136f5080af21b728bd7247ad82481129a50b60c8517990602001610841565b610a57611259565b5f610a60610f9d565b6001600160a01b038381165f908152600192830160209081526040918290208251608081018452815463ffffffff81168252600160201b90048516928101929092529093015491821690830152600160a01b900460ff16151560608201819052909150610aeb57604051637d33d5fb60e11b81526001600160a01b03831660048201526024016102f4565b610af582826110c5565b50610b1f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610b675750825b90505f8267ffffffffffffffff166001148015610b835750303b155b905081158015610b91575080155b15610baf5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610bd957845460ff60401b1916600160401b1785555b610be2876112c9565b610bea6112d1565b85610bf3610f9d565b805460ff191660ff929092169190911790558315610c4b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610c98573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbc9190611670565b92915050565b5f610ccb610f9d565b6001600160a01b039092165f90815260019290920160205250604090205463ffffffff1690565b610cfa610f14565b6001600160a01b038116610d2357604051631e4fbdf760e01b81525f60048201526024016102f4565b610b1f816111e9565b815f610d36610f9d565b6001600160a01b038381165f908152600192830160209081526040918290208251608081018452815463ffffffff81168252600160201b90048516928101929092529093015491821690830152600160a01b900460ff16151560608201529050610d9e610912565b6001600160a01b0316336001600160a01b031614158015610e5957506001600160a01b0384166391d148547f7d6d8b9b446e2d961101099c17de9758016a0de4ad2bd37ba4da59dcd2a1e69a336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610e33573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e579190611687565b155b15610e775760405163fb01cd9560e01b815260040160405180910390fd5b5f610e80610f9d565b6001600160a01b038087165f908152600192830160205260409020805492810154909350610eb79263ffffffff1691879116611054565b8054640100000000600160c01b031916600160201b6001600160a01b03868116918202929092178355604051908152908616907fe0b37c23eedb70ada8bb0869be8c4e0dbf8ba5d6f902d8881ebce7752493482390602001610841565b33610f1d610912565b6001600160a01b0316146108e25760405163118cdaa760e01b81523360048201526024016102f4565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610f989084906112d9565b505050565b7fe59e1996f78369fdb0652cbe6c7621b6c36d906f53d5d65910abbe196af0850090565b5f806001600160a01b038416301480610ff457506001600160a01b038416158015610ff4575063ffffffff851661271014155b90505f6001600160a01b03841630148061102557506001600160a01b038416158015611025575063ffffffff861615155b90506001600160a01b0385811690851614828061103f5750815b806110475750805b93505050505b9392505050565b61271063ffffffff8416111561107d57604051632645caeb60e11b815260040160405180910390fd5b611088838383610fc1565b15610f985760405163345154e360e11b815263ffffffff841660048201526001600160a01b038084166024830152821660448201526064016102f4565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611109573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112d9190611670565b90508015610f98575f5f611142838686611345565b91509150846001600160a01b03167fd3e86162567acd321878efbb069889ac7a58dac740401a4c3ddf39bc460d55038383876020015188604001516040516111af949392919093845260208401929092526001600160a01b03908116604084015216606082015260800190565b60405180910390a2826111c0610f9d565b6001600160a01b0387165f90815260029190910160205260409020805490910190555050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161129d57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b610cfa6113be565b6112a36113be565b5f5f60205f8451602086015f885af1806112f8576040513d5f823e3d81fd5b50505f513d9150811561130f57806001141561131c565b6001600160a01b0384163b155b1561085e57604051635274afe760e01b81526001600160a01b03851660048201526024016102f4565b80515f90819061136d90869061135d906127106116ba565b63ffffffff166127106001611407565b9150811561138f57602083015161138f906001600160a01b0386169084610f46565b818511156113b657506040820151818503906113b6906001600160a01b0386169083610f46565b935093915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108e257604051631afcd79f60e31b815260040160405180910390fd5b5f61143461141483611452565b801561142f57505f848061142a5761142a6116d6565b868809115b151590565b61143f86868661147e565b61144991906116ea565b95945050505050565b5f6002826003811115611467576114676116fd565b6114719190611711565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f036114b2578382816114a8576114a86116d6565b049250505061104d565b8084116114c9576114c96003851502601118611534565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b634e487b715f52806020526024601cfd5b80356001600160a01b038116811461155b575f5ffd5b919050565b5f60208284031215611570575f5ffd5b61104d82611545565b803563ffffffff8116811461155b575f5ffd5b5f5f5f5f6080858703121561159f575f5ffd5b6115a885611545565b93506115b660208601611579565b92506115c460408601611545565b91506115d260608601611545565b905092959194509250565b5f5f604083850312156115ee575f5ffd5b6115f783611545565b915061160560208401611579565b90509250929050565b5f5f6040838503121561161f575f5ffd5b61162883611545565b915061160560208401611545565b5f5f60408385031215611647575f5ffd5b61165083611545565b9150602083013560ff81168114611665575f5ffd5b809150509250929050565b5f60208284031215611680575f5ffd5b5051919050565b5f60208284031215611697575f5ffd5b8151801515811461104d575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b63ffffffff8281168282160390811115610cbc57610cbc6116a6565b634e487b7160e01b5f52601260045260245ffd5b80820180821115610cbc57610cbc6116a6565b634e487b7160e01b5f52602160045260245ffd5b5f60ff83168061172f57634e487b7160e01b5f52601260045260245ffd5b8060ff8416069150509291505056fea26469706673582212205416a2b4ef70c96f4b70a50bc31d4a30aef9d9c59b71e435cd36f1836a9bbe5664736f6c634300081b0033