diff --git a/consensus/posv/posv.go b/consensus/posv/posv.go index 9a967049da..142aec836f 100644 --- a/consensus/posv/posv.go +++ b/consensus/posv/posv.go @@ -53,7 +53,7 @@ const ( type Masternode struct { Address common.Address - Stake uint64 + Stake *big.Int } // Posv proof-of-stake-voting protocol constants. diff --git a/core/blockchain.go b/core/blockchain.go index ea97affb89..80b3bc1307 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -1624,7 +1624,7 @@ func (bc *BlockChain) UpdateM1() error { } //TODO: smart contract shouldn't return "0x0000000000000000000000000000000000000000" if candidate.String() != "0x0000000000000000000000000000000000000000" { - ms = append(ms, posv.Masternode{Address: candidate, Stake: v.Uint64()}) + ms = append(ms, posv.Masternode{Address: candidate, Stake: v}) } } if len(ms) == 0 { @@ -1632,7 +1632,7 @@ func (bc *BlockChain) UpdateM1() error { os.Exit(1) } else { sort.Slice(ms, func(i, j int) bool { - return ms[i].Stake >= ms[j].Stake + return ms[i].Stake.Cmp(ms[j].Stake) >= 0 }) log.Info("Ordered list of masternode candidates") for _, m := range ms {