Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
0978604
version: release v1.16.3 (#32528)
gballet Sep 1, 2025
1263f3d
version: begin v1.16.4 release cycle (#32529)
gballet Sep 1, 2025
c36f7be
core/stateless: track number of leaf nodes at each trie depth (#32533)
omerfirmak Sep 2, 2025
6f08b3a
core/tracing: fix selfdestruct 6780 balance change emit (#32526)
s1na Sep 2, 2025
328add2
core/tracing: add code change reason (#32525)
s1na Sep 2, 2025
0e82b6b
core/txpool: fix duplicate function comment (#32524)
keeghcet Sep 2, 2025
00516c7
core/txpool/blobpool, eth/catalyst: place null for missing blob (#32536)
rjl493456442 Sep 3, 2025
e6884cc
core/tracing: update changelog (#32535)
s1na Sep 3, 2025
70f177a
core/txpool/blobpool: fix getblobs error handling (#32538)
cskiraly Sep 4, 2025
f5fcfb2
core/rawdb: remove outdated functions (#32542)
rjl493456442 Sep 4, 2025
902ec5b
cmd, core, eth, triedb/pathdb: track node origins in the path databas…
rjl493456442 Sep 5, 2025
8ce2047
cmd/geth: set trie journal for pathdb (#32531)
jsvisa Sep 5, 2025
c4ec450
core/state: state size tracking (#32362)
jsvisa Sep 8, 2025
bc4ee71
triedb/pathdb: add recovery mechanism in state indexer (#32447)
rjl493456442 Sep 8, 2025
d95ca2e
cmd/devp2p/internal/ethtest: fix possible infinite wait (#32551)
cskiraly Sep 8, 2025
b381804
core/vm: switch modexp gas computation to uint64 (#32527)
MariusVanDerWijden Sep 8, 2025
2a3f4ce
rlp: fix typo in decode test message (#32554)
Forostovec Sep 9, 2025
5035064
core/rawdb: improve the test suite for ancient store (#32555)
VolodymyrBg Sep 9, 2025
ca6e2d1
triedb/pathdb: sync ancient store before journal (#32557)
rjl493456442 Sep 9, 2025
5cc4436
core/txpool/blobpool: disallow legacy sidecar after osaka (#32534)
mask-pp Sep 10, 2025
586ac9b
params: use spaces instead of tabs in config description (#32564)
lightclient Sep 10, 2025
d68528c
core/txpool: add sanity overflow check (#32544)
MariusVanDerWijden Sep 10, 2025
dd7fe1b
core/vm: fix modexp gas calculation (#32568)
MariusVanDerWijden Sep 10, 2025
b708feb
core/vm: fix comment and remove unused divisor in osakaModexpGas (#32…
zach871 Sep 10, 2025
1f7f95d
p2p/discover: remove delay from discv5 RandomNodes (#32517)
cskiraly Sep 10, 2025
46e4f0b
p2p/discover: add waitForNodes
fjl Aug 29, 2025
f8e0e8d
p2p/discover: add context in waitForNodes
fjl Aug 29, 2025
f4046b0
p2p/discover: move wait condition to lookupIterator
fjl Aug 29, 2025
4ed8f5e
p2p/discover: improve iterator
fjl Sep 5, 2025
e58e7f7
p2p/discover: fix bug in lookup
fjl Sep 5, 2025
721c8de
p2p/discover: trigger refresh in lookupIterator
fjl Sep 5, 2025
cf0503d
p2p/discover: track missing nodes in test
fjl Sep 5, 2025
3946708
p2p/discover: fix two bugs in lookup iterator
fjl Sep 9, 2025
3133fd3
p2p/discover: remove print in test
fjl Sep 9, 2025
a9f9e0d
p2p/discover: add imports in test
fjl Sep 9, 2025
046e2cd
params: add bpo forks to eth_config (#32579)
lightclient Sep 11, 2025
92fbbe6
ethdb/pebble: set metric namespace correctly (#32563)
GarmashAlex Sep 11, 2025
cbf0b5b
go.mod, build: require go 1.24 and upgrade linter (#32584)
fjl Sep 11, 2025
1c3703c
.github: run tests with ci.go (#32590)
fjl Sep 11, 2025
8deb682
build: upgrade to go 1.25.1 (#32593)
fjl Sep 11, 2025
8a19582
eth/catalyst: enable newpayloadV4 on BPOs (#32589)
lightclient Sep 11, 2025
72d3e88
p2p/discover: clarify lookup behavior on empty table
cskiraly Sep 12, 2025
3eab461
p2p/discover: add test for lookup returning immediately
cskiraly Sep 12, 2025
25d6596
.github: remove redundant regexp check for heading dot (#32597)
gballet Sep 12, 2025
97afa28
Revert "p2p/discover: add test for lookup returning immediately"
cskiraly Sep 12, 2025
68c18ed
Update lookup.go
fjl Sep 12, 2025
5d09aa3
accounts/abi/bind/v2: add Address method to BoundContract (#32559)
tr1sm0s1n Sep 12, 2025
0643427
p2p/discover: continue
fjl Sep 12, 2025
41f580f
core/vm: fix typo in CLZ doc (#32604)
aviggiano Sep 12, 2025
a306239
core/filtermaps: use slices.Sort to remove duplicated elements (#32602)
hero5512 Sep 15, 2025
c2fcc27
core/rawdb: fix misleading comment in HasTrieNode (#32599)
radik878 Sep 15, 2025
ec99444
core/overlay: copy BaseRoot in TransitionState.Copy (#32613)
Galoretka Sep 15, 2025
4824942
core/txpool/blobpool: filter blob txs with sidecar version (#32577)
cskiraly Sep 15, 2025
df0bd89
core/txpool/blobpool: migrate billy to new slot size (#31966)
MariusVanDerWijden Sep 15, 2025
791e9fb
rlp: remove duplicate optionalAndTailField test case (#32614)
radik878 Sep 15, 2025
6924eea
eth/catalyst: allow fcuV3 for BPO forks (#32615)
fjl Sep 15, 2025
89f364f
go.mod: add tool section in module file (#32598)
markya0616 Sep 15, 2025
b05fe4a
cmd/keeper: add the keeper zkvm guest program (#32543)
gballet Sep 15, 2025
e48242b
cmd/evm/internal/t8ntool: use ApplyTransaction instead of ApplyMessag…
fjl Sep 16, 2025
b340103
core/tracing: remove unnecessary 'copy' field skip in TestAllHooksCal…
VolodymyrBg Sep 16, 2025
3589c0d
p2p/discover: expose timeout in lookupFailed
cskiraly Sep 16, 2025
110b4e1
core/rawdb: fix typo in TestWriteAncientHeaderChain (#32587)
VolodymyrBg Sep 16, 2025
03b77d1
core/stateless: API methods to get execution witness of block
gballet Sep 16, 2025
6a7f64e
core/vm: use go-bigmodexpfix for modexp (#32576)
fjl Sep 16, 2025
de9fb97
revert to using table parameter
cskiraly Sep 17, 2025
a4c9b34
p2p/discover: add waitForNodes
cskiraly Sep 17, 2025
5ae61f9
go.mod: update c-kzg (#32639)
MariusVanDerWijden Sep 17, 2025
f6ba50b
go.mod: update go-eth-kzg (#32640)
MariusVanDerWijden Sep 17, 2025
2d3704c
core/stateless: add vmwitnessstats cli flag to report leaf stats + lo…
gballet Sep 17, 2025
21769f3
triedb/pathdb: generalize the history indexer (#32523)
rjl493456442 Sep 17, 2025
fda09c7
trie: add sub-trie iterator support (#32520)
samuelarogbonlo Sep 17, 2025
6492751
cmd/keeper: disable GC for zkvm execution (#32638)
gballet Sep 17, 2025
339cae8
core: fix fork readiness log (#32623)
lightclient Sep 18, 2025
8a171dc
core/rawdb: report truncateErr in concurrent truncate failure (#32651)
GarmashAlex Sep 18, 2025
ab95477
build: update to execution-spec-tests v5.0.0 (#32592)
fjl Sep 18, 2025
2a82964
eth/catalyst, beacon/engine: enable BPO and Osaka on stateless APIs (…
rjl493456442 Sep 18, 2025
dce511c
eth/filters, cmd: add config of eth_getLogs address limit (#32327)
hlongvu Sep 18, 2025
b9e2eb5
beacon/config: fix LoadForks with non-string values (#32609)
klim0v Sep 18, 2025
2b3d617
internal/ethapi: skip tx gas limit check for calls (#32641)
fjl Sep 19, 2025
b08b629
beacon/blsync: test validated finality (#32633)
zsfelfoldi Sep 19, 2025
9b730e1
core/state: add missing address key in state_object log (#32676)
Galoretka Sep 19, 2025
103b8b2
crypto/bn256: switch to gnark again (#32659)
MariusVanDerWijden Sep 19, 2025
1601f39
core/txpool/blobpool: remove conversion in GetBlobs (#32578)
cskiraly Sep 19, 2025
64c6de7
p2p: using testing.B.Loop (#32664)
cuiweixie Sep 19, 2025
d41dc92
core/state: using testing.B.Loop (#32658)
cuiweixie Sep 19, 2025
3ebb143
eth: using testing.B.Loop (#32657)
cuiweixie Sep 19, 2025
9b1896b
log: using testing.B.Loop (#32663)
cuiweixie Sep 19, 2025
0758a56
core: using testing.B.Loop (#32662)
cuiweixie Sep 19, 2025
79a4f76
core/vm: using testing.B.Loop (#32660)
cuiweixie Sep 19, 2025
e35c628
core/types: using testing.B.Loop (#32643)
cuiweixie Sep 19, 2025
a499a11
crypto: using testing.B.Loop (#32645)
cuiweixie Sep 19, 2025
c7eb376
fix: correct typo in TestMustParseUint64Panic error message (#32648)
CreeptoGengar Sep 19, 2025
f770ec1
common, eth: remove duplicate test cases (#32624)
zach871 Sep 19, 2025
b62e034
core/rawdb: fix bad blocks sorted failure message to map index→number…
MozirDmitriy Sep 19, 2025
fd65f56
params: update config description links to new format (#32681)
lightclient Sep 20, 2025
684f0db
core/txpool/blobpool: introduce sidecar conversion for legacy blob tr…
rjl493456442 Sep 20, 2025
4414e28
go.work.sum: add to repo (#32677)
lightclient Sep 20, 2025
479b803
core/state: fix committed-state expectations in StateDB tests (#32678)
GarmashAlex Sep 22, 2025
ada2db4
triedb/pathdb: move head truncation log (#32649)
rjl493456442 Sep 22, 2025
aa37bd0
cmd, tests: fix snapshot dump and export-preimages (#32650)
rjl493456442 Sep 22, 2025
1597d58
go.work, build: remove workspace file (#32699)
fjl Sep 22, 2025
2872242
cmd/era: fix iterator error source handling in checkAccumulator (#32698)
MozirDmitriy Sep 22, 2025
2b5718f
cmd/evm/internal/t8ntool: fix nil pointer dereference in Osaka blob g…
bshastry Sep 23, 2025
8dfd30f
core/txpool/blobpool: add legacy sidecar conversion in reinject (#32688)
rjl493456442 Sep 23, 2025
1cd0048
accounts/keystore: use runtime.AddCleanup (#32610)
cuiweixie Sep 23, 2025
4074f74
internal/ethapi: fix merge transition in eth_simulate (#32616)
deffrian Sep 23, 2025
48c74f4
trie: align AllFFPrefix test assertion and message (#32719)
VolodymyrBg Sep 24, 2025
15a94b4
build: module-aware FindMainPackages (#32736)
fjl Sep 24, 2025
bc45154
miner: default gaslimit 60M (#32734)
fjl Sep 24, 2025
ad55a3e
core/txpool/blobpool: fork boundary conversion 3 (#32716)
fjl Sep 24, 2025
7ed17f1
trie: fix TestOneElementProof expected value message (#32738)
radik878 Sep 25, 2025
1c706d1
accounts/keystore: use ticker to avoid timer allocations (#32732)
viktorking7 Sep 25, 2025
7611f35
accounts/abi/bind: fix data race in TestWaitDeployedCornerCases (#32740)
hero5512 Sep 25, 2025
965ffff
all: add bpo1 and bpo2 overrides (#32737)
lightclient Sep 25, 2025
89158aa
core/txpool/blobpool: convert and add one-by-one (#32718)
cskiraly Sep 25, 2025
ad484fc
build: upgrade to execution-spec-tests v5.1.0 (#32742)
fjl Sep 25, 2025
bacc150
core/txpool: add eip2681 check for incoming transactions (#32726)
jsvisa Sep 25, 2025
7d8ccdd
all: refactor to use builtin max/min (#32694)
cuiweixie Sep 25, 2025
0977a02
params: schedule Osaka/BPO1/BPO2 for testnets (#32735)
fjl Sep 25, 2025
b964b65
version: release go-ethereum v1.16.4 stable
fjl Sep 25, 2025
41714b4
Merge branch 'master' into release/1.16
fjl Sep 25, 2025
94036cd
Merge upstream v1.16.4
joshklop Sep 26, 2025
67100a3
all: downgrade to go1.23
joshklop Sep 29, 2025
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/validate_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
with:
script: |
const prTitle = context.payload.pull_request.title;
const titleRegex = /^(\.?[\w\s,{}/]+): .+/;
const titleRegex = /^([\w\s,{}/.]+): .+/;
if (!titleRegex.test(prTitle)) {
core.setFailed(`PR title "${prTitle}" does not match required format: directory, ...: description`);
Expand Down
5 changes: 5 additions & 0 deletions accounts/abi/bind/v2/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,11 @@ func NewBoundContract(address common.Address, abi abi.ABI, caller ContractCaller
}
}

// Address returns the deployment address of the contract.
func (c *BoundContract) Address() common.Address {
return c.address
}

// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
Expand Down
63 changes: 43 additions & 20 deletions accounts/abi/bind/v2/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,22 +100,29 @@ func TestWaitDeployed(t *testing.T) {
}

func TestWaitDeployedCornerCases(t *testing.T) {
backend := simulated.NewBackend(
types.GenesisAlloc{
crypto.PubkeyToAddress(testKey.PublicKey): {Balance: big.NewInt(10000000000000000)},
},
var (
backend = simulated.NewBackend(
types.GenesisAlloc{
crypto.PubkeyToAddress(testKey.PublicKey): {Balance: big.NewInt(10000000000000000)},
},
)
head, _ = backend.Client().HeaderByNumber(context.Background(), nil) // Should be child's, good enough
gasPrice = new(big.Int).Add(head.BaseFee, big.NewInt(1))
signer = types.LatestSigner(params.AllDevChainProtocolChanges)
code = common.FromHex("6060604052600a8060106000396000f360606040526008565b00")
ctx, cancel = context.WithCancel(context.Background())
)
defer backend.Close()

head, _ := backend.Client().HeaderByNumber(context.Background(), nil) // Should be child's, good enough
gasPrice := new(big.Int).Add(head.BaseFee, big.NewInt(1))

// Create a transaction to an account.
code := "6060604052600a8060106000396000f360606040526008565b00"
tx := types.NewTransaction(0, common.HexToAddress("0x01"), big.NewInt(0), 3000000, gasPrice, common.FromHex(code))
tx, _ = types.SignTx(tx, types.LatestSigner(params.AllDevChainProtocolChanges), testKey)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// 1. WaitDeploy on a transaction that does not deploy a contract, verify it
// returns an error.
tx := types.MustSignNewTx(testKey, signer, &types.LegacyTx{
Nonce: 0,
To: &common.Address{0x01},
Gas: 300000,
GasPrice: gasPrice,
Data: code,
})
if err := backend.Client().SendTransaction(ctx, tx); err != nil {
t.Errorf("failed to send transaction: %q", err)
}
Expand All @@ -124,19 +131,35 @@ func TestWaitDeployedCornerCases(t *testing.T) {
t.Errorf("error mismatch: want %q, got %q, ", bind.ErrNoAddressInReceipt, err)
}

// Create a transaction that is not mined.
tx = types.NewContractCreation(1, big.NewInt(0), 3000000, gasPrice, common.FromHex(code))
tx, _ = types.SignTx(tx, types.LatestSigner(params.AllDevChainProtocolChanges), testKey)

// 2. Create a contract, but cancel the WaitDeploy before it is mined.
tx = types.MustSignNewTx(testKey, signer, &types.LegacyTx{
Nonce: 1,
Gas: 300000,
GasPrice: gasPrice,
Data: code,
})

// Wait in another thread so that we can quickly cancel it after submitting
// the transaction.
done := make(chan struct{})
go func() {
contextCanceled := errors.New("context canceled")
if _, err := bind.WaitDeployed(ctx, backend.Client(), tx.Hash()); err.Error() != contextCanceled.Error() {
t.Errorf("error mismatch: want %q, got %q, ", contextCanceled, err)
defer close(done)
want := errors.New("context canceled")
_, err := bind.WaitDeployed(ctx, backend.Client(), tx.Hash())
if err == nil || errors.Is(want, err) {
t.Errorf("error mismatch: want %v, got %v", want, err)
}
}()

if err := backend.Client().SendTransaction(ctx, tx); err != nil {
t.Errorf("failed to send transaction: %q", err)
}
cancel()

// Wait for goroutine to exit or for a timeout.
select {
case <-done:
case <-time.After(time.Second * 2):
t.Fatalf("failed to cancel wait deploy")
}
}
6 changes: 5 additions & 1 deletion accounts/keystore/keystore.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ func (ks *KeyStore) init(keydir string) {
runtime.SetFinalizer(ks, func(m *KeyStore) {
m.cache.close()
})

// Create the initial list of wallets from the cache
accs := ks.cache.accounts()
ks.wallets = make([]accounts.Wallet, len(accs))
Expand Down Expand Up @@ -195,11 +196,14 @@ func (ks *KeyStore) Subscribe(sink chan<- accounts.WalletEvent) event.Subscripti
// forces a manual refresh (only triggers for systems where the filesystem notifier
// is not running).
func (ks *KeyStore) updater() {
ticker := time.NewTicker(walletRefreshCycle)
defer ticker.Stop()

for {
// Wait for an account update or a refresh timeout
select {
case <-ks.changes:
case <-time.After(walletRefreshCycle):
case <-ticker.C:
}
// Run the wallet refresher
ks.refreshWallets()
Expand Down
Loading