Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 genesis/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"testing"
"time"

"github.com/ava-labs/coreth/core"
"github.com/ava-labs/libevm/core"
"github.com/stretchr/testify/require"

_ "embed"
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ require (
github.com/NYTimes/gziphandler v1.1.1
github.com/StephenButtolph/canoto v0.15.0
github.com/antithesishq/antithesis-sdk-go v0.3.8
github.com/ava-labs/coreth v0.15.1-rc.1
github.com/ava-labs/coreth v0.15.1-rc.0.0.20250509150914-391115af7620
github.com/ava-labs/ledger-avalanche/go v0.0.0-20241009183145-e6f90a8a1a60
github.com/ava-labs/libevm v1.13.14-0.2.0.release
github.com/btcsuite/btcd/btcutil v1.1.3
Expand Down Expand Up @@ -67,6 +67,7 @@ require (
golang.org/x/sync v0.12.0
golang.org/x/term v0.30.0
golang.org/x/time v0.3.0
golang.org/x/tools v0.29.0
gonum.org/v1/gonum v0.11.0
google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed
google.golang.org/grpc v1.66.0
Expand Down Expand Up @@ -186,7 +187,6 @@ require (
golang.org/x/oauth2 v0.21.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/text v0.23.0 // indirect
golang.org/x/tools v0.29.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ github.com/antithesishq/antithesis-sdk-go v0.3.8/go.mod h1:IUpT2DPAKh6i/YhSbt6Gl
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
github.com/ava-labs/coreth v0.15.1-rc.1 h1:TsewI2vMa4XV5HGp3spFjEOtqaW48R10K6KOd8aM5as=
github.com/ava-labs/coreth v0.15.1-rc.1/go.mod h1:fWfu0nOh9GLmRRMh1GJH14p1ycPQob9q7GlELNpIPBY=
github.com/ava-labs/coreth v0.15.1-rc.0.0.20250509150914-391115af7620 h1:Vm790Gn1PqUcUnOXSIbZw7BSnQCpsPAN7/IBgbqujNo=
github.com/ava-labs/coreth v0.15.1-rc.0.0.20250509150914-391115af7620/go.mod h1:mfvr1iQAADUfqkKkmQXJPwm3q9LSpcWF+fzIGk4HHuw=
github.com/ava-labs/ledger-avalanche/go v0.0.0-20241009183145-e6f90a8a1a60 h1:EL66gtXOAwR/4KYBjOV03LTWgkEXvLePribLlJNu4g0=
github.com/ava-labs/ledger-avalanche/go v0.0.0-20241009183145-e6f90a8a1a60/go.mod h1:/7qKobTfbzBu7eSTVaXMTr56yTYk4j2Px6/8G+idxHo=
github.com/ava-labs/libevm v1.13.14-0.2.0.release h1:uKGCc5/ceeBbfAPRVtBUxbQt50WzB2pEDb8Uy93ePgQ=
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e/c/dynamic_fees.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import (
"strings"
"time"

"github.com/ava-labs/coreth/params"
"github.com/ava-labs/coreth/plugin/evm/upgrade/acp176"
"github.com/ava-labs/coreth/plugin/evm/upgrade/cortina"
"github.com/ava-labs/libevm/accounts/abi"
"github.com/ava-labs/libevm/common"
"github.com/ava-labs/libevm/core/types"
"github.com/ava-labs/libevm/params"
"github.com/onsi/ginkgo/v2"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
Expand Down
4 changes: 2 additions & 2 deletions tests/fixture/tmpnet/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import (
"math/big"
"time"

"github.com/ava-labs/coreth/core"
"github.com/ava-labs/coreth/params"
"github.com/ava-labs/libevm/core"
"github.com/ava-labs/libevm/params"

"github.com/ava-labs/avalanchego/genesis"
"github.com/ava-labs/avalanchego/ids"
Expand Down
35 changes: 35 additions & 0 deletions tests/imports_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.

package tests

import (
"path"
"testing"

"github.com/stretchr/testify/require"

"github.com/ava-labs/avalanchego/utils/packages"
)

func TestMustNotImport(t *testing.T) {
require := require.New(t)

mustNotImport := map[string][]string{
// Importing these packages configures libevm globally. This must not be
// done to support both coreth and subnet-evm.
"tests/...": {
"github.com/ava-labs/coreth/params",
"github.com/ava-labs/coreth/plugin/evm/customtypes",
},
}
for packageName, forbiddenImports := range mustNotImport {
packagePath := path.Join("github.com/ava-labs/avalanchego", packageName)
imports, err := packages.GetDependencies(packagePath)
require.NoError(err)

for _, forbiddenImport := range forbiddenImports {
require.NotContains(imports, forbiddenImport, "package %s must not import %s, check output of: go list -f '{{ .Deps }}' %q", packageName, forbiddenImport, packagePath)
}
}
}
50 changes: 50 additions & 0 deletions utils/packages/dependencies.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.

package packages

import (
"fmt"

"golang.org/x/tools/go/packages"

"github.com/ava-labs/avalanchego/utils/set"
)

// GetDependencies takes a fully qualified package name and returns a map of all
// its recursive package imports (including itself) in the same format.
func GetDependencies(packageName string) (set.Set[string], error) {
// Configure the load mode to include dependencies
cfg := &packages.Config{Mode: packages.NeedImports | packages.NeedName}
pkgs, err := packages.Load(cfg, packageName)
if err != nil {
return nil, fmt.Errorf("failed to load package: %w", err)
}

if len(pkgs) == 0 {
return nil, fmt.Errorf("no packages found for %s", packageName)
}

var (
deps set.Set[string]
collectDeps func(pkg *packages.Package) // collectDeps is recursive
)
collectDeps = func(pkg *packages.Package) {
if deps.Contains(pkg.PkgPath) {
return // Avoid re-processing the same dependency
}
deps.Add(pkg.PkgPath)
for _, dep := range pkg.Imports {
collectDeps(dep)
}
}

// Start collecting dependencies
for _, pkg := range pkgs {
if pkg.Errors != nil {
return nil, fmt.Errorf("failed to load package %s, %v", packageName, pkg.Errors)
}
collectDeps(pkg)
}
return deps, nil
}