From 2cfbfbe4acf7f5adf61410f94e0b0f5a08638698 Mon Sep 17 00:00:00 2001 From: Sonic Date: Tue, 13 Nov 2018 17:51:27 +0800 Subject: core: push height of round 0 in genesis block (#17) * core: push height of round 0 in genesis block * vm: fix governance dispatch method name mismatch with abi also rename RoundHeightLoc to roundHeightLoc --- core/genesis.go | 3 +++ core/vm/governance.go | 16 ++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'core') diff --git a/core/genesis.go b/core/genesis.go index 245fe9fff..c598f1d16 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -306,6 +306,9 @@ func (g *Genesis) ToBlock(db ethdb.Database) *types.Block { crs := crypto.Keccak256([]byte(g.Config.Dexcon.GenesisCRSText)) govStateHelper.PushCRS(common.BytesToHash(crs)) + // Round 0 height. + govStateHelper.PushRoundHeight(big.NewInt(0)) + // Owner. govStateHelper.SetOwner(g.Config.Dexcon.Owner) diff --git a/core/vm/governance.go b/core/vm/governance.go index cc453ace7..49141761f 100644 --- a/core/vm/governance.go +++ b/core/vm/governance.go @@ -917,7 +917,7 @@ func RunGovernanceContract(evm *EVM, input []byte, contract *Contract) ( return nil, errExecutionReverted } return res, nil - case "RoundHeight": + case "roundHeight": round := new(big.Int) if err := method.Inputs.Unpack(&round, arguments); err != nil { return nil, errExecutionReverted @@ -939,7 +939,7 @@ func RunGovernanceContract(evm *EVM, input []byte, contract *Contract) ( // Storage position enums. const ( - RoundHeightLoc = iota + roundHeightLoc = iota nodesLoc offsetLoc crsLoc @@ -1096,21 +1096,21 @@ func (s *GovernanceStateHelper) appendTo2DByteArray(pos, index *big.Int, data [] s.writeBytes(elementLoc, data) } -// uint256[] public RoundHeight; +// uint256[] public roundHeight; func (s *GovernanceStateHelper) LenRoundHeight() *big.Int { - return s.getStateBigInt(big.NewInt(RoundHeightLoc)) + return s.getStateBigInt(big.NewInt(roundHeightLoc)) } func (s *GovernanceStateHelper) RoundHeight(round *big.Int) *big.Int { - baseLoc := s.getSlotLoc(big.NewInt(RoundHeightLoc)) + baseLoc := s.getSlotLoc(big.NewInt(roundHeightLoc)) loc := new(big.Int).Add(baseLoc, round) return s.getStateBigInt(loc) } func (s *GovernanceStateHelper) PushRoundHeight(height *big.Int) { // increase length by 1. - length := s.getStateBigInt(big.NewInt(RoundHeightLoc)) - s.setStateBigInt(big.NewInt(RoundHeightLoc), new(big.Int).Add(length, big.NewInt(1))) + length := s.getStateBigInt(big.NewInt(roundHeightLoc)) + s.setStateBigInt(big.NewInt(roundHeightLoc), new(big.Int).Add(length, big.NewInt(1))) - baseLoc := s.getSlotLoc(big.NewInt(RoundHeightLoc)) + baseLoc := s.getSlotLoc(big.NewInt(roundHeightLoc)) loc := new(big.Int).Add(baseLoc, length) s.setStateBigInt(loc, height) -- cgit v1.2.3