Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3659 commits
Select commit Hold shift + click to select a range
73dea84
chore(all): final changes to the libevm branch (#862)
qdm12 Mar 28, 2025
79a65b4
Merge branch 'master' into libevm
qdm12 Mar 27, 2025
cb7b84e
nit: check genesis commit error (#894)
Mar 28, 2025
8902fcd
add flake: TestUpdatedKeyfileContents (#895)
Mar 28, 2025
2af8e2d
Merge branch 'master' into libevm
qdm12 Mar 31, 2025
c3cb795
test(core/genesis): fix UT to be sensitive to `SetEthUpgrades` (#904)
Apr 7, 2025
f405784
fix(metrics/prometheus): skip `GaugeInfo` metric types (#910)
qdm12 Apr 8, 2025
465aa3b
Add ACP-176 Fee Metrics (#912)
StephenButtolph Apr 10, 2025
5479b19
chore: bump version from v0.14.1 to v0.15.1 (#915)
Apr 10, 2025
0a91702
chore: update libevm to v1.13.14-0.2.0.release (#917)
ceyonur Apr 10, 2025
cf3f16b
chore(plugin/evm/customtypes): use upstream RLPHash function (#918)
qdm12 Apr 11, 2025
05957a4
chore: minor final fixes to libevm (#913)
qdm12 Apr 15, 2025
8ed76ec
chore(deps): bump github/codeql-action from 3.28.13 to 3.28.15 (#921)
dependabot[bot] Apr 15, 2025
20301f4
Simplify `eth_suggestPriceOptions` handling of `baseFee`s (#924)
StephenButtolph Apr 18, 2025
ae16c8c
bump avalanchego (#936)
ceyonur Apr 22, 2025
29b3cb9
Remove deadcode from old vm interfaces (#937)
aaronbuchwald Apr 23, 2025
ff2f15e
bump avalanchego to master (5381d56) (#944)
ceyonur May 5, 2025
a2213ed
Migrate C-Chain API Remote Loaded content (#947)
meaghanfitzgerald May 6, 2025
d0339ce
chore(plugin/evm): remove unneeded code `BuildGenesisTest` and associ…
StephenButtolph May 7, 2025
54151e0
reduce customtypes import (#943)
ceyonur May 8, 2025
41210d8
Remove unused `txHeap` (#954)
StephenButtolph May 9, 2025
095864d
Simplify weird VM tests (#953)
StephenButtolph May 9, 2025
e7cd140
Remove zero duration gossip special case (#939)
aaronbuchwald May 9, 2025
d22e3a2
Fix log structuring (#955)
StephenButtolph May 9, 2025
4689a88
Explain duplicated UTXO check (#956)
StephenButtolph May 9, 2025
ea40107
Fix `SetEthUpgrades` with unscheduled activations (#952)
StephenButtolph May 12, 2025
b7d1e1e
Cleanup test fork handling (#950)
StephenButtolph May 12, 2025
87815d2
move log (#957)
ceyonur May 14, 2025
72bfe3a
add ethclient hooks and examples (#951)
ceyonur May 14, 2025
8f813af
Refactor warp code (#961)
ceyonur May 15, 2025
a599bd5
Move atomic txpool to own package (#964)
ceyonur May 15, 2025
2652e93
Update CODEOWNERS (#965)
ceyonur May 15, 2025
7f3375a
Add license linter (#969)
ceyonur May 19, 2025
bfbed18
Remove dead code (#967)
StephenButtolph May 19, 2025
ed37589
Add linters (#968)
ceyonur May 20, 2025
47cf6eb
move atomic state pkg (#960)
ceyonur May 21, 2025
416b45c
chore(github): dependabot changes (#896)
qdm12 May 22, 2025
31ce963
Atomic txs (#973)
ceyonur May 22, 2025
6c78fb8
docs: add releasing document (#902)
qdm12 May 23, 2025
222ef55
refactor peer pkg to network pkg (#976)
ceyonur May 23, 2025
04ece01
chore(ethclient): textual alignment with geth code (#882)
qdm12 May 23, 2025
cdbc4f1
fix AvalancheGo version and nil configs for Granite (#982)
ceyonur May 27, 2025
fa6d05d
Add granite configs (#987)
StephenButtolph May 27, 2025
7eb6c4e
remove request parse check in network forwarding (#977)
ceyonur May 27, 2025
4a60438
Add comments for context for future precompile addition (#990)
meaghanfitzgerald May 29, 2025
1716c69
Require min available capacity to build a block (#995)
aaronbuchwald May 30, 2025
43842ad
Atomic sync pkg (#963)
ceyonur Jun 3, 2025
4ea68f5
Atomic block extension (#981)
ceyonur Jun 4, 2025
a002f45
minor docs fixup (#1004)
davidjsonn Jun 6, 2025
8dfd8f8
Implement updated avalanchego VM interface (#1006)
joshua-kim Jun 6, 2025
2608ad9
move block extender to vm (#984)
ceyonur Jun 6, 2025
cd5833b
move syncers to atomic vm (#1009)
ceyonur Jun 6, 2025
2dd684f
chore: Update libevm (#1013)
alarso16 Jun 10, 2025
df4a372
chore: use squashed avalanchego commit (#1014)
alarso16 Jun 11, 2025
dac8cfd
build: Update `libevm` to `v1.13.14-0.3.0.rc.1` (#1017)
alarso16 Jun 20, 2025
c38119d
updated link evm api (#996)
navillanueva Jun 23, 2025
280c2b4
use explicity structs and innervm calls (#1015)
ceyonur Jun 23, 2025
57711a6
move atomic backend and consensus callbacks (#1011)
ceyonur Jun 23, 2025
b390a99
move mempool and gossip handlers to atomic vm (#1018)
ceyonur Jun 25, 2025
20c7a65
add warp tests for Coreth (#1000)
ceyonur Jun 26, 2025
86bf650
remove subnet-evm specific warp test components (#1024)
ceyonur Jun 27, 2025
42528dc
Remove legacy warp handlers (#999)
ceyonur Jul 1, 2025
0121c23
move atomic api to atomic vm (#1025)
ceyonur Jul 1, 2025
e6c1c68
feat: enable configurable state history for pruning nodes (#1022)
alarso16 Jul 1, 2025
83a94d3
updated link for remote content used in Builder-hub docs (#1020)
navillanueva Jul 1, 2025
970c189
Remove Widnows CI tests (#1028)
JonathanOppenheimer Jul 2, 2025
de0a7f2
feat: c-chain config markdown (#1027)
owenwahlgren Jul 2, 2025
6f3b412
chore: move evm config markdown (#1030)
owenwahlgren Jul 2, 2025
23625fe
cut v0.15.1 in release.md (#1032)
ceyonur Jul 3, 2025
a35aa1e
fully wrap inner vm (#1031)
ceyonur Jul 7, 2025
52f1236
fix(core/txpool): demote error log to warn (#1034)
alarso16 Jul 7, 2025
bc68972
Add block signature recovery timer (#1035)
aaronbuchwald Jul 7, 2025
e81a628
eth/filters: add address limit to filters (#31876) (#1033)
ceyonur Jul 7, 2025
0fd71b3
Move CI tasks to Taskfile.yml and consolidate workflow (sync with sub…
JonathanOppenheimer Jul 8, 2025
78bda54
Remove SnowmanAPI (#1039)
StephenButtolph Jul 8, 2025
5182525
Use explicit subscriptions instead of toEngine channel (#1003)
yacovm Jul 8, 2025
05e33e9
feat: Add firewood as a database (#1029)
alarso16 Jul 9, 2025
d311cdd
Cleanup statedb extension (#1043)
StephenButtolph Jul 10, 2025
7b725b3
Update interface to the latest version of avalanchego (#1045)
joshua-kim Jul 11, 2025
b0fc7c8
refactor: re-exec loop check (#1050)
alarso16 Jul 16, 2025
adf010b
feat: enable blockchain ops and tests (#1041)
alarso16 Jul 16, 2025
ff7a025
chore: Update Firewood to v0.0.9 (#1052)
alarso16 Jul 22, 2025
1261d77
feat: Firewood metrics (#1061)
alarso16 Jul 22, 2025
634ca00
style: use require in statesync tests (#1062)
alarso16 Jul 23, 2025
2f5d2ab
feat(plugin/evm): add parallelization support for atomic trie state s…
powerslider Jul 23, 2025
aecb518
ci: Add line display for avalanchego version script (#1064)
alarso16 Jul 23, 2025
97fb7f4
refactor: change sync interface to Wait() (#1063)
alarso16 Jul 24, 2025
b3a5c30
Remove custom `state.StateDB` (#1053)
StephenButtolph Jul 24, 2025
80b7d91
ci: Set GitHub token to remove flake (#1066)
alarso16 Jul 24, 2025
fe9b927
fix: Exclude our test file from license linter for eth (#1070)
alarso16 Jul 24, 2025
c4ce52a
Replace coreth state package with libevm state package (#1056)
StephenButtolph Jul 24, 2025
aafb210
fix: Remove race between commits and reads (#1071)
alarso16 Jul 25, 2025
02c53bd
refactor(sync): unify atomic and state sync under common interface (#…
powerslider Jul 25, 2025
3b368e7
Fix summary metrics + flaky test (#1073)
StephenButtolph Jul 25, 2025
a2467f2
`Add64` and `Mul64` were replaced with `Add` and `Mul` respectively (…
StephenButtolph Jul 25, 2025
8fb3b4e
style: fix typo in sync client (#1077)
alarso16 Jul 28, 2025
4041ed4
Refactor atomic mempool initialization (#1080)
StephenButtolph Jul 29, 2025
b904bfd
Unify Add, AddRemoteTx, and AddLocalTx behavior (#1081)
StephenButtolph Jul 29, 2025
c9deeb1
fix: Ensure Firewood does not return data on unimplemented APIs (#1059)
alarso16 Jul 29, 2025
c793e7e
feat(sync): make atomic trie sync and state trie sync follow the same…
powerslider Jul 30, 2025
909ba8a
Remove metrics package (#1086)
JonathanOppenheimer Aug 1, 2025
daa50d0
chore: update libevm version to v1.13.14-0.3.0.rc.6 (#1087)
alarso16 Aug 1, 2025
825b84b
fix: unclear error message (#1088)
alarso16 Aug 1, 2025
2c0ad7e
Update codeowners (#1091)
StephenButtolph Aug 4, 2025
3166770
refactor(plugin/evm): move atomic sync code back to plugin/evm (#1093)
powerslider Aug 5, 2025
b5794c8
refactor(sync): add `blockSyncer` as a new syncer implementation (#1078)
alarso16 Aug 6, 2025
34aa811
Refactor and document the atomic mempool (#1097)
StephenButtolph Aug 7, 2025
09086dd
fix: flake in test (#1096)
alarso16 Aug 7, 2025
b65b9ab
Fix mempool length handling (#1100)
StephenButtolph Aug 7, 2025
891e986
Improve Mempool error handling to report ErrNoGas errors (#1101)
StephenButtolph Aug 7, 2025
c4ff111
Include Current transactions in the bloom filter (#1102)
StephenButtolph Aug 8, 2025
b8b96b0
Revert the maintainer only code owners restriction (#1107)
StephenButtolph Aug 8, 2025
68defda
Do not Discard ErrMempoolFull transactions (#1103)
StephenButtolph Aug 8, 2025
8d37d39
chore: prepare release for v0.15.3 (#1105)
ceyonur Aug 11, 2025
17cb13a
refactor: use Sync instead of Start and Wait (#1104)
alarso16 Aug 11, 2025
ab9bc3a
chore: change dependabot config (#1110)
ceyonur Aug 11, 2025
edbe2df
refactor config pkg (#958)
ceyonur Aug 11, 2025
44e7de0
chore: remove unused sync subnet-evm workflow (#1109)
ceyonur Aug 12, 2025
afd2147
chore(sync, plugin/evm): simplify syncer configuration (#1085)
powerslider Aug 12, 2025
ed8dd46
Simplify atomic mempool tx signaling (#1116)
StephenButtolph Aug 13, 2025
34e667b
Refactor atomic tx gas price calculations (#1118)
StephenButtolph Aug 13, 2025
20073f5
Atomic vm tests (#1112)
ceyonur Aug 14, 2025
ac05f0b
fix: license header file (#1122)
alarso16 Aug 14, 2025
bbaca7b
chore: more license fixes (#1123)
alarso16 Aug 15, 2025
2bd10ee
prepare for v0.15.4 (#1124)
ceyonur Aug 18, 2025
5eb205a
Vm test helpers (#1125)
ceyonur Aug 18, 2025
2dbcaa9
ci: Enable extra linters (#1117)
alarso16 Aug 19, 2025
5f22a38
perf: upgrade Firewood (#1134)
alarso16 Aug 20, 2025
957d42a
style: Unused linters (#1132)
alarso16 Aug 20, 2025
f535cf5
chore: remove nonexistent test flakes (#1135)
RodrigoVillar Aug 21, 2025
15bfebb
Remove `predicate` package (#1128)
JonathanOppenheimer Aug 21, 2025
95dbf8d
style: revive lint (#1136)
alarso16 Aug 25, 2025
7766ddf
update releasing README.md with version prep instructions (#1108)
JonathanOppenheimer Aug 25, 2025
28cfbb5
feat(sync/vm): parallelize syncer execution with errgroup (#1131)
powerslider Aug 25, 2025
eff882f
chore(all): use upstream protocol params (#966)
qdm12 Aug 25, 2025
fe44934
Remove EIP-4844 package in favor of libevm version (#1145)
JonathanOppenheimer Aug 26, 2025
f2dd4b0
Update tx gossip rate limit dynamically (#1141)
joshua-kim Aug 26, 2025
4c9a156
Add time check for bootstrapping (#1148)
JonathanOppenheimer Aug 26, 2025
7622006
activate all upgrades in TestChainConfig and fix the genesis tests (#…
ceyonur Aug 26, 2025
a8a2956
Remove duplicate gossip instantiation (#1154)
StephenButtolph Aug 26, 2025
c1e8681
fix: add a default batch limit (#1150)
alarso16 Aug 26, 2025
f02d1a3
Remove unused struct vars (#1152)
StephenButtolph Aug 26, 2025
dff11bc
Remove reexec package (#1153)
JonathanOppenheimer Aug 26, 2025
3080aff
chore: update firewood and fix test flakes (#1151)
alarso16 Aug 26, 2025
7317064
`plugin/evm/config`: updated docs for allow-unfinalized-queries (#1142)
navillanueva Aug 28, 2025
63043ab
rename header package to customheader (#1163)
ceyonur Aug 28, 2025
f8012c9
chore: bump libevm version (#1159)
JonathanOppenheimer Aug 28, 2025
a7b6796
move block fee verification to customheader (#1168)
ceyonur Aug 29, 2025
1c45504
Replace interface with struct (#1172)
StephenButtolph Aug 29, 2025
e142523
Refactor predication verification logic (#1166)
StephenButtolph Aug 29, 2025
2c5cfae
Remove dead code for creating atomic txs (#1174)
StephenButtolph Aug 29, 2025
65e4e66
Cleanup keystore creation (#1175)
StephenButtolph Aug 29, 2025
8e1a921
style: enable nilerr linter (#1182)
JonathanOppenheimer Sep 4, 2025
57c6405
style: revive fix based on feedback (#1187)
alarso16 Sep 8, 2025
ca78834
fix: move acceptor tip commitment (#1138)
alarso16 Sep 8, 2025
2c47826
docs: Firewood config (#1181)
alarso16 Sep 8, 2025
86d9770
style: enable gocritic linter (#1184)
JonathanOppenheimer Sep 9, 2025
a89f329
Correct TargetToPriceUpdateConversion comment (#1199)
michaelkaplan13 Sep 10, 2025
70afa3e
style: enable prealloc linter (#1200)
JonathanOppenheimer Sep 11, 2025
64ebb23
chore(plugin/evm,consensus): add sentinel errors and remove deprecate…
powerslider Sep 11, 2025
c9b3fdc
feat(plugin/evm): ACP-226 - set expected block gas cost to 0 in Grani…
ceyonur Sep 12, 2025
a868720
Register secp256r1 precompile (#1044)
JonathanOppenheimer Sep 12, 2025
c5bbb0a
Add precompile reversion logic for Granite activation (#1149)
JonathanOppenheimer Sep 12, 2025
2a02e9b
ci: update taskfile for rlpgen (#1214)
alarso16 Sep 12, 2025
8d7e06c
style: enable staticcheck linter (#1197)
JonathanOppenheimer Sep 12, 2025
052daea
style: enable predeclared linter (#1183)
JonathanOppenheimer Sep 12, 2025
fb405b7
skip verify block fee if is 0 (#1215)
ceyonur Sep 15, 2025
b2fc491
feat: add TimeMilliseconds to header (#1208)
alarso16 Sep 15, 2025
6138be6
Have `checkPredicates` account for maximum available gas capacity (#1…
JonathanOppenheimer Sep 15, 2025
9b3efc5
fix: free memory used by proposals in firewood (#1173)
demosdemon Sep 15, 2025
7eae98e
Fix test aggregation goroutine leak (#1188)
michaelkaplan13 Sep 16, 2025
d01e2e1
refactor: move header time verification (#1218)
alarso16 Sep 16, 2025
3302392
refactor(plugin/evm): move syncer client/registry to plugin/evm/vmsyn…
powerslider Sep 17, 2025
1293fe2
Remove libevm `cmd/*` packages. (#1224)
JonathanOppenheimer Sep 17, 2025
c3b0938
Remove libevm `signer` package (#1225)
JonathanOppenheimer Sep 17, 2025
08dd36f
Remove duplicate cancun checks (#1223)
alarso16 Sep 17, 2025
246e270
Rewrite / align coreth and subnet-evm documentation (#1095)
JonathanOppenheimer Sep 18, 2025
9127cb4
Remove unused types from codec registration (#1235)
StephenButtolph Sep 18, 2025
a06e3c5
Cleanup ExportTx verification test (#1237)
StephenButtolph Sep 18, 2025
28ad011
Disable non-security related dependabot PRs (#1240)
StephenButtolph Sep 19, 2025
3d2977e
chore: bump libevm (#1239)
JonathanOppenheimer Sep 19, 2025
b629a52
ACP-226: Add MinDelayExcess to header (#1234)
ceyonur Sep 19, 2025
c65a620
update comments and file names (#1204)
alarso16 Sep 23, 2025
fbb34e8
[ci] Remove use of run_env with run-monitored-tmpnet-cmd (#1252)
maru-ava Sep 23, 2025
2badfd6
style: enable testifylint linter (#1198)
JonathanOppenheimer Sep 23, 2025
98dcda3
simplify test (#1268)
ceyonur Sep 23, 2025
20ef1ff
remove old path for firewood (#1275)
alarso16 Sep 23, 2025
0aa9cb9
feat: Enable PathDB config (#1244)
alarso16 Sep 24, 2025
244272a
Move verification code to `semanticVerify` (#1277)
JonathanOppenheimer Sep 24, 2025
92eb567
feat(sync): decouple code syncer from state syncer and run concurrent…
powerslider Sep 25, 2025
4b06e85
refactor: collapse `CodeQueue` tests into table (#1278)
ARR4N Sep 25, 2025
a2575cf
Remove precompile address comment (#1285)
JonathanOppenheimer Sep 25, 2025
fbc1f8e
Upgrade to go 1.24 (#1249)
alarso16 Sep 25, 2025
ea16660
check the parent.TimeMilliSeconds in wall clock adjustment (#1286)
ceyonur Sep 26, 2025
0dc578e
refactor out the time calculations to customtypes package (#1287)
ceyonur Sep 26, 2025
3474514
import acp176 package from avalanchego (#1242)
ceyonur Sep 27, 2025
5ba3b13
fix(sync/statesync): panic-causing race between `<-quit` and `AddCode…
ARR4N Sep 29, 2025
43ae202
update avalanchego (#1293)
alarso16 Sep 29, 2025
ae367e2
style: forbidigo t.Fatal (#1279)
alarso16 Sep 29, 2025
7708ef4
fix: block hash when overriding to block n+1 (#1301)
ARR4N Sep 30, 2025
ab11be5
ACP-226: add min delay excess to block and verify (#1263)
ceyonur Oct 1, 2025
3da7a3c
Add warp test to verify equivalent gas consumed (#1311)
StephenButtolph Oct 2, 2025
046789a
Enforce block building delay only for retries (#1295)
ceyonur Oct 2, 2025
b9060ef
Update avalanchego to latest (#1316)
StephenButtolph Oct 2, 2025
2580ce5
feat!: explicit `libevm` calls to `Register{Extras,Hooks}()` (#1305)
ARR4N Oct 2, 2025
f36e668
build: use `avalanchego@master` instead of branch (#1320)
ARR4N Oct 3, 2025
cafd6cd
chore: adopt libevm options, simplify constructors and unexport confi…
powerslider Oct 3, 2025
29b43ca
Remove secondary validator override (#1313)
StephenButtolph Oct 3, 2025
07ea0ae
chore: Use go 1.24's 'go tool' support for CLI tooling (#1317)
maru-ava Oct 4, 2025
e010caf
ACP-226: adjust ACP-176 to use milliseconds (#1288)
alarso16 Oct 7, 2025
5a46172
build(deps): bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2…
dependabot[bot] Oct 7, 2025
ae5d1bf
Remove duplicate avalanchego test (#1325)
StephenButtolph Oct 7, 2025
f6dc493
Add `TestClientWebsocketLargeMessage` flake to list of flakes (#1251)
JonathanOppenheimer Oct 7, 2025
dc16f28
Replace `getValidatorSet` (#1324)
StephenButtolph Oct 7, 2025
e3869a0
ACP-226: Apply Min Block Delay to Block Builder (#1310)
ceyonur Oct 8, 2025
c9b7fe5
move test helper (#1327)
ceyonur Oct 8, 2025
6a7b4cc
ACP-226: Update EstimateNextBaseFee (#1329)
alarso16 Oct 8, 2025
1347cdb
Warp gas costs granite (#1306)
geoff-vball Oct 9, 2025
8b2c928
deps: bump go to version `1.24.8` (#1330)
JonathanOppenheimer Oct 10, 2025
0281635
ACP-226: min block delay verify (#1292)
ceyonur Oct 10, 2025
c7eb152
remove unused GetChainConfig from the precompile interface (#1334)
ceyonur Oct 10, 2025
2509b78
Update warp gas costs with new caching logic (#1331)
StephenButtolph Oct 10, 2025
571f46b
cleanup in customtypes (#1335)
ceyonur Oct 10, 2025
f373109
fix: database inspection (#1245)
RodrigoVillar Oct 10, 2025
818e10f
ci: Fix flakes file (#1336)
alarso16 Oct 13, 2025
94b78cb
remove legacy aggregator tests (#1321)
ceyonur Oct 14, 2025
4122d56
fix: one missing time (#1337)
alarso16 Oct 14, 2025
8673213
add min delay target to config.md (#1339)
ceyonur Oct 15, 2025
f494d0e
chore: update Firewood (#1333)
alarso16 Oct 15, 2025
91efded
style: Use require.ErrorIs whenever possible (#1303)
alarso16 Oct 16, 2025
c68c1cb
chore: add type to `codeRequestMetric` (#1338)
JonathanOppenheimer Oct 16, 2025
5b76d78
chore: remove deprecated genesis types (#1315)
JonathanOppenheimer Oct 16, 2025
89d9f20
refactor!: remove direct `libevm/pseudo` import (#1353)
ARR4N Oct 20, 2025
dff92da
test: Add log.Crit to core tests (#1351)
alarso16 Oct 20, 2025
b43c75d
Add script automating graft of coreth with history rewrite
maru-ava Oct 22, 2025
fe28cd7
feat!: `evm.WithTempRegisteredLibEVMExtras()` (#1328)
ARR4N Oct 22, 2025
f1fdab6
deps: bump go to version `1.24.9` (#1352)
JonathanOppenheimer Oct 24, 2025
fd09bcd
chore: Allow addition allow 3 more imports (#1350)
JonathanOppenheimer Oct 24, 2025
ca88e35
test: Update to go-ethereum's WaitDeployed (#1366)
alarso16 Oct 27, 2025
f4b21e2
test: Add race detection for bindings tests (#1365)
alarso16 Oct 27, 2025
34adf47
test: Update rpc tests to reduce flake likelihood (#1363)
alarso16 Oct 28, 2025
3bce4e4
deps: bump AvalancheGo (#1373)
JonathanOppenheimer Oct 28, 2025
3484e79
test: Fix mempool flakes (#1360)
alarso16 Oct 28, 2025
e5d6959
test: Fix state sync flakes (#1361)
alarso16 Oct 28, 2025
57a1ddf
use average for block tips after Granite (#1342)
ceyonur Oct 28, 2025
57f183c
Use AvalancheGo database package (#1367)
JonathanOppenheimer Oct 28, 2025
c84e94a
deps: Update golangci-lint for upstream code (#1375)
alarso16 Oct 29, 2025
62090ec
style: use t.Context() (#1372)
alarso16 Oct 29, 2025
ca0c7ca
fix: Flake in txindexer test (#1380)
alarso16 Oct 30, 2025
a23847d
Merge coreth repository at /graft/coreth
maru-ava Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
246 changes: 246 additions & 0 deletions graft/coreth/.avalanche-golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
# https://golangci-lint.run/usage/configuration/
version: "2"
run:
# If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
# automatic updating of go.mod described above. Instead, it fails when any changes
# to go.mod are needed. This setting is most useful to check that go.mod does
# not need updates, such as in a continuous integration and testing system.
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
#
# Allowed values: readonly|vendor|mod
# By default, it isn't set.
modules-download-mode: readonly

# Include non-test files tagged as test-only.
# Context: https://github.com/ava-labs/avalanchego/pull/3173
build-tags:
- test

issues:
# Make issues output unique by line.
uniq-by-line: false

# Maximum issues count per one linter.
max-issues-per-linter: 0

# Maximum count of issues with the same text.
max-same-issues: 0

formatters:
enable:
- gci
- gofmt
- gofumpt
settings:
gci:
sections:
- standard
- default
- blank
- prefix(github.com/ava-labs/coreth)
- alias
- dot
custom-order: true
exclusions:
generated: lax

# Avalanche linters should be added incrementally
linters:
default: none
enable:
- asciicheck
- bodyclose
- copyloopvar
# - depguard
# - errcheck
- errorlint
- forbidigo
- goconst
- gocritic
- goprintffuncname
# - gosec
- govet
- importas
- ineffassign
- misspell
- nakedret
- nilerr
- noctx
- nolintlint
- perfsprint
- prealloc
- predeclared
- revive
- spancheck
- staticcheck
- tagalign
- testifylint
- unconvert
- unparam
- unused
- usestdlibvars
- usetesting
- whitespace
settings:
depguard:
rules:
packages:
deny:
- pkg: container/list
desc: github.com/ava-labs/avalanchego/utils/linked should be used instead.
- pkg: github.com/golang/mock/gomock
desc: go.uber.org/mock/gomock should be used instead.
- pkg: github.com/stretchr/testify/assert
desc: github.com/stretchr/testify/require should be used instead.
- pkg: io/ioutil
desc: io/ioutil is deprecated. Use package io or os instead.
errorlint:
# Check for plain type assertions and type switches.
asserts: false
# Check for plain error comparisons.
comparison: false
forbidigo:
# Forbid the following identifiers (list of regexp).
forbid:
- pattern: require\.Error$(# ErrorIs should be used instead)?
- pattern: require\.ErrorContains$(# ErrorIs should be used instead)?
- pattern: require\.EqualValues$(# Equal should be used instead)?
- pattern: require\.NotEqualValues$(# NotEqual should be used instead)?
- pattern: ^(t|b|tb|f)\.(Fatal|Fatalf|Error|Errorf)$(# the require library should be used instead)?
- pattern: ^sort\.(Slice|Strings)$(# the slices package should be used instead)?
# Exclude godoc examples from forbidigo checks.
exclude-godoc-examples: false
gosec:
excludes:
- G107 # Url provided to HTTP request as taint input https://securego.io/docs/rules/g107
- G115 # TODO(marun) Enable this ruleset in a follow-up PR
importas:
# Do not allow unaliased imports of aliased packages.
no-unaliased: false
# Do not allow non-required aliases.
no-extra-aliases: false
# List of aliases
alias:
- pkg: github.com/ava-labs/avalanchego/utils/math
alias: safemath
- pkg: github.com/ava-labs/avalanchego/utils/json
alias: avajson
revive:
rules:
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr
- name: bool-literal-in-expr
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return
- name: early-return
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-lines
- name: empty-lines
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redundant-import-alias
- name: redundant-import-alias
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format
- name: string-format
disabled: false
arguments:
- - b.Logf[0]
- /.*%.*/
- no format directive, use b.Log instead
- - fmt.Errorf[0]
- /.*%.*/
- no format directive, use errors.New instead
- - fmt.Fprintf[1]
- /.*%.*/
- no format directive, use fmt.Fprint instead
- - fmt.Printf[0]
- /.*%.*/
- no format directive, use fmt.Print instead
- - fmt.Sprintf[0]
- /.*%.*/
- no format directive, use fmt.Sprint instead
- - log.Fatalf[0]
- /.*%.*/
- no format directive, use log.Fatal instead
- - log.Printf[0]
- /.*%.*/
- no format directive, use log.Print instead
- - t.Logf[0]
- /.*%.*/
- no format directive, use t.Log instead
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag
- name: struct-tag
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-naming
- name: unexported-naming
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error
- name: unhandled-error
# prefer the errcheck linter since it can be disabled directly with nolint directive
# but revive's disable directive (e.g. //revive:disable:unhandled-error) is not
# supported when run under golangci_lint
disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter
- name: unused-parameter
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-receiver
- name: unused-receiver
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break
- name: useless-break
disabled: false
spancheck:
# https://github.com/jjti/go-spancheck#checks
checks:
- end
staticcheck:
# https://staticcheck.io/docs/options#checks
checks:
- all
- -SA6002A # Storing non-pointer values in sync.Pool allocates memory
- -SA1019 # Using a deprecated function, variable, constant or field
- -QF1008 # Unnecessary embedded expressions
tagalign:
align: true
sort: true
order:
- serialize
strict: true
testifylint:
# Enable all checkers (https://github.com/Antonboom/testifylint#checkers).
# Default: false
enable-all: true
# Disable checkers by name
# (in addition to default
# suite-thelper
# ).
disable:
- go-require
- float-compare
unused:
# Mark all struct fields that have been written to as used.
# Default: true
field-writes-are-uses: false
# Treat IncDec statement (e.g. `i++` or `i--`) as both read and write operation instead of just write.
# Default: false
post-statements-are-reads: true
# Mark all local variables as used.
# default: true
local-variables-are-used: false
usetesting:
os-create-temp: true # Disallow `os.CreateTemp("", ...)`
os-mkdir-temp: true # Disallow `os.MkdirTemp()`
os-setenv: true # Disallow `os.Setenv()`
os-temp-dir: true # Disallow `os.TempDir()`
os-chdir: true # Disallow `os.Chdir()`
context-background: true # Disallow `context.Background()`
context-todo: true # Disallow `context.TODO()`
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
9 changes: 9 additions & 0 deletions graft/coreth/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.ci
.github
.gitignore
.golangci.yml
.idea
.vscode

LICENSE
*.md
10 changes: 10 additions & 0 deletions graft/coreth/.envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# - Will execute on entry to the containing directory only if authorized with `direnv allow`
# - Requires a recent version of direnv (https://direnv.net/)
# - For quieter direnv output, set `export DIRENV_LOG_FORMAT=`

# Determine AVALANCHE_VERSION
source ./scripts/versions.sh

# - Starts an avalanchego dev shell
# - Requires nix (https://github.com/DeterminateSystems/nix-installer?tab=readme-ov-file#install-nix)
use flake "github:ava-labs/avalanchego?ref=${AVALANCHE_VERSION}"
12 changes: 12 additions & 0 deletions graft/coreth/.github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Each line is a file pattern followed by one or more owners.

# These owners will be the default code owners for everything in the repo.

# Unless a later match takes precedence, these owners will be requested for

# review whenever someone opens a pull request.

* @ava-labs/platform-evm
/.github/ @maru-ava @ava-labs/platform-evm
/triedb/firewood/ @alarso16 @ava-labs/platform-evm

91 changes: 91 additions & 0 deletions graft/coreth/.github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Contributing

Thank you for considering to help out with the source code! We welcome
contributions from anyone on the internet, and are grateful for even the
smallest of fixes!

If you'd like to contribute to coreth, please fork, fix, commit and send a
pull request for the maintainers to review and merge into the main code base. If
you wish to submit more complex changes though, please check up with the core
devs first on [Discord](https://chat.avalabs.org) to
ensure those changes are in line with the general philosophy of the project
and/or get some early feedback which can make both your efforts much lighter as
well as our review and merge procedures quick and simple.

## Coding guidelines

Please make sure your contributions adhere to our coding guidelines:

* Code must adhere to the official Go
[formatting](https://go.dev/doc/effective_go#formatting) guidelines
(i.e. uses [gofmt](https://pkg.go.dev/cmd/gofmt)).
* Code must be documented adhering to the official Go
[commentary](https://go.dev/doc/effective_go#commentary) guidelines.
* Pull requests need to be based on and opened against the `master` branch.
* Pull reuqests should include a detailed description
* Commits are required to be signed. See [here](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits)
for information on signing commits.
* Commit messages should be prefixed with the package(s) they modify.
* E.g. "eth, rpc: make trace configs optional"

## Can I have feature X

Before you submit a feature request, please check and make sure that it isn't
possible through some other means.

## Mocks

Mocks are auto-generated using [mockgen](https://pkg.go.dev/go.uber.org/mock/mockgen) and `//go:generate` commands in the code.

* To **re-generate all mocks**, use the command below from the root of the project:

```sh
go generate -run mockgen ./...
```

* To **add** an interface that needs a corresponding mock generated:
* if the file `mocks_generate_test.go` exists in the package where the interface is located, either:
* modify its `//go:generate go tool -modfile=tools/go.mod mockgen` to generate a mock for your interface (preferred); or
* add another `//go:generate go tool -modfile=tools/go.mod mockgen` to generate a mock for your interface according to specific mock generation settings
* if the file `mocks_generate_test.go` does not exist in the package where the interface is located, create it with content (adapt as needed):

```go
// Copyright (C) 2025-2025, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.

package mypackage

//go:generate go tool -modfile=tools/go.mod mockgen -package=${GOPACKAGE} -destination=mocks_test.go . YourInterface
```

Notes:
1. Ideally generate all mocks to `mocks_test.go` for the package you need to use the mocks for and do not export mocks to other packages. This reduces package dependencies, reduces production code pollution and forces to have locally defined narrow interfaces.
1. Prefer using reflect mode to generate mocks than source mode, unless you need a mock for an unexported interface, which should be rare.
* To **remove** an interface from having a corresponding mock generated:
1. Edit the `mocks_generate_test.go` file in the directory where the interface is defined
1. If the `//go:generate` mockgen command line:
* generates a mock file for multiple interfaces, remove your interface from the line
* generates a mock file only for the interface, remove the entire line. If the file is empty, remove `mocks_generate_test.go` as well.

## Tool Dependencies

This project uses `go tool` to manage development tool dependencies in `tools/go.mod`. This isolates tool dependencies from the main application dependencies and provides consistent, version-locked tools across the team.

### Managing Tools

* To **add a new tool**:
```sh
go get -tool -modfile=tools/go.mod example.com/tool/cmd/toolname@version
```

* To **upgrade a tool**:
```sh
go get -tool -modfile=tools/go.mod example.com/tool/cmd/toolname@newversion
```

* To **run a tool manually**:
```sh
go tool -modfile=tools/go.mod toolname [args...]
```

Note: `ginkgo` remains in the main `go.mod` as it is used directly in e2e test code.
Loading
Loading