jito-foundation / restaking

https://docs.restaking.jito.network/
Other
54 stars 5 forks source link

Vault: fee precision considerations #129

Open coachchucksol opened 5 days ago

coachchucksol commented 5 days ago

This is a discussion about what happens to reward fees with different levels of token precision.

coachchucksol commented 2 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:

🟥 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% 🟩