Dear community,
I am writing to clear up any confusion surrounding the decrease in POSI token balance in holder wallets and the increase in the Company Reserve Funds wallet on February 2, 2023 at 7:20:17 PM +UTC.
In a nutshell, the change in balance was due to the implementation of the RFI (Reflection Fee Incentive) function natively in the POSI token. The Company Reserve Funds wallet was also recently reinstated, causing all accumulated RFIs during the exclusion period to be added to the wallet and subtracting the same amount from the balances of holders.
Abstract
The POSI token was designed with the RFI function to automatically deduct 1% of every token transfer as a fee and distribute it among all other holders based on their balance, without incurring high gas fees.
The function works by keeping track of two variables, _rOwned
and _tOwned
, instead of absolute user balances.
When the getBalanceOf
function is called, the tokenFromReflection
function is triggered to calculate the balance, which is equal to reflectOwned/currentRate
.
The currentRate
is equal to rSupply/tSupply
(reflectSupply/tokenSupply
), where rSupply
is equal to current rSupply - total rOwned excluded
and tSupply
is equal to current tSupply - total tOwned excluded
.
When a transfer is made, only the rSupply
is reduced by the fee, causing all balances to increase proportionally, while the total supply remains unchanged.
Example:
Let’s say Alice holds 10,000 POSI in her wallet. The total supply of POSI is 100,000, with a reflect supply of 100,000. The initial currentRate is 1 (100,000 / 100,000).
When Bob transfers 10,000 POSI to Carol, a fee of 100 POSI is deducted. This reduces the reflect supply to 99,990, and the current rate becomes 0.999 (99,900 / 100,000).
Since Alice’s balance is calculated as reflectOwned/currentRate (10,000 / 0.999), her balance increases to 10,010.01 POSI.
In this way, every time a transfer is made, all holders’ balances increase proportionally, without having to incur high gas fees.
Please find the source code on the token address: $0.08 | Position Token (POSI) Token Tracker | BscScan
Problem
Yesterday, we attempted to execute this proposal (Position Exchange) but encountered an issue. Upon further investigation, we found that the address had been excluded previously. We tried to include it again, but didn’t realize that including a new account would cause the current rate to increase.
According to our data, before we executed the transaction1 block, the rate was 7169864220840672
(wei) - Figure 1. After the transaction was executed the rate increased to 7598174288117090
- Figure 2. So according to the formula balance = reflectOwned/currentRate, the balance of all holders will decrease accordingly.
So the question is why is the balance of the Contract Company Funds not decreasing, but increasing? To answer this, let’s go back to the time when the Company Funds contract was excluded (around block 9858215 - the block contract Company Funds was created), the rate was 11387404945595228 (wei) - Figure 3, much higher than the current one, and note that the excluded contract will only calculate the rate at the time of exclusion. So when was included again, the rate was reduced causing its balance to increase.
(Figure. 1)
(Figure. 2)
(Figure. 3)
Solution
We are aware that this situation is causing inconvenience for you, our users. We have good news though! We have a donate
function in place which can donate to all holders with a corresponding rate, using the same mechanism as mentioned previously. However, before we proceed with the donation, we need to thoroughly test the donate function which will take 2-3 days. After that, we will create a proposal to withdraw the funds from the Company Funds, a process that takes another 2 days. We estimate that the donation will happen around the middle of next week. Although we cannot guarantee that you will receive the exact original amount, we will make sure to perform tests and calculations to minimize any losses. In the meantime, we ask that you keep your balance intact, as the donation will be made based on the balance rate.
We apologize for any inconvenience and will do everything in our power to make things right.
By the way, please register an account on this forum as it will be the official Position Exchange community, where we can discuss and shape the future of Position Exchange together.
Thank you,
Justin