mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
Merge pull request #402 from ngtuna/missing-trie-node
Fix missing trie node
This commit is contained in:
commit
e9c7d497f1
2 changed files with 9 additions and 7 deletions
|
|
@ -203,7 +203,7 @@ func GetSignersFromContract(state *state.StateDB, block *types.Block) ([]common.
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get signers signed for blockNumber from blockSigner contract.
|
// Get signers signed for blockNumber from blockSigner contract.
|
||||||
func GetSignersFromContract1(addrBlockSigner common.Address, client bind.ContractBackend, blockHash common.Hash) ([]common.Address, error) {
|
func GetSignersByExecutingEVM(addrBlockSigner common.Address, client bind.ContractBackend, blockHash common.Hash) ([]common.Address, error) {
|
||||||
blockSigner, err := contract.NewBlockSigner(addrBlockSigner, client)
|
blockSigner, err := contract.NewBlockSigner(addrBlockSigner, client)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Fail get instance of blockSigner", "error", err)
|
log.Error("Fail get instance of blockSigner", "error", err)
|
||||||
|
|
|
||||||
|
|
@ -855,17 +855,19 @@ func (s *PublicBlockChainAPI) rpcOutputBlock(b *types.Block, inclTx bool, fullTx
|
||||||
}
|
}
|
||||||
fields["uncles"] = uncleHashes
|
fields["uncles"] = uncleHashes
|
||||||
|
|
||||||
|
// Get signers for block.
|
||||||
|
client, err := s.b.GetIPCClient()
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Fail to connect IPC client for block status", "error", err)
|
||||||
|
}
|
||||||
|
|
||||||
var signers []common.Address
|
var signers []common.Address
|
||||||
var filterSigners []common.Address
|
var filterSigners []common.Address
|
||||||
finality := int32(0)
|
finality := int32(0)
|
||||||
if b.Number().Int64() > 0 {
|
if b.Number().Int64() > 0 {
|
||||||
engine := s.b.GetEngine()
|
engine := s.b.GetEngine()
|
||||||
blockNr := rpc.BlockNumber(b.Number().Int64())
|
addrBlockSigner := common.HexToAddress(common.BlockSigners)
|
||||||
state, _, err := s.b.StateAndHeaderByNumber(ctx, blockNr)
|
signers, err = contracts.GetSignersByExecutingEVM(addrBlockSigner, client, b.Hash())
|
||||||
if state == nil || err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
signers, err = contracts.GetSignersFromContract(state, b)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Fail to get signers from block signer SC.", "error", err)
|
log.Error("Fail to get signers from block signer SC.", "error", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue