Commit graph

2240 commits

Author SHA1 Message Date
Daniel Liu
fd040ec0d7
core/tracing: add OnClose Trace Hook #29629 (#1474) 2025-09-13 10:38:34 +08:00
Daniel Liu
a9dc0a81a3
core/tracing: add system call callback #29355 (#1469) 2025-09-13 10:28:13 +08:00
Daniel Liu
47abf2eb16
core/vm: better error-info for vm errors #29354 (#1464)
Co-authored-by: Martin HS <martin@swende.se>
2025-09-13 10:20:34 +08:00
Daniel Liu
80159e5854
core/state, trie: add DeleteAccount method #25531 (#1108) 2025-09-13 09:29:51 +08:00
wit765
12eab8e785
all: rename ChainId to ChainID #16853 (#1456)
Co-authored-by: wit <wit765765346@gmail>
2025-09-09 22:54:34 +08:00
Daniel Liu
4e234f231a
core, trie: flush preimages to db on database close #25533 (#1107) 2025-09-09 17:32:22 +08:00
Daniel Liu
ad9003c41e
eth/tracers: live chain tracing with hooks #29189 (#1352)
Here we add a Go API for running tracing plugins within the main block import process.

As an advanced user of geth, you can now create a Go file in eth/tracers/live/, and within
that file register your custom tracer implementation. Then recompile geth and select your tracer
on the command line. Hooks defined in the tracer will run whenever a block is processed.

The hook system is defined in package core/tracing. It uses a struct with callbacks, instead of
requiring an interface, for several reasons:

- We plan to keep this API stable long-term. The core/tracing hook API does not depend on
  on deep geth internals.
- There are a lot of hooks, and tracers will only need some of them. Using a struct allows you
   to implement only the hooks you want to actually use.

All existing tracers in eth/tracers/native have been rewritten to use the new hook system.

This change breaks compatibility with the vm.EVMLogger interface that we used to have.
If you are a user of vm.EVMLogger, please migrate to core/tracing, and sorry for breaking
your stuff. But we just couldn't have both the old and new tracing APIs coexist in the EVM.

---------

Co-authored-by: Sina M <1591639+s1na@users.noreply.github.com>
Co-authored-by: Matthieu Vachon <matthieu.o.vachon@gmail.com>
Co-authored-by: Delweng <delweng@gmail.com>
Co-authored-by: Martin HS <martin@swende.se>
2025-09-09 17:30:56 +08:00
Daniel Liu
be61f66cb2
core/types: remove message #25977 (#1322) 2025-09-09 11:23:47 +08:00
Daniel Liu
96a7ed54c6
core/vm: set tracer-observable value of a delegatecall to match parent value #26632 (#1317)
This is a breaking change in the tracing hooks API as well as semantics of the callTracer:

- CaptureEnter hook provided a nil value argument in case of DELEGATECALL. However to stay consistent with how delegate calls behave in EVM this hook is changed to pass in the value of the parent call.
- callTracer will return parent call's value for DELEGATECALL frames.

---------

Co-authored-by: Chris Ziogas <ziogaschr@gmail.com>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2025-09-09 10:41:48 +08:00
Daniel Liu
7d4d81f586
eth/tracers, core/vm: remove time from trace output and tracing interface #26291 (#1311)
This removes the 'time' field from logs, as well as from the tracer interface. This change makes the trace output deterministic.  If a tracer needs the time they can measure it themselves. No need for evm to do this.

Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2025-09-09 09:26:10 +08:00
Daniel Liu
900b333241
eth/tracers: add support for block overrides in debug_traceCall #24871 (#1288) 2025-09-08 21:22:09 +08:00
Daniel Liu
0bc25c35b4
core,eth: implement tx-level hooks for tracers #24510 (#1277)
* core,eth: add empty tx logger hooks

* core,eth: add initial and remaining gas to tx hooks

* store tx gasLimit in js tracer

* use gasLimit to compute intrinsic cost for js tracer

* re-use rules in transitiondb

* rm logs

* rm logs

* Mv some fields from Start to TxStart

* simplify sender lookup in prestate tracer

* mv env to TxStart

* Revert "mv env to TxStart"

This reverts commit 656939634b9aff19f55a1cd167345faf8b1ec310.

* Revert "simplify sender lookup in prestate tracer"

This reverts commit ab65bce48007cab99e68232e7aac2fe008338d50.

* Revert "Mv some fields from Start to TxStart"

This reverts commit aa50d3d9b2559addc80df966111ef5fb5d0c1b6b.

* fix intrinsic gas for prestate tracer

* add comments

* refactor

* fix test case

* simplify consumedGas calc in prestate tracer

Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
2025-09-08 17:53:21 +08:00
Daniel Liu
05a9e91898
cmd/abigen, accounts/abi/bind: implement abigen version 2 #31379 (#1416)
This PR implements a new version of the abigen utility (v2) which exists
along with the pre-existing v1 version.

Abigen is a utility command provided by go-ethereum that, given a
solidity contract ABI definition, will generate Go code to transact/call
the contract methods, converting the method parameters/results and
structures defined in the contract into corresponding Go types. This is
useful for preventing the need to write custom boilerplate code for
contract interactions.

Methods in the generated bindings perform encoding between Go types and
Solidity ABI-encoded packed bytecode, as well as some action (e.g.
`eth_call` or creating and submitting a transaction). This limits the
flexibility of how the generated bindings can be used, and prevents
easily adding new functionality, as it will make the generated bindings
larger for each feature added.

Abigen v2 was conceived of by the observation that the only
functionality that generated Go bindings ought to perform is conversion
between Go types and ABI-encoded packed data. Go-ethereum already
provides various APIs which in conjunction with conversion methods
generated in v2 bindings can cover all functionality currently provided
by v1, and facilitate all other previously-desired use-cases.

To generate contract bindings using abigen v2, invoke the `abigen`
command with the `--v2` flag. The functionality of all other flags is
preserved between the v2 and v1 versions.

The execution of `abigen --v2` generates Go code containing methods
which convert between Go types and corresponding ABI-encoded data
expected by the contract. For each input-accepting contract method and
the constructor, a "packing" method is generated in the binding which
converts from Go types to the corresponding packed solidity expected by
the contract. If a method returns output, an "unpacking" method is
generated to convert this output from ABI-encoded data to the
corresponding Go types.

For contracts which emit events, an unpacking method is defined for each
event to unpack the corresponding raw log to the Go type that it
represents.

Likewise, where custom errors are defined by contracts, an unpack method
is generated to unpack raw error data into a Go type.

For a smooth user-experience, abigen v2 comes with a number of utility
functions to be used in conjunction with the generated bindings for
performing common contract interaction use-cases. These include:

* filtering for historical logs of a given topic
* watching the chain for emission of logs with a given topic
* contract deployment methods
* Call/Transact methods

https://geth.ethereum.org will be updated to include a new tutorial page
for abigen v2 with full code examples. The page currently exists in a
PR: https://github.com/ethereum/go-ethereum/pull/31390 .

There are also extensive examples of interactions with contract bindings
in [test
cases](cc855c7ede/accounts/abi/bind/v2/lib_test.go)
provided with this PR.

---------

Co-authored-by: jwasinger <j-wasinger@hotmail.com>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
2025-09-03 15:47:12 +08:00
Daniel Liu
e2edc41b50
all: mv loggers to eth/tracers #23892 (#1269) 2025-09-03 15:35:28 +08:00
Daniel Liu
aca2149f12
core, eth, trie: use TryGetAccount to read what TryUpdateAccount has written #25458 (#1106)
* core: use TryGetAccount to read where TryUpdateAccount has been used to write

* Gary's review feedback

* implement Gary's suggestion

* fix bug + rename NewSecure into NewStateTrie

* trie: add backwards-compatibility aliases for SecureTrie

* Update database.go

* make the linter happy

Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-09-03 15:34:11 +08:00
Daniel Liu
cab1c19cd2
core/state: mark account as dirty when resetObject occurs #27339 (#1224)
This changes the journal logic to mark the state object dirty immediately when it
is reset.

We're mostly adding this change to appease the fuzzer. Marking it dirty immediately
makes no difference in practice because accounts will always be modified by EVM
right after creation.

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-31 16:04:51 +08:00
Daniel Liu
6c5c8c13de
core, trie: rework trie committer #25320 (#1103)
* all: rework trie and trie committer

* all: get rid of internal cache in trie

* all: fixes

* trie: polish

* core, trie: address comments

* trie: fix imports

* core/state: address comments

* core/state/snapshot: polish

* trie: remove unused code

* trie: update tests

* trie: don't set db as nil

* trie: address comments

* trie: unskip test

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-31 15:58:48 +08:00
Daniel Liu
031ea75eca
eth/tracers: package restructuring #23857 (#1266) 2025-08-29 05:26:36 +08:00
Daniel Liu
2dcec889e6
core/state: do not ignore null addr while iterative dump #27320 (#1223)
fixes bug which caused the zero-address to be ignored during an iterative state-dump.

---------

Co-authored-by: Park Changwan <pcw109550@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-08-29 05:25:15 +08:00
Daniel Liu
bbc4612d9f
core/state: remove notion of fake storage #24916 (#1219) 2025-08-29 05:24:28 +08:00
Daniel Liu
3fed9ebeb8
core, eth, trie: rework preimage store #25287 (#1099)
* core, trie, eth, cmd: rework preimage store

* trie: address comment

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-29 05:22:44 +08:00
Daniel Liu
0be5580b98
all: use big.Sign to compare with zero #29490 (#1387) 2025-08-28 18:56:39 +08:00
Daniel Liu
3926b08074
core/state: maintain destruction flag by default #26371 (#1218) 2025-08-28 18:51:36 +08:00
Daniel Liu
152e3d9923
core/state: return error when storage trie can't be opened #26350 (#1216)
This changes the StorageTrie method to return an error when the trie
is not available. It used to return an 'empty trie' in this case, but that's
not possible anymore under PBSS.

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-26 15:31:00 +08:00
Daniel Liu
4a4de2319f
core/state: fix typos and comments (#1206)
Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
2025-08-26 15:22:37 +08:00
Daniel Liu
18d2dbad89
core, trie: port snap sync changes #24898 (#1096)
core, eth, les, trie: rework snap sync

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-26 15:20:39 +08:00
Daniel Liu
6f36533962
all: remove ethash pow 27178 (#1378) 2025-08-26 11:54:01 +08:00
Daniel Liu
144fbbf35a
core: reset txpool on sethead #26392 (#1373) 2025-08-22 16:45:41 +08:00
Daniel Liu
516883d14c
all: snapshot dump + unify with trie dump #22795 (#1205) 2025-08-22 16:39:28 +08:00
Daniel Liu
d52bfaa5ca
all: introduce trie owner notion #24750 (#1090)
* cmd, core/state, light, trie, eth: add trie owner notion

* all: refactor

* tests: fix goimports

* core/state/snapshot: fix ineffasigns

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-08-22 16:37:39 +08:00
Daniel Liu
ee81b721fc
core, trie: implement trie tracer #24403 (#1088)
Trie tracer is an auxiliary tool to capture all deleted nodes
which can't be captured by trie.Committer. The deleted nodes
can be removed from the disk later.

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-21 13:38:56 +08:00
Daniel Liu
0c57a6c64c
core/state: remove toAddr helper in tests #22772 (#1203)
Co-authored-by: aaronbuchwald <aaron.buchwald56@gmail.com>
2025-08-21 13:38:23 +08:00
Daniel Liu
da624be994
core/state: fix panic in state dumping #22225 (#1202)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-08-21 13:37:51 +08:00
Daniel Liu
06d94520ba
core/state: fix some comments #21450 (#1201) 2025-08-21 13:36:45 +08:00
Daniel Liu
eaa1452a53
core/state: add state transition tool for testing #20958 (#1200) 2025-08-20 16:30:34 +08:00
Daniel Liu
9c6816eab6
core/vm: make time field use uint64 #26474 (#1319) 2025-08-20 15:22:06 +08:00
Daniel Liu
9cad0a0cc0
all: create global hasher pool #31769 (#1233)
This PR creates a global hasher pool that can be used by all packages.
It also removes a bunch of the package local pools.

It also updates a few locations to use available hashers or the global
hashing pool to reduce allocations all over the codebase.
This change should reduce global allocation count by ~1%

---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-08-20 15:11:09 +08:00
Daniel Liu
628e1e52bb
core/state: make GetCodeSize mirror GetCode implementation wise #21056 (#1198)
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-08-20 15:08:05 +08:00
Daniel Liu
9013bfbf6f
core/state: include zero-address in state dump if present #21038 (#1195)
* Include 0x0000 address into the dump if it is present

* core/state: go fmt

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
2025-08-20 15:06:37 +08:00
Daniel Liu
a2cf4e3111
core: fix deprecation comment for GenesisAccount #29218 (#1323) 2025-08-08 10:35:58 +08:00
Daniel Liu
34020969ff
all: simplify timestamps to uint64 #19372 (#1318) 2025-08-08 10:33:37 +08:00
Daniel Liu
36374be05f
eth/tracers: move tracing APIs into eth/tracers #22161 #22473 (#1252) 2025-08-08 10:25:43 +08:00
Daniel Liu
cdd6a9eb94
eth: add debug_accountRange API #19645 (#1194)
This new API allows reading accounts and their content by address range.

Co-authored-by: Wenbiao Zheng <delweng@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Felix Lange <fjl@twurst.com>
2025-08-08 09:55:17 +08:00
Daniel Liu
8750881da2
trie: remove the sync bloom, used by fast sync #24047 (#1077) 2025-08-08 09:31:26 +08:00
Daniel Liu
3da4549e07
core/state: move state account to core/types + abstracted write account to trie #23567 (#1072) 2025-08-08 09:13:34 +08:00
Daniel Liu
cd407af1aa
core/rawdb: add HasCode, HasTrieNode and use them where possible #24454 (#1211) 2025-08-04 14:42:13 +08:00
Daniel Liu
3620d9930d
core/vm: use clear from go v1.21 #29307 (#1246) 2025-08-04 11:54:49 +08:00
Daniel Liu
f9025ecc91
core/state: unexport NodeIterator #27239 (#1222)
Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
2025-08-04 11:53:31 +08:00
Daniel Liu
1d9fd6bdd2
core: show db error-info in case of mismatched hash root #26870 (#1220)
When a database failure occurs, bubble it up a into statedb, and report it in suitable places, such as during a 'bad block' report.

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-04 11:51:47 +08:00
Daniel Liu
cb888541c5
core, trie: add state metrics #23433 (#1071) 2025-08-04 11:19:42 +08:00
Daniel Liu
52f5766059
core: pre-allocate in Copy() #25279 (#1213) 2025-07-28 16:57:51 +08:00
Daniel Liu
2eac17980c
core/state: avoid statedb.dbErr due to emptyCode #21051 (#1197) 2025-07-28 16:55:29 +08:00
Daniel Liu
cdd48dd4de
core/state: fix staticcheck warnings #20357 (#1193) 2025-07-28 16:53:27 +08:00
Daniel Liu
77522e51ec
core, trie: decode the value for storage dump #19943 (#1189)
* core, trie: decode the value for storage dump

* core/state: address comment

Co-authored-by: gary rong <garyrong0905@gmail.com>
2025-07-28 16:52:06 +08:00
benjamin202410
db9c3de1dc
add syncinfo pool (#1236)
* add syncinfo message into pool for process later

* add missing file back

---------

Co-authored-by: liam.lai <liam.lai@us>
2025-07-28 01:43:41 -07:00
Daniel Liu
85f08c7732
eth: skip VerifyHeader in traceBlock to fix #1185 (#1265) 2025-07-26 18:18:50 +08:00
Daniel Liu
7bb2c7793b
core/vm: delete unused error #29062 (#1245) 2025-07-26 17:45:31 +08:00
Daniel Liu
6f6e08f83b
core/vm: prevent overflow #29023 (#1244) 2025-07-26 17:44:45 +08:00
Daniel Liu
42d3549e2c
core: using math.MaxUint64 instead of 0xffffffffffffffff #29022 #29024 (#1243) 2025-07-26 17:43:36 +08:00
Daniel Liu
5561c27308
core: fix typos (#1237)
fixes various typos in core

Co-authored-by: 0xbstn <bastien-bouge@hotmail.fr>
2025-07-26 17:42:50 +08:00
Daniel Liu
32b929e781
core/vm/runtime: add Random field to config #28001 (#1234) 2025-07-26 17:41:56 +08:00
Daniel Liu
8f76709a10
core/vm, go.mod: update uint256 to v1.3.2 and use faster method #30868 (#1241) 2025-07-17 17:56:53 +08:00
Daniel Liu
4b4980d949
core/vm: set basefee to 0 internally on eth_call #28470 (#1238) 2025-07-17 17:54:23 +08:00
Daniel Liu
dc01dba464
core/vm: minor code formatting #28199 (#1235)
Adding a space beween function opOrigin() and opcCaller() in instruciton.go.
Adding a space beween function opkeccak256()  and opAddress() in instruciton.go.

Co-authored-by: hzysvilla <ecjgvmhc@gmail.com>
2025-07-17 17:53:02 +08:00
Daniel Liu
c46302cf65
all: fix invalid signer list on checkpoint block for trace api #1185 (#1186) 2025-07-12 06:56:30 +08:00
Daniel Liu
ae006030c6
core: fill blockNumber in logs #26345 (#1215) 2025-07-11 10:53:48 +08:00
Daniel Liu
6f84f67a15
core: rename CommitTrie to commitTrie #25896 (#1214) 2025-07-11 10:48:10 +08:00
Daniel Liu
34a245fbc8
all: use common.FileExist for checking file existence #24748 (#1212) 2025-07-11 10:42:51 +08:00
Daniel Liu
f272ce1123
core/rawdb: add func HasCodeWithPrefix and HasTrieNode #24117 (#1210) 2025-07-11 10:37:10 +08:00
Daniel Liu
9a50df0b62
core/rawdb: do prefixed lookup first #24288 (#1209)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-07-11 10:22:26 +08:00
Daniel Liu
495a8b919a
core/state: simplify meter code #24304 (#1208) 2025-07-11 10:15:16 +08:00
Daniel Liu
906f07736e
core/state: remove unuseful code #23092 (#1207) 2025-07-11 10:09:56 +08:00
Daniel Liu
f98fbc7dc7
core/state: fix database leak and copy tests #19306 (#1192)
Co-authored-by: zcheng9 <zcheng9@hawk.iit.edu>
2025-07-11 09:58:59 +08:00
Daniel Liu
ef0fe4ed95
core/state: revert noop finalise, fix copy-commit-copy #20113 (#1191) 2025-07-11 09:52:31 +08:00
Daniel Liu
be97571471
core/state: fix state object deep copy #20100 (#1190) 2025-07-11 09:47:37 +08:00
Daniel Liu
16638e9e17
core/state: avoid unnecessary conversions #19870 (#1188) 2025-07-11 09:42:20 +08:00
Daniel Liu
220b2f4174
core/state: fix random test args #19255 (#1187)
Co-authored-by: Sheldon <11510383@mail.sustc.edu.cn>
2025-07-11 09:37:51 +08:00
Daniel Liu
618a8dd247
core, cmd: streaming json output for command #15475 (#1184) 2025-07-11 09:29:13 +08:00
Daniel Liu
9affb6a582
core/state: memory efficient, add AddPreimage test #16663 (#1182) 2025-07-02 14:53:00 +08:00
Daniel Liu
b4f4b95634
core/state: rename new variable #18301 (#1178) 2025-07-02 14:13:47 +08:00
Daniel Liu
957e9d8d05
core/state: remove lock #18065 (#1174) 2025-07-02 14:13:06 +08:00
Daniel Liu
801e92b56d
XDCx, consensus: fix some typos (#1173) 2025-07-02 14:12:11 +08:00
Daniel Liu
e24293a49c
core, eth: fix tracer dirty finalization #16588 (#1172) 2025-07-02 14:11:22 +08:00
Daniel Liu
4c5d1bd95e
core: change handling of dirty objects in state #15225 #16485 #16491 (#1171)
* core: change handling of dirty objects in state #15225

* core/state: fix bug in copy of copy State #16485

* core/state: fix ripemd-cornercase in Copy #16491
2025-07-02 14:07:21 +08:00
JukLee0ira
87ed24a113
all: update to golangci-lint 1.61.0 #30587 (#1181)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-07-01 18:10:05 +08:00
Daniel Liu
dbe173e794
core, trie: speed up some tests with quadratic processing flaw #21987 (#1057) 2025-06-25 16:17:05 +08:00
JukLee0ira
a74b87307c
all: use strings.EqualFold for string comparison #24890 (#1134) 2025-06-23 16:00:32 +08:00
Daniel Liu
937b3d75e0
core, eth, trie: prepare trie sync for path based operation #21504 (#1046) 2025-06-21 08:30:25 +08:00
Daniel Liu
7feff61647
core/state: remove toAddr helper in tests #22772 (#1100) 2025-06-17 13:33:47 +08:00
Daniel Liu
6200e8d7de
core, trie: change format 0x%x to %#x #25221 (#1094) 2025-06-17 13:31:20 +08:00
Daniel Liu
f07824db20
core, ethdb, tests, trie: implement NewBatchWithSize API for batcher #24392 (#1085) 2025-06-17 13:26:50 +08:00
Daniel Liu
45d89bd4d1
trie: faster snapshot generation #22504 (#1062) 2025-06-17 13:13:14 +08:00
Daniel Liu
93c2745b7b
all: disable recording preimage of trie keys #21402 (#1054) 2025-06-17 13:10:47 +08:00
Daniel Liu
e8c9fdde0f
eth/downloader: refactor downloader + queue #21263 (#1041)
* eth/downloader: refactor downloader + queue

downloader, fetcher: throttle-metrics, fetcher filter improvements, standalone resultcache

downloader: more accurate deliverytime calculation, less mem overhead in state requests

downloader/queue: increase underlying buffer of results, new throttle mechanism

eth/downloader: updates to tests

eth/downloader: fix up some review concerns

eth/downloader/queue: minor fixes

eth/downloader: minor fixes after review call

eth/downloader: testcases for queue.go

eth/downloader: minor change, don't set progress unless progress...

eth/downloader: fix flaw which prevented useless peers from being dropped

eth/downloader: try to fix tests

eth/downloader: verify non-deliveries against advertised remote head

eth/downloader: fix flaw with checking closed-status causing hang

eth/downloader: hashing avoidance

eth/downloader: review concerns + simplify resultcache and queue

eth/downloader: add back some locks, address review concerns

downloader/queue: fix remaining lock flaw

* eth/downloader: nitpick fixes

* eth/downloader: remove the *2*3/4 throttling threshold dance

* eth/downloader: print correct throttle threshold in stats

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-06-17 13:01:06 +08:00
wgr523
e13265a7d7
record total minted into smart contract (#1026)
* feat: record total minted into smart contract

* feat: GetCurrentTotalMinted API
2025-06-16 02:31:33 -07:00
Daniel Liu
6395c15280
core/state, eth, trie: stabilize memory use, fix memory leak #21491 (#1040) 2025-05-20 15:14:47 +08:00
Daniel Liu
4fabc43a01
core/vm: fix invalid merkle root caused by PR #627 (#1033) 2025-05-14 16:47:53 +08:00
Daniel Liu
26a9ea539f
core, rpc: speed up tests #28461 (#1008) 2025-04-29 16:57:58 +08:00
Daniel Liu
57c40154be core: use atomic type #27011 2025-04-28 16:57:56 +08:00
Daniel Liu
9a06e129b8 core: simplify atomic store after writeBlockWithState #20798 2025-04-28 16:57:56 +08:00
Daniel Liu
1d3e5cb455 core: prefetch next block state concurrently #19328 2025-04-28 16:57:56 +08:00
Daniel Liu
c02ab17b17
core: use headers only where blocks are unnecessary #19261 (#984) 2025-04-28 06:46:40 +08:00
Daniel Liu
08dbbe705d core: fix error in block iterator #18986 2025-04-25 08:03:58 +08:00
Daniel Liu
ff435e081f core: rework blockchain import #17973 2025-04-25 08:03:58 +08:00
Daniel Liu
a997425b03
all: fix warning of DeepEqual on error #23624 (#960) 2025-04-24 18:31:47 +08:00
Daniel Liu
ab0ce75ede
core: simplify code of trading and lending state (#949) 2025-04-24 18:00:21 +08:00
Daniel Liu
733a1be4dc
common, core: add block age into info logs #17718 (#947) 2025-04-24 17:56:54 +08:00
Daniel Liu
e974d96977
core/txpool: accept non-local transaction with zero tip (#950) 2025-04-21 16:11:43 +08:00
Daniel Liu
b9a6c8c32d
cmd, core, eth, trie: add trie read caching layer (#18087) (#946) 2025-04-16 17:27:43 +08:00
Daniel Liu
734abb26dc Revert "core/types: fix wrong hash after EIP-1559 for EncodeIndex in PR #933 (#939)"
This reverts commit 0cc4813e48.
2025-04-12 11:30:50 +08:00
Daniel Liu
0cc4813e48
core/types: fix wrong hash after EIP-1559 for EncodeIndex in PR #933 (#939) 2025-04-09 00:05:21 +08:00
Daniel Liu
3eb9f63513 core/types: implement DerivableList interface for transactions and receipts (#21502) 2025-04-07 16:44:32 +08:00
Daniel Liu
5b8c267122 trie: use trie.NewStackTrie instead of new(trie.Trie) (#22246) 2025-04-07 16:44:32 +08:00
Daniel Liu
54f73e471f trie: Derivesha with stacktrie (#21407) 2025-04-07 16:44:32 +08:00
Daniel Liu
a4c7d7f458 all: clean duplicate constants in package common 2025-04-07 16:43:01 +08:00
Daniel Liu
ff7bcf8d15 core/state: separate hashes and committer, collapse on commit (#20481) 2025-03-28 22:34:59 +08:00
Daniel Liu
db4dc24094 core/state: accumulate writes and only update tries when must (#19953) 2025-03-28 22:34:59 +08:00
Daniel Liu
c73a0aa929 core/state: fix state iterator (#19127) 2025-03-28 22:34:59 +08:00
Daniel Liu
3fd025e814 core/state: optimize state object and storage iteration according to EIP-1283 (#17383) 2025-03-28 22:34:59 +08:00
Daniel Liu
f2f2044470 core/txpool: fix zero tip tx always pending 2025-03-25 11:56:46 +08:00
Daniel Liu
a9b9f53701 core, eth, trie: add a prefix to contract code (21080) 2025-03-24 22:31:03 +08:00
Daniel Liu
6285a4fe05 core: improve commit genesis 2025-03-20 14:15:09 +08:00
Daniel Liu
6ec0d13873 core/txpool, crypto, node: fix os.CreateTemp in test (#31172) 2025-03-19 18:02:46 +08:00
Daniel Liu
3856e16d8c core: initialize current block/fastblock atomics to nil (19352) 2025-03-19 17:46:12 +08:00
Daniel Liu
3837d0c2cc core, cmd/XDC: fix wrong hash caused by EIP-1559 number when init genesis 2025-03-13 16:55:09 +08:00
Daniel Liu
0273448333 core, eth/downloader: fix validation and downloader printout flaw (#17974) 2025-03-11 13:24:02 +08:00
Daniel Liu
2697703c0f core, eth, params: make indexer configurable (#17188) 2025-03-10 15:41:53 +08:00
Daniel Liu
f039b26e7a light: CHT and bloom trie indexers working in light mode (#16534) 2025-03-06 15:30:48 +08:00
Daniel Liu
3976617ac2 core, light, params: clean genesis hash 2025-03-05 14:30:39 +08:00
Daniel Liu
6e8fe5121d eth/downloader: speed up tests by generating chain only once (#17916) 2025-03-01 15:55:27 +08:00
Daniel Liu
588dcd35ce cmd, common, core, eth: optimize rollback by flag 2025-03-01 11:34:32 +08:00
Daniel Liu
3adec81483 downloader: different sync strategy (#18085) 2025-02-26 15:06:08 +08:00
Daniel Liu
cc5359e063 core: fix integer divide by zero in function ValidateHeaderChain 2025-02-26 14:30:57 +08:00
JukLee0ira
620eaa7443 core: remove the duplicate func getProcInterrupt 2025-02-26 14:27:21 +08:00
Daniel Liu
7017077508 cmd/XDC, core/rawdb: add db command inspect 2025-02-21 15:32:35 +08:00
Daniel Liu
b60396a233 core, internal/ethapi: improve function IsSpecialTransaction 2025-02-20 12:48:17 +08:00
Daniel Liu
4f8d11e11d core: fix BlockSigner tx cause debug API fail after EIP-1559 2025-02-20 12:35:24 +08:00
Daniel Liu
783d46f29e core/types: remove unused error variables 2025-02-20 11:46:49 +08:00
Daniel Liu
98cff5d6c2 all: remove network rinkeby 2025-02-19 15:52:29 +08:00
Daniel Liu
54b4be1aa2 cmd, core: add flag mainet and devnet 2025-02-19 14:24:20 +08:00
Daniel Liu
1d653e57ab cmd, core: merge flags testnet and apothem 2025-02-19 14:24:20 +08:00
Daniel Liu
30195e88ee core/vm: enable cancun instruction set 2025-02-19 14:20:45 +08:00
Daniel Liu
6eebfd340f core: tidy up genesis alloc 2025-02-19 14:15:09 +08:00
Daniel Liu
3fc7eeff8a params: print chain configuration in more detail 2025-02-17 10:05:50 +08:00
Daniel Liu
cfc8cca674 common: refactor constants 2025-02-17 09:13:40 +08:00
Daniel Liu
511a372f14 core/vm: BLOBHASH opcode 0x49 (#27356) 2025-02-11 18:31:30 +08:00
Daniel Liu
d8fb27b987 all: clean up and properly abstract database accesses (#19021) 2025-02-11 18:28:50 +08:00
Daniel Liu
af4a3b0f9f core/vm: implement BLOBBASEFEE opcode 0x4a (#28098) 2025-02-10 10:58:59 +08:00
Daniel Liu
c08d4ff4a6 core/state, core/vm: implement EIP 6780 (#27189) 2025-02-07 14:52:29 +08:00
Daniel Liu
186d49b1f3 core/vm: use types.EmptyCodeHash (#27729) 2025-02-07 13:50:48 +08:00
Daniel Liu
ebb2c3b2ea all: new empty trie with types.EmptyRootHash instead of null (#27230) 2025-02-07 13:04:45 +08:00
Daniel Liu
6d40cdf7c0 core/vm: implement EIP-5656, mcopy instruction (#26181) 2025-02-06 16:54:19 +08:00
Daniel Liu
240de84287 core/vm: define cancun + enable 1153 (tstore/tload) in cancun (#27663) 2025-02-05 18:16:17 +08:00
Daniel Liu
07fd1c64cf core/vm: order opcodes properly (#27113) 2025-02-05 18:16:17 +08:00
Daniel Liu
4bbcd988b2 params: remove EIP150Hash from chainconfig (#27087) 2025-02-05 18:16:17 +08:00
Daniel Liu
3f58066879 all: remove debug field from vm config (#27048) 2025-02-05 18:16:17 +08:00
joohhnnn
6473d18cdb core/vm: clarify comment (#27045) 2025-02-05 18:16:17 +08:00
Daniel Liu
551e3594cf core/vm: use atomic.Bool (#26951) 2025-02-05 18:16:17 +08:00
Daniel Liu
4190465c53 core/vm: expose jumptable constructors (#26880) 2025-02-05 18:16:17 +08:00
Daniel Liu
e7d8e14298 core: improve the format of report block 2025-02-05 12:59:20 +08:00
Daniel Liu
ef71887d7a accounts, cmd/geth, core: close opened files (#29598)
* fix: open file used up but not closed

* feat: more same case

* feat: accept conversation
2025-01-24 16:54:12 +08:00
Daniel Liu
b6f3007af1 core: move genesis alloc types to core/types (#29003) 2025-01-24 16:54:12 +08:00
Daniel Liu
0f737b4725 core: replace suicide with selfdestruct to improve code consistency (#27716) 2025-01-24 16:54:12 +08:00
Daniel Liu
5b10b2441c all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
Daniel Liu
fb85aca8d8 accounts/abi/bind: allow specifying signer on transactOpts (#21356) 2025-01-24 16:18:30 +08:00
Daniel Liu
2ff9f336ed core: improve contextual information on core errors (#21869) 2025-01-24 16:18:30 +08:00
Daniel Liu
d8c9ad3c9f all: replace RWMutex with Mutex in places where RLock is not used (#21622) 2025-01-24 16:18:30 +08:00
Daniel Liu
5b48621c36 accouts, core: fix some comments (#21617) 2025-01-24 16:18:30 +08:00
Daniel Liu
b0063d39b9 accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091)
* accounts/abi: refactored abi.Unpack

* accounts/abi/bind: fixed error

* accounts/abi/bind: modified template

* accounts/abi/bind: added ToStruct for conversion

* accounts/abi: reenabled tests

* accounts/abi: fixed tests

* accounts/abi: fixed tests for packing/unpacking

* accounts/abi: fixed tests

* accounts/abi: added more logic to ToStruct

* accounts/abi/bind: fixed template

* accounts/abi/bind: fixed ToStruct conversion

* accounts/abi/: removed unused code

* accounts/abi: updated template

* accounts/abi: refactored unused code

* contracts/checkpointoracle: updated contracts to sol ^0.6.0

* accounts/abi: refactored reflection logic

* accounts/abi: less code duplication in Unpack*

* accounts/abi: fixed rebasing bug

* fix a few typos in comments

* rebase on master

Co-authored-by: Guillaume Ballet <gballet@gmail.com>
2025-01-24 16:18:30 +08:00
Daniel Liu
6d17a42edb all: replace t.Log(); t.FailNow() with t.Fatal() (#19849) 2025-01-24 16:18:29 +08:00
Daniel Liu
002fac8b14 all: remove the duplicate 'the' in annotations (#17509) 2025-01-24 16:18:28 +08:00
Daniel Liu
85fc56733f core: lookup txs by block number instead of block hash (#19431) 2025-01-24 15:52:43 +08:00
Daniel Liu
2b8b7e68f7 all: avoid storing computable receipt metadata (#19345) 2025-01-24 15:52:43 +08:00
Daniel Liu
92f0d07e6d core: remove unnecessary fields in log (#17106 #19182) 2025-01-24 15:52:43 +08:00
Daniel Liu
97c50f97bb all: add read-only option to database 2025-01-24 14:24:39 +08:00
JukLee0ira
197291443f core, light: handle the nil return value of GetBlockNumber, fix #517 2025-01-23 13:57:07 +08:00
Daniel Liu
cbdf0e69f9 core: refactor function reorg (#23761, #24616, #24996, #30600) 2025-01-22 15:23:37 +08:00
Daniel Liu
adba311c5c
Merge pull request #788 from JukLee0ira/Migrate-to-rawdb
core/rawdb: separate raw database access to own package
2025-01-22 15:21:38 +08:00
JukLee0ira
653b59710e core/rawdb: separate raw database access to own package (#16666 #19345) 2025-01-22 15:19:39 +08:00
Daniel Liu
6794504d40 all: update files by 'go generate ./...' 2025-01-22 15:10:52 +08:00
Daniel Liu
5740ca1fe4 core/types: remove extra byte when EncodeRLP for Receipt 2025-01-22 15:07:10 +08:00
JukLee0ira
f7b591ffe3 eth/tracers: add a golang tracer to locate contracts (#23708) 2025-01-22 12:37:37 +08:00
Daniel Liu
588f61661c build: add imports for go generate tools (#24682) 2025-01-20 11:52:59 +08:00
Daniel Liu
47a67158e5 core/types: remove generate directive for gen_tx_json.go 2025-01-14 11:50:20 +08:00
Daniel Liu
911fe219df
Merge pull request #779 from gzliudan/core_blockchain
upgrade the core package for reorg
2024-12-28 13:05:40 +08:00
benjamin202410
3e62a4c611
Merge pull request #778 from XinFinOrg/release-br-v2.4.6-beta1-dev-upgrade
Release br v2.4.6 beta1 merge back to dev upgrade
2024-12-27 20:07:41 -08:00
Daniel Liu
c8c39efb63 core: remove unnecessary log copy (#27475) 2024-12-28 10:45:00 +08:00
Daniel Liu
d03859d49e core: update the fast block on chain import at the end of the fast sync phase (#23576) 2024-12-28 10:44:54 +08:00
Daniel Liu
2baadc6e87 core: improve shutdown synchronization in BlockChain (#22853) 2024-12-28 10:44:49 +08:00
Daniel Liu
2d5dc550d0 core/rawdb: rename WriteTxLookupEntries to WriteTxLookupEntriesByBlock (#21480) 2024-12-28 10:44:42 +08:00
Daniel Liu
d7e0e9d734 core: write chain data in atomic way (#20287) 2024-12-28 10:44:36 +08:00
Daniel Liu
1c555b2def core, light: get rid of the dual mutexes (#18436) 2024-12-28 10:44:30 +08:00
Daniel Liu
6e33633d28 common: drop BigMin and BigMax, they pollute our dep graph (#30645) 2024-12-28 09:06:31 +08:00
Daniel Liu
6ec35b9644 all: get rid of custom MaxUint64 and MaxUint64 (#30636) 2024-12-28 09:06:31 +08:00
Daniel Liu
ff13d16fe5 core/vm: make structlog/json-log stack hex again (#28628) 2024-12-28 09:06:31 +08:00
Daniel Liu
4cc2b2ea5f tests/fuzzers: move fuzzers into native packages (#28467) 2024-12-28 09:06:31 +08:00
Daniel Liu
441f8ed70c common: add variable MaxHash (#28306) 2024-12-28 09:06:31 +08:00
Péter Szilágyi
39e9d8f94d common/prque: generic priority queue (#26290) 2024-12-28 09:06:31 +08:00
Daniel Liu
28739d7863 common: remove usage of deprecated function (#21610) 2024-12-28 09:06:30 +08:00
Daniel Liu
56e242b06c core/state: optimize some internals during encoding (#20038) 2024-12-28 09:06:30 +08:00
Daniel Liu
cd1ff5d322 common: remove function Big() for type Address (#19210) 2024-12-28 09:06:30 +08:00
Daniel Liu
f19422e1c7 cmd/utils: relinquish GC cache to read cache in archive mode (#18991) 2024-12-28 09:06:30 +08:00
Daniel Liu
89c51c5e69 common: improve documentation comments (#16701) 2024-12-28 09:06:30 +08:00
Daniel Liu
240757a1ce all: remove empty function SaveData() 2024-12-28 09:04:02 +08:00
JukLee0ira
48d1f22fde all: simplify function TransitionDb (#20830) 2024-12-28 09:02:48 +08:00
liam.lai
77f9cc59ec merge from dev-upgrade 2024-12-27 10:03:54 -08:00
Daniel Liu
e2afaec8b0 core: remove unused variables in BlockChain struct 2024-12-25 17:25:51 +08:00
Daniel Liu
a5c48e77bd core: remove unused function writeHeader 2024-12-25 17:22:28 +08:00
Daniel Liu
6114a3a13b core: remove unused function reorgTxMatches 2024-12-25 17:17:25 +08:00
liam.lai
00785b096f fix tc cross epoch different masternode counts issue 2024-12-22 19:34:09 -08:00
Daniel Liu
82ff8c19a0 all: remove uses of untyped golang-lru 2024-12-21 14:39:26 +08:00
JukLee0ira
7491a7ba74 all: improve EstimateGas API (#20830) 2024-12-21 14:35:44 +08:00
Daniel Liu
2220156b9a cmd, core, metrics: always report expensive metrics (#29191)
* cmd, core, metrics: always report expensive metrics

* core, metrics: report block processing metrics as resetting timer

* metrics: update reporter tests
2024-12-13 14:00:13 +08:00
Daniel Liu
35380508fc metrics, cmd/geth: informational metrics (prometheus, influxdb, opentsb) (#24877)
This chang creates a GaugeInfo metrics type for registering informational (textual) metrics, e.g. geth version number. It also improves the testing for backend-exporters, and uses a shared subpackage in 'internal' to provide sample datasets and ordered registry.

Implements #21783

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
2024-12-13 14:00:13 +08:00
Daniel Liu
1eb2ed8293 core, metrics, p2p: expose various counter metrics for grafana (#19692) 2024-12-13 14:00:11 +08:00
Daniel Liu
db9487f1e8 core: split out detailed trie access metrics from insertion time (#19316) 2024-12-13 14:00:11 +08:00
Daniel Liu
4202f23897 core: more detailed metrics for block processing (#18119) 2024-12-13 14:00:11 +08:00
Daniel Liu
ad5e7d6db3 crypto: add SignatureLength constant and use it everywhere (#19996) 2024-12-09 17:48:59 +08:00
Daniel Liu
92fc843683 crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
Daniel Liu
733c298b0e core/vm: improve EVM reusability (#26341) 2024-12-09 17:47:05 +08:00
Daniel Liu
0d0ea46bfa core: implement EIP-3651, warm coinbase (#25819) 2024-12-09 17:44:30 +08:00
Daniel Liu
4855f19261 core: fix preCheck for RandomizeSMC after EIP-1559 2024-11-19 14:19:57 +08:00
Daniel Liu
4cac1865ba all: remove noop vm config flags (#23111) 2024-11-15 20:12:49 +08:00
Daniel Liu
ed242b4763 all: implement EIP-1153 transient storage (#26003) 2024-11-15 19:39:18 +08:00
Daniel Liu
aedfea681b all: make logs a bit easier on the eye to digest (#22665) 2024-11-15 10:02:41 +08:00
Daniel Liu
c254b08443 core/txpool: fix very high pending special transactions 2024-11-07 17:47:59 +08:00
Daniel Liu
da9d2e29f5 core/types: fix discrepancy in receipt.EffectiveGasPrice json encoding tags (#27114) 2024-11-01 11:36:53 +08:00
Daniel Liu
a294c2080d all: fix null effectiveGasPrice 2024-11-01 11:36:53 +08:00
Daniel Liu
2a9d450101 core/types: add EffectiveGasPrice in Receipt (#26713) 2024-11-01 11:36:53 +08:00
Daniel Liu
9b20ac785e consensus/misc: move eip1559 into a package (#27828) 2024-11-01 11:36:53 +08:00
Daniel Liu
f64aea4ba0 core/vm: implement EIP-3860: Limit and meter initcode (#23847) 2024-11-01 11:36:53 +08:00
Péter Szilágyi
cda663db64 core/types: rename tx files to group them better together (#26044) 2024-11-01 11:36:53 +08:00
Daniel Liu
8b2e8d9b3a all: refactor txpool into it's own package in prep for 4844 (#26038) 2024-11-01 11:36:53 +08:00
Martin Holst Swende
05797846fc core: fix datarace in txpool, fixes #25870 and #25869 (#25872)
core: fix datarace in txpool pendingnoce, fixes #25870
2024-11-01 11:36:53 +08:00
Seungbae Yu
66763aa8ae core: don't cache zero nonce in txNoncer (#25603)
This changes the nonce cache used by TxPool to not store cached
nonces for non-existing accounts.
2024-11-01 11:36:53 +08:00
Seungbae Yu
a410f7b38e core: preallocate maps in TxPool helper methods (#25737) 2024-11-01 11:36:53 +08:00
aaronbuchwald
7237811928 core: fix typo in txpool (#25149)
Fix typo in txPool truncateQueue comment
2024-11-01 11:36:53 +08:00
zhaochonghe
dc94ad52f6 core: fix the order of address in queue (#24908)
reverse the order of address in queue
2024-11-01 11:36:53 +08:00
Emmanuel T Odeke
59bc3bfd09 eth/tracers/logger: remove unnecessary comparisons in accessList.equal (#24663)
This change removes extraneous/unnecessary checks for equality
when comparing 2 accessList values A and B. Given that we validate that
their lengths of A and B are equal, if so and if every element in A is
in B, reflexively every element in B is already in A. If that weren't
the case and an element g existed in A but not in B, that would mean
that there is an extra element and hence a mathematical contradiction.

Fixes #24658
2024-11-01 11:36:53 +08:00
Daniel Liu
7cb33cc57d core/types: improve error for too short transaction / receipt encoding (#24256) 2024-11-01 11:36:53 +08:00
Daniel Liu
d1dc9e383c core/statedb: always clear out access list when setting a new one (#24515) 2024-11-01 11:36:53 +08:00
Daniel Liu
8eaa9e2c3b core/types: document JSON field name equivalents of DynamicFeeTx (#24143) 2024-11-01 11:36:53 +08:00
Daniel Liu
bdae20085a core: ignore basefee when comparing with pool gasprice in txpool (#24080) 2024-11-01 11:36:53 +08:00
Daniel Liu
6feb71e5c8 core: check effective tip in txpool pricelimit validation (#23855) 2024-11-01 11:36:53 +08:00
Martin Holst Swende
81dff92ced core: more efficient nonce-update in txpool (#22231)
* Adjust pending nonce update operation

Benchmark the speed of transaction insertion under multiple accounts

core: fix rebase issues + docstring

core: make benchmark test use sync:ed method

* core: address review comments

* core: add memreport to benchmark

Co-authored-by: WeiLoy <wei_loy@163.com>
2024-11-01 11:36:53 +08:00
Daniel Liu
a402cbf50e core/types: add MarshalBinary, UnmarshalBinary for Receipt (#22806) 2024-11-01 11:36:53 +08:00
Daniel Liu
e5fb0b4d73 core: remove unused error from TxPool.Pending (#23720) 2024-11-01 11:36:53 +08:00
Daniel Liu
17b62319c0 core/types: copy tx recipient address (#23376) 2024-11-01 11:36:53 +08:00
Daniel Liu
e18e6111af core: add change counter (#23095) 2024-11-01 11:36:53 +08:00
Daniel Liu
d850fc4081 core: only check sendernoeoa in non fake mode (#23424) 2024-11-01 11:36:53 +08:00
Daniel Liu
d6daac576d core: check if sender is EOA (#23303) 2024-11-01 11:36:53 +08:00
Daniel Liu
206175fb43 all: remove term whitelist in comments and log messages (#23294) 2024-11-01 11:36:52 +08:00
Daniel Liu
62a70f0cde internal/ethapi: fix panic in accesslist creation (#23225) 2024-11-01 11:36:52 +08:00
Daniel Liu
43a0cdf7ce core: fix pre-check for account balance under EIP-1559 (#23244) 2024-11-01 11:36:52 +08:00
Daniel Liu
5b01b23af6 internal: get pending and queued transaction by address (#22992) 2024-11-01 11:36:52 +08:00
Daniel Liu
b02922fc53 core, internal: expose effectiveGasPrice in receipts (#23050) 2024-11-01 11:36:52 +08:00
Daniel Liu
dbdca11501 accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2024-11-01 11:36:52 +08:00
Daniel Liu
1cb1ba79d7 core: change baseFee into baseFeePerGas in genesis json (#23039) 2024-11-01 11:36:52 +08:00
Daniel Liu
05c11eb96e core: make genesis parse baseFee correctly (#23013) 2024-11-01 11:36:52 +08:00
Daniel Liu
6b67327a4b tests: update for London (#22976) 2024-11-01 11:36:52 +08:00
Daniel Liu
1c47afb286 core/vm/runtime: add function TestColdAccountAccessCost 2024-11-01 11:36:52 +08:00
Daniel Liu
c7d49072f1 core/vm: evm fix panic (#23047) 2024-11-01 11:36:52 +08:00
Daniel Liu
18bc355e89 core, internal: support various eth_call invocations post 1559 (#23027) 2024-11-01 11:36:52 +08:00
Daniel Liu
4c096de9b0 all: rename internal 1559 gas fields (#23010) 2024-11-01 11:36:52 +08:00
Daniel Liu
5a31888b19 core, eth, miner: enforce configured mining reward post 1559 too (#22995) 2024-11-01 11:36:52 +08:00
Daniel Liu
bfd1c0c9e0 core, eth, internal, les: RPC methods and fields for EIP 1559 (#22964) 2024-11-01 11:36:52 +08:00
Daniel Liu
4f0317cb1f core: add new eip-1559 tx constraints (#22970) 2024-11-01 11:36:52 +08:00
Daniel Liu
f6a4769084 EIP-1559 tx pool support (#22898) 2024-11-01 11:36:52 +08:00
Daniel Liu
d88d2670e5 core: make txpool free space calculation more accurate (#22933) 2024-11-01 11:36:52 +08:00
Daniel Liu
684afd0b18 EIP-1559: miner changes (#22896) 2024-11-01 11:36:52 +08:00
Daniel Liu
4e7fd897d8 core: fix failing tests (#22888) 2024-11-01 11:36:52 +08:00
Daniel Liu
e18553b855 all: implement eip-1559 (#22837) 2024-11-01 11:36:52 +08:00
Daniel Liu
6a3b818069 core, params: implement EIP-3529 (#22733) 2024-11-01 11:36:52 +08:00
Martin Holst Swende
b5fe81f093 core/vm: make gas cost reporting to tracers correct (#22702)
Previously, the makeCallVariantGasCallEIP2929 charged the cold account access cost directly, leading to an incorrect gas cost passed to the tracer from the main execution loop.
This change still temporarily charges the cost (to allow for an accurate calculation of the available gas for the call), but then afterwards refunds it and instead returns the correct total gas cost to be then properly charged in the main loop.
2024-11-01 11:36:52 +08:00
Daniel Liu
6c77d63dc2 core/types: replace core.SetReceiptsData with receipts.DeriveFields 2024-11-01 11:36:52 +08:00
Daniel Liu
e561f2842e core/types: drop type v4StoredReceiptRLP 2024-11-01 11:36:52 +08:00
Daniel Liu
b7154dd450 core: fix staticcheck warning S1006: use for {} for infinite loops 2024-10-31 16:49:56 +08:00
Daniel Liu
11285be830 all: fix staticcheck warning SA2002: must call T.Fatalf in same goroutine 2024-10-31 10:38:38 +08:00
Daniel Liu
6b6f0bd891 core, XDCxlending/lendingstate: fix staticcheck warning SA5001: must check error before rpcClient.Close() 2024-10-31 10:28:21 +08:00
Daniel Liu
371c3b6874 fix tautological condition: non-nil != nil 2024-10-31 09:01:12 +08:00
Daniel Liu
2306ceafb2 fix impossible condition: nil != nil 2024-10-31 09:01:12 +08:00
Daniel Liu
212daafe17 core: fix staticcheck warning SA6005: should use strings.EqualFold 2024-10-30 21:13:58 +08:00
Daniel Liu
181b23a767 core, XDCxlending/lendingstate: fix staticcheck warning S1002: omit comparison to bool constant 2024-10-30 21:02:41 +08:00
Daniel Liu
fbecb8c5a5 all: fix staticcheck warning ST1006: don't use generic name self
The name of a method’s receiver should be a reflection of its identity;
often a one or two letter abbreviation of its type suffices (such as
“c” or “cl” for “Client”). Don’t use generic names such as “me”, “this”
or “self”, identifiers typical of object-oriented languages that place
more emphasis on methods as opposed to functions. The name need not be
as descriptive as that of a method argument, as its role is obvious and
serves no documentary purpose. It can be very short as it will appear
on almost every line of every method of the type; familiarity admits
brevity. Be consistent, too: if you call the receiver “c” in one method,
don’t call it “cl” in another.
2024-10-25 21:30:54 +08:00
Daniel Liu
b68b9c64ea
Merge pull request #685 from gzliudan/emptyroot
all: use unified emptyRootHash and emptyCodeHash
2024-10-25 15:28:51 +08:00
Daniel Liu
87a6b5f4c3
Merge pull request #689 from gzliudan/fix-st1005
all: fix staticcheck warning ST1005
2024-10-25 15:28:07 +08:00
Daniel Liu
c6e4e880ea all: fix staticcheck warning SA4006: never used value 2024-10-24 17:37:19 +08:00
Daniel Liu
a79411fa06 all: fix staticcheck warning ST1005: incorrectly formatted error string 2024-10-24 09:48:20 +08:00
Daniel Liu
464a89074b all: use unified emptyRootHash and emptyCodeHash (#26718) 2024-10-21 17:55:16 +08:00
Daniel Liu
8c077345d0 all: removed blockhash from statedb (#23126) 2024-10-18 09:24:52 +08:00
Daniel Liu
1c84a31bb6 core/vm: deepcopy jumptable when enabling extra eips (#26137) 2024-10-17 11:23:04 +08:00
Daniel Liu
4482ea4d84 core/vm: fix docstrings 2024-10-17 11:23:04 +08:00
Daniel Liu
480adaf960 core/vm: minor trivial clean up (#25880) 2024-10-17 11:23:04 +08:00
Daniel Liu
69cb57a0f4 core/vm: not deep copy return data slice upon call completion (#25183) 2024-10-17 11:23:04 +08:00
Daniel Liu
ee5dd8673f core/vm: remove empty lines 2024-10-17 11:23:04 +08:00
Daniel Liu
16f2aabc64 core/vm: more linters (#24783) 2024-10-17 11:23:04 +08:00
Paweł Bylica
be6631beb0 core/vm: optimize jumpdest analysis (#23500)
core/vm: optimize PUSH opcode discrimination
2024-10-17 11:23:04 +08:00
Daniel Liu
1fa9e81870 core/vm: reduce overhead in instructions-benchmark (#24860) 2024-10-17 11:23:04 +08:00
Daniel Liu
c78b9e6245 core/vm: for tracing, do not report post-op memory (#24867) 2024-10-17 11:23:04 +08:00
Daniel Liu
45c644c43d core/vm: update benchmark to use Errorf instead of Sprintf (#24845) 2024-10-17 11:23:04 +08:00