0 txs
1 call
constructor
No constructor.
functions
CONTRACT_OWNER
viewfunction CONTRACT_OWNER() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getAllTokensStaked
viewfunction getAllTokensStaked() view returns (address[], uint256[])
getDepositFee
purefunction getDepositFee(address _token, uint256 _amount) pure returns (uint256)
getExpectedAPR
purefunction getExpectedAPR(address _token, uint256 _additionalAmount) pure returns (uint256)
getExpectedNFTAnnualYield
purefunction getExpectedNFTAnnualYield() pure returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenInvested
purefunction getTokenInvested(address _token) pure returns (uint256)
getTokenNotInvested
viewfunction getTokenNotInvested(address _token) view returns (uint256)
getTokenStaked
viewfunction getTokenStaked(address _token) view returns (uint256)
getTokenUSDInvested
purefunction getTokenUSDInvested(address _token) pure returns (uint256)
getTokenUSDNotInvested
viewfunction getTokenUSDNotInvested(address _token) view returns (uint256)
getTokenUSDStaked
viewfunction getTokenUSDStaked(address _token) view returns (uint256)
getTotalUSD
viewfunction getTotalUSD() view returns (uint256)
getWithdrawalFee
viewfunction getWithdrawalFee(address _token, uint256 _amount) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
KEEPER
viewfunction KEEPER() view returns (bytes32)
priceFeed
viewfunction priceFeed() view returns (address)
protocolDescription
purefunction protocolDescription() pure returns (string)
protocolName
purefunction protocolName() pure returns (string)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenStaked
viewfunction tokenStaked(address) view returns (uint256)
TRADER
viewfunction TRADER() view returns (bytes32)
cycleRewards
nonpayablefunction cycleRewards()
deposit
nonpayablefunction deposit(address _token, uint256 _amount)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address _token, uint256 _amount, address _target)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
notInvestedTrySend
nonpayablefunction notInvestedTrySend(address _token, uint256 _amount, address _target) returns (uint256)
refreshInvestment
nonpayablefunction refreshInvestment()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setCompoundProtocol
nonpayablefunction setCompoundProtocol(address _target)
setMuchoRewardRouter
nonpayablefunction setMuchoRewardRouter(address _contract)
setPriceFeed
nonpayablefunction setPriceFeed(address _feed)
setRewardPercentages
nonpayablefunction setRewardPercentages(tuple _split)
setTokenStaked
nonpayablefunction setTokenStaked(address token, uint256 staked)
withdrawAndSend
nonpayablefunction withdrawAndSend(address _token, uint256 _amount, address _target)
events
CompoundProtocolChanged
event CompoundProtocolChanged(address oldProtocol, address newProtocol)
DepositNotified
event DepositNotified(address from, address token, uint256 amount, uint256 amountAfterFees, uint256 totalStakedAfter)
EarnedRewards
event EarnedRewards(address token, uint256 amount)
InvestmentRefreshed
event InvestmentRefreshed(address token, uint256 oldAmount, uint256 newAmount)
MuchoRewardRouterChanged
event MuchoRewardRouterChanged(address oldRouter, address newRouter)
RewardPercentagesChanged
event RewardPercentagesChanged((uint64 ownerPercentage, uint64 NftPercentage) splitBefore, (uint64 ownerPercentage, uint64 NftPercentage) splitAfter)
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)
WithdrawnInvested
event WithdrawnInvested(address token, address to, uint256 amount, uint256 totalStakedAfter)
WithdrawnNotInvested
event WithdrawnNotInvested(address token, address to, uint256 amount, uint256 totalStakedAfter)
errors
No errors.
creation bytecode
0x608080604052346100a1573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff1615610053575b5060018055611cf990816100a78239f35b808052806020526040812033825260205260408120600160ff19825416179055339033907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a438610042565b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816254ca6e14610ff957816301ffc9a714610fa357816310fb9fc414610ed8578163113e926c146106c4578163175c4ef814610e9d578163248a9ca314610e735781632f2ff15d14610dca57816335c53d9314610d9257816336568abe14610d005781634240b2a2146106bf5781634502db6114610b7657816347e7ef2414610ada57816348849a3414610a6c578163551512de14610a27578163598061be1461076e578163651a3371146107535781636e528518146109be578163724e78da1461095d578163741bef1a14610934578163780d7eaa146108f95781637e2c4a4d146108ce578163862a179e146108935781638aa3c9ba146107f357816391d14854146107ad57816394458e421461078757816394f9d0591461076e578163a217fddf14610753578163a674bba0146106c9578163a7825373146106c4578163a852475f146106bf578163cbdfebec146104c3578163d2b7d9251461039a578163d547741f1461035c578163d76eccbb14610319578163d8178a0e1461023457508063e567e869146101e45763fd301c49146101b957600080fd5b346101e057816003193601126101e05760209051600080516020611ca48339815191528152f35b5080fd5b50346101e057816003193601126101e05780516102309161020482611214565b60158252744d7563686f50726f746f636f6c576974686472617760581b6020830152519182918261128b565b0390f35b8383346101e057806003193601126101e0576001600160a01b03610256611171565b16918151936370a0823160e01b855230818601526020948581602481885afa90811561030f5783916102de575b506127109481860291868304036102cb57835260038652838320546102a791611ba7565b84039384116102b857505051908152f35b634e487b7160e01b825260119052602490fd5b634e487b7160e01b845260118352602484fd5b90508581813d8311610308575b6102f58183611246565b81010312610304575186610283565b8280fd5b503d6102eb565b84513d85823e3d90fd5b5050346101e05760203660031901126101e05760209061035561033a611171565b6001600160a01b031660009081526003602052604090205490565b9051908152f35b919050346103045780600319360112610304576103979135610392600161038161118c565b9383875286602052862001546112b7565b6115e5565b80f35b9050346103045760209283600319360112610475576001600160a01b03806103c0611171565b855163313ce56760e01b815294911686858381845afa9485156104b957908791859661048a575b5080855260038252602487862054946002541693885194859384926341976e0960e01b84528301525afa92831561047f578093610446575b505061043b610435610355949361044093611659565b92611c81565b611c92565b90611ba7565b909192508582813d8311610478575b61045f8183611246565b810103126104755750519061043b61043561041f565b80fd5b503d610455565b8551903d90823e3d90fd5b6104ab919650823d84116104b2575b6104a38183611246565b810190611c68565b94386103e7565b503d610499565b86513d86823e3d90fd5b828434610475576104d3366111e0565b600080516020611ca48339815191528495939552602094848652838520338652865261050460ff858720541661194b565b6001600160a01b0316808552600386528385205483116106565783516370a0823160e01b81523088820152928684602481855afa93841561064c578694610619575b506105656105548583611659565b838852600389528688205490611ba7565b9384116105b057818652600387528486205490810390811161059d578186526003875284862055610597929190611997565b51908152f35b634e487b7160e01b865260118852602486fd5b845162461bcd60e51b8152808901889052603860248201527f4d7563686f50726f746f636f6c57697468647261773a2063616e6e6f7420776960448201527f746864726177206d6f7265207468616e2062616c616e636500000000000000006064820152608490fd5b9093508681813d8311610645575b6106318183611246565b8101031261064157519288610546565b8580fd5b503d610627565b85513d88823e3d90fd5b835162461bcd60e51b8152808801879052603760248201527f4d7563686f50726f746f636f6c57697468647261773a2063616e6e6f7420776960448201527f746864726177206d6f7265207468616e207374616b65640000000000000000006064820152608490fd5b6111c7565b6111a2565b8383346101e057816003193601126101e057805191606083019083821067ffffffffffffffff831117610740575061023093508152602682527f4d61646520696e204a756c7920323032352c20746f20636c6f736520746865206020830152657661756c747360d01b81830152519182918261128b565b634e487b7160e01b815260418552602490fd5b5050346101e057816003193601126101e05751908152602090f35b8334610475578060031936011261047557610397611898565b5050346101e05760203660031901126101e0576020906103556107a8611171565b611bc7565b9050346103045781600319360112610304578160209360ff926107ce61118c565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b91905034610304578061083760ff602093608496610810366111e0565b505050600080516020611ca48339815191528152808652818120338252865220541661194b565b5162461bcd60e51b815291820152603660248201527f4d7563686f50726f746f636f6c57697468647261773a207769746864726177206044820152751a5b9d995cdd1b595b9d081b9bdd08185b1b1bddd95960521b6064820152fd5b5050346101e057816003193601126101e057602090517f71a9859d7dd21b24504a6f306077ffc2d510b4d4b61128e931fe937441ad18368152f35b8390346101e05760203660031901126101e057356001600160a01b0381160361047557610397611898565b5050346101e05760203660031901126101e05760ff6103979161091a611171565b5083805283602052808420338552602052832054166116a9565b5050346101e057816003193601126101e05760025490516001600160a01b039091168152602090f35b90503461030457602036600319011261030457356001600160a01b03811691908290036103045760ff6109a39184805284602052808520338652602052842054166116a9565b6bffffffffffffffffffffffff60a01b600254161760025580f35b90503461030457816003193601126103045781519082820167ffffffffffffffff9383821085831117610a145752358281168103610a1057815260243591821682036103045760200152610397611898565b8380fd5b634e487b7160e01b865260418352602486fd5b5050346101e05761039790610a5e60ff610a40366111e0565b939192909487805287602052808820338952602052872054166116a9565b6001600160a01b0316611997565b5050346101e057806003193601126101e057610a86611171565b602435809184805284602052838520338652602052610aaa60ff85872054166116a9565b6001600160a01b031680855260036020529284205515610ad157610acd9061172c565b5080f35b610acd906117ae565b9190503461030457806003193601126103045780610b2660ff602093608496610b01611171565b50600080516020611ca48339815191528152808652818120338252865220541661194b565b5162461bcd60e51b815291820152602a60248201527f4d7563686f50726f746f636f6c57697468647261773a206465706f736974206e6044820152691bdd08185b1b1bddd95960b21b6064820152fd5b919050346103045782600319360112610304579190805491610b9783611c3c565b92610ba485519485611246565b808452610bb081611c3c565b601f199360208681019390928601368537610bca81611c3c565b91610bd789519384611246565b818352610be382611c3c565b8385019701368837855b828110610c6f57505050865196879681880191885251809152606087019390855b818110610c4f57505050858303868301525180835291810193925b828110610c3857505050500390f35b835185528695509381019392810192600101610c29565b82516001600160a01b031686528998509484019491840191600101610c0e565b610cca818a610ca2610c88839e98999b9a9c9d9e6116f5565b90546001600160a01b039460039290921b1c841692611c54565b52610cad838d611c54565b51166001600160a01b031660009081526003602052604090205490565b610cd48287611c54565b5260018101809111610ced579897969495939298610bed565b634e487b7160e01b865260118252602486fd5b839150346101e057826003193601126101e057610d1b61118c565b90336001600160a01b03831603610d37579061039791356115e5565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b5050346101e05760203660031901126101e05760209181906001600160a01b03610dba611171565b1681526003845220549051908152f35b9050346103045781600319360112610304573590610de661118c565b9082845283602052610dfd600182862001546112b7565b82845260208481528185206001600160a01b039093168086529290528084205460ff1615610e29578380f35b828452836020528084208285526020528320600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a43880808380f35b90503461030457602036600319011261030457816020936001923581528085522001549051908152f35b5050346101e057816003193601126101e057602090517f872340a532bdd7bb02bea115c1b0f1ba87eac982f5b79b51ac189ffaac1b6fce8152f35b905034610304576020928360031936011261047557610ef5611171565b835163313ce56760e01b8152926001600160a01b03918281169087868481855afa958615610f9957908892918697610f73575b50610f34602491611bc7565b946002541693885194859384926341976e0960e01b84528301525afa92831561047f57809361044657505061043b610435610355949361044093611659565b6024919750610f91610f3491853d87116104b2576104a38183611246565b979150610f28565b87513d87823e3d90fd5b90503461030457602036600319011261030457359063ffffffff60e01b82168092036103045760209250637965db0b60e01b8214918215610fe8575b50519015158152f35b6301ffc9a760e01b14915038610fdf565b8383346101e057816003193601126101e057818084549460018060a01b0380600254165b87851061102e576020878751908152f35b90919293958261103d886116f5565b905488519182916370a0823160e01b835230898401526020928391816024978892600396871b1c165afa928315611130579087918a9461113a575b506110828c6116f5565b9054911b1c168951906341976e0960e01b82528882015281818581895afa9182156111305789926110fc575b50506110b991611659565b82018092116110eb575095600181018091116110d8579392919061101d565b634e487b7160e01b855260118452602485fd5b634e487b7160e01b86526011855285fd5b90809250813d8311611129575b6111138183611246565b8101031261112557516110b98c6110ae565b8780fd5b503d611109565b8a513d8b823e3d90fd5b83809295508193503d831161116a575b6111548183611246565b8101031261116657869051928d611078565b8880fd5b503d61114a565b600435906001600160a01b038216820361118757565b600080fd5b602435906001600160a01b038216820361118757565b34611187576040366003190112611187576111bb611171565b50602060405160008152f35b34611187576020366003190112611187576111bb611171565b6060906003190112611187576001600160a01b03600435818116810361118757916024359160443590811681036111875790565b6040810190811067ffffffffffffffff82111761123057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761123057604052565b60005b83811061127b5750506000910152565b818101518382015260200161126b565b604091602082526112ab8151809281602086015260208686019101611268565b601f01601f1916010190565b6000818152602090808252604092838220338352835260ff8483205416156112df5750505050565b835167ffffffffffffffff91903360608201848111838210176115d1578752602a825285820192873685378251156115bd57603084538251916001928310156115a9576078602185015360295b83811161153f57506114fd57908751946080860190868210908211176114e9578852604285528685019560603688378551156114d5576030875385518210156114d55790607860218701536041915b818311611467575050506114255793859361140b936113fc6048946113d37f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000996114219b519a8b978801525180926037880190611268565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190611268565b01036028810185520183611246565b5162461bcd60e51b81529182916004830161128b565b0390fd5b60648587519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f811660108110156114c1576f181899199a1a9b1b9c1cb0b131b232b360811b901a6114978589611682565b5360041c9280156114ad5760001901919061137b565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b87526041600452602487fd5b60648789519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b90600f81166010811015611595576f181899199a1a9b1b9c1cb0b131b232b360811b901a61156d8387611682565b5360041c908015611581576000190161132c565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b89526032600452602489fd5b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b86526041600452602486fd5b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541661161557505050565b80835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b8181029291811591840414171561166c57565b634e487b7160e01b600052601160045260246000fd5b908151811015611693570160200190565b634e487b7160e01b600052603260045260246000fd5b156116b057565b60405162461bcd60e51b815260206004820152601a60248201527f4d7563686f526f6c65733a204f6e6c7920666f722061646d696e0000000000006044820152606490fd5b6004548110156116935760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b6000818152600560205260408120546117a9576004546801000000000000000081101561179557908261178161176a846001604096016004556116f5565b819391549060031b91821b91600019901b19161790565b905560045492815260056020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b6000818152600560205260408120549091908015611893576000199080820181811161187f576004549083820191821161186b57808203611837575b505050600454801561182357810190611802826116f5565b909182549160031b1b19169055600455815260056020526040812055600190565b634e487b7160e01b84526031600452602484fd5b61185561184661176a936116f5565b90549060031b1c9283926116f5565b90558452600560205260408420553880806117ea565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b3360009081527f3d2244d2155bd05e9da34f3289828379dd5f93b1b9b60a28d44e32ea81c74d68602052604081205460ff1690811561192b575b50156118da57565b60405162461bcd60e51b8152602060048201526024808201527f4d7563686f526f6c65733a204f6e6c7920666f7220747261646572206f7220616044820152633236b4b760e11b6064820152608490fd5b60ff915080806040925280602052818120338252602052205416386118d2565b1561195257565b60405162461bcd60e51b815260206004820152601a60248201527f4d7563686f526f6c65733a204f6e6c7920666f72206f776e65720000000000006044820152606490fd5b60405163a9059cbb60e01b60208083019182526001600160a01b03948516602484015260448084019690965294825292608082019267ffffffffffffffff92919083851183861017611230578460405216906119f284611214565b8584527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460a0820152600080958192519082855af1903d15611b0b573d928311611af75790611a6193929160405192611a5488601f19601f8401160185611246565b83523d868885013e611b16565b805191821591848315611ad3575b505050905015611a7c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126101e057820151908115158203610475575080388084611a6f565b634e487b7160e01b85526041600452602485fd5b90611a619392506060915b91929015611b785750815115611b2a575090565b3b15611b335790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015611b8b5750805190602001fd5b60405162461bcd60e51b8152908190611421906004830161128b565b8115611bb1570490565b634e487b7160e01b600052601260045260246000fd5b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611c3057600091611c02575090565b906020823d8211611c28575b81611c1b60209383611246565b8101031261047557505190565b3d9150611c0e565b6040513d6000823e3d90fd5b67ffffffffffffffff81116112305760051b60200190565b80518210156116935760209160051b010190565b90816020910312611187575160ff811681036111875790565b60ff16600c019060ff821161166c57565b60ff16604d811161166c57600a0a9056fec7f28df2375ae34ebf971544379921eea1e772e0ea7f3912f47eff2b28d1ca50a2646970667358221220fb1d21588b63c53e4a8dc94b467db01ed111b9e95f110d771ce863de78a8faf864736f6c63430008120033