Function "buyOutEstateNFT" incorrectly calculates amount of assets to transfer to each beneficiary.
According the documentation, the contract must calculate amounts to transfer using the logic below:
If the beneficiaries settle the NFTs on-chain the amount to pay is
(Value / Number Of Beneficiaries) * (Number Of Beneficiaries - 1)since the paying beneficiary does not need to pay his own share. The above calculation is equally distributed between the other beneficiaries.
The actual calculation is as folloes:
Here finalAmount is the amount that excludes the paying beneficiary and it is distributed among other beneficiaries, i.e. each beneficiary must receive finalAmount/multiplier assets. However, current implementation uses divisor instead of multiplier, and each beneficiary receives less amount of assets than it is intended.
Beneficiaries receive less assets than they must receive.
Manual review
Change the transferred amount of tokens:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.