From 201fc482061ba76b6e36a9a58a1f943d69a6d464 Mon Sep 17 00:00:00 2001 From: jiangzehua <1092431698@qq.com> Date: Mon, 23 Oct 2023 00:24:47 +0800 Subject: [PATCH] feat(bpos): remove from NodeOwnerKeys when producer canceled --- dpos/state/state.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dpos/state/state.go b/dpos/state/state.go index fbfc93834..57a200499 100644 --- a/dpos/state/state.go +++ b/dpos/state/state.go @@ -1582,8 +1582,11 @@ func (s *State) processTransactions(txs []interfaces.Transaction, height uint32) cancelDposV2AndDposV1V2Producer := func(key string, producer *Producer) { oriState := producer.state oriDepositAmount := producer.depositAmount + nodePublicKey := common.BytesToHexString(producer.info.NodePublicKey) + oriOwnerKey := s.NodeOwnerKeys[nodePublicKey] s.History.Append(height, func() { producer.state = Canceled + delete(s.NodeOwnerKeys, nodePublicKey) producer.depositAmount -= state.MinDPoSV2DepositAmount s.CanceledProducers[key] = producer switch oriState { @@ -1606,6 +1609,7 @@ func (s *State) processTransactions(txs []interfaces.Transaction, height uint32) case Illegal: s.IllegalProducers[key] = producer } + s.NodeOwnerKeys[common.BytesToHexString(producer.info.NodePublicKey)] = oriOwnerKey delete(s.CanceledProducers, key) s.Nicknames[producer.info.NickName] = struct{}{} })