diff --git a/consensus/XDPoS/engines/engine_v1/utils.go b/consensus/XDPoS/engines/engine_v1/utils.go index 1d4dc1ad9c2d..96422cac5853 100644 --- a/consensus/XDPoS/engines/engine_v1/utils.go +++ b/consensus/XDPoS/engines/engine_v1/utils.go @@ -83,7 +83,9 @@ func sigHash(header *types.Header) (hash common.Hash) { if header.BaseFee != nil { enc = append(enc, header.BaseFee) } - rlp.Encode(hasher, enc) + if err := rlp.Encode(hasher, enc); err != nil { + panic("rlp.Encode fail: " + err.Error()) + } hasher.Sum(hash[:0]) return hash } diff --git a/consensus/XDPoS/engines/engine_v2/utils.go b/consensus/XDPoS/engines/engine_v2/utils.go index 176bb442fde2..e71d1a59242e 100644 --- a/consensus/XDPoS/engines/engine_v2/utils.go +++ b/consensus/XDPoS/engines/engine_v2/utils.go @@ -41,7 +41,9 @@ func sigHash(header *types.Header) (hash common.Hash) { if header.BaseFee != nil { enc = append(enc, header.BaseFee) } - rlp.Encode(hasher, enc) + if err := rlp.Encode(hasher, enc); err != nil { + panic("rlp.Encode fail: " + err.Error()) + } hasher.Sum(hash[:0]) return hash } diff --git a/consensus/clique/clique.go b/consensus/clique/clique.go index 65b99560d6a7..97454b601294 100644 --- a/consensus/clique/clique.go +++ b/consensus/clique/clique.go @@ -168,7 +168,9 @@ func sigHash(header *types.Header) (hash common.Hash) { if header.BaseFee != nil { enc = append(enc, header.BaseFee) } - rlp.Encode(hasher, enc) + if err := rlp.Encode(hasher, enc); err != nil { + panic("rlp.Encode fail: " + err.Error()) + } hasher.Sum(hash[:0]) return hash } diff --git a/core/rawdb/accessors_chain_test.go b/core/rawdb/accessors_chain_test.go index b6f8a156d782..82f839ccd6ea 100644 --- a/core/rawdb/accessors_chain_test.go +++ b/core/rawdb/accessors_chain_test.go @@ -97,7 +97,9 @@ func TestBodyStorage(t *testing.T) { body := &types.Body{Uncles: []*types.Header{{Extra: []byte("test header")}}} hasher := sha3.NewLegacyKeccak256() - rlp.Encode(hasher, body) + if err := rlp.Encode(hasher, body); err != nil { + t.Fatalf("rlp.Encode fail: %v", err) + } hash := common.BytesToHash(hasher.Sum(nil)) if entry := ReadBody(db, hash, 0); entry != nil { diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index b566d45a439e..4755da8b7918 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -347,7 +347,9 @@ func (api *BlockChainAPI) GetTransactionAndReceiptProof(ctx context.Context, has tx_tr := deriveTrie(block.Transactions()) keybuf := new(bytes.Buffer) - rlp.Encode(keybuf, uint(index)) + if err := rlp.Encode(keybuf, uint(index)); err != nil { + return nil, err + } var tx_proof proofPairList if err := tx_tr.Prove(keybuf.Bytes(), 0, &tx_proof); err != nil { return nil, err diff --git a/internal/ethapi/trie_proof_test.go b/internal/ethapi/trie_proof_test.go index ffaede84189b..f87b01419966 100644 --- a/internal/ethapi/trie_proof_test.go +++ b/internal/ethapi/trie_proof_test.go @@ -53,7 +53,9 @@ func TestTransactionProof(t *testing.T) { for i := 0; i < transactions.Len(); i++ { var proof proofPairList keybuf := new(bytes.Buffer) - rlp.Encode(keybuf, uint(i)) + if err := rlp.Encode(keybuf, uint(i)); err != nil { + t.Fatalf("rlp.Encode fail: %v", err) + } if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil { t.Fatal("Prove err:", err) } @@ -86,7 +88,9 @@ func TestReceiptProof(t *testing.T) { for i := 0; i < receipts.Len(); i++ { var proof proofPairList keybuf := new(bytes.Buffer) - rlp.Encode(keybuf, uint(i)) + if err := rlp.Encode(keybuf, uint(i)); err != nil { + t.Fatalf("rlp.Encode fail: %v", err) + } if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil { t.Fatal("Prove err:", err) } diff --git a/p2p/enr/enr.go b/p2p/enr/enr.go index 04d6ed4a6659..940b1ca3ab01 100644 --- a/p2p/enr/enr.go +++ b/p2p/enr/enr.go @@ -244,7 +244,9 @@ func (r *Record) signAndEncode(privkey *ecdsa.PrivateKey) error { // Sign the tail of the list. h := sha3.NewLegacyKeccak256() - rlp.Encode(h, list[1:]) + if err := rlp.Encode(h, list[1:]); err != nil { + return err + } sig, err := crypto.Sign(h.Sum(nil), privkey) if err != nil { return err diff --git a/tests/state_test_util.go b/tests/state_test_util.go index f03e9670fda9..4a4a0c4797a9 100644 --- a/tests/state_test_util.go +++ b/tests/state_test_util.go @@ -303,7 +303,9 @@ func (tx *stTransaction) toMessage(ps stPostState, number *big.Int, baseFee *big func rlpHash(x interface{}) (h common.Hash) { hw := sha3.NewLegacyKeccak256() - rlp.Encode(hw, x) + if err := rlp.Encode(hw, x); err != nil { + panic("can't encode: " + err.Error()) + } hw.Sum(h[:0]) return h } diff --git a/trie/node_test.go b/trie/node_test.go index a8b9d3705ada..f9cf95986f59 100644 --- a/trie/node_test.go +++ b/trie/node_test.go @@ -45,8 +45,9 @@ func TestDecodeNestedNode(t *testing.T) { fullNodeData[15] = data buf := bytes.NewBuffer([]byte{}) - rlp.Encode(buf, fullNodeData) - + if err := rlp.Encode(buf, fullNodeData); err != nil { + t.Fatalf("rlp.Encode fail: %v", err) + } if _, err := decodeNode([]byte("testdecode"), buf.Bytes()); err != nil { t.Fatalf("decode nested full Node err: %v", err) } @@ -56,8 +57,9 @@ func TestDecodeFullNodeWrongSizeChild(t *testing.T) { fullNodeData := newTestFullNode([]byte("wrongsizechild")) fullNodeData[0] = []byte("00") buf := bytes.NewBuffer([]byte{}) - rlp.Encode(buf, fullNodeData) - + if err := rlp.Encode(buf, fullNodeData); err != nil { + t.Fatalf("rlp.Encode fail: %v", err) + } _, err := decodeNode([]byte("testdecode"), buf.Bytes()) if _, ok := err.(*decodeError); !ok { t.Fatalf("decodeNode returned wrong err: %v", err) @@ -75,8 +77,9 @@ func TestDecodeFullNodeWrongNestedFullNode(t *testing.T) { fullNodeData[15] = data buf := bytes.NewBuffer([]byte{}) - rlp.Encode(buf, fullNodeData) - + if err := rlp.Encode(buf, fullNodeData); err != nil { + t.Fatalf("rlp.Encode fail: %v", err) + } _, err := decodeNode([]byte("testdecode"), buf.Bytes()) if _, ok := err.(*decodeError); !ok { t.Fatalf("decodeNode returned wrong err: %v", err) @@ -86,8 +89,9 @@ func TestDecodeFullNodeWrongNestedFullNode(t *testing.T) { func TestDecodeFullNode(t *testing.T) { fullNodeData := newTestFullNode([]byte("decodefullnode")) buf := bytes.NewBuffer([]byte{}) - rlp.Encode(buf, fullNodeData) - + if err := rlp.Encode(buf, fullNodeData); err != nil { + t.Fatalf("rlp.Encode fail: %v", err) + } _, err := decodeNode([]byte("testdecode"), buf.Bytes()) if err != nil { t.Fatalf("decode full Node err: %v", err)