aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSonic <sonic@dexon.org>2018-11-13 17:51:27 +0800
committerWei-Ning Huang <w@dexon.org>2018-12-19 20:54:27 +0800
commit2cfbfbe4acf7f5adf61410f94e0b0f5a08638698 (patch)
treeb01338bdb71fec6948d584696149096d85a2b89b
parentf6c440bddb373ee6ceb02975d88f9becd5cb6136 (diff)
downloaddexon-2cfbfbe4acf7f5adf61410f94e0b0f5a08638698.tar.gz
dexon-2cfbfbe4acf7f5adf61410f94e0b0f5a08638698.tar.zst
dexon-2cfbfbe4acf7f5adf61410f94e0b0f5a08638698.zip
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
-rw-r--r--core/genesis.go3
-rw-r--r--core/vm/governance.go16
2 files changed, 11 insertions, 8 deletions
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)