0 txs
2 calls
constructor
constructor()
functions
epochRewardReceived
viewfunction epochRewardReceived(uint128 wTime) view returns (bool)
esFctr
viewfunction esFctr() view returns (address)
factorScale
viewfunction factorScale() view returns (address)
getAllActiveVaults
viewfunction getAllActiveVaults() view returns (address[])
isVaultActive
viewfunction isVaultActive(address vault) view returns (bool)
owner
viewfunction owner() view returns (address)
rewardData
viewfunction rewardData(address vault) view returns (uint128 fctrPerSec, uint128, uint128, uint128)
addFactory
nonpayablefunction addFactory(address _factory)
addVault
nonpayablefunction addVault(address _vault)
addVaultByFactory
nonpayablefunction addVaultByFactory(address _vault)
fundEsFctr
nonpayablefunction fundEsFctr(uint256 amount)
initialize
nonpayablefunction initialize(address _esFctr, address _factorScale)
redeemVaultReward
nonpayablefunction redeemVaultReward()
removeFactory
nonpayablefunction removeFactory(address _factory)
removeVault
nonpayablefunction removeVault(address _vault)
renounceOwnership
nonpayablefunction renounceOwnership()
setEsFctr
nonpayablefunction setEsFctr(address newEsFctr)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateVotingResults
nonpayablefunction updateVotingResults(uint128 wTime, address[] vaults, uint256[] fctrAmounts)
withdrawEsFctr
nonpayablefunction withdrawEsFctr(uint256 amount)
events
AddFactory
event AddFactory(address vault)
AddVault
event AddVault(address indexed vault)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReceiveVotingResults
event ReceiveVotingResults(uint128 indexed wTime, address[] vaults, uint256[] fctrAmounts)
RemoveFactory
event RemoveFactory(address vault)
RemoveVault
event RemoveVault(address indexed vault)
SetEsFctr
event SetEsFctr(address indexed oldEsFctr, address indexed newEsFctr)
UpdateVaultReward
event UpdateVaultReward(address indexed vault, uint256 fctrPerSec, uint256 incentiveEndsAt)
VaultClaimReward
event VaultClaimReward(address indexed vault, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ArrayLengthMismatch
error ArrayLengthMismatch()
FailedInnerCall
error FailedInnerCall()
GCNotActiveVault
error GCNotActiveVault(address vault)
GCNotFactorScale
error GCNotFactorScale(address caller)
InvalidInitialization
error InvalidInitialization()
NotFactory
error NotFactory()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608060405234801561000f575f80fd5b5061001861001d565b6100cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006d5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6117df806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c806348e5d9f8116100a9578063811338271161006e57806381133827146102a057806389783292146102a85780638da5cb5b146102b0578063ceb68c23146102e0578063f2fde38b146102f3575f80fd5b806348e5d9f8146102195780634b37c73f1461025f5780636832ffaa14610272578063715018a61461028557806372cbf8701461028d575f80fd5b8063256b5a02116100ef578063256b5a02146101ba57806329ce1ec5146101cd5780632ad5d2be146101e05780633b3c64f8146101f3578063485cc95514610206575f80fd5b8063049e0c8c1461012b57806305298a7a146101535780630c5aed57146101685780630f21d96b1461017b57806310d6ab8b146101a5575b5f80fd5b61013e610139366004611360565b610306565b60405190151581526020015b60405180910390f35b61015b610333565b60405161014a91906113bb565b61013e6101763660046113e3565b61034d565b5f5461018d906001600160a01b031681565b6040516001600160a01b03909116815260200161014a565b6101b86101b33660046113e3565b61035d565b005b6101b86101c83660046113e3565b6103d0565b6101b86101db3660046113e3565b610433565b6101b86101ee3660046113e3565b6104a4565b6101b86102013660046113fc565b6104ee565b6101b8610214366004611413565b610517565b61022c6102273660046113e3565b610649565b604080516001600160801b039586168152938516602085015291841691830191909152909116606082015260800161014a565b6101b861026d3660046113e3565b6106c7565b6101b86102803660046113fc565b61072d565b6101b861074d565b6101b861029b366004611514565b610760565b6101b86107a1565b61018d6108c7565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661018d565b6101b86102ee3660046113e3565b6108df565b6101b86103013660046113e3565b610973565b5f61030f6109ad565b6001600160801b039092165f90815260029290920160205250604090205460ff1690565b60606103486103406109ad565b6003016109d1565b905090565b5f610357826109e4565b92915050565b6103656109fa565b5f61036e6109ad565b546001600160a01b03169050816103836109ad565b80546001600160a01b0319166001600160a01b03928316179055604051838216918316907f0e9a4164ed3bb1409f6c3296c6d76475938fd859545159559122b5d6d81802dd905f90a35050565b6103d86109fa565b5f6103e16109ad565b90506103f06003820183610a55565b6103fc576103fc6115df565b6040516001600160a01b038316907fa6b2cf3908b4193cc3704faa803c2ad050d6045e7529d995a6884434f7b8a22a905f90a25050565b61043b6109fa565b5f6104446109ad565b6001600160a01b0383165f818152600583016020908152604091829020805460ff1916600117905590519182529192507f5a8fb443d09cf1426e80f80dd509757d71d4687674ab4adad906c5e2b6e1e62c91015b60405180910390a15050565b5f6104ad6109ad565b335f90815260058201602052604090205490915060ff166104e157604051631966391b60e11b815260040160405180910390fd5b6103f06003820183610a55565b6104f66109fa565b61051433826105036109ad565b546001600160a01b03169190610a69565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561055c5750825b90505f8267ffffffffffffffff1660011480156105785750303b155b905081158015610586575080155b156105a45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105ce57845460ff60401b1916600160401b1785555b6105d733610ac8565b6105e087610ad9565b5f80546001600160a01b0319166001600160a01b038816179055831561064057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f805f805f6106566109ad565b6001600160a01b0387165f90815260019182016020908152604091829020825160808101845281546001600160801b03808216808452600160801b92839004821695840186905293909601548087169583018690520490941660609094018490529750955093509150509193509193565b6106cf6109fa565b5f6106d86109ad565b6001600160a01b0383165f818152600583016020908152604091829020805460ff1916905590519182529192507f3d4e7057f9f992c8d86344002642adf5d5cd33816b302134e7ef5e0f045a6e789101610498565b61051433308361073b6109ad565b546001600160a01b0316929190610b0b565b6107556109fa565b61075e5f610b4a565b565b5f546001600160a01b0316331461079157604051637773ec6d60e11b81523360048201526024015b60405180910390fd5b61079c838383610bba565b505050565b336107ab816109e4565b6107d357604051638c57c7e360e01b81526001600160a01b0382166004820152602401610788565b5f6107dc6109ad565b90506107e782610d89565b6001600160a01b0383165f908152600183810160209081526040928390208451918501516001600160801b03928316600160801b9184168202178083559486015160609096015195831695831681029590951792019190915591900416801561087f576001600160a01b038084165f908152600184016020526040902080546001600160801b03169055825461087f91168483610a69565b826001600160a01b03167fe887ff80a48dfb352cdae3dc86f18b9774ea3d1b6a5bf1b03548880264cca55b826040516108ba91815260200190565b60405180910390a2505050565b5f6108d06109ad565b546001600160a01b0316919050565b6108e76109fa565b6108f0816109e4565b61091857604051638c57c7e360e01b81526001600160a01b0382166004820152602401610788565b5f6109216109ad565b90506109306003820183610e7b565b61093c5761093c6115df565b6040516001600160a01b038316907f8732b7fa557b5e15c2a836202ae53096017ea83a5d5eb1d7e967b4fa18877035905f90a25050565b61097b6109fa565b6001600160a01b0381166109a457604051631e4fbdf760e01b81525f6004820152602401610788565b61051481610b4a565b7fc4ed0572bdedf478a08c0843dbc12330e38ca1ed106d4797dd48f192844c1cf290565b60605f6109dd83610e8f565b9392505050565b5f610357826109f16109ad565b60030190610ee8565b33610a2c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461075e5760405163118cdaa760e01b8152336004820152602401610788565b5f6109dd836001600160a01b038416610f09565b6040516001600160a01b0383811660248301526044820183905261079c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610f55565b610ad0610fb6565b61051481610fff565b610ae1610fb6565b80610aea6109ad565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6040516001600160a01b038481166024830152838116604483015260648201839052610b449186918216906323b872dd90608401610a96565b50505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b8051825114610bdc5760405163512509d360e11b815260040160405180910390fd5b5f610be56109ad565b6001600160801b0385165f90815260028201602052604090205490915060ff1615610c105750505050565b6001600160801b0384165f9081526002820160205260408120805460ff19166001179055805b8451811015610ce0576001600160801b038016848281518110610c5b57610c5b6115f3565b60200260200101511115610c6d575f80fd5b838181518110610c7f57610c7f6115f3565b602002602001015182610c92919061161b565b9150610cd0858281518110610ca957610ca96115f3565b6020026020010151858381518110610cc357610cc36115f3565b6020026020010151611007565b610cd98161162e565b9050610c36565b5081546040516340c10f1960e01b8152306004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015610d29575f80fd5b505af1158015610d3b573d5f803e3d5ffd5b50505050846001600160801b03167fc2a95122fde68f77e93e8f353620af282e72051c5b744320e519fc07ed708ba38585604051610d7a929190611646565b60405180910390a25050505050565b604080516080810182525f808252602082018190529181018290526060810182905290610db46109ad565b6001600160a01b0384165f908152600191820160209081526040808320815160808101835281546001600160801b038082168352600160801b91829004811695830195909552919095015480841692860192909252900481166060840181905292935090914290911610610e2c578160600151610e2e565b425b9050816040015181610e40919061169b565b8251610e4c91906116bb565b82602001818151610e5d91906116e6565b6001600160801b039081169091529190911660408301525092915050565b5f6109dd836001600160a01b038416611159565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610edc57602002820191905f5260205f20905b815481526020019060010190808311610ec8575b50505050509050919050565b6001600160a01b0381165f90815260018301602052604081205415156109dd565b5f818152600183016020526040812054610f4e57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610357565b505f610357565b5f610f696001600160a01b03841683611243565b905080515f14158015610f8d575080806020019051810190610f8b9190611706565b155b1561079c57604051635274afe760e01b81526001600160a01b0384166004820152602401610788565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661075e57604051631afcd79f60e31b815260040160405180910390fd5b61097b610fb6565b5f61101183610d89565b90505f815f01518260400151836060015161102c919061169b565b61103691906116bb565b90505f61384061104685846116e6565b6110509190611725565b90506040518060800160405280826001600160801b0316815260200184602001516001600160801b03168152602001426001600160801b031681526020016138404261109c91906116e6565b6001600160801b031690526110af6109ad565b6001600160a01b0387165f818152600192830160209081526040918290208551918601516001600160801b03928316600160801b918416820217825592860151606090960151958216959091169091029390931792909101919091557f730583e39faa376790e086d6d43780ea67c7eba453fa10a8fd751d361603a5ee82611139613840426116e6565b604080516001600160801b03938416815292909116602083015201610d7a565b5f8181526001830160205260408120548015611233575f61117b600183611756565b85549091505f9061118e90600190611756565b90508082146111ed575f865f0182815481106111ac576111ac6115f3565b905f5260205f200154905080875f0184815481106111cc576111cc6115f3565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806111fe576111fe611769565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610357565b5f915050610357565b5092915050565b60606109dd83835f845f80856001600160a01b03168486604051611267919061177d565b5f6040518083038185875af1925050503d805f81146112a1576040519150601f19603f3d011682016040523d82523d5f602084013e6112a6565b606091505b50915091506112b68683836112c0565b9695505050505050565b6060826112d5576112d08261131c565b6109dd565b81511580156112ec57506001600160a01b0384163b155b1561131557604051639996b31560e01b81526001600160a01b0385166004820152602401610788565b50806109dd565b80511561132c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160801b038116811461135b575f80fd5b919050565b5f60208284031215611370575f80fd5b6109dd82611345565b5f8151808452602080850194508084015f5b838110156113b05781516001600160a01b03168752958201959082019060010161138b565b509495945050505050565b602081525f6109dd6020830184611379565b80356001600160a01b038116811461135b575f80fd5b5f602082840312156113f3575f80fd5b6109dd826113cd565b5f6020828403121561140c575f80fd5b5035919050565b5f8060408385031215611424575f80fd5b61142d836113cd565b915061143b602084016113cd565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561148157611481611444565b604052919050565b5f67ffffffffffffffff8211156114a2576114a2611444565b5060051b60200190565b5f82601f8301126114bb575f80fd5b813560206114d06114cb83611489565b611458565b82815260059290921b840181019181810190868411156114ee575f80fd5b8286015b8481101561150957803583529183019183016114f2565b509695505050505050565b5f805f60608486031215611526575f80fd5b61152f84611345565b925060208085013567ffffffffffffffff8082111561154c575f80fd5b818701915087601f83011261155f575f80fd5b813561156d6114cb82611489565b81815260059190911b8301840190848101908a83111561158b575f80fd5b938501935b828510156115b0576115a1856113cd565b82529385019390850190611590565b9650505060408701359250808311156115c7575f80fd5b50506115d5868287016114ac565b9150509250925092565b634e487b7160e01b5f52600160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561035757610357611607565b5f6001820161163f5761163f611607565b5060010190565b604081525f6116586040830185611379565b8281036020848101919091528451808352858201928201905f5b8181101561168e57845183529383019391830191600101611672565b5090979650505050505050565b6001600160801b0382811682821603908082111561123c5761123c611607565b6001600160801b038181168382160280821691908281146116de576116de611607565b505092915050565b6001600160801b0381811683821601908082111561123c5761123c611607565b5f60208284031215611716575f80fd5b815180151581146109dd575f80fd5b5f6001600160801b038084168061174a57634e487b7160e01b5f52601260045260245ffd5b92169190910492915050565b8181038181111561035757610357611607565b634e487b7160e01b5f52603160045260245ffd5b5f82515f5b8181101561179c5760208186018101518583015201611782565b505f92019182525091905056fea2646970667358221220674acafda95a6aa035bf633172a069789d2208140aaf02f7317defd850ca221364736f6c63430008140033