-
-func (c *Chain) updateBlockSignature(blockNode *state.BlockNode, nodeOrder uint64, signature []byte) error {
- if err := blockNode.BlockWitness.Set(uint32(nodeOrder)); err != nil {
- return err
- }
-
- block, err := c.store.GetBlock(&blockNode.Hash)
- if err != nil {
- return err
- }
-
- block.Witness[nodeOrder] = signature
- txStatus, err := c.store.GetTransactionStatus(&blockNode.Hash)
- if err != nil {
- return err
- }
-
- if err := c.store.SaveBlock(block, txStatus); err != nil {
- return err
- }
-
- if c.isIrreversible(blockNode) && blockNode.Height > c.bestIrreversibleNode.Height {
- if err := c.store.SaveChainStatus(c.bestNode, blockNode, state.NewUtxoViewpoint(), []*state.VoteResult{}); err != nil {
- return err
- }
-
- c.bestIrreversibleNode = blockNode
- }
- return nil
-}