0 txs
19 calls
constructor
constructor()
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
epoch
viewfunction epoch() view returns (uint256)
getAFIToken
viewfunction getAFIToken() view returns (address)
getEpoch
viewfunction getEpoch() view returns (uint256)
getLastDistributionTime
viewfunction getLastDistributionTime() view returns (uint256)
getManager
viewfunction getManager() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lastDistributionTime
viewfunction lastDistributionTime() view returns (uint256)
loss
viewfunction loss() view returns (uint256)
manager
viewfunction manager() view returns (address)
maxFeePercentage
viewfunction maxFeePercentage() view returns (uint256)
maxYieldPercentage
viewfunction maxYieldPercentage() view returns (uint256)
minDistributionInterval
viewfunction minDistributionInterval() view returns (uint256)
profit
viewfunction profit() view returns (uint256)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
REBALANCER_ROLE
viewfunction REBALANCER_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
trxns
viewfunction trxns(bytes32) view returns (bool)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
distributeYield
nonpayablefunction distributeYield(uint256 amount, uint256 feeAmount, uint256 nonce, bool isProfit)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _admin, address _rebalancer)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setManager
nonpayablefunction setManager(address _manager)
setMaxFeePercentage
nonpayablefunction setMaxFeePercentage(uint256 _maxFeePercent)
setMaxYieldPercentage
nonpayablefunction setMaxYieldPercentage(uint256 _maxYieldPercentage)
setMinDistributionInterval
nonpayablefunction setMinDistributionInterval(uint256 _minDistributionInterval)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
DistributeYield
event DistributeYield(address caller, address indexed asset, address indexed receiver, uint256 amount, uint256 feeAmount, bool profit)
Initialized
event Initialized(uint64 version)
ManagerSet
event ManagerSet(address indexed caller, address indexed manager)
MaxFeePercentage
event MaxFeePercentage(address indexed admin, uint256 MaxFeePercentage)
MaxYieldPercentageSet
event MaxYieldPercentageSet(address indexed admin, uint256 maxYieldPercentage)
MinDistributionIntervalSet
event MinDistributionIntervalSet(address indexed admin, uint256 minDistributionInterval)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
DistributionTooFrequent
error DistributionTooFrequent()
DuplicateTransaction
error DuplicateTransaction()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidAddress
error InvalidAddress()
InvalidEpoch
error InvalidEpoch()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100c257306080525f5160206119805f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516118b990816100c782396080518181816105a501526106750152f35b6001600160401b0319166001600160401b039081175f5160206119805f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146111bf57508063248a9ca3146111805780632f2ff15d1461113657806336568abe146110f057806346cc8ff414610a40578063481c6a7514610296578063485cc955146108bf578063490b48f8146108845780634dc3a390146105285780634f1ef286146105f957806352d1902d1461059257806366d16cc3146105745780636ed1483d14610546578063757991a8146104b157806375b173501461052857806375b238fc146104ed578063763b091f146104cf578063900cf0cf146104b157806391d148541461045b578063a217fddf1461043f578063a66cd094146103ef578063ad3cb1cc14610393578063ad40957814610375578063bf654aac14610357578063d0ebdbe7146102dd578063d3e04000146102bf578063d500958414610296578063d547741f14610242578063d9ace663146101f2578063f2cbe6f1146101a25763f5be2df214610173575f80fd5b3461019f578060031936011261019f57602061018d611337565b6040516001600160a01b039091168152f35b80fd5b503461019f57602036600319011261019f576004356101bf61138a565b806004556040519081527f6a48944004ebe2798ffa134ed95af3e19c41d3fb1f6e35ba659eb96052fd7dc360203392a280f35b503461019f57602036600319011261019f5760043561020f61138a565b806008556040519081527f3ca2c6cbecbffbe9f69b31c108708f7556792a2b5ad3a38551443c9fe3dc17af60203392a280f35b503461019f57604036600319011261019f57610292600435610262611212565b9061028d610288825f525f5160206118445f395f51905f52602052600160405f20015490565b6113f9565b6116de565b5080f35b503461019f578060031936011261019f576007546040516001600160a01b039091168152602090f35b503461019f578060031936011261019f576020600854604051908152f35b503461019f57602036600319011261019f576102f7611228565b6102ff61138a565b6001600160a01b0316801561034857600780546001600160a01b03191682179055337fc64707e618a83637fc41ad1e3aa4242bd5fdd353f3d60bc0faf40db0d7d860788380a380f35b63e6c4247b60e01b8252600482fd5b503461019f578060031936011261019f576020600554604051908152f35b503461019f578060031936011261019f576020600454604051908152f35b503461019f578060031936011261019f57604080516103b2828261126e565b6005815260208101640352e302e360dc1b81528251938492602084525180928160208601528585015e828201840152601f01601f19168101030190f35b503461019f57602036600319011261019f5760043561040c61138a565b806005556040519081527f1ea98fe36b7416af76d3ea27afc6c0ca8920a74a8b045018422a538397c0f8be60203392a280f35b503461019f578060031936011261019f57602090604051908152f35b503461019f57604036600319011261019f576040610477611212565b9160043581525f5160206118445f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b503461019f578060031936011261019f576020600154604051908152f35b503461019f578060031936011261019f576020600354604051908152f35b503461019f578060031936011261019f5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b503461019f578060031936011261019f576020600654604051908152f35b503461019f57602036600319011261019f5760ff604060209260043581528084522054166040519015158152f35b503461019f578060031936011261019f576020600254604051908152f35b503461019f578060031936011261019f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036105ea5760206040515f5160206118245f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261019f5761060e611228565b6024359067ffffffffffffffff82116108805736602383011215610880578160040135908361063c83611290565b9361064a604051958661126e565b8385526020850193366024828401011161088057806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561085e575b5061084f578380525f5160206118445f395f51905f5260209081526040808620335f908152925290205460ff1615610837576040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816107ff575b5061071557634c9c8ce360e01b86526004859052602486fd5b93845f5160206118245f395f51905f528796036107ed5750823b156107db575f5160206118245f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156107c0576102929382915190845af43d156107b8573d9161079c83611290565b926107aa604051948561126e565b83523d85602085013e6117a5565b6060916117a5565b50505050346107cc5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d60201161082f575b8161081b6020938361126e565b8101031261082b5751905f6106fc565b8680fd5b3d915061080e565b63e2517d3f60e01b8452336004526024849052604484fd5b63703e46dd60e11b8452600484fd5b5f5160206118245f395f51905f52546001600160a01b0316141590505f6106a0565b8280fd5b503461019f578060031936011261019f5760206040517fccc64574297998b6c3edf6078cc5e01268465ff116954e3af02ff3a70a730f468152f35b503461019f57604036600319011261019f576108d9611228565b6108e1611212565b5f5160206118645f395f51905f52549160ff8360401c16159267ffffffffffffffff811680159081610a38575b6001149081610a2e575b159081610a25575b50610a165767ffffffffffffffff1981166001175f5160206118645f395f51905f5255610978929161097291856109ea575b5061095b61177a565b61096361177a565b61096c8161143f565b506114db565b50611594565b506032600455611388600555620135606008556109925780f35b68ff0000000000000000195f5160206118645f395f51905f5254165f5160206118645f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f5160206118645f395f51905f52555f610952565b63f92ee8a960e01b8552600485fd5b9050155f610920565b303b159150610918565b85915061090e565b5034610e37576080366003190112610e37576024356004356064356044358115158203610e3757335f9081527fa8a3860fa4f0c36dd670e38f964dd3886748125905e61ccbad5bcfb7f234c6b2602052604090205460ff16156110b957600460206001600160a01b03610ab1611337565b16604051928380926278744560e21b82525afa908115611002575f91611085575b50610ae361271091600454906112ac565b048311610e3757612710610af9600554856112ac565b048411610e375760075460405163f8c511a360e01b81529190602090839060049082906001600160a01b03165afa918215611002575f92611064575b506001546001810180911161105057810361104157604080516001600160a01b03841660208201908152918101869052606081018390528415156080808301919091528152610b8560a08261126e565b519020805f525f60205260ff60405f20541661103257600654801515908161101c575b5061100d575f525f60205260405f20600160ff1982541617905560015542600655815f14610e6757610bdc836002546112de565b600255846001600160a01b038216803b15610e635760405163ae80b88f60e01b81526004810186905260016024820152828160448183865af1908115610e43578391610e4e575b505085610cf7575b50505b6040516338d52e0f60e01b81526001600160a01b0391909116939091602083600481885afa908115610cec577f1a7335e87fd7e44794973bb89174ff5882d4ec8bf7e48195883e0c0e20539e0a938792610cb7575b5060408051338152602081019690965285019290925290151560608401526001600160a01b03169180608081015b0390a380f35b610cb1919250610cde9060203d602011610ce5575b610cd6818361126e565b8101906112bf565b9190610c83565b503d610ccc565b6040513d88823e3d90fd5b6040516363737ac960e11b815260048101879052602081602481855afa908115610e43578391610e0a575b5060405191610d308361123e565b82526020820152856040820152600160608201526001608082015260018060a01b036007541690604051906361d027b360e01b8252602082600481865afa918215610dff578492610dde575b50823b15610dda57610da79284928360405180968195829463d542e4c760e01b8452600484016112eb565b03925af18015610dcf5715610c2b5781610dc09161126e565b610dcb57845f610c2b565b8480fd5b6040513d84823e3d90fd5b8380fd5b610df891925060203d602011610ce557610cd6818361126e565b905f610d7c565b6040513d86823e3d90fd5b9250506020823d602011610e3b575b81610e266020938361126e565b81010312610e37578691515f610d22565b5f80fd5b3d9150610e19565b6040513d85823e3d90fd5b81610e589161126e565b610e6357815f610c23565b5080fd5b610e73836003546112de565b6003556001600160a01b038116803b15610e375760405163ae80b88f60e01b81528460048201525f60248201525f8160448183865af1801561100257610fed575b50859085610ec4575b5050610c2e565b6040516363737ac960e11b815260048101879052602081602481855afa908115610e43578391610fb8575b5060405191610efd8361123e565b825260208201528560408201526001606082015281608082015260018060a01b036007541690604051906361d027b360e01b8252602082600481865afa918215610dff578492610f97575b50823b15610dda57610f739284928360405180968195829463d542e4c760e01b8452600484016112eb565b03925af18015610dcf5715610ebd5781610f8c9161126e565b610dcb57845f610ebd565b610fb191925060203d602011610ce557610cd6818361126e565b905f610f48565b9250506020823d602011610fe5575b81610fd46020938361126e565b81010312610e37578691515f610eef565b3d9150610fc7565b610ffa9196505f9061126e565b5f945f610eb4565b6040513d5f823e3d90fd5b6337eb439f60e11b5f5260045ffd5b61102a9150600854906112de565b42105f610ba8565b632928418b60e01b5f5260045ffd5b63d5b25b6360e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b61107e91925060203d602011610ce557610cd6818361126e565b905f610b35565b90506020813d6020116110b1575b816110a06020938361126e565b81010312610e375751610ae3610ad2565b3d9150611093565b63e2517d3f60e01b5f52336004527fccc64574297998b6c3edf6078cc5e01268465ff116954e3af02ff3a70a730f4660245260445ffd5b34610e37576040366003190112610e3757611109611212565b336001600160a01b0382160361112757611125906004356116de565b005b63334bd91960e11b5f5260045ffd5b34610e37576040366003190112610e3757611125600435611155611212565b9061117b610288825f525f5160206118445f395f51905f52602052600160405f20015490565b61164d565b34610e37576020366003190112610e375760206111b76004355f525f5160206118445f395f51905f52602052600160405f20015490565b604051908152f35b34610e37576020366003190112610e37576004359063ffffffff60e01b8216809203610e3757602091637965db0b60e01b8114908115611201575b5015158152f35b6301ffc9a760e01b149050836111fa565b602435906001600160a01b0382168203610e3757565b600435906001600160a01b0382168203610e3757565b60a0810190811067ffffffffffffffff82111761125a57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761125a57604052565b67ffffffffffffffff811161125a57601f01601f191660200190565b8181029291811591840414171561105057565b90816020910312610e3757516001600160a01b0381168103610e375790565b9190820180921161105057565b909291608060a09160c0840195600180851b03168452600180841b0381511660208501526020810151604085015260408101516060850152606081015115158285015201511515910152565b60075460405163f8c511a360e01b815290602090829060049082906001600160a01b03165afa908115611002575f9161136e575090565b611387915060203d602011610ce557610cd6818361126e565b90565b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16156113c257565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b5f8181525f5160206118445f395f51905f526020908152604080832033845290915290205460ff16156114295750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166114d6576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f5160206118045f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff166114d6576001600160a01b03165f8181527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260408120805460ff191660011790553391907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775905f5160206118045f395f51905f529080a4600190565b6001600160a01b0381165f9081527fa8a3860fa4f0c36dd670e38f964dd3886748125905e61ccbad5bcfb7f234c6b2602052604090205460ff166114d6576001600160a01b03165f8181527fa8a3860fa4f0c36dd670e38f964dd3886748125905e61ccbad5bcfb7f234c6b260205260408120805460ff191660011790553391907fccc64574297998b6c3edf6078cc5e01268465ff116954e3af02ff3a70a730f46905f5160206118045f395f51905f529080a4600190565b5f8181525f5160206118445f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff166116d8575f8181525f5160206118445f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f5160206118045f395f51905f529080a4600190565b50505f90565b5f8181525f5160206118445f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16156116d8575f8181525f5160206118445f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f5160206118645f395f51905f525460401c161561179657565b631afcd79f60e31b5f5260045ffd5b906117c957508051156117ba57602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806117fa575b6117da575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156117d256fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220998b7a713b12b9877047e596d08754a0caa0d06055f5919f5c086571096cc85264736f6c634300081d0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00