0 txs
1 call
constructor
constructor(address _whale_oracle_addr)
functions
CLAIM_PERIOD
viewfunction CLAIM_PERIOD() view returns (uint96)
CREDI_WHALE_ORACLE
viewfunction CREDI_WHALE_ORACLE() view returns (address)
getPool
viewfunction getPool(uint256 pool_id) view returns (address staking_token, address rewards_token, address price_oracle, uint96 maturity, uint96 apy, uint96 whales_bonus_apy)
getPoolsCount
viewfunction getPoolsCount() view returns (uint256)
getStake
viewfunction getStake(uint256 stake_id) view returns (address owner, uint256 pool_id, uint96 maturity, uint256 stake_amount, uint256 reward_amount, uint256 required_CREDI)
owner
viewfunction owner() view returns (address)
pending_payments
viewfunction pending_payments(address) view returns (uint256)
addRewards
nonpayablefunction addRewards(address rewards_token, uint256 amount)
claim
nonpayablefunction claim(uint256 stake_id)
createPool
nonpayablefunction createPool(address staking_token, address rewards_token, address price_oracle, uint256 reward_amount, uint96 maturity, uint96 apy, uint96 whales_bonus_apy) returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
setAPY
nonpayablefunction setAPY(uint256 pool_id, uint96 apy)
setBonusAPY
nonpayablefunction setBonusAPY(uint256 pool_id, uint96 whales_bonus_apy)
stake
nonpayablefunction stake(uint256 pool_id, uint256 stake_amount, bytes token0_price_data, bytes token1_price_data)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
voidReward
nonpayablefunction voidReward(uint256 stake_id)
withdrawRewards
nonpayablefunction withdrawRewards(address rewards_token, address to, uint256 amount)
withdrawStake
nonpayablefunction withdrawStake(uint256 stake_id)
events
APYChanged
event APYChanged(uint256 indexed pool_id, uint96 apy)
BonusAPYChanged
event BonusAPYChanged(uint256 indexed pool_id, uint96 whales_bonus_apy)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PoolCreated
event PoolCreated(uint256 indexed pool_id, address indexed staking_token, address indexed rewards_token, address price_oracle, uint96 maturity, uint96 apy, uint96 whales_bonus_apy)
RewardAdded
event RewardAdded(address indexed token, uint256 amount)
RewardPaid
event RewardPaid(uint256 indexed pool_id, uint256 stake_id)
RewardVoided
event RewardVoided(uint256 indexed pool_id, uint256 stake_id)
RewardWithdrawn
event RewardWithdrawn(address indexed token, address indexed to, uint256 amount)
Staked
event Staked(address indexed owner, uint256 stake_id, uint256 indexed pool_id, uint96 maturity, uint256 stake_amount, uint256 rewards_amount, uint256 required_CREDI)
StakeWithdrawn
event StakeWithdrawn(uint256 indexed pool_id, uint256 stake_id)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a06040526001600455348015610014575f5ffd5b50604051612595380380612595833981016040819052610033916101b3565b338061005857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006181610164565b5060018080556001600160a01b0391821660809081526040805160c0810182525f808252602082018181529282018181526060830182815294830182815260a0840183815260028054988901815590935292519351938716600160a01b6001600160601b039586168102919091177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600390980297880155905194519487169484168102949094177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf860155905190519416931602919091177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0909101556101e0565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156101c3575f5ffd5b81516001600160a01b03811681146101d9575f5ffd5b9392505050565b60805161238f6102065f395f81816102cb01528181610eb90152610f6c015261238f5ff3fe608060405234801561000f575f5ffd5b506004361061012e575f3560e01c8063715018a6116100ad578063a9fc507b1161007d578063cc5c56dc11610063578063cc5c56dc146102c6578063ce325bf8146102ed578063f2fde38b14610345575f5ffd5b8063a9fc507b146102ab578063b4ac6860146102be575f5ffd5b8063715018a61461024d57806374ee6b62146102555780638da5cb5b14610268578063954821b61461028c575f5ffd5b806325d5971f116101025780633b5dd047116100e85780633b5dd047146102065780634f44daa91461021957806369ca431b1461022c575f5ffd5b806325d5971f146101e0578063379607f5146101f3575f5ffd5b806221578414610132578063039ba6b714610147578063068bcd8d1461015a57806321241dfe146101be575b5f5ffd5b610145610140366004611f2e565b610358565b005b610145610155366004611f60565b6104aa565b61016d610168366004611f2e565b6105ed565b604080516001600160a01b039788168152958716602087015293909516928401929092526001600160601b039081166060840152908116608083015290911660a082015260c0015b60405180910390f35b6101c86234bc0081565b6040516001600160601b0390911681526020016101b5565b6101456101ee366004611f2e565b6107a1565b610145610201366004611f2e565b6109f7565b610145610214366004611fcf565b610cb8565b610145610227366004611f60565b61121a565b61023f61023a366004612065565b611354565b6040519081526020016101b5565b610145611698565b6101456102633660046120e5565b6116ab565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016101b5565b61023f61029a366004612123565b60056020525f908152604090205481565b6101456102b9366004612145565b611808565b61023f6118d9565b6102747f000000000000000000000000000000000000000000000000000000000000000081565b6103006102fb366004611f2e565b6118ef565b604080516001600160a01b03909716875260208701959095526001600160601b03909316938501939093526060840152608083019190915260a082015260c0016101b5565b610145610353366004612123565b6119a2565b6103606119f5565b805f81118015610371575060045481105b6103c25760405162461bcd60e51b815260206004820152601b60248201527f4c505374616b696e673a496e76616c6964205374616b6520494421000000000060448201526064015b60405180910390fd5b5f82815260036020526040902060018101546103f2906234bc0090600160a01b90046001600160601b0316612183565b6001600160601b0316426001600160601b0316101561040f575f5ffd5b5f6002825f015481548110610426576104266121a8565b5f918252602080832060038681015493020160018101546001600160a01b0316845260059091526040832080549194509192906104649084906121bc565b90915550505f600383015581546040518581527f085cf309fcbacaf1ee2b300f62e8586a0661e41c7f318003e9aab792be89980b9060200160405180910390a250505050565b6104b26119f5565b815f811180156104c3575060025481105b61050f5760405162461bcd60e51b815260206004820152601a60248201527f4c505374616b696e673a496e76616c696420506f6f6c2049442100000000000060448201526064016103b9565b620186a0826001600160601b0316111561056b5760405162461bcd60e51b815260206004820152601a60248201527f4c505374616b696e673a6d61782061707920697320313030302500000000000060448201526064016103b9565b816002848154811061057f5761057f6121a8565b5f9182526020918290206003919091020160010180546001600160a01b0316600160a01b6001600160601b0394851602179055604051918416825284917f09a2c3c653a42f5c64bbfdf07224d8e0d6526460f44e520ac49bae23804e18e891015b60405180910390a2505050565b5f5f5f5f5f5f865f81118015610604575060025481105b6106505760405162461bcd60e51b815260206004820152601a60248201527f4c505374616b696e673a496e76616c696420506f6f6c2049442100000000000060448201526064016103b9565b60028881548110610663576106636121a8565b5f918252602090912060039091020154600280546001600160a01b03909216918a908110610693576106936121a8565b905f5260205f2090600302016001015f9054906101000a90046001600160a01b031660028a815481106106c8576106c86121a8565b905f5260205f2090600302016002015f9054906101000a90046001600160a01b031660028b815481106106fd576106fd6121a8565b905f5260205f2090600302015f0160149054906101000a90046001600160601b031660028c81548110610732576107326121a8565b905f5260205f20906003020160010160149054906101000a90046001600160601b031660028d81548110610768576107686121a8565b905f5260205f20906003020160020160149054906101000a90046001600160601b03169650965096509650965096505091939550919395565b6107a9611a3a565b805f811180156107ba575060045481105b6108065760405162461bcd60e51b815260206004820152601b60248201527f4c505374616b696e673a496e76616c6964205374616b6520494421000000000060448201526064016103b9565b5f82815260036020526040902060018101546001600160a01b031633146108795760405162461bcd60e51b815260206004820152602160248201527f4c505374616b696e673a43616c6c6572206973206e6f7420746865206f776e656044820152603960f91b60648201526084016103b9565b5f6002825f015481548110610890576108906121a8565b5f9182526020918290206040805160c081018252600390930290910180546001600160a01b0380821685526001600160601b03600160a01b92839004811696860196909652600180840154808316958701959095529382900486166060860152600290920154918216608085015290819004841660a08401529085015491935090041661091a4290565b6001600160601b031610156109865760405162461bcd60e51b815260206004820152602c60248201527f4c505374616b696e673a4561726c79205769746864726177616c206973206e6f60448201526b74207065726d69747465642160a01b60648201526084016103b9565b6002820154156109e8576109ab33600284015483516001600160a01b03169190611a7d565b5f600283015581546040518581527f3db0ca701d7c1106534c6003e5d65dae65a9cb891ad5bbb9be39c091df79d87e906020015b60405180910390a25b5050506109f460018055565b50565b6109ff611a3a565b805f81118015610a10575060045481105b610a5c5760405162461bcd60e51b815260206004820152601b60248201527f4c505374616b696e673a496e76616c6964205374616b6520494421000000000060448201526064016103b9565b5f82815260036020526040902060018101546001600160a01b03163314610acf5760405162461bcd60e51b815260206004820152602160248201527f4c505374616b696e673a43616c6c6572206973206e6f7420746865206f776e656044820152603960f91b60648201526084016103b9565b5f6002825f015481548110610ae657610ae66121a8565b5f918252602090912060018401546003909202019150600160a01b90046001600160601b0316426001600160601b03161015610b795760405162461bcd60e51b815260206004820152602c60248201527f4c505374616b696e673a4561726c79205769746864726177616c206973206e6f60448201526b74207065726d69747465642160a01b60648201526084016103b9565b5f826003015411610bcc5760405162461bcd60e51b815260206004820152601a60248201527f4c505374616b696e673a4e6f7468696e6720746f20636c61696d00000000000060448201526064016103b9565b600282015415610bf857610bf133600284015483546001600160a01b03169190611a7d565b5f60028301555b610c1633600384015460018401546001600160a01b03169190611a7d565b600382015460018201546001600160a01b03165f9081526005602052604081208054909190610c469084906121bc565b90915550505f600383015581546040518581527f3db0ca701d7c1106534c6003e5d65dae65a9cb891ad5bbb9be39c091df79d87e9060200160405180910390a281546040518581527f4d7828f2aa36030cc63cdea79ec646099aa121d019f1a90edb55078939fb84ea906020016109df565b610cc0611a3a565b855f81118015610cd1575060025481105b610d1d5760405162461bcd60e51b815260206004820152601a60248201527f4c505374616b696e673a496e76616c696420506f6f6c2049442100000000000060448201526064016103b9565b5f8611610d925760405162461bcd60e51b815260206004820152603160248201527f4c505374616b696e673a7374616b655f616d6f756e74206d757374206265206760448201527f726561746572207468616e207a65726f2100000000000000000000000000000060648201526084016103b9565b5f60028881548110610da657610da66121a8565b905f5260205f20906003020190505f8160010160149054906101000a90046001600160601b03166001600160601b031611610e235760405162461bcd60e51b815260206004820152601960248201527f4c505374616b696e673a506f6f6c20697320706175736564210000000000000060448201526064016103b9565b610e3a3382546001600160a01b031690308a611af6565b805460028201545f91610e5f916001600160a01b03918216918b91168a8a8a8a611b35565b825460018401549192505f916301e13380916001600160601b03600160a01b9182900481169261271092610e9692910416866121cf565b610ea091906121e6565b610eaa91906121cf565b610eb491906121e6565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ef1e259336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610f41573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f659190612205565b1561104b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639a3bfdf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fea9190612224565b845460028601549192506301e13380916001600160601b03600160a01b92839004811692612710926110209291900416876121cf565b61102a91906121e6565b61103491906121cf565b61103e91906121e6565b611048908361223b565b91505b83545f90600160a01b90046001600160601b03164261106a9190612183565b90506040518060c001604052808d81526020016110843390565b6001600160a01b03168152602001826001600160601b031681526020018c81526020018481526020018381525060035f60045481526020019081526020015f205f820151815f01556020820151816001015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a8154816001600160601b0302191690836001600160601b03160217905550606082015181600201556080820151816003015560a082015181600401559050508260055f876001015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205f82825461118e919061223b565b9091555050600454604080519182526001600160601b03831660208301528181018d90526060820185905260808201849052518d9133917fc48192cf3609b4932a8b10a6f09fe1cac38610fdef14eacc15b35c454da0b4c59181900360a00190a360048054905f6111fe8361224e565b919050555050505050505061121260018055565b505050505050565b6112226119f5565b815f81118015611233575060025481105b61127f5760405162461bcd60e51b815260206004820152601a60248201527f4c505374616b696e673a496e76616c696420506f6f6c2049442100000000000060448201526064016103b9565b620186a0826001600160601b031611156112db5760405162461bcd60e51b815260206004820181905260248201527f4c505374616b696e673a6d617820626f6e75732061707920697320313030302560448201526064016103b9565b81600284815481106112ef576112ef6121a8565b5f9182526020918290206003919091020160020180546001600160a01b0316600160a01b6001600160601b0394851602179055604051918416825284917fd3cd184b56b5b95016981fc55484ff8fdf06eb587430055c7ab828a0edc0dc9d91016105e0565b5f61135d6119f5565b5f846001600160601b0316116113db5760405162461bcd60e51b815260206004820152602960248201527f4c505374616b696e673a6d61747572697479206d75737420626520677265617460448201527f6572207468616e2030000000000000000000000000000000000000000000000060648201526084016103b9565b866001600160a01b0316866001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015611421573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114459190612266565b6001600160a01b0316146114e75760405162461bcd60e51b815260206004820152604160248201527f4c505374616b696e673a726577617264735f746f6b656e206d7573742062652060448201527f657175616c20746f2070726963655f6f7261636c652071756f746520746f6b6560648201527f6e00000000000000000000000000000000000000000000000000000000000000608482015260a4016103b9565b6040805160c0810182526001600160a01b038a811682526001600160601b03878116602084019081528b8316948401948552878216606085019081528b84166080860190815288841660a0870190815260028054600180820183555f83815299519651968916600160a01b9789168802177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600390930292830155995194519488169487168602949094177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf85015591519051951694909316909102929092177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0909201919091555490916115fb916121bc565b9050876001600160a01b0316896001600160a01b0316827f6b64b7e8b6f4656658efb1c74b7d1bbff6e84d3d7b1cd5ae89fd6cd91de6ef968a89898960405161167494939291906001600160a01b039490941684526001600160601b039283166020850152908216604084015216606082015260800190565b60405180910390a4851561168c5761168c8887611808565b98975050505050505050565b6116a06119f5565b6116a95f611d05565b565b6116b36119f5565b6001600160a01b0383165f908152600560205260409020546116d5908261223b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611730573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117549190612224565b10156117a25760405162461bcd60e51b815260206004820152601560248201527f496e73756666696369656e742062616c616e636521000000000000000000000060448201526064016103b9565b6117b66001600160a01b0384168383611a7d565b816001600160a01b0316836001600160a01b03167fe06fab35f3c220725c11d544884aff93ebf67222c8310c487c71f27c844593e8836040516117fb91815260200190565b60405180910390a3505050565b5f811161187d5760405162461bcd60e51b815260206004820152602b60248201527f4c505374616b696e673a616d6f756e74206d757374206265206772656174657260448201527f207468616e207a65726f2100000000000000000000000000000000000000000060648201526084016103b9565b6118926001600160a01b038316333084611af6565b816001600160a01b03167fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e29826040516118cd91815260200190565b60405180910390a25050565b6002545f906118ea906001906121bc565b905090565b5f5f5f5f5f5f865f81118015611906575060045481105b6119525760405162461bcd60e51b815260206004820152601b60248201527f4c505374616b696e673a496e76616c6964205374616b6520494421000000000060448201526064016103b9565b5050505f9485525050600360208190526040909320600181015481546002830154958301546004909301546001600160a01b038316979196600160a01b9093046001600160601b03169550919350565b6119aa6119f5565b6001600160a01b0381166119ec576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016103b9565b6109f481611d05565b5f546001600160a01b031633146116a9576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016103b9565b600260015403611a76576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b6040516001600160a01b03838116602483015260448201839052611af191859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d6c565b505050565b6040516001600160a01b038481166024830152838116604483015260648201839052611b2f9186918216906323b872dd90608401611aaa565b50505050565b5f5f8890505f5f826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611b78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9c919061229e565b50915091505f5f611c0e8c866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c079190612224565b8686611df1565b91509150611c7e856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c759190612266565b828d8b8b611e50565b611cea866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cbd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ce19190612266565b848e8e8e611e50565b611cf4919061223b565b9d9c50505050505050505050505050565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f60205f8451602086015f885af180611d8b576040513d5f823e3d81fd5b50505f513d91508115611da2578060011415611daf565b6001600160a01b0384163b155b15611b2f576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016103b9565b5f808085611e0f886dffffffffffffffffffffffffffff88166121cf565b611e1991906121e6565b90505f86611e37896dffffffffffffffffffffffffffff88166121cf565b611e4191906121e6565b91989197509095505050505050565b5f836001600160a01b0316636a0892158787896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ec291906122ea565b87876040518663ffffffff1660e01b8152600401611ee495949392919061230a565b6020604051808303815f875af1158015611f00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f249190612224565b9695505050505050565b5f60208284031215611f3e575f5ffd5b5035919050565b80356001600160601b0381168114611f5b575f5ffd5b919050565b5f5f60408385031215611f71575f5ffd5b82359150611f8160208401611f45565b90509250929050565b5f5f83601f840112611f9a575f5ffd5b50813567ffffffffffffffff811115611fb1575f5ffd5b602083019150836020828501011115611fc8575f5ffd5b9250929050565b5f5f5f5f5f5f60808789031215611fe4575f5ffd5b8635955060208701359450604087013567ffffffffffffffff811115612008575f5ffd5b61201489828a01611f8a565b909550935050606087013567ffffffffffffffff811115612033575f5ffd5b61203f89828a01611f8a565b979a9699509497509295939492505050565b6001600160a01b03811681146109f4575f5ffd5b5f5f5f5f5f5f5f60e0888a03121561207b575f5ffd5b873561208681612051565b9650602088013561209681612051565b955060408801356120a681612051565b9450606088013593506120bb60808901611f45565b92506120c960a08901611f45565b91506120d760c08901611f45565b905092959891949750929550565b5f5f5f606084860312156120f7575f5ffd5b833561210281612051565b9250602084013561211281612051565b929592945050506040919091013590565b5f60208284031215612133575f5ffd5b813561213e81612051565b9392505050565b5f5f60408385031215612156575f5ffd5b823561216181612051565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160601b0381811683821601908111156121a2576121a261216f565b92915050565b634e487b7160e01b5f52603260045260245ffd5b818103818111156121a2576121a261216f565b80820281158282048414176121a2576121a261216f565b5f8261220057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612215575f5ffd5b8151801515811461213e575f5ffd5b5f60208284031215612234575f5ffd5b5051919050565b808201808211156121a2576121a261216f565b5f6001820161225f5761225f61216f565b5060010190565b5f60208284031215612276575f5ffd5b815161213e81612051565b80516dffffffffffffffffffffffffffff81168114611f5b575f5ffd5b5f5f5f606084860312156122b0575f5ffd5b6122b984612281565b92506122c760208501612281565b9150604084015163ffffffff811681146122df575f5ffd5b809150509250925092565b5f602082840312156122fa575f5ffd5b815160ff8116811461213e575f5ffd5b6001600160a01b038616815284602082015260ff8416604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f1916010194935050505056fea2646970667358221220f4a58dbffa6e655f93d91c0abcd6dd19730178db6015d5993607743d4f07653f64736f6c634300081e00330000000000000000000000004a8a0d46ff0c837e2facb8c194a8eca377c43746