Skip to content

Commit

Permalink
new geth version v1.13.11 (#3179)
Browse files Browse the repository at this point in the history
* new geth version v1.13.11
  • Loading branch information
ARR552 authored Jan 31, 2024
1 parent 188969b commit aed5088
Show file tree
Hide file tree
Showing 12 changed files with 132 additions and 98 deletions.
33 changes: 17 additions & 16 deletions etherman/etherman_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ import (
"github.com/0xPolygonHermez/zkevm-node/test/constants"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethclient/simulated"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
Expand All @@ -38,7 +38,7 @@ func init() {
}

// This function prepare the blockchain, the wallet with funds and deploy the smc
func newTestingEnv() (ethman *Client, ethBackend *backends.SimulatedBackend, auth *bind.TransactOpts, polAddr common.Address, br *polygonzkevmbridge.Polygonzkevmbridge) {
func newTestingEnv() (ethman *Client, ethBackend *simulated.Backend, auth *bind.TransactOpts, polAddr common.Address, br *polygonzkevmbridge.Polygonzkevmbridge) {
privateKey, err := crypto.GenerateKey()
if err != nil {
log.Fatal(err)
Expand Down Expand Up @@ -82,7 +82,7 @@ func TestGEREvent(t *testing.T) {
blocks, _, err := etherman.GetRollupInfoByBlockRange(ctx, initBlock.NumberU64(), &finalBlockNumber)
require.NoError(t, err)
t.Logf("Blocks: %+v", blocks)
assert.Equal(t, uint64(5), blocks[0].L1InfoTree[0].BlockNumber)
assert.Equal(t, uint64(8), blocks[0].L1InfoTree[0].BlockNumber)
assert.NotEqual(t, common.Hash{}, blocks[0].L1InfoTree[0].MainnetExitRoot)
assert.Equal(t, common.Hash{}, blocks[0].L1InfoTree[0].RollupExitRoot)
}
Expand Down Expand Up @@ -114,8 +114,8 @@ func TestForcedBatchEvent(t *testing.T) {
blocks, _, err := etherman.GetRollupInfoByBlockRange(ctx, initBlock.NumberU64(), &finalBlockNumber)
require.NoError(t, err)
t.Logf("Blocks: %+v", blocks)
assert.Equal(t, uint64(5), blocks[0].BlockNumber)
assert.Equal(t, uint64(5), blocks[0].ForcedBatches[0].BlockNumber)
assert.Equal(t, uint64(8), blocks[0].BlockNumber)
assert.Equal(t, uint64(8), blocks[0].ForcedBatches[0].BlockNumber)
assert.NotEqual(t, common.Hash{}, blocks[0].ForcedBatches[0].GlobalExitRoot)
assert.NotEqual(t, time.Time{}, blocks[0].ForcedBatches[0].ForcedAt)
assert.Equal(t, uint64(1), blocks[0].ForcedBatches[0].ForcedBatchNumber)
Expand Down Expand Up @@ -219,7 +219,7 @@ func TestVerifyBatchEvent(t *testing.T) {
blocks, order, err := etherman.GetRollupInfoByBlockRange(ctx, initBlock.NumberU64(), &finalBlockNumber)
require.NoError(t, err)
t.Logf("Blocks: %+v, \nOrder: %+v", blocks, order)
assert.Equal(t, uint64(6), blocks[1].BlockNumber)
assert.Equal(t, uint64(9), blocks[1].BlockNumber)
assert.Equal(t, uint64(1), blocks[1].VerifiedBatches[0].BatchNumber)
assert.NotEqual(t, common.Address{}, blocks[1].VerifiedBatches[0].Aggregator)
assert.NotEqual(t, common.Hash{}, blocks[1].VerifiedBatches[0].TxHash)
Expand All @@ -246,6 +246,7 @@ func TestSequenceForceBatchesEvent(t *testing.T) {
_, err = etherman.ZkEVM.ForceBatch(auth, data, amount)
require.NoError(t, err)
ethBackend.Commit()
ethBackend.Commit()

err = ethBackend.AdjustTime((24*7 + 1) * time.Hour)
require.NoError(t, err)
Expand Down Expand Up @@ -281,7 +282,7 @@ func TestSequenceForceBatchesEvent(t *testing.T) {
blocks, order, err := etherman.GetRollupInfoByBlockRange(ctx, initBlock.NumberU64(), &finalBlockNumber)
require.NoError(t, err)
t.Logf("Blocks: %+v", blocks)
assert.Equal(t, uint64(7), blocks[1].BlockNumber)
assert.Equal(t, uint64(12), blocks[1].BlockNumber)
assert.Equal(t, uint64(2), blocks[1].SequencedForceBatches[0][0].BatchNumber)
assert.Equal(t, forcedGer, common.BytesToHash(blocks[1].SequencedForceBatches[0][0].ForcedGlobalExitRoot[:]))
assert.Equal(t, forcedTimestamp, blocks[1].SequencedForceBatches[0][0].ForcedTimestamp)
Expand Down Expand Up @@ -341,15 +342,15 @@ func TestGasPrice(t *testing.T) {
etherman.GasProviders.Providers = []ethereum.GasPricer{etherman.EthClient, etherscanM, ethGasStationM}
ctx := context.Background()

etherscanM.On("SuggestGasPrice", ctx).Return(big.NewInt(765625003), nil)
ethGasStationM.On("SuggestGasPrice", ctx).Return(big.NewInt(765625002), nil)
etherscanM.On("SuggestGasPrice", ctx).Return(big.NewInt(1448795322), nil)
ethGasStationM.On("SuggestGasPrice", ctx).Return(big.NewInt(1448795321), nil)
gp := etherman.GetL1GasPrice(ctx)
assert.Equal(t, big.NewInt(765625003), gp)
assert.Equal(t, big.NewInt(1448795322), gp)

etherman.GasProviders.Providers = []ethereum.GasPricer{etherman.EthClient, ethGasStationM}

gp = etherman.GetL1GasPrice(ctx)
assert.Equal(t, big.NewInt(765625002), gp)
assert.Equal(t, big.NewInt(1448795321), gp)
}

func TestErrorEthGasStationPrice(t *testing.T) {
Expand All @@ -361,14 +362,14 @@ func TestErrorEthGasStationPrice(t *testing.T) {

ethGasStationM.On("SuggestGasPrice", ctx).Return(big.NewInt(0), fmt.Errorf("error getting gasPrice from ethGasStation"))
gp := etherman.GetL1GasPrice(ctx)
assert.Equal(t, big.NewInt(512908937), gp)
assert.Equal(t, big.NewInt(1392695906), gp)

etherscanM := new(etherscanMock)
etherman.GasProviders.Providers = []ethereum.GasPricer{etherman.EthClient, etherscanM, ethGasStationM}

etherscanM.On("SuggestGasPrice", ctx).Return(big.NewInt(765625003), nil)
etherscanM.On("SuggestGasPrice", ctx).Return(big.NewInt(1448795322), nil)
gp = etherman.GetL1GasPrice(ctx)
assert.Equal(t, big.NewInt(765625003), gp)
assert.Equal(t, big.NewInt(1448795322), gp)
}

func TestErrorEtherScanPrice(t *testing.T) {
Expand All @@ -380,9 +381,9 @@ func TestErrorEtherScanPrice(t *testing.T) {
ctx := context.Background()

etherscanM.On("SuggestGasPrice", ctx).Return(big.NewInt(0), fmt.Errorf("error getting gasPrice from etherscan"))
ethGasStationM.On("SuggestGasPrice", ctx).Return(big.NewInt(765625002), nil)
ethGasStationM.On("SuggestGasPrice", ctx).Return(big.NewInt(1448795321), nil)
gp := etherman.GetL1GasPrice(ctx)
assert.Equal(t, big.NewInt(765625002), gp)
assert.Equal(t, big.NewInt(1448795321), gp)
}

func TestGetForks(t *testing.T) {
Expand Down
39 changes: 21 additions & 18 deletions etherman/simulated.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ import (
"github.com/0xPolygonHermez/zkevm-node/etherman/smartcontracts/proxy"
"github.com/0xPolygonHermez/zkevm-node/log"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethclient/simulated"
)

// NewSimulatedEtherman creates an etherman that uses a simulated blockchain. It's important to notice that the ChainID of the auth
// must be 1337. The address that holds the auth will have an initial balance of 10 ETH
func NewSimulatedEtherman(cfg Config, auth *bind.TransactOpts) (etherman *Client, ethBackend *backends.SimulatedBackend, polAddr common.Address, br *polygonzkevmbridge.Polygonzkevmbridge, err error) {
func NewSimulatedEtherman(cfg Config, auth *bind.TransactOpts) (*Client, *simulated.Backend, common.Address, *polygonzkevmbridge.Polygonzkevmbridge, error) {
if auth == nil {
// read only client
return &Client{}, nil, common.Address{}, nil, nil
Expand All @@ -37,21 +37,21 @@ func NewSimulatedEtherman(cfg Config, auth *bind.TransactOpts) (etherman *Client
},
}
blockGasLimit := uint64(999999999999999999) //nolint:gomnd
client := backends.NewSimulatedBackend(genesisAlloc, blockGasLimit)
client := simulated.NewBackend(genesisAlloc, simulated.WithBlockGasLimit(blockGasLimit))

// Deploy contracts
const polDecimalPlaces = 18
totalSupply, _ := new(big.Int).SetString("10000000000000000000000000000", 10) //nolint:gomnd
polAddr, _, polContract, err := pol.DeployPol(auth, client, "Pol Token", "POL", polDecimalPlaces, totalSupply)
polAddr, _, polContract, err := pol.DeployPol(auth, client.Client(), "Pol Token", "POL", polDecimalPlaces, totalSupply)
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
rollupVerifierAddr, _, _, err := mockverifier.DeployMockverifier(auth, client)
rollupVerifierAddr, _, _, err := mockverifier.DeployMockverifier(auth, client.Client())
if err != nil {
return nil, nil, common.Address{}, nil, err
}
nonce, err := client.PendingNonceAt(context.TODO(), auth.From)
nonce, err := client.Client().PendingNonceAt(context.TODO(), auth.From)
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
Expand All @@ -61,28 +61,29 @@ func NewSimulatedEtherman(cfg Config, auth *bind.TransactOpts) (etherman *Client
const posRollupManager = 4
calculatedRollupManagerAddr := crypto.CreateAddress(auth.From, nonce+posRollupManager)
genesis := common.HexToHash("0xfd3434cd8f67e59d73488a2b8da242dd1f02849ea5dd99f0ca22c836c3d5b4a9") // Random value. Needs to be different to 0x0
exitManagerAddr, _, globalExitRoot, err := polygonzkevmglobalexitroot.DeployPolygonzkevmglobalexitroot(auth, client, calculatedRollupManagerAddr, calculatedBridgeAddr)
exitManagerAddr, _, globalExitRoot, err := polygonzkevmglobalexitroot.DeployPolygonzkevmglobalexitroot(auth, client.Client(), calculatedRollupManagerAddr, calculatedBridgeAddr)
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
implementationBridgeAddr, _, _, err := polygonzkevmbridge.DeployPolygonzkevmbridge(auth, client)
implementationBridgeAddr, _, _, err := polygonzkevmbridge.DeployPolygonzkevmbridge(auth, client.Client())
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}

implementationMockRollupManagerAddr, _, _, err := mockpolygonrollupmanager.DeployMockpolygonrollupmanager(auth, client, exitManagerAddr, polAddr, calculatedBridgeAddr)
implementationMockRollupManagerAddr, _, _, err := mockpolygonrollupmanager.DeployMockpolygonrollupmanager(auth, client.Client(), exitManagerAddr, polAddr, calculatedBridgeAddr)
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
bridgeAddr, _, _, err := proxy.DeployProxy(auth, client, implementationBridgeAddr, implementationBridgeAddr, []byte{})
client.Commit()
bridgeAddr, _, _, err := proxy.DeployProxy(auth, client.Client(), implementationBridgeAddr, implementationBridgeAddr, []byte{})
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
mockRollupManagerAddr, _, _, err := proxy.DeployProxy(auth, client, implementationMockRollupManagerAddr, implementationMockRollupManagerAddr, []byte{})
mockRollupManagerAddr, _, _, err := proxy.DeployProxy(auth, client.Client(), implementationMockRollupManagerAddr, implementationMockRollupManagerAddr, []byte{})
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
Expand All @@ -91,31 +92,34 @@ func NewSimulatedEtherman(cfg Config, auth *bind.TransactOpts) (etherman *Client
return nil, nil, common.Address{}, nil, fmt.Errorf("RollupManagerAddr (%s) is different from the expected contract address (%s)",
mockRollupManagerAddr.String(), calculatedRollupManagerAddr.String())
}
initZkevmAddr, _, _, err := polygonzkevm.DeployPolygonzkevm(auth, client, exitManagerAddr, polAddr, bridgeAddr, mockRollupManagerAddr)
initZkevmAddr, _, _, err := polygonzkevm.DeployPolygonzkevm(auth, client.Client(), exitManagerAddr, polAddr, bridgeAddr, mockRollupManagerAddr)
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
mockRollupManager, err := mockpolygonrollupmanager.NewMockpolygonrollupmanager(mockRollupManagerAddr, client)
mockRollupManager, err := mockpolygonrollupmanager.NewMockpolygonrollupmanager(mockRollupManagerAddr, client.Client())
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
br, err = polygonzkevmbridge.NewPolygonzkevmbridge(bridgeAddr, client)
br, err := polygonzkevmbridge.NewPolygonzkevmbridge(bridgeAddr, client.Client())
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
client.Commit()
_, err = br.Initialize(auth, 0, common.Address{}, 0, exitManagerAddr, mockRollupManagerAddr, []byte{})
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
client.Commit()
_, err = mockRollupManager.Initialize(auth, auth.From, 10000, 10000, auth.From, auth.From, auth.From, common.Address{}, common.Address{}, 0, 0) //nolint:gomnd
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}
client.Commit()
_, err = mockRollupManager.AddNewRollupType(auth, initZkevmAddr, rollupVerifierAddr, 6, 0, genesis, "PolygonZkEvm Rollup") //nolint:gomnd
if err != nil {
log.Error("error: ", err)
Expand Down Expand Up @@ -153,13 +157,13 @@ func NewSimulatedEtherman(cfg Config, auth *bind.TransactOpts) (etherman *Client
bridgeAddr.String(), calculatedBridgeAddr.String())
}

rollupManager, err := polygonrollupmanager.NewPolygonrollupmanager(mockRollupManagerAddr, client)
rollupManager, err := polygonrollupmanager.NewPolygonrollupmanager(mockRollupManagerAddr, client.Client())
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
}

trueZkevm, err := polygonzkevm.NewPolygonzkevm(zkevmAddr, client) //nolint
trueZkevm, err := polygonzkevm.NewPolygonzkevm(zkevmAddr, client.Client()) //nolint
if err != nil {
log.Error("error: ", err)
return nil, nil, common.Address{}, nil, err
Expand All @@ -185,9 +189,8 @@ func NewSimulatedEtherman(cfg Config, auth *bind.TransactOpts) (etherman *Client
}
client.Commit()

client.Commit()
c := &Client{
EthClient: client,
EthClient: client.Client(),
ZkEVM: trueZkevm,
RollupManager: rollupManager,
Pol: polContract,
Expand Down
36 changes: 23 additions & 13 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ require (
github.com/0xPolygonHermez/zkevm-data-streamer v0.1.18
github.com/didip/tollbooth/v6 v6.1.2
github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127
github.com/ethereum/go-ethereum v1.13.2
github.com/ethereum/go-ethereum v1.13.11
github.com/go-git/go-billy/v5 v5.5.0
github.com/go-git/go-git/v5 v5.11.0
github.com/gobuffalo/packr/v2 v2.8.3
Expand Down Expand Up @@ -42,48 +42,54 @@ require (
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
github.com/StackExchange/wmi v1.2.1 // indirect
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
github.com/VictoriaMetrics/fastcache v1.12.1 // indirect
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.7.0 // indirect
github.com/bits-and-blooms/bitset v1.10.0 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
github.com/buger/jsonparser v1.1.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/cloudflare/circl v1.3.3 // indirect
github.com/cockroachdb/errors v1.9.1 // indirect
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
github.com/cockroachdb/pebble v0.0.0-20230906160148-46873a6a7a06 // indirect
github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 // indirect
github.com/cockroachdb/redact v1.1.3 // indirect
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
github.com/consensys/bavard v0.1.13 // indirect
github.com/consensys/gnark-crypto v0.12.0 // indirect
github.com/consensys/gnark-crypto v0.12.1 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/crate-crypto/go-kzg-4844 v0.3.0 // indirect
github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect
github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/deckarep/golang-set/v2 v2.1.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/dlclark/regexp2 v1.7.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/ethereum/c-kzg-4844 v0.3.1 // indirect
github.com/ethereum/c-kzg-4844 v0.4.0 // indirect
github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff // indirect
github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect
github.com/getsentry/sentry-go v0.18.0 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-pkgz/expirable-cache v0.0.3 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/gobuffalo/logger v1.0.7 // indirect
github.com/gobuffalo/packd v1.0.2 // indirect
github.com/gofrs/flock v0.8.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect
github.com/hashicorp/go-bexpr v0.1.10 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 // indirect
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
github.com/huin/goupnp v1.3.0 // indirect
github.com/jackc/chunkreader/v2 v2.0.1 // indirect
Expand All @@ -108,16 +114,19 @@ require (
github.com/markbates/safe v1.0.1 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.9 // indirect
github.com/mattn/go-runewidth v0.0.13 // indirect
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
github.com/mitchellh/pointerstructure v1.2.0 // indirect
github.com/mmcloughlin/addchain v0.4.0 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/rs/cors v1.7.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sagikazarmark/locafero v0.3.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
Expand All @@ -141,14 +150,15 @@ require (
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
go.uber.org/multierr v1.10.0 // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/sys v0.16.0 // indirect
golang.org/x/term v0.16.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.13.0 // indirect
golang.org/x/tools v0.15.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
rsc.io/tmplfunc v0.0.3 // indirect
)
Expand All @@ -163,5 +173,5 @@ require (
github.com/fatih/color v1.16.0
github.com/joho/godotenv v1.5.1
github.com/prometheus/client_golang v1.18.0
golang.org/x/exp v0.0.0-20230905200255-921286631fa9
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa
)
Loading

0 comments on commit aed5088

Please sign in to comment.