0 txs
4.6k calls
constructor
No constructor.
functions
allStrategies
viewfunction allStrategies(uint256) view returns (address)
blacklistedSupply
viewfunction blacklistedSupply(address) view returns (uint256)
compAccrued
viewfunction compAccrued(address user) view returns (uint256)
emissionsManager
viewfunction emissionsManager() view returns (address)
feeRecipient
viewfunction feeRecipient() view returns (address)
flywheelBooster
viewfunction flywheelBooster() view returns (address)
flywheelRewards
viewfunction flywheelRewards() view returns (address)
getAllStrategies
viewfunction getAllStrategies() view returns (address[])
isFlywheel
viewfunction isFlywheel() view returns (bool)
isRewardsDistributor
viewfunction isRewardsDistributor() view returns (bool)
marketState
viewfunction marketState(address strategy) view returns (uint224, uint32)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
performanceFee
viewfunction performanceFee() view returns (uint256)
rewardToken
viewfunction rewardToken() view returns (address)
userBlacklistedSupply
viewfunction userBlacklistedSupply(address, address) view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
accrue
nonpayablefunction accrue(address strategy, address user, address secondUser) returns (uint256, uint256)
accrue
nonpayablefunction accrue(address strategy, address user) returns (uint256)
addMarketForRewards
nonpayablefunction addMarketForRewards(address strategy)
addStrategyForRewards
nonpayablefunction addStrategyForRewards(address strategy)
claimRewards
nonpayablefunction claimRewards(address user)
flywheelPostBorrowerAction
nonpayablefunction flywheelPostBorrowerAction(address market, address borrower)
flywheelPostSupplierAction
nonpayablefunction flywheelPostSupplierAction(address market, address supplier)
flywheelPostTransferAction
nonpayablefunction flywheelPostTransferAction(address market, address src, address dst)
flywheelPreBorrowerAction
nonpayablefunction flywheelPreBorrowerAction(address market, address borrower)
flywheelPreSupplierAction
nonpayablefunction flywheelPreSupplierAction(address market, address supplier)
flywheelPreTransferAction
nonpayablefunction flywheelPreTransferAction(address market, address src, address dst)
initialize
nonpayablefunction initialize(address _rewardToken, address _flywheelRewards, address _flywheelBooster, address _owner)
renounceOwnership
nonpayablefunction renounceOwnership()
rewardsAccrued
nonpayablefunction rewardsAccrued(address user) returns (uint256)
setBooster
nonpayablefunction setBooster(address newBooster)
setEmissionsManager
nonpayablefunction setEmissionsManager(address _emissionsManager)
setFlywheelRewards
nonpayablefunction setFlywheelRewards(address newFlywheelRewards)
strategyState
nonpayablefunction strategyState(address strategy) returns (uint224 index, uint32 lastUpdatedTimestamp)
takeRewardsFromUser
nonpayablefunction takeRewardsFromUser(address user, address receiver)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateBlacklistBalances
nonpayablefunction updateBlacklistBalances(address strategy, address user)
updateFeeSettings
nonpayablefunction updateFeeSettings(uint256 _performanceFee, address _feeRecipient)
userIndex
nonpayablefunction userIndex(address strategy, address user) returns (uint224)
whitelistUser
nonpayablefunction whitelistUser(address strategy, address user)
events
AccrueRewards
event AccrueRewards(address indexed strategy, address indexed user, uint256 rewardsDelta, uint256 rewardsIndex)
AddStrategy
event AddStrategy(address indexed newStrategy)
ClaimRewards
event ClaimRewards(address indexed user, uint256 amount)
FlywheelBoosterUpdate
event FlywheelBoosterUpdate(address indexed newBooster)
FlywheelRewardsUpdate
event FlywheelRewardsUpdate(address indexed newFlywheelRewards)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
UpdatedFeeSettings
event UpdatedFeeSettings(uint256 oldPerformanceFee, uint256 newPerformanceFee, address oldFeeRecipient, address newFeeRecipient)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61217480620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c8063a8a7c47c11610146578063d4a06820116100c3578063e856611811610087578063e85661181461052d578063ef5cfb8c14610540578063f046ee5c14610553578063f2fde38b14610566578063f7c618c114610579578063f8c8765e1461058c57600080fd5b8063d4a06820146104f6578063dde684a514610424578063e1e3dfeb14610509578063e30c39781461051c578063e6e162e8146104e457600080fd5b8063bc7053c11161010a578063bc7053c114610494578063c3b28864146104a7578063cc6bc101146104bc578063cc7ebdc4146103ce578063d27c5453146104e457600080fd5b8063a8a7c47c1461045b578063ab5497d71461046e578063abc6d72d146102de578063b006340d14610388578063b9be44ac1461048157600080fd5b80635a826df3116101d45780637fb5ad38116101985780637fb5ad38146103ce57806387788782146103f75780638da5cb5b146104005780638fb0091314610411578063a7a9a62c1461042457600080fd5b80635a826df31461036d578063715018a614610380578063715cad1614610388578063716e33931461039b57806379ba5097146103c657600080fd5b80631c9161e01161021b5780631c9161e0146102f65780632fa8673b146103095780633919a7171461031c57806346904840146103475780634e081c951461035a57600080fd5b8063092de70a1461025857806310509aa91461028b578063116139d3146102a057806314251894146102cb57806317e6a45f146102de575b600080fd5b610278610266366004611d33565b60a26020526000908152604090205481565b6040519081526020015b60405180910390f35b61029e610299366004611d57565b61059f565b005b6102b36102ae366004611d87565b6105b1565b6040516001600160e01b039091168152602001610282565b61029e6102d9366004611d87565b6105e7565b6102e6600181565b6040519015158152602001610282565b61029e610304366004611d87565b6105f1565b61029e610317366004611d87565b610600565b609d5461032f906001600160a01b031681565b6040516001600160a01b039091168152602001610282565b60985461032f906001600160a01b031681565b61029e610368366004611db5565b61072e565b61029e61037b366004611d33565b610740565b61029e610792565b61029e610396366004611d33565b6107a6565b6102786103a9366004611d87565b60a160209081526000928352604080842090915290825290205481565b61029e6107ba565b6102786103dc366004611d33565b6001600160a01b03166000908152609e602052604090205490565b61027860975481565b6033546001600160a01b031661032f565b61029e61041f366004611d33565b610831565b610437610432366004611d33565b610931565b604080516001600160e01b03909316835263ffffffff909116602083015201610282565b61029e610469366004611db5565b610965565b609c5461032f906001600160a01b031681565b61027861048f366004611d87565b610979565b61029e6104a2366004611d87565b6109e5565b6104af610aa6565b6040516102829190611e00565b6104cf6104ca366004611db5565b610b08565b60408051928352602083019190915201610282565b61029e6104f2366004611d87565b5050565b61029e610504366004611d87565b610b89565b61032f610517366004611e4d565b610bb3565b6065546001600160a01b031661032f565b61029e61053b366004611d33565b610bdd565b61029e61054e366004611d33565b610c07565b609b5461032f906001600160a01b031681565b61029e610574366004611d33565b610df1565b60995461032f906001600160a01b031681565b61029e61059a366004611e66565b610e62565b6105a7610fcc565b6104f28282611026565b6001600160a01b03808316600090815260a060209081526040808320938516835292905220546001600160e01b03165b92915050565b6104f2828261110f565b6105fb8282610979565b505050565b609d546001600160a01b031633146106335760405162461bcd60e51b815260040161062a90611ec2565b60405180910390fd5b6001600160a01b03808316600081815260a16020908152604080832094861683529381528382205492825260a29052918220805491929091610676908490611f03565b90915550506001600160a01b03808316600090815260a1602090815260408083209385168352929052908120819055806106af84610931565b604080518082019091526001600160e01b038316815263ffffffff8216602082015291935091506106e0858261136b565b516001600160a01b03958616600090815260a060209081526040808320979098168252959095529490932080546001600160e01b0319166001600160e01b0390951694909417909355505050565b610739838383610b08565b5050505050565b610748610fcc565b609c80546001600160a01b0319166001600160a01b0383169081179091556040517ff2fb4350e8466c152b500f8e58c0c23f01bbc332dc82f5375267e70b5f50f19990600090a250565b61079a610fcc565b6107a460006116ca565b565b6107ae610fcc565b6107b7816116e3565b50565b60655433906001600160a01b031681146108285760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161062a565b6107b7816116ca565b610839610fcc565b609b546001600160a01b0316156108e757609954609b546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf9190611f16565b905080156108e557609b546099546108e5916001600160a01b039182169116848461187f565b505b609b80546001600160a01b0319166001600160a01b0383169081179091556040517ff1ba364f52e65f08563196b608289b1da2a923cdd0aa7e20dfe664c4ad294c9590600090a250565b6001600160a01b03166000908152609f60205260409020546001600160e01b03811691600160e01b90910463ffffffff1690565b61096f838361110f565b6105fb838261110f565b600080600061098785610931565b604080518082019091526001600160e01b03831680825263ffffffff83166020830152929450909250906000036109c457600093505050506105e1565b6109ce868261136b565b90506109db868683611902565b9695505050505050565b609d546001600160a01b03163314610a0f5760405162461bcd60e51b815260040161062a90611ec2565b6001600160a01b0382166000908152609e602052604090205480156105fb576001600160a01b038084166000908152609e6020526040812055609b54609954610a5e929081169116848461187f565b826001600160a01b03167f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc6782604051610a9991815260200190565b60405180910390a2505050565b6060609a805480602002602001604051908101604052809291908181526020018280548015610afe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ae0575b5050505050905090565b600080600080610b1787610931565b604080518082019091526001600160e01b03831680825263ffffffff8316602083015292945090925090600003610b575760008094509450505050610b81565b610b61888261136b565b9050610b6e888883611902565b610b79898884611902565b945094505050505b935093915050565b609d546001600160a01b031633146105e75760405162461bcd60e51b815260040161062a90611ec2565b609a8181548110610bc357600080fd5b6000918252602090912001546001600160a01b0316905081565b610be5610fcc565b609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609d5460405163503b8e8160e01b81526001600160a01b0383811660048301529091169063503b8e8190602401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190611f2f565b15610cb05760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b604482015260640161062a565b609d54604051633a5cdb8d60e01b81526001600160a01b03838116600483015290911690633a5cdb8d90602401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e9190611f2f565b15610d5b5760405162461bcd60e51b815260206004820152600d60248201526c626c61636b6c69737461626c6560981b604482015260640161062a565b6001600160a01b0381166000908152609e602052604090205480156104f2576001600160a01b038083166000908152609e6020526040812055609b54609954610daa929081169116848461187f565b816001600160a01b03167f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc6782604051610de591815260200190565b60405180910390a25050565b610df9610fcc565b606580546001600160a01b0383166001600160a01b03199091168117909155610e2a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600054610100900460ff1615808015610e825750600054600160ff909116105b80610e9c5750303b158015610e9c575060005460ff166001145b610eff5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161062a565b6000805460ff191660011790558015610f22576000805461ff0019166101001790555b610f2a611c44565b609980546001600160a01b038088166001600160a01b031992831617909255609b8054878416908316179055609c805486841690831617905567016345785d8a000060975560988054928516929091169190911790558015610739576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6033546001600160a01b031633146107a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161062a565b60975460985460408051928352602083018590526001600160a01b0391821690830152821660608201527fb3b62da5184b9e7e2f5d280014bb485d4444b66738025e5fb5738bbddcb6b8489060800160405180910390a16098546001600160a01b038281169116146110e8576098546001600160a01b039081166000908152609e6020526040808220549284168252812080549091906110c7908490611f51565b90915550506098546001600160a01b03166000908152609e60205260408120555b609791909155609880546001600160a01b0319166001600160a01b03909216919091179055565b609d5460405163503b8e8160e01b81526001600160a01b0383811660048301529091169063503b8e8190602401602060405180830381865afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190611f2f565b156104f2576001600160a01b03808316600090815260a1602090815260408083208585168452909152812054609c54909216611222576040516370a0823160e01b81526001600160a01b0384811660048301528516906370a0823190602401602060405180830381865afa1580156111f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121d9190611f16565b611298565b609c54604051631a50ef2f60e01b81526001600160a01b038681166004830152858116602483015290911690631a50ef2f90604401602060405180830381865afa158015611274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112989190611f16565b9050818110611305576112ab8282611f03565b6001600160a01b038516600090815260a26020526040812080549091906112d3908490611f51565b90915550506001600160a01b03808516600090815260a160209081526040808320938716835292905220819055611365565b61130f8183611f03565b6001600160a01b038516600090815260a2602052604081208054909190611337908490611f03565b90915550506001600160a01b03808516600090815260a1602090815260408083209387168352929052208190555b50505050565b6040805180820190915260008082526020820152609b54602083015160405163b334db7b60e01b81526001600160a01b03868116600483015263ffffffff9092166024820152600092919091169063b334db7b906044016020604051808303816000875af11580156113e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190611f16565b839250905080156116c357609c546000906001600160a01b03166114ba5760a26000866001600160a01b03166001600160a01b0316815260200190815260200160002054856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ab9190611f16565b6114b59190611f03565b611544565b6001600160a01b03858116600081815260a260205260409081902054609c549151631e1932fb60e01b81526004810193909352921690631e1932fb90602401602060405180830381865afa158015611516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153a9190611f16565b6115449190611f03565b90506000670de0b6b3a76400006001600160e01b0316609754846115689190611f64565b6115729190611f7b565b6098546001600160a01b03166000908152609e60205260408120805492935083929091906115a1908490611f51565b909155506115b190508184611f03565b9250600082156116485761164583886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116219190611f9d565b61162c90600a6120a4565b6116369087611f64565b6116409190611f7b565b611c73565b90505b604051806040016040528082886000015161166391906120b3565b6001600160e01b0316815260200161167a42611c89565b63ffffffff9081169091526001600160a01b0389166000908152609f60209081526040909120835191840151909216600160e01b026001600160e01b0390911617905594505050505b5092915050565b606580546001600160a01b03191690556107b781611c9c565b60006116ee82610931565b5090506001600160e01b038116156117335760405162461bcd60e51b8152602060048201526008602482015267737472617465677960c01b604482015260640161062a565b6040805180820180835260995463313ce56760e01b9091529151909182916117b6916001600160a01b03169063313ce567906044808601916020918188030181865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190611f9d565b61164090600a6120a4565b6001600160e01b031681526020016117cd42611c89565b63ffffffff9081169091526001600160a01b0384166000818152609f6020908152604080832086519690920151909416600160e01b026001600160e01b0390951694909417909355609a80546001810182559084527f44da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be40180546001600160a01b03191682179055905190917f69887873d46778fb35539b0a9992d9176ca03c1820b0afb538bc3a6f63326b1091a25050565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806107395760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b604482015260640161062a565b80516000908161191286866105b1565b6001600160a01b03878116600090815260a060209081526040808320938a16835292905290812080546001600160e01b0319166001600160e01b038681169190911790915591925090821690036119b1576099546040805163313ce56760e01b815290516119ae926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015611787573d6000803e3d6000fd5b90505b60006119bd82846120d3565b609c549091506000906001600160a01b0316611a6c576001600160a01b03888116600081815260a160209081526040808320948c1680845294909152908190205490516370a0823160e01b81526004810193909352916370a0823190602401602060405180830381865afa158015611a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5d9190611f16565b611a679190611f03565b611b0b565b6001600160a01b03888116600081815260a1602090815260408083208c861680855292529182902054609c549251631a50ef2f60e01b815260048101949094526024840191909152921690631a50ef2f90604401602060405180830381865afa158015611add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b019190611f16565b611b0b9190611f03565b90506000886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b719190611f9d565b611b7c90600a6120a4565b611b8f836001600160e01b038616611f64565b611b999190611f7b565b9050600081611bbd8a6001600160a01b03166000908152609e602052604090205490565b611bc79190611f51565b6001600160a01b03808b166000818152609e6020526040908190208490555192935091908c16907f35a61f3c719e8f59f636c336e563ba74f667fadafcc80d709231ca8bb59eecce90611c2f9086908b909182526001600160e01b0316602082015260400190565b60405180910390a39998505050505050505050565b600054610100900460ff16611c6b5760405162461bcd60e51b815260040161062a906120f3565b6107a4611cee565b6000600160e01b8210611c8557600080fd5b5090565b60006401000000008210611c8557600080fd5b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611d155760405162461bcd60e51b815260040161062a906120f3565b6107a4336116ca565b6001600160a01b03811681146107b757600080fd5b600060208284031215611d4557600080fd5b8135611d5081611d1e565b9392505050565b60008060408385031215611d6a57600080fd5b823591506020830135611d7c81611d1e565b809150509250929050565b60008060408385031215611d9a57600080fd5b8235611da581611d1e565b91506020830135611d7c81611d1e565b600080600060608486031215611dca57600080fd5b8335611dd581611d1e565b92506020840135611de581611d1e565b91506040840135611df581611d1e565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015611e415783516001600160a01b031683529284019291840191600101611e1c565b50909695505050505050565b600060208284031215611e5f57600080fd5b5035919050565b60008060008060808587031215611e7c57600080fd5b8435611e8781611d1e565b93506020850135611e9781611d1e565b92506040850135611ea781611d1e565b91506060850135611eb781611d1e565b939692955090935050565b60208082526011908201527010b2b6b4b9b9b4b7b739a6b0b730b3b2b960791b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156105e1576105e1611eed565b600060208284031215611f2857600080fd5b5051919050565b600060208284031215611f4157600080fd5b81518015158114611d5057600080fd5b808201808211156105e1576105e1611eed565b80820281158282048414176105e1576105e1611eed565b600082611f9857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611faf57600080fd5b815160ff81168114611d5057600080fd5b600181815b80851115611ffb578160001904821115611fe157611fe1611eed565b80851615611fee57918102915b93841c9390800290611fc5565b509250929050565b600082612012575060016105e1565b8161201f575060006105e1565b8160018114612035576002811461203f5761205b565b60019150506105e1565b60ff84111561205057612050611eed565b50506001821b6105e1565b5060208310610133831016604e8410600b841016171561207e575081810a6105e1565b6120888383611fc0565b806000190482111561209c5761209c611eed565b029392505050565b6000611d5060ff841683612003565b6001600160e01b038181168382160190808211156116c3576116c3611eed565b6001600160e01b038281168282160390808211156116c3576116c3611eed565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220e4ee15056731cec908410852db0c2a68a36de72c83fa401d677c55ee1e7caccf64736f6c63430008160033