Open coachchucksol opened 5 days ago
If we try to take 10% of 1 token, it's either 0% or 100% rewards depending on if we use div or div_ceil
If we want, we can set a minimum amount of new tokens deposited before we can call update_vault_balance to ensure we never hit 100% ( or 0% )
So two questions:
Do we want the rewards_fee to be in favor of the vault ( higher effective rate ), or the stakers ( lower effective fee )? In favor of the vault, we should use div_ceil ( which we are already doing ) In favor of the stakers, we should use div ( this is what the stake pool program does )
Do we want to add a minimum amount of new tokens before we can call update_vault_balance? This effectively "freezes the ratio" until enough new tokens are deposited We'd set it such that the effective rate is never above or below the reward_fee by 1%
🟥 Reward: 1 tokens, Fee (10.00%): 1 units, Effective rate: 100.00000% 🟥
🟥 Reward: 2 tokens, Fee (10.00%): 1 units, Effective rate: 50.00000% 🟥
🟥 Reward: 3 tokens, Fee (10.00%): 1 units, Effective rate: 33.33333% 🟥
🟥 Reward: 5 tokens, Fee (10.00%): 1 units, Effective rate: 20.00000% 🟥
🟥 Reward: 8 tokens, Fee (10.00%): 1 units, Effective rate: 12.50000% 🟥
🟩 Reward: 10 tokens, Fee (10.00%): 1 units, Effective rate: 10.00000% 🟩
🟧 Reward: 55 tokens, Fee (10.00%): 6 units, Effective rate: 10.90909% 🟧
🟩 Reward: 100 tokens, Fee (10.00%): 10 units, Effective rate: 10.00000% 🟩
🟧 Reward: 101 tokens, Fee (10.00%): 11 units, Effective rate: 10.89109% 🟧
🟧 Reward: 102 tokens, Fee (10.00%): 11 units, Effective rate: 10.78431% 🟧
🟧 Reward: 103 tokens, Fee (10.00%): 11 units, Effective rate: 10.67961% 🟧
🟧 Reward: 104 tokens, Fee (10.00%): 11 units, Effective rate: 10.57692% 🟧
🟨 Reward: 105 tokens, Fee (10.00%): 11 units, Effective rate: 10.47619% 🟨
🟩 Reward: 1000 tokens, Fee (10.00%): 100 units, Effective rate: 10.00000% 🟩
🟩 Reward: 10000 tokens, Fee (10.00%): 1000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 100000 tokens, Fee (10.00%): 10000 units, Effective rate: 10.00000% 🟩
🟨 Reward: 123456 tokens, Fee (10.00%): 12346 units, Effective rate: 10.00032% 🟨
🟩 Reward: 1000000 tokens, Fee (10.00%): 100000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 10000000 tokens, Fee (10.00%): 1000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 100000000 tokens, Fee (10.00%): 10000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 1000000000 tokens, Fee (10.00%): 100000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 10000000000 tokens, Fee (10.00%): 1000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 100000000000 tokens, Fee (10.00%): 10000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 1000000000000 tokens, Fee (10.00%): 100000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 10000000000000 tokens, Fee (10.00%): 1000000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 100000000000000 tokens, Fee (10.00%): 10000000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 1000000000000000 tokens, Fee (10.00%): 100000000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 10000000000000000 tokens, Fee (10.00%): 1000000000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 100000000000000000 tokens, Fee (10.00%): 10000000000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 1000000000000000000 tokens, Fee (10.00%): 100000000000000000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 1234123488989128398 tokens, Fee (10.00%): 123412348898912840 units, Effective rate: 10.00000% 🟩
🟩 Reward: 10000000000000000000 tokens, Fee (10.00%): 1000000000000000000 units, Effective rate: 10.00000% 🟩
🟥 Reward: 1 tokens, Fee (0.01%): 1 units, Effective rate: 100.00000% 🟥
🟥 Reward: 10 tokens, Fee (0.01%): 1 units, Effective rate: 10.00000% 🟥
🟥 Reward: 5 tokens, Fee (0.01%): 1 units, Effective rate: 20.00000% 🟥
🟥 Reward: 55 tokens, Fee (0.01%): 1 units, Effective rate: 1.81818% 🟥
🟥 Reward: 89 tokens, Fee (0.01%): 1 units, Effective rate: 1.12360% 🟥
🟧 Reward: 100 tokens, Fee (0.01%): 1 units, Effective rate: 1.00000% 🟧
🟨 Reward: 1000 tokens, Fee (0.01%): 1 units, Effective rate: 0.10000% 🟨
🟩 Reward: 10000 tokens, Fee (0.01%): 1 units, Effective rate: 0.01000% 🟩
🟩 Reward: 100000 tokens, Fee (0.01%): 10 units, Effective rate: 0.01000% 🟩
🟥 Reward: 1 tokens, Fee (0.10%): 1 units, Effective rate: 100.00000% 🟥
🟥 Reward: 10 tokens, Fee (0.10%): 1 units, Effective rate: 10.00000% 🟥
🟧 Reward: 100 tokens, Fee (0.10%): 1 units, Effective rate: 1.00000% 🟧
🟩 Reward: 1000 tokens, Fee (0.10%): 1 units, Effective rate: 0.10000% 🟩
🟩 Reward: 10000 tokens, Fee (0.10%): 10 units, Effective rate: 0.10000% 🟩
🟩 Reward: 100000 tokens, Fee (0.10%): 100 units, Effective rate: 0.10000% 🟩
🟥 Reward: 1 tokens, Fee (1.00%): 1 units, Effective rate: 100.00000% 🟥
🟥 Reward: 10 tokens, Fee (1.00%): 1 units, Effective rate: 10.00000% 🟥
🟩 Reward: 100 tokens, Fee (1.00%): 1 units, Effective rate: 1.00000% 🟩
🟩 Reward: 1000 tokens, Fee (1.00%): 10 units, Effective rate: 1.00000% 🟩
🟩 Reward: 10000 tokens, Fee (1.00%): 100 units, Effective rate: 1.00000% 🟩
🟩 Reward: 100000 tokens, Fee (1.00%): 1000 units, Effective rate: 1.00000% 🟩
🟥 Reward: 1 tokens, Fee (10.00%): 1 units, Effective rate: 100.00000% 🟥
🟩 Reward: 10 tokens, Fee (10.00%): 1 units, Effective rate: 10.00000% 🟩
🟩 Reward: 100 tokens, Fee (10.00%): 10 units, Effective rate: 10.00000% 🟩
🟩 Reward: 1000 tokens, Fee (10.00%): 100 units, Effective rate: 10.00000% 🟩
🟩 Reward: 10000 tokens, Fee (10.00%): 1000 units, Effective rate: 10.00000% 🟩
🟩 Reward: 100000 tokens, Fee (10.00%): 10000 units, Effective rate: 10.00000% 🟩
This is a discussion about what happens to reward fees with different levels of token precision.