# PreciousProject ## MagicRewards token flow for prMagicStaking and PreciousStaking MAGIC - MAGIC token prMAGIC - locked MAGIC token (similar to cvxCRV) PreciousToken - our own token(similar to cvx) prMagicRewardPool - prMagic token staking preciousRewardPool -preciousStaking token staking 1. User Staked/Mint prMagic token :- ```mermaid graph TD; U[User] -->|MAGIC| D[1. Deposits to MagicDepositor] D --> |MAGIC| L[2. Locks on AtlasMine] L --> M[3. Mints prMAGIC] M -->|prMAGIC| S{Stake} S --> |Y| S1[4. Stakes to prMagicRewardPool] S1 --> U S --> |No| U ``` 2. User Staked precious token :- ```mermaid graph TD; U[User] -->|PreciousToken| S[1. Stakes to preciousRewardPool] ``` 3. User Staked prMAgic token :- ```mermaid graph TD; U[User] -->|prMagicToken| S[1. Stakes to prMagicRewardPool] ``` 4. Reward Token Flow for both StakingContract :- for an example if we think protocl yield about 500 magic token. Protocol will send 200 magic token to prMagicRewardPool, 400 to preciousRewardPool and other purpose is 100 magic token ```mermaid graph TD; U[User] -->|MagicDepositor Contract| E E[1. EarMark reward] --> |Call to queueNewRewards of both rewardPool with respective percentage | R[2. Reward Added to both pool i.e prMagicRewardPool and preciousRewardPool] R --> S[3. User will claim rewards from respective rewardPool ] S --> C[4. Before Claiming Reward , claimed magic will deposit to magicDepositor] C --> RS[5. Same 1st process will restart i.e User Staked/Mint prMagic token ] ```