From 611a560ab953a8dcb73dee465a26bc110a56a1db Mon Sep 17 00:00:00 2001 From: Jimmy Hu Date: Mon, 8 Oct 2018 13:46:48 +0800 Subject: core: vm: check if caller already staked when adding dkg mpk --- core/vm/governance.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'core/vm') diff --git a/core/vm/governance.go b/core/vm/governance.go index c75102f79..652d86357 100644 --- a/core/vm/governance.go +++ b/core/vm/governance.go @@ -904,6 +904,13 @@ func (g *GovernanceContract) proposeCRS(round *big.Int, signedCRS []byte) ([]byt } func (g *GovernanceContract) addDKGMasterPublicKey(round *big.Int, pk []byte) ([]byte, error) { + caller := g.contract.Caller() + offset := g.state.offset(caller) + // Can not add dkg mpk if not staked. + if offset.Cmp(big.NewInt(0)) < 0 { + return nil, errExecutionReverted + } + var dkgMasterPK types.DKGMasterPublicKey if err := rlp.DecodeBytes(pk, &dkgMasterPK); err != nil { g.penalize() -- cgit v1.2.3