core: fix staticcheck warnings (#20384)
* core: fix staticcheck warnings * fix goimports
This commit is contained in:
parent
c4844e9ee2
commit
7b189d6f1f
@ -150,11 +150,10 @@ func NewDatabaseWithFreezer(db ethdb.KeyValueStore, freezer string, namespace st
|
|||||||
}
|
}
|
||||||
// Database contains only older data than the freezer, this happens if the
|
// Database contains only older data than the freezer, this happens if the
|
||||||
// state was wiped and reinited from an existing freezer.
|
// state was wiped and reinited from an existing freezer.
|
||||||
} else {
|
|
||||||
// Key-value store continues where the freezer left off, all is fine. We might
|
|
||||||
// have duplicate blocks (crash after freezer write but before kay-value store
|
|
||||||
// deletion, but that's fine).
|
|
||||||
}
|
}
|
||||||
|
// Otherwise, key-value store continues where the freezer left off, all is fine.
|
||||||
|
// We might have duplicate blocks (crash after freezer write but before key-value
|
||||||
|
// store deletion, but that's fine).
|
||||||
} else {
|
} else {
|
||||||
// If the freezer is empty, ensure nothing was moved yet from the key-value
|
// If the freezer is empty, ensure nothing was moved yet from the key-value
|
||||||
// store, otherwise we'll end up missing data. We check block #1 to decide
|
// store, otherwise we'll end up missing data. We check block #1 to decide
|
||||||
@ -167,9 +166,9 @@ func NewDatabaseWithFreezer(db ethdb.KeyValueStore, freezer string, namespace st
|
|||||||
return nil, errors.New("ancient chain segments already extracted, please set --datadir.ancient to the correct path")
|
return nil, errors.New("ancient chain segments already extracted, please set --datadir.ancient to the correct path")
|
||||||
}
|
}
|
||||||
// Block #1 is still in the database, we're allowed to init a new feezer
|
// Block #1 is still in the database, we're allowed to init a new feezer
|
||||||
} else {
|
|
||||||
// The head header is still the genesis, we're allowed to init a new feezer
|
|
||||||
}
|
}
|
||||||
|
// Otherwise, the head header is still the genesis, we're allowed to init a new
|
||||||
|
// feezer.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Freezer is consistent with the key-value database, permit combining the two
|
// Freezer is consistent with the key-value database, permit combining the two
|
||||||
|
@ -28,6 +28,8 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/crypto/blake2b"
|
"github.com/ethereum/go-ethereum/crypto/blake2b"
|
||||||
"github.com/ethereum/go-ethereum/crypto/bn256"
|
"github.com/ethereum/go-ethereum/crypto/bn256"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
|
||||||
|
//lint:ignore SA1019 Needed for precompile
|
||||||
"golang.org/x/crypto/ripemd160"
|
"golang.org/x/crypto/ripemd160"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -29,7 +29,6 @@ import (
|
|||||||
// precompiledTest defines the input/output pairs for precompiled contract tests.
|
// precompiledTest defines the input/output pairs for precompiled contract tests.
|
||||||
type precompiledTest struct {
|
type precompiledTest struct {
|
||||||
input, expected string
|
input, expected string
|
||||||
gas uint64
|
|
||||||
name string
|
name string
|
||||||
noBenchmark bool // Benchmark primarily the worst-cases
|
noBenchmark bool // Benchmark primarily the worst-cases
|
||||||
}
|
}
|
||||||
@ -418,6 +417,24 @@ func testPrecompiled(addr string, test precompiledTest, t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testPrecompiledOOG(addr string, test precompiledTest, t *testing.T) {
|
||||||
|
p := PrecompiledContractsIstanbul[common.HexToAddress(addr)]
|
||||||
|
in := common.Hex2Bytes(test.input)
|
||||||
|
contract := NewContract(AccountRef(common.HexToAddress("1337")),
|
||||||
|
nil, new(big.Int), p.RequiredGas(in)-1)
|
||||||
|
t.Run(fmt.Sprintf("%s-Gas=%d", test.name, contract.Gas), func(t *testing.T) {
|
||||||
|
_, err := RunPrecompiledContract(p, in, contract)
|
||||||
|
if err.Error() != "out of gas" {
|
||||||
|
t.Errorf("Expected error [out of gas], got [%v]", err)
|
||||||
|
}
|
||||||
|
// Verify that the precompile did not touch the input buffer
|
||||||
|
exp := common.Hex2Bytes(test.input)
|
||||||
|
if !bytes.Equal(in, exp) {
|
||||||
|
t.Errorf("Precompiled %v modified input data", addr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func testPrecompiledFailure(addr string, test precompiledFailureTest, t *testing.T) {
|
func testPrecompiledFailure(addr string, test precompiledFailureTest, t *testing.T) {
|
||||||
p := PrecompiledContractsIstanbul[common.HexToAddress(addr)]
|
p := PrecompiledContractsIstanbul[common.HexToAddress(addr)]
|
||||||
in := common.Hex2Bytes(test.input)
|
in := common.Hex2Bytes(test.input)
|
||||||
@ -541,6 +558,13 @@ func BenchmarkPrecompiledBn256Add(bench *testing.B) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tests OOG
|
||||||
|
func TestPrecompiledModExpOOG(t *testing.T) {
|
||||||
|
for _, test := range modexpTests {
|
||||||
|
testPrecompiledOOG("05", test, t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Tests the sample inputs from the elliptic curve scalar multiplication EIP 213.
|
// Tests the sample inputs from the elliptic curve scalar multiplication EIP 213.
|
||||||
func TestPrecompiledBn256ScalarMul(t *testing.T) {
|
func TestPrecompiledBn256ScalarMul(t *testing.T) {
|
||||||
for _, test := range bn256ScalarMulTests {
|
for _, test := range bn256ScalarMulTests {
|
||||||
|
@ -74,13 +74,6 @@ func (st *Stack) Back(n int) *big.Int {
|
|||||||
return st.data[st.len()-n-1]
|
return st.data[st.len()-n-1]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (st *Stack) require(n int) error {
|
|
||||||
if st.len() < n {
|
|
||||||
return fmt.Errorf("stack underflow (%d <=> %d)", len(st.data), n)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Print dumps the content of the stack
|
// Print dumps the content of the stack
|
||||||
func (st *Stack) Print() {
|
func (st *Stack) Print() {
|
||||||
fmt.Println("### stack ###")
|
fmt.Println("### stack ###")
|
||||||
|
Loading…
Reference in New Issue
Block a user