Contract
Contract holds all LSD functionalities, it consists with many stake manager and stake pool which represent a individual project party associated with an admin account who is privileged to config stake manager's parameters.
Project party
initialize_stake_manager
: create and initialize stake manager and stake pooltransfer_stake_manager_admin
: transfer LSD project's admin permission to another accounttransfer_balancer
: transfer LSD project's balancer permission to another accountset_min_stake_amount
: config the minimum stake amount of the LSD projectset_unbonding_duration
: config unbonding duration in epochsset_platform_fee_commission
: config the commission feeadd_validator
: add validator to the lsd networkremove_validator
: remove validator from the lsd network
User
stake
: stakers stake an amount of Sol to the LSD project and receive LST in returnunstake
: anyone who owns LSD token can call this function, LSD token will be burnt and users have to wait unbonding period of time to withdraw their assetswithdraw
: When unstake become mature, users can withdraw