Other Instructions
[Role] Instruction
[User] RequestStakeUpdate
Create a StakeUpdateRequest { amount } account.
if amount < 0, its considered a withdraw request.
Else it's a deposit request.
This request has an internal approval step for AML checks
[Admin] ApproveStakeUpdate
Mark StakeUpdate as AML check completed.
[Admin] CompleteStakeUpdate
Wait until funds are no longer locked in francium. ie, the Epoch is back to the Running state.
if deposit:
Move requested amount from PendingDepositVault into DepositVault
if withdraw:
Move requested amount from DepositVault into User's USDC ATA
If requested amount is more than the available balance, move all the available balance.
[User|Admin] CancelStakeUpdate
If the stake update was a deposit
Move the amount from PendingDepositVault into User's USDC ATA.
Delete the StakeUpdate account
[User] ClaimWinning { page, index }
Mark the winner entry as claimed.
Move the prize amount from the prize vault to deposit vault and update user's stake account.
[Admin] FundJackpot
prize_amount = EpochTierWinners(tier=1,epoch_index=current).amount
Move prize_amount from Admin's USDC ATA -> Tier1PrizeVault.
EpochTierWinners(tier, epoch_index).claimable = true
[Admin] WithdrawVault
vault = Treasury or Insurance
Move `amount` from `vault` into Admin's USDC ATA.
[Admin] RotateKey { key_type, value }
Change the authorized key of any of SuperAdmin, Admin, Investor.
This is updated as LatestEpoch.pubkeys.<key_type> = value
Last updated