Skip to content

Commit 883cebf

Browse files
Use libevm instead of coreth (#3918)
Co-authored-by: Stephen Buttolph <[email protected]>
1 parent ef90699 commit 883cebf

File tree

7 files changed

+93
-8
lines changed

7 files changed

+93
-8
lines changed

genesis/genesis_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"testing"
1414
"time"
1515

16-
"github.com/ava-labs/coreth/core"
16+
"github.com/ava-labs/libevm/core"
1717
"github.com/stretchr/testify/require"
1818

1919
_ "embed"

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require (
1414
github.com/NYTimes/gziphandler v1.1.1
1515
github.com/StephenButtolph/canoto v0.15.0
1616
github.com/antithesishq/antithesis-sdk-go v0.3.8
17-
github.com/ava-labs/coreth v0.15.1-rc.1
17+
github.com/ava-labs/coreth v0.15.1-rc.0.0.20250509150914-391115af7620
1818
github.com/ava-labs/ledger-avalanche/go v0.0.0-20241009183145-e6f90a8a1a60
1919
github.com/ava-labs/libevm v1.13.14-0.2.0.release
2020
github.com/btcsuite/btcd/btcutil v1.1.3
@@ -67,6 +67,7 @@ require (
6767
golang.org/x/sync v0.12.0
6868
golang.org/x/term v0.30.0
6969
golang.org/x/time v0.3.0
70+
golang.org/x/tools v0.29.0
7071
gonum.org/v1/gonum v0.11.0
7172
google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed
7273
google.golang.org/grpc v1.66.0
@@ -186,7 +187,6 @@ require (
186187
golang.org/x/oauth2 v0.21.0 // indirect
187188
golang.org/x/sys v0.31.0 // indirect
188189
golang.org/x/text v0.23.0 // indirect
189-
golang.org/x/tools v0.29.0 // indirect
190190
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect
191191
gopkg.in/inf.v0 v0.9.1 // indirect
192192
gopkg.in/ini.v1 v1.67.0 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ github.com/antithesishq/antithesis-sdk-go v0.3.8/go.mod h1:IUpT2DPAKh6i/YhSbt6Gl
6868
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
6969
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
7070
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
71-
github.com/ava-labs/coreth v0.15.1-rc.1 h1:TsewI2vMa4XV5HGp3spFjEOtqaW48R10K6KOd8aM5as=
72-
github.com/ava-labs/coreth v0.15.1-rc.1/go.mod h1:fWfu0nOh9GLmRRMh1GJH14p1ycPQob9q7GlELNpIPBY=
71+
github.com/ava-labs/coreth v0.15.1-rc.0.0.20250509150914-391115af7620 h1:Vm790Gn1PqUcUnOXSIbZw7BSnQCpsPAN7/IBgbqujNo=
72+
github.com/ava-labs/coreth v0.15.1-rc.0.0.20250509150914-391115af7620/go.mod h1:mfvr1iQAADUfqkKkmQXJPwm3q9LSpcWF+fzIGk4HHuw=
7373
github.com/ava-labs/ledger-avalanche/go v0.0.0-20241009183145-e6f90a8a1a60 h1:EL66gtXOAwR/4KYBjOV03LTWgkEXvLePribLlJNu4g0=
7474
github.com/ava-labs/ledger-avalanche/go v0.0.0-20241009183145-e6f90a8a1a60/go.mod h1:/7qKobTfbzBu7eSTVaXMTr56yTYk4j2Px6/8G+idxHo=
7575
github.com/ava-labs/libevm v1.13.14-0.2.0.release h1:uKGCc5/ceeBbfAPRVtBUxbQt50WzB2pEDb8Uy93ePgQ=

tests/e2e/c/dynamic_fees.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ import (
88
"strings"
99
"time"
1010

11-
"github.com/ava-labs/coreth/params"
1211
"github.com/ava-labs/coreth/plugin/evm/upgrade/acp176"
1312
"github.com/ava-labs/coreth/plugin/evm/upgrade/cortina"
1413
"github.com/ava-labs/libevm/accounts/abi"
1514
"github.com/ava-labs/libevm/common"
1615
"github.com/ava-labs/libevm/core/types"
16+
"github.com/ava-labs/libevm/params"
1717
"github.com/onsi/ginkgo/v2"
1818
"github.com/stretchr/testify/require"
1919
"go.uber.org/zap"

tests/fixture/tmpnet/genesis.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
"math/big"
1111
"time"
1212

13-
"github.com/ava-labs/coreth/core"
14-
"github.com/ava-labs/coreth/params"
13+
"github.com/ava-labs/libevm/core"
14+
"github.com/ava-labs/libevm/params"
1515

1616
"github.com/ava-labs/avalanchego/genesis"
1717
"github.com/ava-labs/avalanchego/ids"

tests/imports_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
2+
// See the file LICENSE for licensing terms.
3+
4+
package tests
5+
6+
import (
7+
"path"
8+
"testing"
9+
10+
"github.com/stretchr/testify/require"
11+
12+
"github.com/ava-labs/avalanchego/utils/packages"
13+
)
14+
15+
func TestMustNotImport(t *testing.T) {
16+
require := require.New(t)
17+
18+
mustNotImport := map[string][]string{
19+
// Importing these packages configures libevm globally. This must not be
20+
// done to support both coreth and subnet-evm.
21+
"tests/...": {
22+
"github.com/ava-labs/coreth/params",
23+
"github.com/ava-labs/coreth/plugin/evm/customtypes",
24+
},
25+
}
26+
for packageName, forbiddenImports := range mustNotImport {
27+
packagePath := path.Join("github.com/ava-labs/avalanchego", packageName)
28+
imports, err := packages.GetDependencies(packagePath)
29+
require.NoError(err)
30+
31+
for _, forbiddenImport := range forbiddenImports {
32+
require.NotContains(imports, forbiddenImport, "package %s must not import %s, check output of: go list -f '{{ .Deps }}' %q", packageName, forbiddenImport, packagePath)
33+
}
34+
}
35+
}

utils/packages/dependencies.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
2+
// See the file LICENSE for licensing terms.
3+
4+
package packages
5+
6+
import (
7+
"fmt"
8+
9+
"golang.org/x/tools/go/packages"
10+
11+
"github.com/ava-labs/avalanchego/utils/set"
12+
)
13+
14+
// GetDependencies takes a fully qualified package name and returns a map of all
15+
// its recursive package imports (including itself) in the same format.
16+
func GetDependencies(packageName string) (set.Set[string], error) {
17+
// Configure the load mode to include dependencies
18+
cfg := &packages.Config{Mode: packages.NeedImports | packages.NeedName}
19+
pkgs, err := packages.Load(cfg, packageName)
20+
if err != nil {
21+
return nil, fmt.Errorf("failed to load package: %w", err)
22+
}
23+
24+
if len(pkgs) == 0 {
25+
return nil, fmt.Errorf("no packages found for %s", packageName)
26+
}
27+
28+
var (
29+
deps set.Set[string]
30+
collectDeps func(pkg *packages.Package) // collectDeps is recursive
31+
)
32+
collectDeps = func(pkg *packages.Package) {
33+
if deps.Contains(pkg.PkgPath) {
34+
return // Avoid re-processing the same dependency
35+
}
36+
deps.Add(pkg.PkgPath)
37+
for _, dep := range pkg.Imports {
38+
collectDeps(dep)
39+
}
40+
}
41+
42+
// Start collecting dependencies
43+
for _, pkg := range pkgs {
44+
if pkg.Errors != nil {
45+
return nil, fmt.Errorf("failed to load package %s, %v", packageName, pkg.Errors)
46+
}
47+
collectDeps(pkg)
48+
}
49+
return deps, nil
50+
}

0 commit comments

Comments
 (0)