Pool

Pool

this implements the GYSR core Pool contract. It supports generalized incentive mechanisms through a modular architecture, where staking and reward logic is contained in child contracts.



constructor(address staking_, address reward_, address gysr_, address config_) (public)

Parameters

  • staking_: the staking module address

  • reward_: the reward module address

  • gysr_: address for GYSR token

  • config_: address for configuration contract



stakingTokens() → address[] (external)

Returns

  • staking tokens for Pool


rewardTokens() → address[] (external)

Returns

  • reward tokens for Pool


stakingBalances(address user) → uint256[] (external)

Returns

  • staking balances for user


stakingTotals() → uint256[] (external)

Returns

  • total staking balances for Pool


rewardBalances() → uint256[] (external)

Returns

  • reward balances for Pool


usage() → uint256 (external)

Returns

  • GYSR usage ratio for Pool


stakingModule() → address (external)

Returns

  • address of staking module


rewardModule() → address (external)

Returns

  • address of reward module


stake(uint256 amount, bytes stakingdata, bytes rewarddata) (external)

stake asset and begin earning rewards

Parameters

  • amount: number of tokens to stake

  • stakingdata: data passed to staking module

  • rewarddata: data passed to reward module



unstake(uint256 amount, bytes stakingdata, bytes rewarddata) (external)

unstake asset and claim rewards

Parameters

  • amount: number of tokens to unstake

  • stakingdata: data passed to staking module

  • rewarddata: data passed to reward module



claim(uint256 amount, bytes stakingdata, bytes rewarddata) (external)

claim rewards without unstaking

Parameters

  • amount: number of tokens to claim against

  • stakingdata: data passed to staking module

  • rewarddata: data passed to reward module



update(bytes stakingdata, bytes rewarddata) (external)

method called ad hoc to update user accounting

Parameters

  • stakingdata: data passed to staking module

  • rewarddata: data passed to reward module



clean(bytes stakingdata, bytes rewarddata) (external)

method called ad hoc to clean up and perform additional accounting

Parameters

  • stakingdata: data passed to staking module

  • rewarddata: data passed to reward module



gysrBalance() → uint256 (external)

Returns

  • gysr balance available for withdrawal


withdraw(uint256 amount) (external)

withdraw GYSR tokens applied during unstaking

Parameters

  • amount: number of GYSR to withdraw


transferControlStakingModule(address newController) (external)

transfer control of the staking module to another account

Parameters

  • newController: address of new controller


transferControlRewardModule(address newController) (external)

transfer control of the reward module to another account

Parameters

  • newController: address of new controller


multicall(bytes[] data) → bytes[] results (external)

execute multiple operations in a single call

Parameters

  • data: array of encoded function data