Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge/v1.13.14 #161

Merged
merged 90 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
cd0770e
params: begin v.1.13.12 release cycle
holiman Jan 24, 2024
bc0b87c
internal/flags: fix typo (#28876)
bodhi-crypo Jan 26, 2024
2e947b7
core/types: fix and test handling of faulty nil-returning signer (#28…
protolambda Jan 27, 2024
db98cc4
README.md: fix travis badge (#28889)
keienWang Jan 29, 2024
e2778cd
eth/catalyst: allow payload attributes v1 in fcu v2 (#28882)
lightclient Jan 29, 2024
fc380f5
docs/postmortems: fix outdated link (#28893)
keienWang Jan 29, 2024
eaac53e
core: reset tx lookup cache if necessary (#28865)
rjl493456442 Jan 30, 2024
3adf1ce
build: fix problem with windows line-endings in CI download (#28900)
holiman Jan 31, 2024
5c67066
eth/downloader: fix skeleton cleanup (#28581)
rjl493456442 Jan 31, 2024
06a8711
deps: update memsize (#28916)
holiman Feb 2, 2024
62affdc
core/txpool/blobpool: post-crash cleanup and addition/removal metrics…
karalabe Feb 2, 2024
47d76c5
core/txpool: don't inject lazy resolved transactions into the contain…
karalabe Feb 2, 2024
253447a
core/types: fix typo (#28922)
zoereco Feb 4, 2024
19af900
p2p: fix accidental termination of portMappingLoop (#28911)
ziogaschr Feb 5, 2024
8ec638d
internal/flags: fix --miner.gasprice default listing (#28932)
karalabe Feb 5, 2024
8fd43c8
all: fix typos in comments (#28881)
rex4539 Feb 5, 2024
99e9c07
Makefile: add help target to display available targets (#28845)
Halimao Feb 5, 2024
0b5d8d2
core: cache transaction indexing tail in memory (#28908)
rjl493456442 Feb 6, 2024
16ce7bf
eth, miner: fix enforcing the minimum miner tip (#28933)
karalabe Feb 6, 2024
199e0c9
core/state, core/vm: minor uint256 related perf improvements (#28944)
lmittmann Feb 7, 2024
1f50aa7
cmd,internal/era: implement `export-history` subcommand (#26621)
lightclient Feb 7, 2024
449d3f0
core,params: add holesky to default genesis function (#28903)
lightclient Feb 7, 2024
69f5d5b
node, rpc: add configurable HTTP request limit (#28948)
fjl Feb 7, 2024
2ab365f
all: fix docstring names (#28923)
zoereco Feb 7, 2024
2dc33d4
ethclient/simulated: fix typo (#28952)
bodhi-crypo Feb 8, 2024
ae3b7a0
eth/gasprice: fix percentile validation in eth_feeHistory (#28954)
fjl Feb 8, 2024
8a76a81
cmd/devp2p, eth: drop support for eth/67 (#28956)
karalabe Feb 8, 2024
2732fb1
params, core/forkid: add mainnet timestamp for Cancun (#28958)
lightclient Feb 8, 2024
ac5aa67
internal/ethapi: add support for blobs in eth_fillTransaction (#28839)
s1na Feb 8, 2024
85938dd
internal/era: update block index format to be based on record offset …
lightclient Feb 9, 2024
8facf44
params: go-ethereum v1.13.12 stable
holiman Feb 9, 2024
02eb36a
all: release go-ethereum v1.13.12 (#28961)
holiman Feb 9, 2024
89575ae
params: begin v1.13.13 release cycle
holiman Feb 9, 2024
f0c5b67
build: remove ubuntu 'lunar' build (#28962)
holiman Feb 9, 2024
1a79089
fix: update outdated link to trezor docs (#28966)
krauspt Feb 9, 2024
f1c27c2
internal/ethapi: fix gas estimation bug in eth_fillTransaction for bl…
mask-pp Feb 9, 2024
beb2954
core/txpool/legacypool: use uint256.Int instead of big.Int (#28606)
weiihann Feb 13, 2024
4c15d58
internal/ethapi, signer/core: fix documentation-links (#28979)
lindlof Feb 13, 2024
fe91d47
all: remove the dependency from trie to triedb (#28824)
rjl493456442 Feb 13, 2024
55a46c3
cmd/utils: fix merge-breakage in test (#28985)
holiman Feb 14, 2024
8321fe2
tests: fix goroutine leak related to state snapshot generation (#28974)
holiman Feb 14, 2024
9d537f5
ethereum, ethclient: add blob transaction fields in CallMsg (#28989)
mask-pp Feb 15, 2024
efddedc
core/txpool/blobpool: rename variables in comments (#28981)
bkellerman Feb 15, 2024
2a1d94b
cmd/devp2p: fix modulo in makeBlobTxs (#28970)
colinlyguo Feb 15, 2024
9e3e466
eth/catalyst,beacon/engine: implement GetClientVersionV1 (#28915)
lightclient Feb 15, 2024
886f0e7
tests: update execution spec tests + split statetest exec (#28993)
holiman Feb 15, 2024
2860906
eth/catalyst: add getClientVersion to capabilities (#28994)
MariusVanDerWijden Feb 15, 2024
0c412dc
cmd/evm: fix typo in test script (#28995)
bodhi-crypo Feb 15, 2024
1bdf8b9
cmd/devp2p/internal/ethtest: some fixes for the eth test suite (#28996)
fjl Feb 15, 2024
a193bb0
core/txpool/legacypool: remove a redundant heap.Init (#28910)
colinlyguo Feb 15, 2024
3c30de2
core/txpool/blobpool: update the blob db with corruption handling (#2…
karalabe Feb 16, 2024
e9717aa
Merge tag 'v1.13.12' into merge/v1.13.12
Feb 16, 2024
758d579
Merge remote-tracking branch 'origin/mempool-feed-stage' into merge/v…
Feb 16, 2024
95741b1
core: move genesis alloc types to core/types (#29003)
s1na Feb 16, 2024
593e303
core/txpool, eth, miner: pre-filter dynamic fees during pending tx re…
karalabe Feb 17, 2024
034bc46
ethstats: prevent panic if head block is not available (#29020)
rjl493456442 Feb 19, 2024
5d98479
core: using math.MaxUint64 instead of 0xffffffffffffffff (#29022)
cuiweixie Feb 19, 2024
6fb0d09
core/txpool, miner: speed up blob pool pending retrievals (#29008)
karalabe Feb 19, 2024
ac0ff04
core/vm, params: ensure order of forks, prevent overflow (#29023)
holiman Feb 19, 2024
f4852b8
core/txpool, eth, miner: retrieve plain and blob txs separately (#29026)
karalabe Feb 20, 2024
7f5e96d
core/txpool: fix typo (#29031)
buddh0 Feb 20, 2024
bba3fa9
core,eth,internal: fix typo (#29024)
buddh0 Feb 20, 2024
79e340f
params: add cancun upgrade banner (#29042)
tmelhao Feb 21, 2024
b9ca38b
core/txpool: fix typo (#29036)
colinlyguo Feb 21, 2024
b47cf8f
internal/ethapi: fix defaults for blob fields (#29037)
s1na Feb 21, 2024
3b4ede7
params: release go-ethereum v1.13.13 stable
fjl Feb 21, 2024
7f131dc
Merge branch 'master' into release/1.13
fjl Feb 21, 2024
b590cae
params: begin v1.13.14 release cycle
fjl Feb 21, 2024
e47a7c2
internal/ethapi: use overriden baseFee for gasPrice (#29051)
ArtificialPB Feb 22, 2024
b87b9b4
internal/ethapi:fix zero rpc gas cap in eth_createAccessList (#28846)
colinlyguo Feb 22, 2024
93c541a
eth/catalyst: fix wrong error message of payloadV2 after cancun (#29049)
tmelhao Feb 23, 2024
32d4d6e
core/txpool: reject blob txs with blob fee cap below the minimum (#29…
Feb 26, 2024
26724fc
p2p, log, rpc: use errors.New to replace fmt.Errorf with no parameter…
0x2d3c Feb 26, 2024
edffacc
eth/catalyst: enable some commented-out testcases   (#29073)
cuiweixie Feb 26, 2024
8bca93e
internal/ethapi: pass blob hashes to gas estimation (#29085)
mask-pp Feb 26, 2024
821d702
cmd/clef: add spaces in README.md table (#29077)
justindhillon Feb 26, 2024
c1f59b9
eth/catalyst: remove variable in tx conversion loop (#29076)
cuiweixie Feb 26, 2024
63aaac8
core/txpool/blobpool: reduce default database cap for rollout (#29090)
karalabe Feb 26, 2024
45a272c
core/txpool: no need to log loud rotate if no local txs (#29083)
jsvisa Feb 26, 2024
5a0f468
eth/tracers: Fix callTracer logs on onlyTopCall == true (#29068)
andreisilviudragnea Feb 27, 2024
51b479e
core/txpool: elevate the 'already reserved' error into a constant (#2…
Feb 27, 2024
9038ba6
params: release Geth v1.13.14
karalabe Feb 27, 2024
2bd6bd0
Merge branch 'master' into release/1.13
karalabe Feb 27, 2024
07ac861
Merge tag 'v1.13.14' into merge/v1.13.14
Feb 28, 2024
4571b7e
Adjustments and dependency management for v1.13.14
Feb 28, 2024
3537f04
Merge branch 'mempool-feed-stage' into merge/v1.13.14
lukanus Mar 4, 2024
3418a64
Remove tip/min tip as it's removed from commitTransactions function
lukanus Mar 4, 2024
b7a40e7
State db fix
lukanus Mar 4, 2024
218b845
Update go version
lukanus Mar 4, 2024
ca918be
The weirdest gas amount fix in the world.
lukanus Mar 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: 1.21.x
go-version: 1.22.x
- name: Test tracers
run: go test -v ./eth/tracers/...
4 changes: 2 additions & 2 deletions accounts/abi/bind/backends/simulated.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"context"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethclient/simulated"
)

Expand All @@ -43,7 +43,7 @@ func (b *SimulatedBackend) Fork(ctx context.Context, parentHash common.Hash) err
//
// Deprecated: please use simulated.Backend from package
// github.com/ethereum/go-ethereum/ethclient/simulated instead.
func NewSimulatedBackend(alloc core.GenesisAlloc, gasLimit uint64) *SimulatedBackend {
func NewSimulatedBackend(alloc types.GenesisAlloc, gasLimit uint64) *SimulatedBackend {
b := simulated.NewBackend(alloc, simulated.WithBlockGasLimit(gasLimit))
return &SimulatedBackend{
Backend: b,
Expand Down
100 changes: 50 additions & 50 deletions accounts/abi/bind/bind_test.go

Large diffs are not rendered by default.

5 changes: 2 additions & 3 deletions accounts/abi/bind/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import (

"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethclient/simulated"
Expand Down Expand Up @@ -57,7 +56,7 @@ func TestWaitDeployed(t *testing.T) {
t.Parallel()
for name, test := range waitDeployedTests {
backend := simulated.NewBackend(
core.GenesisAlloc{
types.GenesisAlloc{
crypto.PubkeyToAddress(testKey.PublicKey): {Balance: big.NewInt(10000000000000000)},
},
)
Expand Down Expand Up @@ -102,7 +101,7 @@ func TestWaitDeployed(t *testing.T) {

func TestWaitDeployedCornerCases(t *testing.T) {
backend := simulated.NewBackend(
core.GenesisAlloc{
types.GenesisAlloc{
crypto.PubkeyToAddress(testKey.PublicKey): {Balance: big.NewInt(10000000000000000)},
},
)
Expand Down
2 changes: 1 addition & 1 deletion accounts/usbwallet/trezor/trezor.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

// This file contains the implementation for interacting with the Trezor hardware
// wallets. The wire protocol spec can be found on the SatoshiLabs website:
// https://wiki.trezor.io/Developers_guide-Message_Workflows
// https://docs.trezor.io/trezor-firmware/common/message-workflows.html

// !!! STAHP !!!
//
Expand Down
18 changes: 18 additions & 0 deletions beacon/engine/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -303,3 +303,21 @@ type ExecutionPayloadBodyV1 struct {
TransactionData []hexutil.Bytes `json:"transactions"`
Withdrawals []*types.Withdrawal `json:"withdrawals"`
}

// Client identifiers to support ClientVersionV1.
const (
ClientCode = "GE"
ClientName = "go-ethereum"
)

// ClientVersionV1 contains information which identifies a client implementation.
type ClientVersionV1 struct {
Code string `json:"code"`
Name string `json:"clientName"`
Version string `json:"version"`
Commit string `json:"commit"`
}

func (v *ClientVersionV1) String() string {
return fmt.Sprintf("%s-%s-%s-%s", v.Code, v.Name, v.Version, v.Commit)
}
6 changes: 3 additions & 3 deletions build/checksums.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# This file contains sha256 checksums of optional build dependencies.

# version:spec-tests 1.0.6
# version:spec-tests 2.1.0
# https://github.com/ethereum/execution-spec-tests/releases
# https://github.com/ethereum/execution-spec-tests/releases/download/v1.0.6/
485af7b66cf41eb3a8c1bd46632913b8eb95995df867cf665617bbc9b4beedd1 fixtures_develop.tar.gz
# https://github.com/ethereum/execution-spec-tests/releases/download/v2.1.0/
ca89c76851b0900bfcc3cbb9a26cbece1f3d7c64a3bed38723e914713290df6c fixtures_develop.tar.gz

# version:golang 1.21.6
# https://go.dev/dl/
Expand Down
3 changes: 1 addition & 2 deletions build/ci.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,14 +121,13 @@ var (
// Note: vivid is unsupported because there is no golang-1.6 package for it.
// Note: the following Ubuntu releases have been officially deprecated on Launchpad:
// wily, yakkety, zesty, artful, cosmic, disco, eoan, groovy, hirsuite, impish,
// kinetic
// kinetic, lunar
debDistroGoBoots = map[string]string{
"trusty": "golang-1.11", // 14.04, EOL: 04/2024
"xenial": "golang-go", // 16.04, EOL: 04/2026
"bionic": "golang-go", // 18.04, EOL: 04/2028
"focal": "golang-go", // 20.04, EOL: 04/2030
"jammy": "golang-go", // 22.04, EOL: 04/2032
"lunar": "golang-go", // 23.04, EOL: 01/2024
"mantic": "golang-go", // 23.10, EOL: 07/2024
}

Expand Down
8 changes: 4 additions & 4 deletions cmd/clef/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -916,7 +916,7 @@ There are a couple of implementation for a UI. We'll try to keep this list up to

| Name | Repo | UI type| No external resources| Blocky support| Verifies permissions | Hash information | No secondary storage | Statically linked| Can modify parameters|
| ---- | ---- | -------| ---- | ---- | ---- |---- | ---- | ---- | ---- |
| QtSigner| https://github.com/holiman/qtsigner/| Python3/QT-based| :+1:| :+1:| :+1:| :+1:| :+1:| :x: | :+1: (partially)|
| GtkSigner| https://github.com/holiman/gtksigner| Python3/GTK-based| :+1:| :x:| :x:| :+1:| :+1:| :x: | :x: |
| Frame | https://github.com/floating/frame/commits/go-signer| Electron-based| :x:| :x:| :x:| :x:| ?| :x: | :x: |
| Clef UI| https://github.com/ethereum/clef-ui| Golang/QT-based| :+1:| :+1:| :x:| :+1:| :+1:| :x: | :+1: (approve tx only)|
| QtSigner| https://github.com/holiman/qtsigner/ | Python3/QT-based| :+1:| :+1:| :+1:| :+1:| :+1:| :x: | :+1: (partially)|
| GtkSigner| https://github.com/holiman/gtksigner | Python3/GTK-based| :+1:| :x:| :x:| :+1:| :+1:| :x: | :x: |
| Frame | https://github.com/floating/frame/commits/go-signer | Electron-based| :x:| :x:| :x:| :x:| ?| :x: | :x: |
| Clef UI| https://github.com/ethereum/clef-ui | Golang/QT-based| :+1:| :+1:| :x:| :+1:| :+1:| :x: | :+1: (approve tx only)|
94 changes: 52 additions & 42 deletions cmd/devp2p/internal/ethtest/suite.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,23 @@ func NewSuite(dest *enode.Node, chainDir, engineURL, jwt string) (*Suite, error)
func (s *Suite) EthTests() []utesting.Test {
return []utesting.Test{
// status
{Name: "TestStatus", Fn: s.TestStatus},
{Name: "Status", Fn: s.TestStatus},
// get block headers
{Name: "TestGetBlockHeaders", Fn: s.TestGetBlockHeaders},
{Name: "TestSimultaneousRequests", Fn: s.TestSimultaneousRequests},
{Name: "TestSameRequestID", Fn: s.TestSameRequestID},
{Name: "TestZeroRequestID", Fn: s.TestZeroRequestID},
{Name: "GetBlockHeaders", Fn: s.TestGetBlockHeaders},
{Name: "SimultaneousRequests", Fn: s.TestSimultaneousRequests},
{Name: "SameRequestID", Fn: s.TestSameRequestID},
{Name: "ZeroRequestID", Fn: s.TestZeroRequestID},
// get block bodies
{Name: "TestGetBlockBodies", Fn: s.TestGetBlockBodies},
{Name: "GetBlockBodies", Fn: s.TestGetBlockBodies},
// // malicious handshakes + status
{Name: "TestMaliciousHandshake", Fn: s.TestMaliciousHandshake},
{Name: "TestMaliciousStatus", Fn: s.TestMaliciousStatus},
{Name: "MaliciousHandshake", Fn: s.TestMaliciousHandshake},
{Name: "MaliciousStatus", Fn: s.TestMaliciousStatus},
// test transactions
{Name: "TestLargeTxRequest", Fn: s.TestLargeTxRequest, Slow: true},
{Name: "TestTransaction", Fn: s.TestTransaction},
{Name: "TestInvalidTxs", Fn: s.TestInvalidTxs},
{Name: "TestNewPooledTxs", Fn: s.TestNewPooledTxs},
{Name: "TestBlobViolations", Fn: s.TestBlobViolations},
{Name: "LargeTxRequest", Fn: s.TestLargeTxRequest, Slow: true},
{Name: "Transaction", Fn: s.TestTransaction},
{Name: "InvalidTxs", Fn: s.TestInvalidTxs},
{Name: "NewPooledTxs", Fn: s.TestNewPooledTxs},
{Name: "BlobViolations", Fn: s.TestBlobViolations},
}
}

Expand All @@ -94,9 +94,9 @@ func (s *Suite) SnapTests() []utesting.Test {
}
}

// TestStatus attempts to connect to the given node and exchange a status
// message with it on the eth protocol.
func (s *Suite) TestStatus(t *utesting.T) {
t.Log(`This test is just a sanity check. It performs an eth protocol handshake.`)

conn, err := s.dial()
if err != nil {
t.Fatalf("dial failed: %v", err)
Expand All @@ -112,9 +112,9 @@ func headersMatch(expected []*types.Header, headers []*types.Header) bool {
return reflect.DeepEqual(expected, headers)
}

// TestGetBlockHeaders tests whether the given node can respond to an eth
// `GetBlockHeaders` request and that the response is accurate.
func (s *Suite) TestGetBlockHeaders(t *utesting.T) {
t.Log(`This test requests block headers from the node.`)

conn, err := s.dial()
if err != nil {
t.Fatalf("dial failed: %v", err)
Expand Down Expand Up @@ -154,10 +154,10 @@ func (s *Suite) TestGetBlockHeaders(t *utesting.T) {
}
}

// TestSimultaneousRequests sends two simultaneous `GetBlockHeader` requests
// from the same connection with different request IDs and checks to make sure
// the node responds with the correct headers per request.
func (s *Suite) TestSimultaneousRequests(t *utesting.T) {
t.Log(`This test requests blocks headers from the node, performing two requests
concurrently, with different request IDs.`)

conn, err := s.dial()
if err != nil {
t.Fatalf("dial failed: %v", err)
Expand Down Expand Up @@ -228,9 +228,10 @@ func (s *Suite) TestSimultaneousRequests(t *utesting.T) {
}
}

// TestSameRequestID sends two requests with the same request ID to a single
// node.
func (s *Suite) TestSameRequestID(t *utesting.T) {
t.Log(`This test requests block headers, performing two concurrent requests with the
same request ID. The node should handle the request by responding to both requests.`)

conn, err := s.dial()
if err != nil {
t.Fatalf("dial failed: %v", err)
Expand Down Expand Up @@ -298,9 +299,10 @@ func (s *Suite) TestSameRequestID(t *utesting.T) {
}
}

// TestZeroRequestID checks that a message with a request ID of zero is still handled
// by the node.
func (s *Suite) TestZeroRequestID(t *utesting.T) {
t.Log(`This test sends a GetBlockHeaders message with a request-id of zero,
and expects a response.`)

conn, err := s.dial()
if err != nil {
t.Fatalf("dial failed: %v", err)
Expand Down Expand Up @@ -333,9 +335,9 @@ func (s *Suite) TestZeroRequestID(t *utesting.T) {
}
}

// TestGetBlockBodies tests whether the given node can respond to a
// `GetBlockBodies` request and that the response is accurate.
func (s *Suite) TestGetBlockBodies(t *utesting.T) {
t.Log(`This test sends GetBlockBodies requests to the node for known blocks in the test chain.`)

conn, err := s.dial()
if err != nil {
t.Fatalf("dial failed: %v", err)
Expand Down Expand Up @@ -376,12 +378,12 @@ func randBuf(size int) []byte {
return buf
}

// TestMaliciousHandshake tries to send malicious data during the handshake.
func (s *Suite) TestMaliciousHandshake(t *utesting.T) {
key, _ := crypto.GenerateKey()
t.Log(`This test tries to send malicious data during the devp2p handshake, in various ways.`)

// Write hello to client.
var (
key, _ = crypto.GenerateKey()
pub0 = crypto.FromECDSAPub(&key.PublicKey)[1:]
version = eth.ProtocolVersions[0]
)
Expand Down Expand Up @@ -451,8 +453,9 @@ func (s *Suite) TestMaliciousHandshake(t *utesting.T) {
}
}

// TestMaliciousStatus sends a status package with a large total difficulty.
func (s *Suite) TestMaliciousStatus(t *utesting.T) {
t.Log(`This test sends a malicious eth Status message to the node and expects a disconnect.`)

conn, err := s.dial()
if err != nil {
t.Fatalf("dial failed: %v", err)
Expand Down Expand Up @@ -486,9 +489,10 @@ func (s *Suite) TestMaliciousStatus(t *utesting.T) {
}
}

// TestTransaction sends a valid transaction to the node and checks if the
// transaction gets propagated.
func (s *Suite) TestTransaction(t *utesting.T) {
t.Log(`This test sends a valid transaction to the node and checks if the
transaction gets propagated.`)

// Nudge client out of syncing mode to accept pending txs.
if err := s.engine.sendForkchoiceUpdated(); err != nil {
t.Fatalf("failed to send next block: %v", err)
Expand All @@ -507,15 +511,16 @@ func (s *Suite) TestTransaction(t *utesting.T) {
if err != nil {
t.Fatalf("failed to sign tx: %v", err)
}
if err := s.sendTxs([]*types.Transaction{tx}); err != nil {
if err := s.sendTxs(t, []*types.Transaction{tx}); err != nil {
t.Fatal(err)
}
s.chain.IncNonce(from, 1)
}

// TestInvalidTxs sends several invalid transactions and tests whether
// the node will propagate them.
func (s *Suite) TestInvalidTxs(t *utesting.T) {
t.Log(`This test sends several kinds of invalid transactions and checks that the node
does not propagate them.`)

// Nudge client out of syncing mode to accept pending txs.
if err := s.engine.sendForkchoiceUpdated(); err != nil {
t.Fatalf("failed to send next block: %v", err)
Expand All @@ -534,7 +539,7 @@ func (s *Suite) TestInvalidTxs(t *utesting.T) {
if err != nil {
t.Fatalf("failed to sign tx: %v", err)
}
if err := s.sendTxs([]*types.Transaction{tx}); err != nil {
if err := s.sendTxs(t, []*types.Transaction{tx}); err != nil {
t.Fatalf("failed to send txs: %v", err)
}
s.chain.IncNonce(from, 1)
Expand Down Expand Up @@ -590,14 +595,15 @@ func (s *Suite) TestInvalidTxs(t *utesting.T) {
}
txs = append(txs, tx)
}
if err := s.sendInvalidTxs(txs); err != nil {
if err := s.sendInvalidTxs(t, txs); err != nil {
t.Fatalf("failed to send invalid txs: %v", err)
}
}

// TestLargeTxRequest tests whether a node can fulfill a large GetPooledTransactions
// request.
func (s *Suite) TestLargeTxRequest(t *utesting.T) {
t.Log(`This test first send ~2000 transactions to the node, then requests them
on another peer connection using GetPooledTransactions.`)

// Nudge client out of syncing mode to accept pending txs.
if err := s.engine.sendForkchoiceUpdated(); err != nil {
t.Fatalf("failed to send next block: %v", err)
Expand Down Expand Up @@ -630,7 +636,7 @@ func (s *Suite) TestLargeTxRequest(t *utesting.T) {
s.chain.IncNonce(from, uint64(count))

// Send txs.
if err := s.sendTxs(txs); err != nil {
if err := s.sendTxs(t, txs); err != nil {
t.Fatalf("failed to send txs: %v", err)
}

Expand Down Expand Up @@ -667,13 +673,15 @@ func (s *Suite) TestLargeTxRequest(t *utesting.T) {
}
}

// TestNewPooledTxs tests whether a node will do a GetPooledTransactions request
// upon receiving a NewPooledTransactionHashes announcement.
func (s *Suite) TestNewPooledTxs(t *utesting.T) {
t.Log(`This test announces transaction hashes to the node and expects it to fetch
the transactions using a GetPooledTransactions request.`)

// Nudge client out of syncing mode to accept pending txs.
if err := s.engine.sendForkchoiceUpdated(); err != nil {
t.Fatalf("failed to send next block: %v", err)
}

var (
count = 50
from, nonce = s.chain.GetSender(1)
Expand Down Expand Up @@ -762,7 +770,7 @@ func (s *Suite) makeBlobTxs(count, blobs int, discriminator byte) (txs types.Tra
from, nonce := s.chain.GetSender(5)
for i := 0; i < count; i++ {
// Make blob data, max of 2 blobs per tx.
blobdata := make([]byte, blobs%2)
blobdata := make([]byte, blobs%3)
for i := range blobdata {
blobdata[i] = discriminator
blobs -= 1
Expand All @@ -787,6 +795,8 @@ func (s *Suite) makeBlobTxs(count, blobs int, discriminator byte) (txs types.Tra
}

func (s *Suite) TestBlobViolations(t *utesting.T) {
t.Log(`This test sends some invalid blob tx announcements and expects the node to disconnect.`)

if err := s.engine.sendForkchoiceUpdated(); err != nil {
t.Fatalf("send fcu failed: %v", err)
}
Expand Down
Loading
Loading