From 470d8c119d9985e93cf54f537ccd5cc86a2fdea7 Mon Sep 17 00:00:00 2001 From: Wei-Ning Huang Date: Fri, 26 Oct 2018 05:33:35 +0000 Subject: core: set correct balance for governance contract --- core/genesis.go | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'core/genesis.go') diff --git a/core/genesis.go b/core/genesis.go index cdc5531f2..2412ede30 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -254,6 +254,8 @@ func (g *Genesis) ToBlock(db ethdb.Database) *types.Block { statedb, _ := state.New(common.Hash{}, state.NewDatabase(db)) govStateHelper := vm.GovernanceStateHelper{statedb} + totalStaked := big.NewInt(0) + for addr, account := range g.Alloc { statedb.AddBalance(addr, new(big.Int).Sub(account.Balance, account.Staked)) statedb.SetCode(addr, account.Code) @@ -261,8 +263,12 @@ func (g *Genesis) ToBlock(db ethdb.Database) *types.Block { for key, value := range account.Storage { statedb.SetState(addr, key, value) } + totalStaked = new(big.Int).Add(totalStaked, account.Staked) } + // Move staked balance to governance contract. + statedb.AddBalance(vm.GovernanceContractAddress, totalStaked) + // Stake in governance state. keys := AllocKey{} for addr := range g.Alloc { -- cgit