55926 bc insight totalsupply overstates circulating vtho
Description
func (e *Energy) TotalSupply() (*big.Int, error) {
initialSupply, err := e.getInitialSupply()
if err != nil {
return nil, err
}
// calc grown energy for total token supply
acc := state.Account{
Balance: initialSupply.Token,
Energy: initialSupply.Energy,
BlockTime: initialSupply.BlockTime,
}
// this is a virtual account, use account.CalcEnergy directly
stopTime, err := e.GetEnergyGrowthStopTime()
if err != nil {
return nil, err
}
grown := acc.CalcEnergy(e.blockTime, stopTime)
issued, err := e.getIssued()
if err != nil {
return nil, err
}
return grown.Add(grown, issued), nil
}Proof of Concept (reproduction)
Previous55957 sc medium checkstake does not check for uint64 overflowNext55925 bc insight underpriced supply queries enable cheap cpu dos
Was this helpful?